pax_global_header00006660000000000000000000000064146174224410014517gustar00rootroot0000000000000052 comment=f4ed95d63385df8fb6595309f33037ef77410244 riseup-vpn-0.24.5+ds1/000077500000000000000000000000001461742244100144025ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/.gitignore000066400000000000000000000005701461742244100163740ustar00rootroot00000000000000__pycache__ .mypy_cache build dist deploy staging_dir /bitmask-vpn cmd/bitmask-vpn/bitmask-vpn /bitmask-helper cmd/bitmask-helper/bitmask-helper /bitmask-connect cmd/bitmask-connect/bitmask-connect gui/i18n/*.qm /snap locales/*/out.gotext.json tools/transifex/transifex branding/assets/default lib/* qtbuild/* providers/assets debian/files .*.swp *.exe # IDE .idea .vs riseup-vpn-0.24.5+ds1/.gitlab-ci.yml000066400000000000000000000055241461742244100170440ustar00rootroot00000000000000--- stages: - build - debian build_test: image: registry.0xacab.org/jkito/bitmask-vpn:latest stage: build script: - make generate - make test - patch -p1 < docker/*.patch # TODO missing xcb package in the docker image. investigate what to install to run minimal tests. # - make test_ui - make build tags: - linux artifacts: paths: - 'build/qt/release/riseup-vpn' expire_in: 1 month # branded_push: # image: registry.0xacab.org/leap/bitmask-vpn:latest # stage: push # only: # - master # script: # # install the command-line openssh client to manage private keys # - apt install -y openssh-client # # activate the ssh-agent # - eval $(ssh-agent -s) # # load the private key, which is accessed vi a gitlab CI secret environment variable # # We're using tr to fix line endings which makes ed25519 keys work # # without extra base64 encoding. # - ssh-add <(echo "$RISEUP_VPN_PACKAGE_SSH_KEY") # - mkdir -p ~/.ssh # # ensure that ssh will trust a new host, instead of asking # - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config # # we also need to configure name and email for git user # - git config user.name "Gitlab CI" # - git config user.email "gitlabci@0xacab.org" # # Add the remote repository and push to it - sometimes it already exists, and it causes the pipeline to fail, so we only add if its not already there # - git remote -v |grep -q riseup-vpn || git remote add riseup-vpn git@0xacab.org:leap/riseup-vpn_package.git # - git push --force riseup-vpn HEAD:incoming # trigger_deb: # image: registry.0xacab.org/leap/buster_amd64:latest # stage: trigger # script: # - echo "Triggering CI pipeline on https://0xacab.org/leap/riseup-vpn_package/pipelines" # - "curl -X POST -F token=$RISEUP_VPN_DEB_TRIGGER_TOKEN -F ref=master https://0xacab.org/api/v4/projects/1916/trigger/pipeline" debian: image: registry.0xacab.org/jkito/bitmask-vpn:latest stage: debian tags: - linux script: - 'PROVIDER="bitmask" make vendor && make package_deb' artifacts: paths: - 'deploy/*.deb' # vendorize: # image: registry.0xacab.org/leap/bitmask-vpn:latest # stage: vendor # script: # #- TODO build_all_providers script can be rescued when we achieve to bring back xbuild for win/osx. # # For now it only makes sense to build the snap. # #- 'PROVIDERS="riseup calyx" make build_all_providers' # - 'PROVIDER="riseup" make vendor && make package_snap' # artifacts: # name: installers-$CI_COMMIT_REF_NAME # paths: # - 'deploy/*.snap' # # - 'deploy/RiseupVPN-*.exe' # # - 'deploy/RiseupVPN-*.pkg' # # - 'deploy/riseup-vpn_*.deb' # # - 'deploy/CalyxVPN-*.exe' # # - 'deploy/CalyxVPN-*.pkg' # # - 'deploy/calyx-vpn_*.deb' # expire_in: 1 month riseup-vpn-0.24.5+ds1/.tx/000077500000000000000000000000001461742244100151135ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/.tx/config000077500000000000000000000005101461742244100163020ustar00rootroot00000000000000[main] host = https://rest.api.transifex.com lang_map = es_AR:es-rAR, fa_IR:fa-rIR, kn_IN:kn-rIN, pt_BR:pt-rBR, pt_PT:pt-rPT, zh_CN:zh-rCN, zh_TW:zh-rTW, nb:no [o:otf:p:bitmask:r:bitmask-desktop] source_file = gui/i18n/base.ts type = QT resource_name = LEAP Desktop VPN file_filter = gui/i18n/main_.ts minimum_perc = 80 riseup-vpn-0.24.5+ds1/AUTHORS000066400000000000000000000004111461742244100154460ustar00rootroot00000000000000Ruben Pollan Kali Kaneko micah elijah kwadronaut Micah Anderson Natalie Eskinazi Pj4NJFIVsq t h riseup-vpn-0.24.5+ds1/CHANGELOG000066400000000000000000000022601461742244100156140ustar00rootroot00000000000000development =========== - ... 0.24.5 ====== - fix missing dependencies on .deb package - Shorten too long strings in translations - Fix bitmask branded windows UI and remove riseup crow from about - Connection status text width trimmed to be inside parent container - Bitmask branded desktop build pointing to demo instance of lillypad - Add Supported OS's to the readme - Update the debian package to build using Qt6 - Update GUI to Qt6 - Fix bitmask-helper install script for macOS and windows 0.21.11 ======= - Complete UI revamp - Do not fail if ipv6 is disabled (GNU/Linux) - UDP support - Obfs4 support - Experimental snowflake support for bootstrap (not exposed in UI yet) - Disable autostart on first run - Provider "message of the day" - primitive version check for windows, osx. - #569 avoid installing in custom paths to mitigate security issue in windows 0.21.6 ====== - First iteration of the gateway selector. - Allow to select obfs4 gateways (bridges) to bypass censorship. - Ability to define explicitely allowed addresses for local networks. - Make the donate dialog less intrusive (#470) - Updated translations. New locales: greek, farsi, hungarian, dutch, polish and uyghur. riseup-vpn-0.24.5+ds1/CMakeLists.txt000066400000000000000000000151501461742244100171440ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.16) project(bitmask VERSION 1.0 LANGUAGES CXX) set(CMAKE_INCLUDE_CURRENT_DIR ON) find_package(QT NAMES Qt5 Qt6 REQUIRED) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Gui Qml Quick QuickControls2 Svg Widgets LinguistTools) find_library(LIB_TO_INCLUDE goshim lib) #qt_standard_project_setup() set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOUIC ON) qt_add_executable(bitmask WIN32 MACOSX_BUNDLE gui/handlers.cpp gui/handlers.h gui/main.cpp gui/qjsonmodel.cpp gui/qjsonmodel.h lib/libgoshim.h ) qt_add_qml_module(bitmask URI bitmask VERSION ${PROJECT_VERSION} QML_FILES gui/main.qml gui/themes/themes.js gui/themes/theme-riseup.js gui/themes/Riseup.qml gui/themes/theme-calyx.js gui/themes/Calyx.qml gui/themes/ThemeObject.qml gui/components/MainView.qml gui/components/ThemedPage.qml gui/components/Splash.qml gui/components/FadeBehavior.qml gui/components/Home.qml gui/components/Header.qml gui/components/Footer.qml gui/components/About.qml gui/components/MaterialRadioButton.qml gui/components/MaterialRadioIndicator.qml gui/components/WrappedRadioButton.qml gui/components/MaterialCheckBox.qml gui/components/StatusBox.qml gui/components/Systray.qml gui/components/Help.qml gui/components/Locations.qml gui/components/SignalIcon.qml gui/components/Preferences.qml gui/components/BoldLabel.qml gui/components/LightLabel.qml gui/components/VPNButtonBase.qml gui/components/VPNMouseArea.qml gui/components/VerticalSpacer.qml gui/components/Icon.qml gui/components/MaterialButton.qml gui/components/VPNState.qml gui/components/InitErrors.qml gui/components/ErrorBox.qml gui/components/MotdBox.qml gui/components/NavigationDrawer.qml RESOURCES gui/qtquickcontrols2.conf gui/resources/icon-noshield.svg gui/resources/location.svg gui/resources/settings.svg gui/resources/power.svg gui/resources/language.svg gui/resources/lightning.svg gui/resources/close.svg gui/resources/donate.svg gui/resources/tools.svg gui/resources/help.svg gui/resources/about.svg gui/resources/bridge.svg gui/resources/gear-fill.svg gui/resources/reception-0.svg gui/resources/reception-2.svg gui/resources/reception-4.svg gui/resources/reception-0@24.svg gui/resources/reception-4@24.svg gui/resources/arrow-left.svg gui/resources/globe.svg gui/resources/spy.gif gui/resources/quit.svg gui/resources/alert.svg gui/resources/angle-right.svg gui/resources/snowflake.svg gui/resources/ravens.svg gui/resources/ravens.gif gui/resources/riseup-icon.svg gui/resources/calyx/calyx-shield-green.png gui/resources/calyx/calyx-hand.png gui/resources/calyx/calyx-red-shield.png gui/resources/calyx/calyx-yellow-shield.png gui/resources/fonts/Poppins-Regular.ttf gui/resources/fonts/Poppins-Bold.ttf gui/resources/fonts/Montserrat-SemiBold.ttf gui/resources/fonts/Roboto-Regular.ttf gui/resources/fonts/Roboto-Bold.ttf gui/assets/icon/png/black/vpn_off.png gui/assets/icon/png/black/vpn_on.png gui/assets/icon/png/black/vpn_wait_0.png gui/assets/icon/png/black/vpn_wait_1.png gui/assets/icon/png/black/vpn_wait_2.png gui/assets/icon/png/black/vpn_wait_3.png gui/assets/icon/png/white/vpn_off.png gui/assets/icon/png/white/vpn_on.png gui/assets/icon/png/white/vpn_wait_0.png gui/assets/icon/png/white/vpn_wait_1.png gui/assets/icon/png/white/vpn_wait_2.png gui/assets/icon/png/white/vpn_wait_3.png gui/assets/img/bird.jpg gui/providers/providers.json NO_RESOURCE_TARGET_PATH OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/release ) set_source_files_properties("gui/providers/providers.json" PROPERTIES QT_RESOURCE_ALIAS "providers.json" ) set_source_files_properties("gui/resources/fonts/Montserrat-SemiBold.ttf" PROPERTIES QT_RESOURCE_ALIAS "monserrat-bold.ttf" ) set_source_files_properties("gui/resources/fonts/Poppins-Bold.ttf" PROPERTIES QT_RESOURCE_ALIAS "poppins-bold.ttf" ) set_source_files_properties("gui/resources/fonts/Poppins-Regular.ttf" PROPERTIES QT_RESOURCE_ALIAS "poppins-regular.ttf" ) set_source_files_properties("gui/resources/fonts/Roboto-Bold.ttf" PROPERTIES QT_RESOURCE_ALIAS "roboto-bold.ttf" ) set_source_files_properties("gui/resources/fonts/Roboto-Regular.ttf" PROPERTIES QT_RESOURCE_ALIAS "roboto.ttf" ) # Avoid collision between executable name and QML module directory (QTBUG-98568). if(NOT WIN32 AND NOT APPLE) set_property(TARGET bitmask PROPERTY OUTPUT_NAME bitmask_app) endif() target_compile_definitions(bitmask PRIVATE QT_DEPRECATED_WARNINGS ) target_link_libraries(bitmask PRIVATE # Remove: L../../lib Qt::Core Qt::Gui Qt::Qml Qt::Quick Qt::QuickControls2 Qt::Svg Qt::Widgets ${LIB_TO_INCLUDE} pthread ) # Resources: set_source_files_properties("providers/riseup/assets/icon.svg" PROPERTIES QT_RESOURCE_ALIAS "icon.svg" ) set(vendor_resource_files "providers/riseup/assets/icon.svg" ) qt_add_resources(bitmask "vendor" PREFIX "/vendor/" BASE "providers/riseup" FILES ${vendor_resource_files} ) qt_add_translations(bitmask TS_FILES gui/i18n/base.ts gui/i18n/main_de.ts gui/i18n/main_el.ts gui/i18n/main_es_ES.ts gui/i18n/main_es-rAR.ts gui/i18n/main_es.ts gui/i18n/main_et.ts gui/i18n/main_fa_IR.ts gui/i18n/main_fi.ts gui/i18n/main_fr.ts gui/i18n/main_hu.ts gui/i18n/main_it.ts gui/i18n/main_lt.ts gui/i18n/main_nl.ts gui/i18n/main_pl.ts gui/i18n/main_pt-rBR.ts gui/i18n/main_ru.ts gui/i18n/main_th.ts gui/i18n/main_tr.ts gui/i18n/main_ug.ts gui/i18n/main_zh-rTW.ts gui/i18n/main_zh.ts ) if(MACOS) target_link_libraries(bitmask PRIVATE "-framework CoreFoundation" "-framework Security" ) endif() install(TARGETS bitmask BUNDLE DESTINATION . RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) qt_generate_deploy_qml_app_script( TARGET bitmask FILENAME_VARIABLE deploy_script NO_UNSUPPORTED_PLATFORM_ERROR DEPLOY_USER_QML_MODULES_ON_UNSUPPORTED_PLATFORM MACOS_BUNDLE_POST_BUILD ) install(SCRIPT ${deploy_script}) riseup-vpn-0.24.5+ds1/LICENSE000066400000000000000000001045131461742244100154130ustar00rootroot00000000000000 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 . riseup-vpn-0.24.5+ds1/Makefile000066400000000000000000000410021461742244100160370ustar00rootroot00000000000000######################################################################### # Multiplatform build and packaging recipes for BitmaskVPN # (c) LEAP Encryption Access Project, 2019-2021 ######################################################################### .PHONY: all get build icon locales generate_locales clean check_qtifw HAS-qtifw relink_vendor fmt XBUILD ?= no RELEASE ?= no QMAKE ?= qmake LRELEASE ?= lrelease SKIP_CACHECK ?= no VENDOR_PATH ?= providers APPNAME ?= $(shell VENDOR_PATH=${VENDOR_PATH} branding/scripts/getparam appname | tail -n 1) TARGET ?= $(shell VENDOR_PATH=${VENDOR_PATH} branding/scripts/getparam binname | tail -n 1) PROVIDER ?= $(shell grep ^'provider =' ${VENDOR_PATH}/vendor.conf | cut -d '=' -f 2 | cut -d ',' -f 1 | tr -d "[:space:]") VERSION ?= $(shell git describe 2> /dev/null) ifeq ($(VERSION),) VERSION := "unknown" endif WINCERTPASS ?= pass OSXAPPPASS ?= pass OSXMORDORUID ?= uid # go paths GOPATH = $(shell go env GOPATH) TARGET_GOLIB=lib/libgoshim.a SOURCE_GOLIB=gui/backend.go SOURCE_DIRS_GO = pkg cmd tests gui # detect OS UNAME = $(shell uname -s) ifeq ($(OS), Windows_NT) PLATFORM = windows else PLATFORM ?= $(shell echo ${UNAME} | awk "{print tolower(\$$0)}") endif QTBUILD = build/qt INSTALLER = build/installer # See https://stackoverflow.com/a/65120256 if you have problems validating the cert. OSX_CERT="Apple Distribution: LEAP Encryption Access Project" MACDEPLOYQT_OPTS = -appstore-compliant -always-overwrite -codesign="${OSX_CERT}" ifeq ($(PLATFORM), darwin) INST_ROOT =${INSTALLER}/packages/bitmaskvpn/data/ INST_DATA = ${INST_ROOT}/${APPNAME}.app/ else INST_DATA = ${INSTALLER}/packages/bitmaskvpn/data/ endif SCRIPTS = branding/scripts TEMPLATES = branding/templates OPENVPN_WINDOWS_INSTALLER = https://build.openvpn.net/downloads/releases/OpenVPN-2.6.6-I001-amd64.msi ifeq ($(PLATFORM), linux) HAS_QTIFW := else HAS_QTIFW := $(shell which binarycreator) endif OPENVPN_BIN = "$(HOME)/openvpn_build/sbin/$(shell grep OPENVPN branding/thirdparty/openvpn/build_openvpn.sh | head -n 1 | cut -d = -f 2 | tr -d '"')" ######################################################################### # go build ######################################################################### install_go: # the version of go in bionic is too old. let's get something newer from a ppa. @sudo apt install software-properties-common @sudo add-apt-repository ppa:longsleep/golang-backports @sudo apt-get update @sudo apt-get install golang-go depends: -@${MAKE} depends$(UNAME) dependsLinux: @sudo apt install golang pkg-config dh-golang golang-golang-x-text-dev cmake devscripts fakeroot debhelper curl g++ qt5-qmake qttools5-dev-tools qtdeclarative5-dev qml-module-qtquick-controls2 libqt5qml5 qtdeclarative5-dev qtquickcontrols2-5-dev libqt5svg5-dev qml-module-qt-labs-platform qml-module-qtquick-extras qml-module-qtquick-dialogs @${MAKE} -C docker deps @# debian needs also: snap install snapcraft --classic; snap install multipass --beta --classic dependsDarwin: @brew install git golang make qt5 #@brew install --default-names gnu-sed @brew link qt5 dependsCYGWIN_NT-10.0: @echo @echo "==================================WARNING==================================" @echo "You need to install all dependencies manually, please see README.md!" @echo "==================================WARNING==================================" @echo ifeq ($(PLATFORM), darwin) EXTRA_FLAGS = MACOSX_DEPLOYMENT_TARGET=10.10 GOOS=darwin CC=clang else EXTRA_FLAGS = endif ifeq ($(PLATFORM), windows) EXTRA_GO_LDFLAGS = "-H=windowsgui" endif ifeq ($(PLATFORM), windows) PKGFILES = $(wildcard "pkg/*") # syntax err in windows with find else PKGFILES = $(shell find pkg -type f -name '*.go') endif lib/%.a: $(PKGFILES) @XBUILD=no CC=${CC} VENDOR_PATH=${VENDOR_PATH} CXX=${CXX} MAKE=${MAKE} AR=${AR} LD=${LD} ./gui/build.sh --just-golib # FIXME move platform detection above! no place to uname here, just use $PLATFORM # MINGGW = ifeq ($(UNAME), MINGW64_NT-10.0) MINGW = yes endif ifeq ($(UNAME), MINGW64_NT-10.0-19042) MINGW = yes endif relink_vendor: @echo "============RELINK VENDOR=============" @echo "PLATFORM: ${PLATFORM} (${UNAME})" @echo "VENDOR_PATH: ${VENDOR_PATH}" @echo "PROVIDER: ${PROVIDER}" ifeq ($(PLATFORM), windows) @rm -rf providers/assets ifeq ($(VENDOR_PATH), providers) @cp -r providers/${PROVIDER}/assets providers/assets || true endif # end windows else # not windows: linux/osx ifeq ($(VENDOR_PATH), providers) @-unlink providers/assets @ln -s ${PROVIDER}/assets providers/assets || true endif endif @echo "============RELINK VENDOR=============" build_golib: lib/libgoshim.a build_gui: build_golib relink_vendor @echo "==============BUILD GUI===============" @echo "TARGET: ${TARGET}" @echo "VENDOR_PATH: ${VENDOR_PATH}" @XBUILD=no CC=${CC} CXX=${CXX} MAKE=${MAKE} AR=${AR} LD=${LD} QMAKE=${QMAKE} LRELEASE=${LRELEASE} TARGET=${TARGET} VENDOR_PATH=${VENDOR_PATH} APPNAME=${APPNAME} gui/build.sh --skip-golib @echo "============BUILD GUI=================" build: build_helper build_gui build_helper: ifeq ($(PLATFORM), darwin) # no helper needed for linux, we use polkit/bitmask-root # no helper needed for windows, use openvpn interective service @echo "=============BUILDER HELPER===========" @echo "PLATFORM: ${PLATFORM}" @echo "APPNAME: ${APPNAME}" @echo "VERSION: ${VERSION}" @echo "EXTRA_GO_LDFLAGS: ${EXTRA_GO_LDFLAGS}" @mkdir -p build/bin/${PLATFORM} @go build -o build/bin/${PLATFORM}/bitmask-helper -ldflags "-X main.AppName=${APPNAME} -X main.Version=${VERSION} ${EXTRA_GO_LDFLAGS}" ./cmd/bitmask-helper/ @echo "===========BUILDER HELPER=============" endif build_openvpn: @[ -f $(OPENVPN_BIN) ] && echo "OpenVPN already built at" $(OPENVPN_BIN) || ./branding/thirdparty/openvpn/build_openvpn.sh dosign: ifeq (${PLATFORM}, windows) "c:\windows\system32\rcedit.exe" ${QTBUILD}/release/${TARGET}.exe --set-file-version ${VERSION} "c:\windows\system32\rcedit.exe" ${QTBUILD}/release/${TARGET}.exe --set-product-version ${VERSION} "c:\windows\system32\rcedit.exe" ${QTBUILD}/release/${TARGET}.exe --set-version-string CompanyName "LEAP Encryption Access Project" "c:\windows\system32\rcedit.exe" ${QTBUILD}/release/${TARGET}.exe --set-version-string FileDescription "${APPNAME}" "c:\windows\system32\signtool.exe" sign -debug -f "z:\leap\LEAP.pfx" -p ${WINCERTPASS} ${QTBUILD}/release/${TARGET}.exe endif checksign: ifeq (${PLATFORM}, windows) ifeq (${RELEASE}, yes) @sigcheck.exe ${QTBUILD}/release/${TARGET}.exe endif endif installer: check_qtifw checksign @mkdir -p ${INST_DATA} @cp -r ${TEMPLATES}/qtinstaller/packages ${INSTALLER} @cp -r ${TEMPLATES}/qtinstaller/installer.pro ${INSTALLER} @cp -r ${TEMPLATES}/qtinstaller/config ${INSTALLER} @cp ${VENDOR_PATH}/assets/icon.ico ${INSTALLER}/config/installer-icon.ico @cp ${VENDOR_PATH}/assets/icon.icns ${INSTALLER}/config/installer-icon.icns @cp ${VENDOR_PATH}/assets/installer-logo.png ${INSTALLER}/config/installer-logo.png ifeq (${PLATFORM}, darwin) @mkdir -p ${INST_DATA}/helper @VERSION=${VERSION} VENDOR_PATH=${VENDOR_PATH} ${SCRIPTS}/gen-qtinstaller osx ${INSTALLER} @cp "${TEMPLATES}/osx/bitmask.pf.conf" ${INST_DATA}helper/bitmask.pf.conf @cp "${TEMPLATES}/osx/client.up.sh" ${INST_DATA}/ @cp "${TEMPLATES}/osx/client.down.sh" ${INST_DATA}/ @go build -ldflags='-w -s' -o "${INST_ROOT}/post-install" "${TEMPLATES}/qtinstaller/osx-data/post-install.go" @[ -f $(OPENVPN_BIN) ] && echo "OpenVPN already built at" $(OPENVPN_BIN) || ./branding/thirdparty/openvpn/build_openvpn.sh @cp $(OPENVPN_BIN) ${INST_DATA}/openvpn.leap @cp build/bin/${PLATFORM}/bitmask-helper ${INST_DATA}/ ifeq (${RELEASE}, yes) @echo "[+] Running macdeployqt (release mode)" @macdeployqt ${QTBUILD}/release/${PROVIDER}-vpn.app -qmldir=gui/components ${MACDEPLOYQT_OPTS} else @echo "[+] Running macdeployqt (debug mode)" @macdeployqt ${QTBUILD}/release/${PROVIDER}-vpn.app -qmldir=gui/components endif @cp -r "${QTBUILD}/release/${TARGET}.app"/ ${INST_DATA}/ endif ifeq (${PLATFORM}, windows) @wget ${OPENVPN_WINDOWS_INSTALLER} -O ${INST_DATA}/openvpn-installer.msi @VERSION=${VERSION} VENDOR_PATH=${VENDOR_PATH} ${SCRIPTS}/gen-qtinstaller windows ${INSTALLER} ifeq (${VENDOR_PATH}, providers) @cp ${VENDOR_PATH}/${PROVIDER}/assets/icon.ico ${INST_DATA}/icon.ico else @cp ${VENDOR_PATH}/assets/icon.ico ${INST_DATA}/icon.ico endif @cp ${QTBUILD}/release/${TARGET}.exe ${INST_DATA}${TARGET}.exe ifeq (${RELEASE}, yes) @windeployqt --qmldir gui/components ${INST_DATA}${TARGET}.exe else @windeployqt --qmldir gui/components ${INST_DATA}${TARGET}.exe endif # XXX this is a workaround for missing libs after windeployqt --- @cp $(shell cygpath $(shell ${QMAKE} -query 'QT_INSTALL_BINS'))/libgcc_s_seh-1.dll ${INST_DATA} @cp $(shell cygpath $(shell ${QMAKE} -query 'QT_INSTALL_BINS'))/libstdc++-6.dll ${INST_DATA} @cp $(shell cygpath $(shell ${QMAKE} -query 'QT_INSTALL_BINS'))/libwinpthread-1.dll ${INST_DATA} @cp -r $(shell cygpath $(shell ${QMAKE} -query 'QT_INSTALL_QML')) ${INST_DATA} endif ifeq (${PLATFORM}, linux) @VERSION=${VERSION} ${SCRIPTS}/gen-qtinstaller linux ${INSTALLER} endif @echo "[+] All templates, binaries and libraries copied to build/installer." @echo "[+] Now building the installer." @cd build/installer && ${QMAKE} VENDOR_PATH=${VENDOR_PATH} INSTALLER=${APPNAME}-installer-${VERSION} && ${MAKE} sign_installer: ifeq (${PLATFORM}, windows) # TODO add flag to skip signing for regular builds "c:\windows\system32\signtool.exe" sign -f "z:\leap\LEAP.pfx" -p ${WINCERTPASS} build/installer/${APPNAME}-installer-${VERSION}.exe endif ifeq (${PLATFORM}, darwin) gsed -i "s/com.yourcompany.installerbase/se.leap.bitmask.${TARGET}/g" build/installer/${APPNAME}-installer-${VERSION}.app/Contents/Info.plist codesign -s ${OSX_CERT} --options "runtime" build/installer/${APPNAME}-installer-${VERSION}.app ditto -ck --rsrc --sequesterRsrc build/installer/${APPNAME}-installer-${VERSION}.app build/installer/${APPNAME}-installer-${VERSION}.zip endif notarize_all: APPNAME=${APPNAME} VERSION=${VERSION} TARGET=${TARGET} OSXAPPPASS=${OSXAPPPASS} branding/scripts/osx-stapler.sh # -------------------- # TODO test and remove notarize_installer: # courtesy of https://skyronic.com/2019/07/app-notarization-for-qt-applications/ ifeq (${PLATFORM}, darwin) xcrun altool --notarize-app -t osx -f build/installer/${APPNAME}-installer-${VERSION}.zip --primary-bundle-id="se.leap.bitmask.${TARGET}" -u "info@leap.se" -p ${OSXAPPPASS} endif notarize_check: ifeq (${PLATFORM}, darwin) xcrun altool --notarization-info ${OSXMORDORUID} -u "info@leap.se" -p ${OSXAPPPASS} endif notarize_staple: ifeq (${PLATFORM}, darwin) xcrun stapler staple build/installer/${APPNAME}-installer-${VERSION}.app endif create_dmg: ifeq (${PLATFORM}, darwin) @create-dmg deploy/${APPNAME}-${VERSION}.dmg build/installer/${APPNAME}-installer-${VERSION}.app endif # -------------------- check_qtifw: ifdef HAS_QTIFW @echo "[+] Found QTIFW" else $(error "[!] Cannot find QTIFW. Please install it and add it to your PATH") endif clean: @rm -rf lib/* @rm -rf build/ @-unlink branding/assets/default ######################################################################## # tests ######################################################################### qmllint: @qmllint gui/*.qml @qmllint gui/components/*.qml qmlfmt: # needs https://github.com/jesperhh/qmlfmt in your path @qmlfmt -w gui/qml/*.qml test: @go test -tags "integration $(TAGS)" ./pkg/... fmt: @gofmt -s -w $(SOURCE_DIRS_GO) test_ui: build_golib @${QMAKE} -o tests/Makefile test.pro @${MAKE} -C tests clean @${MAKE} -C tests ifeq ($(PLATFORM), windows) @./tests/build/test_ui.exe else @./tests/build/test_ui endif ######################################################################### # packaging templates ######################################################################### bump_snap: @sed -i 's/^version:.*$$/version: ${VERSION}/' snap/snapcraft.yaml @sed -i 's/^.*echo .*version.txt$$/ echo ${VERSION} > $$SNAPCRAFT_PRIME\/snap\/version.txt/' snap/snapcraft.yaml local_snap: # just to be able to debug stuff locally in the same way as it's really built @canonical # but multipass is the way to go, nowadays @snapcraft --debug --use-lxd vendor_init: @VENDOR_PATH=${VENDOR_PATH} ./branding/scripts/init vendor_check: @VENDOR_PATH=${VENDOR_PATH} ./branding/scripts/check ${PROVIDER} ifeq (${SKIP_CACHECK}, no) @VENDOR_PATH=${VENDOR_PATH} ${SCRIPTS}/check-ca-crt ${PROVIDER} endif vendor: gen_providers_json prepare_templates gen_pkg_snap gen_pkg_deb gen_providers_json: @VENDOR_PATH=${VENDOR_PATH} branding/scripts/gen-providers-json gui/providers/providers.json prepare_templates: generate tgz @mkdir -p build/${PROVIDER}/bin/ deploy @cp ${TEMPLATES}/makefile/Makefile build/${PROVIDER}/Makefile @VERSION=${VERSION} VENDOR_PATH=${VENDOR_PATH} ${SCRIPTS}/generate-vendor-make build/${PROVIDER}/vendor.mk generate: @go generate gui/backend.go @go generate pkg/config/version/genver/gen.go TGZ_NAME = bitmask-vpn_${VERSION}-src TGZ_PATH = ./build/${TGZ_NAME} tgz: @mkdir -p $(TGZ_PATH) git archive HEAD | tar -x -C $(TGZ_PATH) @cd build/ && tar czf bitmask-vpn_$(VERSION).tgz ${TGZ_NAME} && cd .. @rm -rf $(TGZ_PATH) gen_pkg_deb: ifeq (${PLATFORM}, linux) @cp -r ${TEMPLATES}/debian build/${PROVIDER} @VERSION=${VERSION} VENDOR_PATH=${VENDOR_PATH} ${SCRIPTS}/generate-debian build/${PROVIDER}/debian/data.json ifeq (${VENDOR_PATH}, providers) @mkdir -p build/${PROVIDER}/debian/icons/scalable && cp ${VENDOR_PATH}/${PROVIDER}/assets/icon.png build/${PROVIDER}/debian/icons/scalable/${TARGET}.png else @mkdir -p build/${PROVIDER}/debian/icons/scalable && cp ${VENDOR_PATH}/assets/icon.png build/${PROVIDER}/debian/icons/scalable/${TARGET}.png endif @cd build/${PROVIDER}/debian && python3 generate.py @cd build/${PROVIDER}/debian && rm app.desktop-template changelog-template rules-template control-template generate.py data.json && chmod +x rules @cd build/${PROVIDER}/debian && mv app.desktop ${TARGET}.desktop && mv app.install ${TARGET}.install && rm -f app.install-template && \ rm -rf source/include-binaries-template endif gen_pkg_snap: ifeq (${PLATFORM}, linux) @cp -r ${TEMPLATES}/snap build/${PROVIDER} @VERSION=${VERSION} VENDOR_PATH=${VENDOR_PATH} ${SCRIPTS}/generate-snap build/${PROVIDER}/snap/data.json @cp pkg/pickle/helpers/se.leap.bitmask.snap.policy build/${PROVIDER}/snap/local/pre/ @cp pkg/pickle/helpers/bitmask-root build/${PROVIDER}/snap/local/pre/ @cd build/${PROVIDER}/snap && python3 generate.py @rm build/${PROVIDER}/snap/data.json build/${PROVIDER}/snap/snapcraft-template.yaml @mkdir -p build/${PROVIDER}/snap/gui ifeq (${VENDOR_PATH}, providers) @cp ${VENDOR_PATH}/${PROVIDER}/assets/icon.svg build/${PROVIDER}/snap/gui/icon.svg @cp ${VENDOR_PATH}/${PROVIDER}/assets/icon.png build/${PROVIDER}/snap/gui/${PROVIDER}-vpn.png else @cp ${VENDOR_PATH}/assets/icon.svg build/${PROVIDER}/snap/gui/icon.svg @cp ${VENDOR_PATH}/assets/icon.png build/${PROVIDER}/snap/gui/${PROVIDER}-vpn.png endif @rm build/${PROVIDER}/snap/generate.py endif ######################################################################### # packaging action ######################################################################### run: ./build/qt/release/riseup-vpn builder_image: @${MAKE} -C docker build packages: package_deb package_snap package_osx package_win package_win_release: build dosign installer sign_installer package_win: build installer package_snap_in_docker: @${MAKE} -C docker package_snap package_snap: @-unlink snap @cp build/${PROVIDER}/snap/local/${TARGET}.desktop build/${PROVIDER}/snap/gui/ @ln -s build/${PROVIDER}/snap snap @${MAKE} -C build/${PROVIDER} pkg_snap package_deb: @${MAKE} -C build/${PROVIDER} pkg_deb sign_artifact: @find ${FILE} -type f -not -name "*.asc" -print0 | xargs -0 -n1 -I{} sha256sum -b "{}" | sed 's/*deploy\///' > ${FILE}.sha256 @gpg --clear-sign --armor ${FILE}.sha256 upload_artifact: scp ${FILE} downloads.leap.se:./ scp ${FILE}.sha256.asc downloads.leap.se:./ ######################################################################### # icons & locales ######################################################################### icon: @${MAKE} -C icon LANGS ?= $(foreach path,$(wildcard gui/i18n/main_*.ts),$(patsubst gui/i18n/main_%.ts,%,$(path))) locales: $(foreach lang,$(LANGS),get_$(lang)) generate_locales: @lupdate bitmask.pro get_%: @curl -L -X GET --user "api:${API_TOKEN}" "https://www.transifex.com/api/2/project/bitmask/resource/bitmask-desktop/translation/${subst -,_,$*}/?file" > gui/i18n/main_$*.ts install_dev_linux: @sudo install -m 0755 pkg/pickle/helpers/bitmask-root /usr/bin/bitmask-root uninstall_dev_linux: @sudo rm -rf /usr/bin/bitmask-root riseup-vpn-0.24.5+ds1/README.md000066400000000000000000000076331461742244100156720ustar00rootroot00000000000000## Supported operating systems **BitmaskVPN** needs the following minimum versions of supported operating systems: ### On Windows **BitmaskVPN** has been tested to work on windows 10 and 11 it might not work on earlier version of windows. ### On MacOS - **BitmaskVPN** has been tested to work on last three releases of MacOS (Monteray, Ventura and Sonoma) - **BitmaskVPN** currently needs rossetta to be enable to work on Apple hardware (M1, M2) ### On Linux - **BitmaskVPN** has been tested to work on the latest version of Debian, Ubuntu, Fedora and Arch Linux - Packages are only available for Ubuntu, Debian and Arch Linux ## Install # arch [There's a package in AUR](https://aur.archlinux.org/packages/riseup-vpn-git) that tracks main branch, so expect some instabilities (early birds catch the bugs they say, and we're thankful for that) ``` yaourt -Sy riseup-vpn-git ``` # deb We haven't updated deb.leap.se repo yet 😞 (see #466), but if you *really* desire a debian package you can build your own for the time being: ``` debuild -us -uc sudo dpkg -i ../riseup-vpn*.deb ``` If you're using ubuntu, you can use [kali's ppa](https://launchpad.net/~kalikaneko/+archive/ubuntu/ppa). ## Build Clone this repo, install dependencies and build the application. Dependencies assume debian packages, or homebrew for osx. For Windows OS see corresponding section below. For other systems try manually, or send us a patch. ``` git clone git@0xacab.org:leap/bitmask-vpn.git && cd bitmask-vpn sudo make depends # do not use sudo in osx make build ``` You need at least go 1.20. ## Test You can run some tests too. ``` sudo apt install qml-module-qttest make test make test_ui ``` ## Windows As for now app can be build on Win OS using `Cygwin` terminal. #### Precondition You need to have installed and added to your user PATH (mentioned version tested in Win10): 1) Go (>= go1.20) 2) QT (>= Qt6.6) 3) QtIFW (>= QtIFW-4.0.0) 4) Cygwin64 (>= 2.905 64 bit) 5) Using Cygwin `Package Select` window install `python3` and `make` packages. **Note:** for \#5 you don't need to add packages to PATH they will available in `cygwin` after installation. #### Get Source ``` git clone git@0xacab.org:leap/bitmask-vpn.git && cd bitmask-vpn ``` #### Build Build script uses a symbolic link in one of the stages. Unfortunately Cygwin can't create native symlink from local non admin user due to windows security restriction. To avoid this issue we need to call next target from cygwin terminal as Administrator. This need to be done only once. ```bash make relink_vendor ``` After `relink_vendor` use this to build the app: ```bash make build ``` After successful build application will be available at: `build/qt/release/riseup-vpn.exe` #### Test To run tests: ```bash make test make test_ui ``` Translations ------------ We use [transifex](https://www.transifex.com/otf/bitmask/bitmask-desktop/) to coordinate translations. Any help is welcome! Bugs? Crashes? UI feedback? Any other suggestions or complains? --------------------------------------------------------------- When you are willing to [report an issue](https://0xacab.org/leap/bitmask-vpn/-/issues) please use the search tool first. if you cannot find your issue, please make sure to include the following information: * the platform you're using and the installation method. * the version of the program. You can check the version on the "about" menu. * what you expected to see. * what you got instead. * the logs of the program. The location of the logs depends on the OS: * gnu/linux: `/home//.config/leap/systray.log` * OSX: `/Users//Library/Preferences/leap/systray.log`, `/Applications/RiseupVPN.app/Contents/helper/helper.log` & `/Applications/RiseupVPN.app/Contents/helper/openvpn.log` * windows: `C:\Users\\AppData\Local\leap\systray.log`, `C:\Program Files\RiseupVPN\helper.log` & `C:\Program Files\RiseupVPN\openvp.log` riseup-vpn-0.24.5+ds1/bitmask.pro000066400000000000000000000041131461742244100165550ustar00rootroot00000000000000#TARGET = $$BINARY_NAME QT += quickcontrols2 svg CONFIG += qt staticlib CONFIG += c++17 strict_c++ CONFIG += qtquickcompiler CONFIG+=force_debug_info CONFIG+=debug_and_release #CONFIG+=release windows:CONFIG -= console unix:DEBUG:CONFIG += debug lessThan(QT_MAJOR_VERSION, 5): error("requires Qt 5") QMAKE_MACOSX_DEPLOYMENT_TARGET = 12 QMAKE_TARGET_BUNDLE_PREFIX = se.leap QMAKE_BUNDLE = $$TARGET # The following define makes your compiler emit warnings if you use # any feature of Qt which as been marked deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS !defined(VENDOR_PATH, var):VENDOR_PATH="providers/riseup" message("[qmake] VENDOR_PATH: $$VENDOR_PATH") RESOURCES += gui/gui.qrc RESOURCES += $$VENDOR_PATH/vendor.qrc ICON = $$VENDOR_PATH/icon.png macx { ICON = $$VENDOR_PATH/assets/icon.icns LIBS += -framework Security -framework CoreFoundation } win32 { RC_ICONS = $$VENDOR_PATH/assets/icon.ico } QT += qml widgets quick SOURCES += \ gui/main.cpp \ gui/qjsonmodel.cpp \ gui/handlers.cpp HEADERS += \ gui/handlers.h \ gui/qjsonmodel.h \ lib/libgoshim.h # we build from build/qt LIBS += -L../../lib -lgoshim -lpthread DESTDIR = release OBJECTS_DIR = release/.obj MOC_DIR = release/.moc RCC_DIR = release/.rcc UI_DIR = release/.ui Release:DESTDIR = release Release:OBJECTS_DIR = release/.obj Release:MOC_DIR = release/.moc Release:RCC_DIR = release/.rcc Release:UI_DIR = release/.ui Debug:DESTDIR = debug Debug:OBJECTS_DIR = debug/.obj Debug:MOC_DIR = debug/.moc Debug:RCC_DIR = debug/.rcc Debug:UI_DIR = debug/.ui DISTFILES += \ README.md CONFIG += lrelease embed_translations TRANSLATIONS += $$files(gui/i18n/*.ts, true) RESOURCES += $$files(gui/i18n/*.qm, true) # see https://stackoverflow.com/questions/5960192/qml-qt-openurlexternally#5960581 # Needed for bringing browser from background to foreground using # QDesktopServices: https://bugreports.qt.io/browse/QTBUG-8336 TARGET.CAPABILITY += SwEvent riseup-vpn-0.24.5+ds1/branding/000077500000000000000000000000001461742244100161665ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/motd-cli/000077500000000000000000000000001461742244100176765ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/motd-cli/.gitignore000066400000000000000000000000111461742244100216560ustar00rootroot00000000000000motd-cli riseup-vpn-0.24.5+ds1/branding/motd-cli/README.md000066400000000000000000000034101461742244100211530ustar00rootroot00000000000000MOTD (message of the day) ========================= This is a stub until a more sophisticated motd mechanism can be implemented in the future, with better platform integration. Providers can opt-in to the motd feature (only riseup is using it at the moment). If motd is enabled for a given provider, the client will attempt to fetch the motd.json file from a well-known URL, and will display the first valid message on the splash screen. The structure of the `motd.json` file is like follows: ``` { "motd": [{ "begin": "01 Nov 21 00:00 -0700", "end": "31 Jan 22 00:00 -0700", "type": "daily", "platform": "all", "urgency": "normal", "text": [ { "lang": "en", "str": "This is a test!"}, { "lang": "es", "str": "Esto es una pruebita!"} ]} ] } ``` Valid values are: * Begin, End are date strings, in the format: "01 Jan 21 00:00:00 -0700". * Type: "once" for a one-shot message, "daily" for a message that is displayed daily during the specified duration. * Platform: one of "windows", "osx", "snap", "linux", or "all". * Urgency: either "normal" or "critical". The text message can contain links. You can use the `motd-cli` tool in this folder to parse and validate the json: ``` go build ❯ ./motd-cli file: motd-example.json count: 1 Message 1 ✓ ----------- Type: daily ✓ Platform: all ✓ Urgency: normal ✓ Languages: 2 ✓ ``` Use `motd-cli -url https://example.com/motd.json` to validate a remote file. Notes: I'm considering adding an explicit layer of verification of the motd payload. Please comment on [#554](https://0xacab.org/leap/bitmask-vpn/-/issues/554) if you have an opinion on this. riseup-vpn-0.24.5+ds1/branding/motd-cli/main.go000066400000000000000000000030641461742244100211540ustar00rootroot00000000000000package main import ( "flag" "fmt" "io" "io/ioutil" "net/http" "os" "path/filepath" "0xacab.org/leap/bitmask-vpn/pkg/motd" ) const OK = "✓" const WRONG = "☓" func main() { file := flag.String("file", "", "file to validate") url := flag.String("url", "", "url to validate") flag.Parse() f := *file u := *url var m motd.Messages var err error if u != "" { fmt.Println("url:", u) f = downloadToTempFile(u) } else { if f == "" { f = filepath.Join("../../pkg/motd/", motd.ExampleFile) } fmt.Println("file:", f) } m, err = motd.ParseFile(f) if err != nil { panic(err) } fmt.Printf("count: %v\n", m.Length()) fmt.Println() for i, msg := range m.Messages { fmt.Printf("Message %d %v\n-----------\n", i+1, mark(msg.IsValid())) fmt.Printf("Type: %s %v\n", msg.Type, mark(msg.IsValidType())) fmt.Printf("Platform: %s %v\n", msg.Platform, mark(msg.IsValidPlatform())) fmt.Printf("Urgency: %s %v\n", msg.Urgency, mark(msg.IsValidUrgency())) fmt.Printf("Languages: %d %v\n", len(msg.Text), mark(msg.HasLocalizedText())) for _, t := range msg.Text { fmt.Printf(t.Str) } if !msg.IsValid() { os.Exit(1) } } } func downloadToTempFile(url string) string { resp, err := http.Get(url) if err != nil { panic(err) } defer resp.Body.Close() out, err := ioutil.TempFile("/tmp/", "motd-linter") if err != nil { panic(err) } defer out.Close() _, _ = io.Copy(out, resp.Body) fmt.Println("File downloaded to", out.Name()) return out.Name() } func mark(val bool) string { if val { return OK } else { return WRONG } } riseup-vpn-0.24.5+ds1/branding/motd-cli/motd.json000066400000000000000000000015141461742244100215350ustar00rootroot00000000000000{ "motd": [{ "begin": "01 Nov 21 00:00 -0700", "end": "31 Jan 22 00:00 -0700", "type": "daily", "platform": "all", "urgency": "normal", "text": [ { "lang": "en", "str": "%20___________%0A%3C%20RiseupVPN%20%3E%0A%20-----------%0A%20%20%20%20%20%20%20%20%5C%20%20%20%5E__%5E%0A%20%20%20%20%20%20%20%20%20%5C%20%20%28oo%29%5C_______%0A%20%20%20%20%20%20%20%20%20%20%20%20%28__%29%5C%20%20%20%20%20%20%20%29%5C%2F%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C----w%20%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20%20%20%20%20%7C%7C"}, { "lang": "es", "str": "¡Gracias por usar RiseupVPN! Por favor reportanos cualquier bug o petición."} ]} ] } riseup-vpn-0.24.5+ds1/branding/scripts/000077500000000000000000000000001461742244100176555ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/scripts/ASSETS_REQUIRED000066400000000000000000000000341461742244100220770ustar00rootroot00000000000000icon.svg icon.ico icon.icns riseup-vpn-0.24.5+ds1/branding/scripts/TODO000066400000000000000000000000661461742244100203470ustar00rootroot00000000000000-[ ] sanity check scrit -[ ] assets convertion script riseup-vpn-0.24.5+ds1/branding/scripts/__init__.py000066400000000000000000000000001461742244100217540ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/scripts/build-all-providers000077500000000000000000000004431461742244100234640ustar00rootroot00000000000000#!/bin/bash # run the build process for all the providers passed # on a environment variable : "${PROVIDERS:=riseup}" set -e export XBUILD=yes for _provider in $PROVIDERS; do export PROVIDER=$_provider; make prepare #make build #make packages make package_snap done riseup-vpn-0.24.5+ds1/branding/scripts/check000077500000000000000000000035611461742244100206650ustar00rootroot00000000000000#!/usr/bin/env python3 import os import sys # TODO check file list # TODO remove fom README VENDOR_PATH = None def getVendorPath(): global VENDOR_PATH VENDOR_PATH = os.environ.get("VENDOR_PATH") if not VENDOR_PATH: print("[ERROR] VENDOR_PATH not set") sys.exit(1) if not os.path.isdir(os.path.abspath(VENDOR_PATH)): print("[ERROR] VENDOR_PATH folder does not exist:", VENDOR_PATH) sys.exit(1) def checkCAFile(provider): caFile = os.path.join(os.path.abspath(VENDOR_PATH), provider, provider + '-ca.crt') if not os.path.isfile(caFile): print("ERROR: Missing provider CA file:", caFile) sys.exit(1) print('[+] CA file ok:', caFile) def checkAssets(provider): top = os.path.join(os.path.abspath(VENDOR_PATH), 'assets') if os.path.isdir(top): ok = checkAssetFiles(top) if ok: return under = os.path.join(os.path.abspath(VENDOR_PATH), provider, 'assets') if os.path.isdir(under): ok = checkAssetFiles(under) if ok: return print('[!] ERROR: cannot find some assets for provider {provider}'.format(provider=provider)) sys.exit(1) def checkAssetFiles(path): for item in allAssets(): asset = os.path.join(path, item) if not os.path.isfile(asset): print("[!] Error: missing asset file:", asset) return False return True def allAssets(): with open(os.path.join(os.path.dirname(os.path.abspath(__file__)), "ASSETS_REQUIRED")) as f: allAssets = f.readlines() return list(map(lambda s: s.strip(), allAssets)) if __name__ == "__main__": print("[+] Checking your provider config...") provider = sys.argv[1] if not provider: print("ERROR: must pass provider as first argument") sys.exit(1) getVendorPath() checkCAFile(provider) checkAssets(provider) riseup-vpn-0.24.5+ds1/branding/scripts/check-ca-crt000077500000000000000000000037011461742244100220300ustar00rootroot00000000000000#!/usr/bin/env python3 import os import re import sys import configparser import urllib.request SCRIPT_NAME = 'check-ca-crt' VENDOR_PATH = None USAGE = '''Check that the stored provider CA matches the one announced online. Usage: {name} Example: {name} riseup'''.format(name=SCRIPT_NAME) def getLocalCert(provider): with open(os.path.join(VENDOR_PATH, provider, '{provider}-ca.crt'.format(provider=sanitize(provider).lower()))) as crt: return crt.read().strip() def getRemoteCert(uri): print("... checking cert from", uri) fp = urllib.request.urlopen(uri) remote_cert = fp.read().decode('utf-8').strip() fp.close() return remote_cert def getUriForProvider(provider, configfile): c = configparser.ConfigParser() c.read(configfile) return c[provider]['caURL'] def sanitize(s): return re.sub(r'[^\w\s-]', '', s).strip() if __name__ == '__main__': VENDOR_PATH = os.environ.get('VENDOR_PATH') if not VENDOR_PATH: print('[!] ERROR: Please set VENDOR_PATH variable first') sys.exit(1) if not os.path.isdir(os.path.abspath(VENDOR_PATH)): print('[!] ERROR: VENDOR_PATH points to non-existent dir') sys.exit(1) if len(sys.argv) != 2: print('[!] Not enough arguments') print(USAGE) sys.exit(1) provider = sys.argv[1] config = os.path.abspath(os.path.join(VENDOR_PATH, 'vendor.conf')) if not os.path.isfile(config): print('[!] ERROR: cannot open {config}') sys.exit(1) try: uri = getUriForProvider(provider, config) except IndexError: print('[!] Misconfigured provider') sys.exit(1) local = getLocalCert(provider) remote = getRemoteCert(uri) try: assert local == remote except AssertionError: print('[!] ERROR: remote and local CA certs do not match') sys.exit(1) else: print('OK: local CA matches what provider announces') riseup-vpn-0.24.5+ds1/branding/scripts/gen-providers-json000077500000000000000000000034371461742244100233450ustar00rootroot00000000000000#!/usr/bin/env python3 import configparser import json import os import sys from provider import getDefaultProviders from provider import getProviderData OUTFILE = 'providers.json' SCRIPT_NAME = 'gen-providers-json' def generateProvidersJSON(configPath, outputJSONPath): print("output:", outputJSONPath) config = configparser.ConfigParser() config.read(configPath) # TODO as a first step, we just get the defaultProvider. # For multi-provider, just add more providers to the dict providers = {} defaultProviders = getDefaultProviders(config) providers['default'] = defaultProviders[0] providers['providers'] = [] for p in defaultProviders: providerData = getProviderData(p, config) addCaData(providerData, configPath) providers['providers'].append(providerData) with open(outputJSONPath, 'w', encoding='utf-8') as f: json.dump(providers, f, ensure_ascii=False, indent=4) def addCaData(data, configfile): provider = data.get('name').lower() folder, f = os.path.split(configfile) caFile = os.path.join(folder, provider, provider + '-ca.crt') if not os.path.isfile(caFile): bail('[!] Cannot find CA file in {path}'.format(path=caFile)) with open(caFile) as ca: data['caCertString'] = ca.read().strip() def bail(msg=None): if not msg: print("ERROR: not enough arguments!") print('Usage: {scriptname}.py '.format( scriptname=SCRIPT_NAME)) else: print(msg) sys.exit(1) if __name__ == "__main__": print("[+] Generating providers.json...") if len(sys.argv) != 2: bail() VENDOR_PATH = os.environ.get('VENDOR_PATH') conf = os.path.join(VENDOR_PATH, 'vendor.conf') output = sys.argv[1] generateProvidersJSON(conf, output) riseup-vpn-0.24.5+ds1/branding/scripts/gen-qtinstaller000077500000000000000000000075241461742244100227240ustar00rootroot00000000000000#!/usr/bin/env python3 import configparser import json import os import sys import time from string import Template from provider import getDefaultProviders from provider import getProviderData OS_CONFIG = { 'osx': """ /Applications/$APPNAME $APPNAME.app open Start $APPNAME now! @TargetDir@/$APPNAME.app mac """, 'windows': """ c:/Program Files (x86)/$APPNAME $APPNAME @TargetDir@/$BINNAME.exe Modern """ } def getData(): config = configparser.ConfigParser() configPath = os.path.join(VENDOR_PATH, 'vendor.conf') config.read(configPath) provider = os.environ.get('PROVIDER') if not provider: provider = getDefaultProviders(config)[0] return getProviderData(provider, config) def generateQtInstallerBoilerplate(data, platform, outDir): generateConfig(data, platform, outDir) generatePackageMetadata(data, platform, outDir) def generateConfig(data, platform, outDir): templateData = { 'APPNAME': data['applicationName'], 'BINNAME': data['binaryName'], 'VERSION': getVersion(), 'TIMESTAMP': time.strftime('%Y-%m-%d'), } platformStr = OS_CONFIG[platform] platBlock = Template(platformStr).substitute(**templateData) templateData['PLATFORM_BLOCK'] = platBlock renderTemplate( templatePath='../templates/qtinstaller/config/config.xml', outPath=os.path.join(outDir, 'config/config.xml'), data=templateData) def generatePackageMetadata(data, platform, outDir): appname = 'applicationName' templateData = { 'APPNAME': data[appname], 'BINNAME': data['binaryName'], 'VERSION': getVersion(), 'TIMESTAMP': time.strftime('%Y-%m-%d') } if platform == "windows": p = data[appname] + " for Windows" elif platform == "osx": p = data[appname] + " for OSX" elif platform == "linux": p = data[appname] + " for GNU/Linux" else: p = data[appname] templateData['APPNAME_PLATFORM'] = p renderTemplate( templatePath='../templates/qtinstaller/packages/bitmaskvpn/meta/package.xml', outPath=os.path.join(outDir, 'packages/bitmaskvpn/meta/package.xml'), data=templateData) renderTemplate( templatePath='../templates/qtinstaller/packages/bitmaskvpn/meta/install.js', outPath=os.path.join(outDir, 'packages/bitmaskvpn/meta/install.js'), data=templateData) def renderTemplate(templatePath=None, outPath=None, data=None): with open(os.path.join(here(), templatePath), 'r') as f: t = f.read() rendered = Template(t).substitute(**data) os.makedirs(os.path.dirname(outPath), exist_ok=True) with open(outPath, 'w') as out: out.write(rendered) def here(): return os.path.abspath(os.path.dirname(__file__)) def bail(msg=None): if not msg: print("ERROR: not enough arguments!") print('Usage: {scriptname}.py '.format( scriptname=SCRIPT_NAME)) else: print(msg) sys.exit(1) def getVersion(): return os.environ.get('VERSION', 'unknown') if __name__ == "__main__": VENDOR_PATH = os.environ.get('VENDOR_PATH') if len(sys.argv) != 3: bail() platform = sys.argv[1] outDir = sys.argv[2] print("[+] Generating qtinstaller files...") data = getData() generateQtInstallerBoilerplate(data, platform, outDir) riseup-vpn-0.24.5+ds1/branding/scripts/generate-debian000077500000000000000000000015001461742244100226110ustar00rootroot00000000000000#!/usr/bin/env python3 import json import os import sys import configparser from provider import getDefaultProviders from provider import getProviderData VERSION = os.environ.get('VERSION', 'unknown') SCRIPT = 'generate-debian.py' def writeOutput(data, outfile): with open(outfile, 'w') as outf: outf.write(json.dumps(data)) if __name__ == "__main__": VENDOR_PATH = os.environ.get('VENDOR_PATH') configFile = os.path.join(VENDOR_PATH, 'vendor.conf') config = configparser.ConfigParser() config.read(configFile) provider = getDefaultProviders(config)[0] data = getProviderData(provider, config) if len(sys.argv) != 2: print('Usage: {} '.format(SCRIPT)) sys.exit(1) outputf = sys.argv[1] data['version'] = VERSION writeOutput(data, outputf) riseup-vpn-0.24.5+ds1/branding/scripts/generate-snap000077500000000000000000000014771461742244100223450ustar00rootroot00000000000000#!/usr/bin/env python3 import json import os import sys import configparser from provider import getDefaultProviders from provider import getProviderData VERSION = os.environ.get('VERSION', 'unknown') SCRIPT = 'generate-snap.py' def writeOutput(data, outfile): with open(outfile, 'w') as outf: outf.write(json.dumps(data)) if __name__ == "__main__": VENDOR_PATH = os.environ.get('VENDOR_PATH') configFile = os.path.join(VENDOR_PATH, 'vendor.conf') config = configparser.ConfigParser() config.read(configFile) provider = getDefaultProviders(config)[0] data = getProviderData(provider, config) if len(sys.argv) != 2: print('Usage: {} '.format(SCRIPT)) sys.exit(1) outputf = sys.argv[1] data['version'] = VERSION writeOutput(data, outputf) riseup-vpn-0.24.5+ds1/branding/scripts/generate-vendor-make000077500000000000000000000023301461742244100236010ustar00rootroot00000000000000#!/usr/bin/env python3 # Generates a simplified file with variables that # can be imported from the main vendorized Makefile. import os import sys import configparser from provider import getDefaultProviders from provider import getProviderData VERSION = os.environ.get('VERSION', 'unknown') TEMPLATE = """ # Variables for the build of {applicationName}. # Generated automatically. Do not edit. APPNAME := {applicationName} BINNAME := {binaryName} VERSION := {version} """ def writeOutput(data, outfile): configString = TEMPLATE.format( binaryName=data['binaryName'], applicationName=data['applicationName'], version=data['version'], ) with open(outfile, 'w') as outf: outf.write(configString) if __name__ == "__main__": VENDOR_PATH = os.environ.get('VENDOR_PATH') configFile = os.path.join(VENDOR_PATH, 'vendor.conf') config = configparser.ConfigParser() config.read(configFile) provider = getDefaultProviders(config)[0] data = getProviderData(provider, config) if len(sys.argv) != 2: print('Usage: generate-vendor-make ') sys.exit(1) outputf = sys.argv[1] data['version'] = VERSION writeOutput(data, outputf) riseup-vpn-0.24.5+ds1/branding/scripts/getparam000077500000000000000000000020311461742244100213770ustar00rootroot00000000000000#!/usr/bin/env python3 # A short utility to get appname in compilation time. # This is a convenience to build helpers while we move the branding mechanism to a separate repo. import configparser import os import sys from provider import getDefaultProviders from provider import getProviderData def getData(): here = os.path.abspath(os.path.dirname(__file__)) vendorPath = os.environ.get('VENDOR_PATH') configPath = os.path.join(vendorPath, 'vendor.conf') if not os.path.isfile(configPath): print("ERROR: path does not exist", configPath) sys.exit(1) config = configparser.ConfigParser() config.read(configPath) defaultProvider = getDefaultProviders(config)[0] return getProviderData(defaultProvider, config) if __name__ == "__main__": param = sys.argv[1] if param == "appname": field = "applicationName" elif param == "binname": field = "binaryName" else: print("ERROR: unknown param") sys.exit(1) data = getData() print(data[field]) riseup-vpn-0.24.5+ds1/branding/scripts/init000077500000000000000000000103631461742244100205510ustar00rootroot00000000000000#!/usr/bin/env python3 # (c) LEAP Encryption Access Project 2020 # License: GPL import string import subprocess import sys import os VENDOR_PATH = None PROVIDER=None SCRIPT_NAME = sys.argv[0] CA_README = "CERT.Readme" ASSETS_README = "assets/FILES.Readme" VENDOR_QRC = "vendor.qrc" def initVendor(): global VENDOR_PATH if not VENDOR_PATH: bail("ERROR: Please set VENDOR_PATH environment variable.") VENDOR_PATH = os.path.abspath(VENDOR_PATH) if os.path.isdir(VENDOR_PATH): bail("ERROR: VENDOR_PATH folder already exists {path}".format(path=VENDOR_PATH)) for d in ["assets"]: os.makedirs(os.path.join(VENDOR_PATH, d)) initVendorConfig() initGitRepo() displayRepoInfo() def displayRepoInfo(): print() print("[+] Initialized repo in", VENDOR_PATH) print() print(f"- Please add all the needed assets. See {VENDOR_PATH}/{ASSETS_README}.") print(f"- Add your provider's CA certificate, see see {VENDOR_PATH}/{PROVIDER}/{CA_README}.") print("- Remember to commit your changes.") print() print("[+] After doing that, you can run 'make vendor_check' to validate the configuration for your provider.") def bail(msg=None): if not msg: print("ERROR: no arguments supported!") print('Usage: {scriptname}'.format( scriptname=SCRIPT_NAME)) else: print(msg) sys.exit(1) def getVendorPath(): return os.environ.get('VENDOR_PATH') def sanitize(word): result = "" for letter in word: if letter in string.ascii_letters: result = result + letter.lower() return result def getProvider(): provider = os.environ.get('PROVIDER') if not provider: provider = input('> provider name? ') provider = sanitize(provider) print("[+] provider name:", provider) return provider def getProviderURL(): url = os.environ.get('PROVIDER_URL') if not url : url = input('> provider url?: https://') return url.replace('https://', '').replace('/', '') def getAppName(provider): return provider[0].capitalize() + provider[1:] + "VPN" def initVendorConfig(): with open(os.path.join(VENDOR_PATH, "vendor.conf"), "w") as f: f.write(getConf()) caDir = os.path.join(VENDOR_PATH, PROVIDER) os.makedirs(caDir, exist_ok=True) with open(os.path.join(caDir, CA_README), "w") as f: f.write(getCAInfo()) with open(os.path.join(os.path.dirname(os.path.abspath(__file__)), "ASSETS_REQUIRED")) as f: allAssets = f.read() with open(os.path.join(VENDOR_PATH, ASSETS_README), "w") as f: f.write(ASSETS_INFO) f.write(allAssets) with open(os.path.join(os.path.dirname(os.path.abspath(__file__)), "../templates/vendor/vendor.qrc")) as f: qrc = f.read() with open(os.path.join(VENDOR_PATH, VENDOR_QRC), "w") as f: f.write(qrc) def initGitRepo(): out = subprocess.run(['git', 'init'], cwd=VENDOR_PATH) if out.returncode != 0: print(f'ERROR: cannot initialize git repo in {VENDOR_PATH}') CONF_TEMPLATE = """[default] provider = {provider} [{provider}] name = {provider} applicationName = {appName} binaryName = {provider}-vpn providerURL = https://{providerURL} auth = anon apiURL = https://api.{providerURL}/ apiVersion = 3 caURL = https://{providerURL}/ca.crt infoURL = https://{providerURL}/vpn tosURL = https://{providerURL}/tos helpURL = https://{providerURL}/support geolocationAPI = https://{providerURL}:9001/json askForDonations = false donateURL = https://{providerURL}/vpn/donate """ def getConf(): return CONF_TEMPLATE.format( provider=PROVIDER, appName=getAppName(PROVIDER), providerURL=PROVIDER_URL) CA_INFO = """Place in this folder your provider's CA certificate, with the name: {provider}-ca.crt """ def getCAInfo(): return CA_INFO.format(provider=PROVIDER) ASSETS_INFO = """This is the list of assets that you MUST place in this folder for your provider: """ if __name__ == "__main__": if len(sys.argv) != 1: bail() VENDOR_PATH = getVendorPath() PROVIDER = getProvider() PROVIDER_URL = getProviderURL() initVendor() riseup-vpn-0.24.5+ds1/branding/scripts/osx-staple-status.py000077500000000000000000000002301461742244100236450ustar00rootroot00000000000000#!/usr/bin/env python3 import sys arg = sys.argv[1] line = [x for x in arg.split('\n') if x.startswith('Status:')] print(line[0].split('Status: ')[-1]) riseup-vpn-0.24.5+ds1/branding/scripts/osx-staple-uuid.py000077500000000000000000000002201461742244100232670ustar00rootroot00000000000000#!/usr/bin/env python3 import sys arg = sys.argv[1] line = [x for x in arg.split('\n') if x.startswith('Status:')] print(line[0].split('=')[1]) riseup-vpn-0.24.5+ds1/branding/scripts/osx-stapler.sh000077500000000000000000000022711461742244100224770ustar00rootroot00000000000000#!/bin/bash # Notes to script notarization steps. # To be called from the root folder. # Taken from https://oozou.com/blog/scripting-notarization-for-macos-app-distribution-38 # TODO: put pass in keychain # --password "@keychain:notarization-password" USER=info@leap.se requestInfo=$(xcrun altool --notarize-app \ -t osx -f build/installer/${APPNAME}-installer-${VERSION}.zip \ --primary-bundle-id="se.leap.bitmask.${TARGET}" \ -u ${USER} \ -p ${OSXAPPPASS}) uuid=$(python3 branding/scripts/osx-staple-uuid.py $requestInfo) current_status="in progress" while [[ "$currentStatus" == "in progress" ]]; do sleep 15 statusResponse=$(xcrun altool --notarization-info "$uuid" \ --username ${USER} \ --password ${OSXAPPPASS}) current_status=$(python3 branding/scripts/osx-staple-status.py $statusResponse) done if [[ "$current_status" == "success" ]]; then # staple notarization here xcrun stapler staple build/installer/${APPNAME}-installer-${VERSION}.app create-dmg deploy/${APPNAME}-${VERSION}.dmg build/installer/${APPNAME}-installer-${VERSION}.app else echo "Error! The status was $current_status. There were errors. Please check the LogFileURL for error descriptions" exit 1 fi riseup-vpn-0.24.5+ds1/branding/scripts/provider.py000066400000000000000000000023551461742244100220660ustar00rootroot00000000000000import datetime import os def getDefaultProviders(config): # returns a list of providers provider = os.environ.get('PROVIDER') if provider: print('[+] Got provider {} from environment'.format(provider)) else: print('[+] Using default provider from config file') provider = config['default']['provider'] return provider.split(',') def getProviderData(provider, config): print("[+] Configured provider:", provider) try: c = config[provider] except Exception: raise ValueError('Cannot find provider') d = dict() keys = ('name', 'applicationName', 'binaryName', 'auth', 'authEmptyPass', 'providerURL', 'tosURL', 'helpURL', 'askForDonations', 'donateURL', 'apiURL', 'apiVersion', 'geolocationAPI', 'caCertString') boolValues = ['askForDonations', 'authEmptyPass'] intValues = ['apiVersion', ] for value in keys: if value not in c: continue d[value] = c.get(value) if value in boolValues: d[value] = bool(d[value]) elif value in intValues: d[value] = int(d[value]) d['timeStamp'] = '{:%Y-%m-%d %H:%M:%S}'.format( datetime.datetime.now()) return d riseup-vpn-0.24.5+ds1/branding/templates/000077500000000000000000000000001461742244100201645ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/templates/debian/000077500000000000000000000000001461742244100214065ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/templates/debian/app.desktop-template000066400000000000000000000005251461742244100253740ustar00rootroot00000000000000[Desktop Entry] Version=1.0 Type=Application Name=${applicationName} Comment=Easy VPN by ${name} Comment[es]=VPN Facil de ${name} Comment[de]=Easy VPN by ${name} Exec=${binaryName} %U Terminal=false Icon=${binaryName} Categories=Network;Application; StartupNotify=true X-AppInstall-Package=${binaryName} Keywords=encryption;vpn;${name};leap riseup-vpn-0.24.5+ds1/branding/templates/debian/app.install-template000066400000000000000000000002011461742244100253600ustar00rootroot00000000000000debian/${binaryName}.desktop usr/share/applications debian/icons/scalable/${binaryName}.png usr/share/icons/hicolor/256x256/apps riseup-vpn-0.24.5+ds1/branding/templates/debian/changelog-template000066400000000000000000000002411461742244100250660ustar00rootroot00000000000000${binaryName} (${version}) unstable; urgency=medium * Initial package. -- LEAP Encryption Access Project Mon, 29 Jul 2019 10:00:00 +0100 riseup-vpn-0.24.5+ds1/branding/templates/debian/control-template000066400000000000000000000026161461742244100246270ustar00rootroot00000000000000Source: ${binaryName} Section: net Priority: optional Maintainer: LEAP Encryption Access Project Build-Depends: debhelper-compat (= 12), golang (>= 1.19), make (>=3.80), pkg-config, g++ (>= 4:4.6.3), git, libqt6svg6-dev, qt6-tools-dev, qt6-tools-dev-tools, qt6-base-dev, libqt6qml6, qt6-declarative-dev, dh-golang, libgl-dev, qt6-5compat-dev, qt6-declarative-dev-tools, qt6-l10n-tools Standards-Version: 4.4.1 Homepage: https://0xacab.org/leap/bitmask-vpn Package: ${binaryName} Architecture: any Multi-Arch: foreign Enhances: openvpn Depends: ${misc:Depends}, ${shlibs:Depends}, libqt6core6, libqt6gui6, libqt6qml6, libqt6widgets6, libstdc++6, libqt6svg6, qml6-module-qtquick, qml6-module-qtquick-controls, qml6-module-qtquick-dialogs, qml6-module-qtquick-layouts, qml6-module-qtqml-workerscript, qml6-module-qtquick-templates, qml6-module-qt-labs-settings, qml6-module-qtquick-window, qml6-module-qt-labs-platform, qml6-module-qtcore, qml6-module-qt5compat-graphicaleffects, openvpn, policykit-1-gnome | polkit-1-auth-agent, python3 Description: Easy, fast, and secure VPN service from ${name}. This package is a custom build of the new Bitmask VPN client, preconfigured to use the ${providerURL} provider. . The service does not require a user account, keep logs, or track you in any way. The service is paid for entirely by donations from users. riseup-vpn-0.24.5+ds1/branding/templates/debian/copyright000066400000000000000000000023711461742244100233440ustar00rootroot00000000000000Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: auth-pam Source: Files: * Copyright: 2018 LEAP Encryption Access Project License: GPL Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: . The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. . THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. riseup-vpn-0.24.5+ds1/branding/templates/debian/generate.py000077500000000000000000000013171461742244100235570ustar00rootroot00000000000000#!/usr/bin/env python3 """ generate.py Generate a snap package for a given provider. """ import json import os from string import Template TEMPLATES = ('app.install', 'app.desktop', 'changelog', 'control', 'rules', 'source/include-binaries') here = os.path.split(os.path.realpath(__file__))[0] data = json.load(open(os.path.join(here, 'data.json'))) def write_from_template(target): template = Template(open(target + '-template').read()) with open(target, 'w') as output: output.write(template.safe_substitute(data)) for target in TEMPLATES: write_from_template(target) print("[+] Debian files written to {path}".format( path=os.path.abspath(here))) riseup-vpn-0.24.5+ds1/branding/templates/debian/patches/000077500000000000000000000000001461742244100230355ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/templates/debian/patches/series000066400000000000000000000000501461742244100242450ustar00rootroot00000000000000use-qt5compat-to-build-with-qt6.2.patch riseup-vpn-0.24.5+ds1/branding/templates/debian/patches/use-qt5compat-to-build-with-qt6.2.patch000066400000000000000000000106771461742244100321360ustar00rootroot00000000000000Description: Patch to build on ubuntu 22.04 where only Qt6.2 is available and need to use the Qt5Compat library for some features Author: LEAP --- a/bitmask.pro +++ b/bitmask.pro @@ -1,8 +1,8 @@ #TARGET = $$BINARY_NAME QT += quickcontrols2 svg -CONFIG += qt staticlib CONFIG += c++17 strict_c++ +CONFIG += qt staticlib core5compat CONFIG += qtquickcompiler CONFIG+=force_debug_info CONFIG+=debug_and_release --- a/gui/components/ErrorBox.qml +++ b/gui/components/ErrorBox.qml @@ -1,6 +1,6 @@ import QtQuick import QtQuick.Controls -import QtQuick.Effects +import Qt5Compat.GraphicalEffects import "../themes/themes.js" as Theme Item { --- a/gui/components/Footer.qml +++ b/gui/components/Footer.qml @@ -2,7 +2,7 @@ import QtQuick.Controls import QtQuick.Controls.Material import QtQuick.Layouts -import QtQuick.Effects +import Qt5Compat.GraphicalEffects import "../themes/themes.js" as Theme @@ -40,7 +40,7 @@ } Image { - id: lightning + id: lightning smooth: true visible: ctx != undefined & root.selectedGateway == "auto" width: 16 @@ -52,11 +52,10 @@ verticalCenterOffset: -6 } } - MultiEffect { + ColorOverlay{ anchors.fill: lightning source: lightning - colorizationColor: getLocationColor() - colorization: 1.0 + color: getLocationColor() antialiasing: true } @@ -115,11 +114,10 @@ rightMargin: 20 } } - MultiEffect { + ColorOverlay{ anchors.fill: gwQuality source: gwQuality - colorizationColor: getSignalColor() - colorization: 1.0 + color: getSignalColor() antialiasing: false } } --- a/gui/components/Home.qml +++ b/gui/components/Home.qml @@ -1,6 +1,6 @@ import QtQuick import QtQuick.Controls -import QtQuick.Effects +import Qt5Compat.GraphicalEffects Page { StatusBox { --- a/gui/components/InitErrors.qml +++ b/gui/components/InitErrors.qml @@ -1,6 +1,6 @@ import QtQuick import QtQuick.Controls -import QtQuick.Effects +import Qt5Compat.GraphicalEffects ErrorBox { --- a/gui/components/Locations.qml +++ b/gui/components/Locations.qml @@ -1,7 +1,7 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts -import QtQuick.Effects +import Qt5Compat.GraphicalEffects import "../themes/themes.js" as Theme @@ -81,11 +81,10 @@ //verticalCenterOffset: 3 } } - MultiEffect { + ColorOverlay{ anchors.fill: lightning source: lightning - colorizationColor: "black" - colorization: 1.0 + color: "black" antialiasing: true } } --- a/gui/components/MotdBox.qml +++ b/gui/components/MotdBox.qml @@ -1,6 +1,6 @@ import QtQuick import QtQuick.Controls -import QtQuick.Effects +import Qt5Compat.GraphicalEffects import "../themes/themes.js" as Theme Item { --- a/gui/components/Preferences.qml +++ b/gui/components/Preferences.qml @@ -2,8 +2,8 @@ import QtQuick.Controls import QtQuick.Layouts import QtQuick.Controls.Material -import QtQuick.Effects -import QtCore +import Qt5Compat.GraphicalEffects +import Qt.labs.settings import "../themes/themes.js" as Theme --- a/gui/components/SignalIcon.qml +++ b/gui/components/SignalIcon.qml @@ -1,7 +1,7 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts -import QtQuick.Effects +import Qt5Compat.GraphicalEffects import "../themes/themes.js" as Theme @@ -41,11 +41,10 @@ ] } } - MultiEffect { + ColorOverlay{ anchors.fill: icon source: icon - colorizationColor: getQualityColor() - colorization: 1.0 + color: getQualityColor() antialiasing: true } --- a/gui/components/Splash.qml +++ b/gui/components/Splash.qml @@ -1,6 +1,6 @@ import QtQuick import QtQuick.Controls -import QtQuick.Effects +import Qt5Compat.GraphicalEffects import "../themes/themes.js" as Theme Page { --- a/gui/components/StatusBox.qml +++ b/gui/components/StatusBox.qml @@ -1,6 +1,6 @@ import QtQuick import QtQuick.Controls -import QtQuick.Effects +import Qt5Compat.GraphicalEffects import QtQuick.Layouts import QtQuick.Templates as T riseup-vpn-0.24.5+ds1/branding/templates/debian/rules-template000077500000000000000000000030141461742244100242750ustar00rootroot00000000000000#!/usr/bin/make -f # -*- makefile -*- # This has to be exported to make some magic below work. export DH_OPTIONS export GO111MODULE=on export GOCACHE=/tmp/gocache export DH_GOPKG = 0xacab.org/leap/bitmask-vpn export DH_GOLANG_EXCLUDES := vendor packages tools cmd/bitmask-helper cmd/bitmask-connect export PATH := $(shell qmake6 -query "QT_INSTALL_BINS"):$(PATH) export PROVIDER=${name} export VENDOR_PATH=providers #dh_golang doesn't do this for you ifeq ($(DEB_HOST_ARCH), i386) export GOARCH := 386 else ifeq ($(DEB_HOST_ARCH), amd64) export GOARCH := amd64 else ifeq ($(DEB_HOST_ARCH), armhf) export GOARCH := arm else ifeq ($(DEB_HOST_ARCH), arm64) export GOARCH := arm64 endif # TODO get the static version that gen_pkg generated instead?? VERSION = debian-$(shell git describe --tags --always) APPNAME = ${binaryName} %: dh $@ --with golang --buildsystem golang override_dh_auto_test: override_dh_auto_build: make gen_providers_json make build override_dh_install: mkdir -p $(CURDIR)/debian/${APPNAME}/usr/bin mkdir -p $(CURDIR)/debian/${APPNAME}/usr/sbin cp $(CURDIR)/pkg/pickle/helpers/bitmask-root $(CURDIR)/debian/${APPNAME}/usr/sbin/ mkdir -p $(CURDIR)/debian/${APPNAME}/usr/share/polkit-1/actions cp $(CURDIR)/helpers/se.leap.bitmask.policy $(CURDIR)/debian/${APPNAME}/usr/share/polkit-1/actions cp build/qt/release/${APPNAME} $(CURDIR)/debian/${APPNAME}/usr/bin/${APPNAME} strip $(CURDIR)/debian/${APPNAME}/usr/bin/${APPNAME} dh_install override_dh_dwz: echo "skipping dh_dwz" riseup-vpn-0.24.5+ds1/branding/templates/debian/source/000077500000000000000000000000001461742244100227065ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/templates/debian/source/format000066400000000000000000000000141461742244100241140ustar00rootroot000000000000003.0 (quilt) riseup-vpn-0.24.5+ds1/branding/templates/debian/source/include-binaries-template000066400000000000000000000000501461742244100276520ustar00rootroot00000000000000debian/icons/scalable/${binaryName}.png riseup-vpn-0.24.5+ds1/branding/templates/makefile/000077500000000000000000000000001461742244100217415ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/templates/makefile/Makefile000077500000000000000000000126461461742244100234150ustar00rootroot00000000000000######################################### # (c) LEAP Encryption Access Project 2018 include vendor.mk ######################################### # # TODO review some of these targets, can go in the parent makefile # SYSTRAY := 0xacab.org/leap/bitmask-vpn STAGING := staging SYSTRAY_BIN := bitmask-vpn HELPER_BIN := bitmask_helper BUILD_RELEASE?=no WIN_CERT_PATH?=z:\leap\LEAP.pfx WIN_CERT_PASS?= OSX_CERT = "Developer ID Installer: LEAP Encryption Access Project" DEB_VERSION = $(shell echo ${VERSION} | rev | cut -d '-' -f2- | rev) ifeq ($(OS),Windows_NT) # is Windows_NT on XP, 2000, 7, Vista, 10... SYSTEM = Windows else SYSTEM = $(shell uname -s) endif # ----------------------------------------------------------------------------- # Windows # ----------------------------------------------------------------------------- ifeq ($(SYSTEM), Windows) pkg_win: staging\openvpn\openvpn.exe echo "[+] building windows" copy ..\bin\bitmask-vpn staging\bitmask-vpn.exe copy ..\bin\bitmask-helper staging\bitmask_helper.exe "C:\Program Files (x86)\NSIS\makensis.exe" windows/$(APPNAME)-installer.nsi else pkg_win_stage_1: staging/openvpn/openvpn.exe echo "[+] building windows [stage1]" cp ../bin/windows/bitmask-vpn staging/bitmask-vpn.exe cp ../bin/windows/bitmask-helper-go staging/helper.exe touch windows/uninstall.exe makensis -DUNINSTALLER windows/$(APPNAME)-installer.nsi mv dist/produce-bitmask-uninstaller.exe ../../deploy/ pkg_win_stage_2: staging/openvpn/openvpn.exe echo "[+] building windows [stage2]" cp ../bin/windows/bitmask-vpn staging/bitmask-vpn.exe cp ../bin/windows/bitmask-helper-go staging/helper.exe cp ../windows/staging/uninstall-signed.exe windows/uninstall.exe makensis windows/$(APPNAME)-installer.nsi mv dist/$(APPNAME)-$(VERSION).exe ../../deploy/ endif sign_win: echo "[+] signing windows build" python windows/sign.py $(WIN_CERT_PATH) $(WIN_CERT_PASS) # ----------------------------------------------------------------------------- # OSX # ----------------------------------------------------------------------------- pkg_osx: echo "[+] Building osx package..." cp ../bin/darwin/bitmask-vpn dist/$(APPNAME).app/Contents/MacOS/ cp ../bin/darwin/bitmask-helper dist/$(APPNAME).app/Contents/MacOS/ cp $(STAGING)/openvpn-osx dist/$(APPNAME).app/Contents/Resources/openvpn.leap chmod +x dist/$(APPNAME).app/Contents/Resources/openvpn.leap ifeq ($(SYSTEM), Darwin) osx/quickpkg --output dist/$(APPNAME)-$(VERSION)_unsigned.pkg --scripts osx/scripts/ dist/$(APPNAME).app/ @if [ $(BUILD_RELEASE) = no ]; then\ echo "[!] BUILD_RELEASE=no, skipping signature";\ else\ echo "[+] Signing the bundle";\ productsign --sign $(OSX_CERT) dist/$(APPNAME)-$(VERSION)_unsigned.pkg dist/$(APPNAME)-$(VERSION).pkg;\ fi else cd osx && APPNAME=$(APPNAME) VERSION=$(VERSION) ./cross-quickpkg endif mv dist/$(APPNAME)-$(VERSION)*.pkg ../../deploy/ # ----------------------------------------------------------------------------- # Linux # ----------------------------------------------------------------------------- pkg_snap: -@mkdir -p ../../deploy @echo "[+] building snap..." cd ../..; \ snapcraft build; \ snapcraft snap -@rm ../../snap @mv ../../$(BINNAME)* ../../deploy pkg_deb: echo "[+] building debian package version" ${DEB_VERSION} -@mkdir -p ../../deploy @if [ $(BUILD_RELEASE) = no ]; then\ dch -v $(VERSION) -M "debian package generated from the git repository" && echo "[!] BUILD_RELEASE=no, incrementing changelog";\ else\ echo "[!] BUILD_RELEASE";\ fi @mkdir -p build # bitmask-vpn tar.gz should be placed in parent forlder after doing 'make prepare' with the # bitmask-vpn topmost Makefile. @cp ../bitmask-vpn_$(VERSION).tgz build/$(BINNAME)_${DEB_VERSION}.orig.tar.gz @rm -rf build/${BINNAME}_${DEB_VERSION} build/bitmask-vpn_${VERSION}-src @cd build && tar xzf $(BINNAME)_${DEB_VERSION}.orig.tar.gz && mv bitmask-vpn_${VERSION}-src ${BINNAME}_${DEB_VERSION} @cp -r debian/ build/$(BINNAME)_$(DEB_VERSION)/ @cd build/$(BINNAME)_$(DEB_VERSION) && debuild -us -uc @mv build/*.deb ../../deploy # ----------------------------------------------------------------------------- # Utils # ----------------------------------------------------------------------------- clean: rm -rf dist/ build/ staging\openvpn\openvpn.exe: if not exist staging\openvpn mkdir staging\openvpn wget https://build.openvpn.net/downloads/releases/latest/tap-windows-latest-stable.exe -O staging/openvpn/tap-windows.exe # eventually, this should be built statically and cross compiled in the same pipeline that we build the installer. wget https://downloads.leap.se/thirdparty/windows/openvpn-x86_64-w64-mingw32.tar.bz2 -O staging/openvpn/openvpn.tar.bz2 7z e -y -ostaging/openvpn/ staging/openvpn/openvpn.tar.bz2 7z e -y -r -ostaging/openvpn/ staging/openvpn/openvpn.tar *.dll 7z e -y -r -ostaging/openvpn/ staging/openvpn/openvpn.tar *.exe copy .\staging\openvpn\openvpn.exe .\staging copy .\staging\openvpn\*.dll .\staging staging/openvpn/openvpn.exe: @mkdir -p staging/openvpn wget https://build.openvpn.net/downloads/releases/latest/tap-windows-latest-stable.exe -O $(STAGING)/openvpn/tap-windows.exe wget https://downloads.leap.se/thirdparty/windows/openvpn-x86_64-w64-mingw32.tar.bz2 -O $(STAGING)/openvpn/openvpn.tar.bz2 @tar xjf $(STAGING)/openvpn/openvpn.tar.bz2 -C $(STAGING)/openvpn/ cp $(STAGING)/openvpn/bin/openvpn.exe $(STAGING)/openvpn cp $(STAGING)/openvpn/bin/*.dll $(STAGING) cp $(STAGING)/openvpn/lib/engines-1_1/*.dll $(STAGING) riseup-vpn-0.24.5+ds1/branding/templates/osx/000077500000000000000000000000001461742244100207755ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/templates/osx/bitmask.pf.conf000066400000000000000000000007601461742244100237050ustar00rootroot00000000000000default_device = "en99" set block-policy drop scrub in all set skip on lo0 antispoof for $default_device # block all traffic on default device block out on $default_device all # allow traffic to gateways pass out on $default_device to # allow traffic to local networks over the default device pass out on $default_device to $default_device:network # block all DNS, except to the gateways block out proto udp to any port 53 pass out proto udp to port 53 riseup-vpn-0.24.5+ds1/branding/templates/osx/client.down.sh000077500000000000000000000362431461742244100235700ustar00rootroot00000000000000#!/bin/bash -e # Note: must be bash; uses bash-specific tricks # # ****************************************************************************************************************** # Copyright By Tunnelblick. Redistributed with Bitmask under the GPL. # This Tunnelblick script does everything! It handles TUN and TAP interfaces, # pushed configurations and DHCP leases. :) # # This is the "Down" version of the script, executed after the connection is # closed. # # Created by: Nick Williams (using original code and parts of old Tblk scripts) # # ****************************************************************************************************************** # @param String message - The message to log logMessage() { echo "${@}" } # @param String message - The message to log logDebugMessage() { echo "${@}" > /dev/null } trim() { echo ${@} } # @param String list - list of network service names, output from disable_ipv6() restore_ipv6() { # Undoes the actions performed by the disable_ipv6() routine in client.up.tunnelblick.sh by restoring the IPv6 # 'automatic' setting for each network service for which that routine disabled IPv6. # # $1 must contain the output from disable_ipv6() -- the list of network services. # # This routine outputs log messages describing its activities. if [ "$1" = "" ] ; then exit fi printf %s "$1 " | \ while IFS= read -r ripv6_service ; do networksetup -setv6automatic "$ripv6_service" logMessage "Re-enabled IPv6 (automatic) for '$ripv6_service'" done } ########################################################################################## flushDNSCache() { if ${ARG_FLUSH_DNS_CACHE} ; then set +e # "grep" will return error status (1) if no matches are found, so don't fail on individual errors readonly OSVER="$(sw_vers | grep 'ProductVersion:' | grep -o '10\.[0-9]*')" set -e # We instruct bash that it CAN again fail on errors if [ "${OSVER}" = "10.4" ] ; then if [ -f /usr/sbin/lookupd ] ; then set +e # we will catch errors from lookupd /usr/sbin/lookupd -flushcache if [ $? != 0 ] ; then logMessage "WARNING: Unable to flush the DNS cache via lookupd" else logMessage "Flushed the DNS cache via lookupd" fi set -e # bash should again fail on errors else logMessage "WARNING: /usr/sbin/lookupd not present. Not flushing the DNS cache" fi else if [ -f /usr/bin/dscacheutil ] ; then set +e # we will catch errors from dscacheutil /usr/bin/dscacheutil -flushcache if [ $? != 0 ] ; then logMessage "WARNING: Unable to flush the DNS cache via dscacheutil" else logMessage "Flushed the DNS cache via dscacheutil" fi set -e # bash should again fail on errors else logMessage "WARNING: /usr/bin/dscacheutil not present. Not flushing the DNS cache via dscacheutil" fi if [ -f /usr/sbin/discoveryutil ] ; then set +e # we will catch errors from discoveryutil /usr/sbin/discoveryutil udnsflushcaches if [ $? != 0 ] ; then logMessage "WARNING: Unable to flush the DNS cache via discoveryutil udnsflushcaches" else logMessage "Flushed the DNS cache via discoveryutil udnsflushcaches" fi /usr/sbin/discoveryutil mdnsflushcache if [ $? != 0 ] ; then logMessage "WARNING: Unable to flush the DNS cache via discoveryutil mdnsflushcache" else logMessage "Flushed the DNS cache via discoveryutil mdnsflushcache" fi set -e # bash should again fail on errors else logMessage "/usr/sbin/discoveryutil not present. Not flushing the DNS cache via discoveryutil" fi set +e # "grep" will return error status (1) if no matches are found, so don't fail on individual errors hands_off_ps="$( ps -ax | grep HandsOffDaemon | grep -v grep.HandsOffDaemon )" set -e # We instruct bash that it CAN again fail on errors if [ "${hands_off_ps}" = "" ] ; then if [ -f /usr/bin/killall ] ; then set +e # ignore errors if mDNSResponder isn't currently running /usr/bin/killall -HUP mDNSResponder if [ $? != 0 ] ; then logMessage "mDNSResponder not running. Not notifying it that the DNS cache was flushed" else logMessage "Notified mDNSResponder that the DNS cache was flushed" fi set -e # bash should again fail on errors else logMessage "WARNING: /usr/bin/killall not present. Not notifying mDNSResponder that the DNS cache was flushed" fi else logMessage "WARNING: Hands Off is running. Not notifying mDNSResponder that the DNS cache was flushed" fi fi fi } ########################################################################################## resetPrimaryInterface() { set +e # "grep" will return error status (1) if no matches are found, so don't fail on individual errors WIFI_INTERFACE="$(networksetup -listallhardwareports | awk '$3=="Wi-Fi" {getline; print $2}')" if [ "${WIFI_INTERFACE}" == "" ] ; then WIFI_INTERFACE="$(networksetup -listallhardwareports | awk '$3=="AirPort" {getline; print $2}')" fi PINTERFACE="$( scutil <<-EOF | open show State:/Network/Global/IPv4 quit EOF grep PrimaryInterface | sed -e 's/.*PrimaryInterface : //' )" set -e # resume abort on error if [ "${PINTERFACE}" != "" ] ; then if [ "${PINTERFACE}" == "${WIFI_INTERFACE}" -a "${OSVER}" != "10.4" -a -f /usr/sbin/networksetup ] ; then if [ "${OSVER}" == "10.5" ] ; then logMessage "Resetting primary interface '${PINTERFACE}' via networksetup -setairportpower off/on..." /usr/sbin/networksetup -setairportpower off sleep 2 /usr/sbin/networksetup -setairportpower on else logMessage "Resetting primary interface '${PINTERFACE}' via networksetup -setairportpower ${PINTERFACE} off/on..." /usr/sbin/networksetup -setairportpower "${PINTERFACE}" off sleep 2 /usr/sbin/networksetup -setairportpower "${PINTERFACE}" on fi else if [ -f /sbin/ifconfig ] ; then logMessage "Resetting primary interface '${PINTERFACE}' via ifconfig ${PINTERFACE} down/up..." /sbin/ifconfig "${PINTERFACE}" down sleep 2 /sbin/ifconfig "${PINTERFACE}" up else logMessage "WARNING: Not resetting primary interface because /sbin/ifconfig does not exist." fi fi else logMessage "WARNING: Not resetting primary interface because it cannot be found." fi } ########################################################################################## trap "" TSTP trap "" HUP trap "" INT export PATH="/bin:/sbin:/usr/sbin:/usr/bin" readonly OUR_NAME=$(basename "${0}") logMessage "**********************************************" logMessage "Start of output from ${OUR_NAME}" # Remove the flag file that indicates we need to run the down script if [ -e "/tmp/bitmask-downscript-needs-to-be-run.txt" ] ; then rm -f "/tmp/bitmask-downscript-needs-to-be-run.txt" fi # Test for the "-r" Bitmask option (Reset primary interface after disconnecting) because we _always_ need its value. # Usually we get the value for that option (and the other options) from State:/Network/OpenVPN, # but that key may not exist (because, for example, there were no DNS changes). # So we get the value from the Bitmask options passed to this script by OpenVPN. # # We do the same thing for the -f Bitmask option (Flush DNS cache after connecting or disconnecting) ARG_RESET_PRIMARY_INTERFACE_ON_DISCONNECT="false" ARG_FLUSH_DNS_CACHE="false" while [ {$#} ] ; do if [ "${1:0:1}" != "-" ] ; then # Bitmask arguments start with "-" and come first break # so if this one doesn't start with "-" we are done processing Bitmask arguments fi if [ "$1" = "-r" ] ; then ARG_RESET_PRIMARY_INTERFACE_ON_DISCONNECT="true" else if [ "$1" = "-f" ] ; then ARG_FLUSH_DNS_CACHE="true" fi fi shift # Shift arguments to examine the next option (if there is one) done # Quick check - is the configuration there? if ! scutil -w State:/Network/OpenVPN &>/dev/null -t 1 ; then # Configuration isn't there logMessage "WARNING: Not restoring DNS settings because no saved Bitmask DNS information was found." flushDNSCache if ${ARG_RESET_PRIMARY_INTERFACE_ON_DISCONNECT} ; then resetPrimaryInterface fi logMessage "End of output from ${OUR_NAME}" logMessage "**********************************************" exit 0 fi # Get info saved by the up script TUNNELBLICK_CONFIG="$( scutil <<-EOF open show State:/Network/OpenVPN quit EOF )" ARG_MONITOR_NETWORK_CONFIGURATION="$(echo "${TUNNELBLICK_CONFIG}" | grep -i '^[[:space:]]*MonitorNetwork :' | sed -e 's/^.*: //g')" LEASEWATCHER_PLIST_PATH="$(echo "${TUNNELBLICK_CONFIG}" | grep -i '^[[:space:]]*LeaseWatcherPlistPath :' | sed -e 's/^.*: //g')" REMOVE_LEASEWATCHER_PLIST="$(echo "${TUNNELBLICK_CONFIG}" | grep -i '^[[:space:]]*RemoveLeaseWatcherPlist :' | sed -e 's/^.*: //g')" PSID="$(echo "${TUNNELBLICK_CONFIG}" | grep -i '^[[:space:]]*Service :' | sed -e 's/^.*: //g')" # Don't need: SCRIPT_LOG_FILE="$(echo "${TUNNELBLICK_CONFIG}" | grep -i '^[[:space:]]*ScriptLogFile :' | sed -e 's/^.*: //g')" # Don't need: ARG_RESTORE_ON_DNS_RESET="$(echo "${TUNNELBLICK_CONFIG}" | grep -i '^[[:space:]]*RestoreOnDNSReset :' | sed -e 's/^.*: //g')" # Don't need: ARG_RESTORE_ON_WINS_RESET="$(echo "${TUNNELBLICK_CONFIG}" | grep -i '^[[:space:]]*RestoreOnWINSReset :' | sed -e 's/^.*: //g')" # Don't need: PROCESS="$(echo "${TUNNELBLICK_CONFIG}" | grep -i '^[[:space:]]*PID :' | sed -e 's/^.*: //g')" # Don't need: ARG_IGNORE_OPTION_FLAGS="$(echo "${TUNNELBLICK_CONFIG}" | grep -i '^[[:space:]]*IgnoreOptionFlags :' | sed -e 's/^.*: //g')" ARG_TAP="$(echo "${TUNNELBLICK_CONFIG}" | grep -i '^[[:space:]]*IsTapInterface :' | sed -e 's/^.*: //g')" ARG_FLUSH_DNS_CACHE="$(echo "${TUNNELBLICK_CONFIG}" | grep -i '^[[:space:]]*FlushDNSCache :' | sed -e 's/^.*: //g')" ARG_RESET_PRIMARY_INTERFACE_ON_DISCONNECT="$(echo "${TUNNELBLICK_CONFIG}" | grep -i '^[[:space:]]*ResetPrimaryInterface :' | sed -e 's/^.*: //g')" bRouteGatewayIsDhcp="$(echo "${TUNNELBLICK_CONFIG}" | grep -i '^[[:space:]]*RouteGatewayIsDhcp :' | sed -e 's/^.*: //g')" bTapDeviceHasBeenSetNone="$(echo "${TUNNELBLICK_CONFIG}" | grep -i '^[[:space:]]*TapDeviceHasBeenSetNone :' | sed -e 's/^.*: //g')" bAlsoUsingSetupKeys="$(echo "${TUNNELBLICK_CONFIG}" | grep -i '^[[:space:]]*bAlsoUsingSetupKeys :' | sed -e 's/^.*: //g')" sTunnelDevice="$(echo "${TUNNELBLICK_CONFIG}" | grep -i '^[[:space:]]*TunnelDevice :' | sed -e 's/^.*: //g')" # Note: '\n' was translated into '\t', so we translate it back (it was done because grep and sed only work with single lines) sRestoreIpv6Services="$(echo "${TUNNELBLICK_CONFIG}" | grep -i '^[[:space:]]*RestoreIpv6Services :' | sed -e 's/^.*: //g' | tr '\t' '\n')" # Remove leasewatcher if ${ARG_MONITOR_NETWORK_CONFIGURATION} ; then launchctl unload "${LEASEWATCHER_PLIST_PATH}" if ${REMOVE_LEASEWATCHER_PLIST} ; then rm -f "${LEASEWATCHER_PLIST_PATH}" fi logMessage "Cancelled monitoring of system configuration changes" fi if ${ARG_TAP} ; then if [ "$bRouteGatewayIsDhcp" == "true" ]; then if [ "$bTapDeviceHasBeenSetNone" == "false" ]; then if [ -z "$dev" ]; then # If $dev is not defined, then use TunnelDevice, which was set from $dev by client.up.tunnelblick.sh # ($def is not defined when this script is called from MenuController to clean up when exiting Bitmask) if [ -n "${sTunnelDevice}" ]; then logMessage "WARNING: \$dev not defined; using TunnelDevice: ${sTunnelDevice}" set +e ipconfig set "${sTunnelDevice}" NONE 2>/dev/null set -e logMessage "Released the DHCP lease via ipconfig set ${sTunnelDevice} NONE." else logMessage "WARNING: Cannot configure TAP interface to NONE without \$dev or State:/Network/OpenVPN/TunnelDevice being defined. Device may not have disconnected properly." fi else set +e ipconfig set "$dev" NONE 2>/dev/null set -e logMessage "Released the DHCP lease via ipconfig set $dev NONE." fi fi fi fi # Issue warning if the primary service ID has changed set +e # "grep" will return error status (1) if no matches are found, so don't fail if not found PSID_CURRENT="$( scutil <<-EOF | open show State:/Network/OpenVPN quit EOF grep 'Service : ' | sed -e 's/.*Service : //' )" set -e # resume abort on error if [ "${PSID}" != "${PSID_CURRENT}" ] ; then logMessage "Ignoring change of Network Primary Service from ${PSID} to ${PSID_CURRENT}" fi # Restore configurations DNS_OLD="$( scutil <<-EOF open show State:/Network/OpenVPN/OldDNS quit EOF )" SMB_OLD="$( scutil <<-EOF open show State:/Network/OpenVPN/OldSMB quit EOF )" DNS_OLD_SETUP="$( scutil <<-EOF open show State:/Network/OpenVPN/OldDNSSetup quit EOF )" TB_NO_SUCH_KEY=" { BitmaskNoSuchKey : true }" if [ "${DNS_OLD}" = "${TB_NO_SUCH_KEY}" ] ; then scutil <<-EOF open remove State:/Network/Service/${PSID}/DNS quit EOF else scutil <<-EOF open get State:/Network/OpenVPN/OldDNS set State:/Network/Service/${PSID}/DNS quit EOF fi if [ "${DNS_OLD_SETUP}" = "${TB_NO_SUCH_KEY}" ] ; then if ${bAlsoUsingSetupKeys} ; then logDebugMessage "DEBUG: Removing 'Setup:' DNS key" scutil <<-EOF open remove Setup:/Network/Service/${PSID}/DNS quit EOF else logDebugMessage "DEBUG: Not removing 'Setup:' DNS key" fi else if ${bAlsoUsingSetupKeys} ; then logDebugMessage "DEBUG: Restoring 'Setup:' DNS key" scutil <<-EOF open get State:/Network/OpenVPN/OldDNSSetup set Setup:/Network/Service/${PSID}/DNS quit EOF else logDebugMessage "DEBUG: Not restoring 'Setup:' DNS key" fi fi if [ "${SMB_OLD}" = "${TB_NO_SUCH_KEY}" ] ; then scutil > /dev/null <<-EOF open remove State:/Network/Service/${PSID}/SMB quit EOF else scutil > /dev/null <<-EOF open get State:/Network/OpenVPN/OldSMB set State:/Network/Service/${PSID}/SMB quit EOF fi logMessage "Restored the DNS and SMB configurations" set +e # "grep" will return error status (1) if no matches are found, so don't fail if not found new_resolver_contents="$( grep -v '#' < /etc/resolv.conf )" set -e # resume abort on error logDebugMessage "DEBUG:" logDebugMessage "DEBUG: /etc/resolve = ${new_resolver_contents}" set +e # scutil --dns will return error status in case dns is already down, so don't fail if no dns found scutil_dns="$( scutil --dns)" set -e # resume abort on error logDebugMessage "DEBUG:" logDebugMessage "DEBUG: scutil --dns = ${scutil_dns}" logDebugMessage "DEBUG:" restore_ipv6 "$sRestoreIpv6Services" flushDNSCache # Remove our system configuration data scutil <<-EOF open remove State:/Network/OpenVPN/OldDNS remove State:/Network/OpenVPN/OldSMB remove State:/Network/OpenVPN/OldDNSSetup remove State:/Network/OpenVPN/DNS remove State:/Network/OpenVPN/SMB remove State:/Network/OpenVPN quit EOF if ${ARG_RESET_PRIMARY_INTERFACE_ON_DISCONNECT} ; then resetPrimaryInterface fi logMessage "End of output from ${OUR_NAME}" logMessage "**********************************************" exit 0 riseup-vpn-0.24.5+ds1/branding/templates/osx/client.up.sh000077500000000000000000001743641461742244100232540ustar00rootroot00000000000000#!/bin/bash -e # Note: must be bash; uses bash-specific tricks # # ****************************************************************************************************************** # Copyright by Tunnelblick. Redistributed under GPL as part of Bitmask. # This Tunnelblick script does everything! It handles TUN and TAP interfaces, # pushed configurations, DHCP with DNS and SMB, and renewed DHCP leases. :) # # This is the "Up" version of the script, executed after the interface is # initialized. # # Created by: Nick Williams (using original code and parts of old Tblk scripts) # Modifed by: Jonathan K. Bullard for Mountain Lion # Adapted to use by Bitmask by: Kali Kaneko # # ****************************************************************************************************************** ########################################################################################## # @param String message - The message to log logMessage() { echo "${@}" } ########################################################################################## # @param String message - The message to log logDebugMessage() { if ${ARG_EXTRA_LOGGING} ; then echo "${@}" fi } ########################################################################################## # log a change to a setting # @param String filters - empty, or one or two '#' if not performing the change # @param String name of setting that is being changed # @param String new value # @param String old value logChange() { if [ "$1" = "" ] ; then if [ "$3" = "$4" ] ; then echo "Did not change $2 setting of '$3' (but re-set it)" else echo "Changed $2 setting from '$4' to '$3'" fi else echo "Did not change $2 setting of '$4'" fi } ########################################################################################## # @param String string - Content to trim trim() { echo ${@} } ########################################################################################## disable_ipv6() { # Disables IPv6 on each enabled (active) network service on which it is set to the OS X default "IPv6 Automatic". # # For each such service, outputs a line with the name of the service. # (A separate line is output for each name because a name may include spaces.) # # The 'restore_ipv6' routine in client.down.sh undoes the actions performed by this routine. # # NOTE: Done only for enabled services because some versions of OS X enable the service if this IPv6 setting is changed. # # This only works for OS X 10.5 and higher (10.4 does not implement IPv6.) if [ "$OSVER" = "10.4" ] ; then exit fi # Get list of services and remove the first line which contains a heading dipv6_services="$( networksetup -listallnetworkservices | sed -e '1,1d')" # Go through the list disabling IPv6 for enabled services, and outputting lines with the names of the services printf %s "$dipv6_services " | \ while IFS= read -r dipv6_service ; do # If first character of a line is an asterisk, the service is disabled, so we skip it if [ "${dipv6_service:0:1}" != "*" ] ; then dipv6_ipv6_status="$( networksetup -getinfo "$dipv6_service" | grep 'IPv6: ' | sed -e 's/IPv6: //')" if [ "$dipv6_ipv6_status" = "Automatic" ] ; then networksetup -setv6off "$dipv6_service" echo "$dipv6_service" fi fi done } ########################################################################################## # @param String[] dnsServers - The name servers to use # @param String domainName - The domain name to use # @param \optional String[] winsServers - The SMB servers to use # @param \optional String[] searchDomains - The search domains to use # # Throughout this routine: # MAN_ is a prefix for manually set parameters # DYN_ is a prefix for dynamically set parameters (by a "push", config file, or command line option) # CUR_ is a prefix for the current parameters (as arbitrated by OS X between manual and DHCP data) # FIN_ is a prefix for the parameters we want to end up with # SKP_ is a prefix for an empty string or a "#" used to control execution of statements that set parameters in scutil # # DNS_SA is a suffix for the ServerAddresses value in a System Configuration DNS key # DNS_SD is a suffix for the SearchDomains value in a System Configuration DNS key # DNS_DN is a suffix for the DomainName value in a System Configuration DNS key # # SMB_NN is a suffix for the NetBIOSName value in a System Configuration SMB key # SMB_WG is a suffix for the Workgroup value in a System Configuration SMB key # SMB_WA is a suffix for the WINSAddresses value in a System Configuration SMB key # # So, for example, MAN_SMB_NN is the manually set NetBIOSName value (or the empty string if not set manually) setDnsServersAndDomainName() { set +e # "grep" will return error status (1) if no matches are found, so don't fail on individual errors PSID="$( scutil <<-EOF | open show State:/Network/Global/IPv4 quit EOF grep PrimaryService | sed -e 's/.*PrimaryService : //' )" set -e # resume abort on error MAN_DNS_CONFIG="$( scutil <<-EOF | open show Setup:/Network/Service/${PSID}/DNS quit EOF sed -e 's/^[[:space:]]*[[:digit:]]* : //g' | tr '\n' ' ' )" MAN_SMB_CONFIG="$( scutil <<-EOF | open show Setup:/Network/Service/${PSID}/SMB quit EOF sed -e 's/^[[:space:]]*[[:digit:]]* : //g' | tr '\n' ' ' )" CUR_DNS_CONFIG="$( scutil <<-EOF | open show State:/Network/Global/DNS quit EOF sed -e 's/^[[:space:]]*[[:digit:]]* : //g' | tr '\n' ' ' )" CUR_SMB_CONFIG="$( scutil <<-EOF | open show State:/Network/Global/SMB quit EOF sed -e 's/^[[:space:]]*[[:digit:]]* : //g' | tr '\n' ' ' )" # Set up the DYN_... variables to contain what is asked for (dynamically, by a 'push' directive, for example) declare -a vDNS=("${!1}") declare -a vSMB=("${!3}") declare -a vSD=("${!4}") if [ ${#vDNS[*]} -eq 0 ] ; then readonly DYN_DNS_SA="" else readonly DYN_DNS_SA="${!1}" fi if [ ${#vSMB[*]} -eq 0 ] ; then readonly DYN_SMB_WA="" else readonly DYN_SMB_WA="${!3}" fi if [ ${#vSD[*]} -eq 0 ] ; then readonly DYN_DNS_SD="" else readonly DYN_DNS_SD="${!4}" fi DYN_DNS_DN="$2" # The variables # DYN_SMB_WG # DYN_SMB_NN # are left empty. There isn't a way for OpenVPN to set them. logDebugMessage "DEBUG:" logDebugMessage "DEBUG: MAN_DNS_CONFIG = ${MAN_DNS_CONFIG}" logDebugMessage "DEBUG: MAN_SMB_CONFIG = ${MAN_SMB_CONFIG}" logDebugMessage "DEBUG:" logDebugMessage "DEBUG: CUR_DNS_CONFIG = ${CUR_DNS_CONFIG}" logDebugMessage "DEBUG: CUR_SMB_CONFIG = ${CUR_SMB_CONFIG}" logDebugMessage "DEBUG:" logDebugMessage "DEBUG:" logDebugMessage "DEBUG: DYN_DNS_DN = ${DYN_DNS_DN}; DYN_DNS_SA = ${DYN_DNS_SA}; DYN_DNS_SD = ${DYN_DNS_SD}" logDebugMessage "DEBUG: DYN_SMB_NN = ${DYN_SMB_NN}; DYN_SMB_WG = ${DYN_SMB_WG}; DYN_SMB_WA = ${DYN_SMB_WA}" # Set up the MAN_... variables to contain manual network settings set +e # "grep" will return error status (1) if no matches are found, so don't fail on individual errors if echo "${MAN_DNS_CONFIG}" | grep -q "DomainName" ; then readonly MAN_DNS_DN="$( trim "$( echo "${MAN_DNS_CONFIG}" | sed -e 's/^.*DomainName[^{]*{[[:space:]]*\([^}]*\)[[:space:]]*}.*$/\1/g' )" )" else readonly MAN_DNS_DN=""; fi if echo "${MAN_DNS_CONFIG}" | grep -q "ServerAddresses" ; then readonly MAN_DNS_SA="$( trim "$( echo "${MAN_DNS_CONFIG}" | sed -e 's/^.*ServerAddresses[^{]*{[[:space:]]*\([^}]*\)[[:space:]]*}.*$/\1/g' )" )" else readonly MAN_DNS_SA=""; fi if echo "${MAN_DNS_CONFIG}" | grep -q "SearchDomains" ; then readonly MAN_DNS_SD="$( trim "$( echo "${MAN_DNS_CONFIG}" | sed -e 's/^.*SearchDomains[^{]*{[[:space:]]*\([^}]*\)[[:space:]]*}.*$/\1/g' )" )" else readonly MAN_DNS_SD=""; fi if echo "${MAN_SMB_CONFIG}" | grep -q "NetBIOSName" ; then readonly MAN_SMB_NN="$( trim "$( echo "${MAN_SMB_CONFIG}" | sed -e 's/^.*NetBIOSName : \([^[:space:]]*\).*$/\1/g' )" )" else readonly MAN_SMB_NN=""; fi if echo "${MAN_SMB_CONFIG}" | grep -q "Workgroup" ; then readonly MAN_SMB_WG="$( trim "$( echo "${MAN_SMB_CONFIG}" | sed -e 's/^.*Workgroup : \([^[:space:]]*\).*$/\1/g' )" )" else readonly MAN_SMB_WG=""; fi if echo "${MAN_SMB_CONFIG}" | grep -q "WINSAddresses" ; then readonly MAN_SMB_WA="$( trim "$( echo "${MAN_SMB_CONFIG}" | sed -e 's/^.*WINSAddresses[^{]*{[[:space:]]*\([^}]*\)[[:space:]]*}.*$/\1/g' )" )" else readonly MAN_SMB_WA=""; fi set -e # resume abort on error logDebugMessage "DEBUG:" logDebugMessage "DEBUG: MAN_DNS_DN = ${MAN_DNS_DN}; MAN_DNS_SA = ${MAN_DNS_SA}; MAN_DNS_SD = ${MAN_DNS_SD}" logDebugMessage "DEBUG: MAN_SMB_NN = ${MAN_SMB_NN}; MAN_SMB_WG = ${MAN_SMB_WG}; MAN_SMB_WA = ${MAN_SMB_WA}" # Set up the CUR_... variables to contain the current network settings (from manual or DHCP, as arbitrated by OS X set +e # "grep" will return error status (1) if no matches are found, so don't fail on individual errors if echo "${CUR_DNS_CONFIG}" | grep -q "DomainName" ; then readonly CUR_DNS_DN="$(trim "$( echo "${CUR_DNS_CONFIG}" | sed -e 's/^.*DomainName : \([^[:space:]]*\).*$/\1/g' )")" else readonly CUR_DNS_DN=""; fi if echo "${CUR_DNS_CONFIG}" | grep -q "ServerAddresses" ; then readonly CUR_DNS_SA="$(trim "$( echo "${CUR_DNS_CONFIG}" | sed -e 's/^.*ServerAddresses[^{]*{[[:space:]]*\([^}]*\)[[:space:]]*}.*$/\1/g' )")" else readonly CUR_DNS_SA=""; fi if echo "${CUR_DNS_CONFIG}" | grep -q "SearchDomains" ; then readonly CUR_DNS_SD="$(trim "$( echo "${CUR_DNS_CONFIG}" | sed -e 's/^.*SearchDomains[^{]*{[[:space:]]*\([^}]*\)[[:space:]]*}.*$/\1/g' )")" else readonly CUR_DNS_SD=""; fi if echo "${CUR_SMB_CONFIG}" | grep -q "NetBIOSName" ; then readonly CUR_SMB_NN="$(trim "$( echo "${CUR_SMB_CONFIG}" | sed -e 's/^.*NetBIOSName : \([^[:space:]]*\).*$/\1/g' )")" else readonly CUR_SMB_NN=""; fi if echo "${CUR_SMB_CONFIG}" | grep -q "Workgroup" ; then readonly CUR_SMB_WG="$(trim "$( echo "${CUR_SMB_CONFIG}" | sed -e 's/^.*Workgroup : \([^[:space:]]*\).*$/\1/g' )")" else readonly CUR_SMB_WG=""; fi if echo "${CUR_SMB_CONFIG}" | grep -q "WINSAddresses" ; then readonly CUR_SMB_WA="$(trim "$( echo "${CUR_SMB_CONFIG}" | sed -e 's/^.*WINSAddresses[^{]*{[[:space:]]*\([^}]*\)[[:space:]]*}.*$/\1/g' )")" else readonly CUR_SMB_WA=""; fi set -e # resume abort on error logDebugMessage "DEBUG:" logDebugMessage "DEBUG: CUR_DNS_DN = ${CUR_DNS_DN}; CUR_DNS_SA = ${CUR_DNS_SA}; CUR_DNS_SD = ${CUR_DNS_SD}" logDebugMessage "DEBUG: CUR_SMB_NN = ${CUR_SMB_NN}; CUR_SMB_WG = ${CUR_SMB_WG}; CUR_SMB_WA = ${CUR_SMB_WA}" # set up the FIN_... variables with what we want to set things to # Three FIN_... variables are simple -- no aggregation is done for them if [ "${DYN_DNS_DN}" != "" ] ; then if [ "${MAN_DNS_DN}" != "" ] ; then logMessage "WARNING: Ignoring DomainName '$DYN_DNS_DN' because DomainName was set manually" readonly FIN_DNS_DN="${MAN_DNS_DN}" else readonly FIN_DNS_DN="${DYN_DNS_DN}" fi else readonly FIN_DNS_DN="${CUR_DNS_DN}" fi if [ "${DYN_SMB_NN}" != "" ] ; then if [ "${MAN_SMB_NN}" != "" ] ; then logMessage "WARNING: Ignoring NetBIOSName '$DYN_SMB_NN' because NetBIOSName was set manually" readonly FIN_SMB_NN="${MAN_SMB_NN}" else readonly FIN_SMB_NN="${DYN_SMB_NN}" fi else readonly FIN_SMB_NN="${CUR_SMB_NN}" fi if [ "${DYN_SMB_WG}" != "" ] ; then if [ "${MAN_SMB_WG}" != "" ] ; then logMessage "WARNING: Ignoring Workgroup '$DYN_SMB_WG' because Workgroup was set manually" readonly FIN_SMB_WG="${MAN_SMB_WG}" else readonly FIN_SMB_WG="${DYN_SMB_WG}" fi else readonly FIN_SMB_WG="${CUR_SMB_WG}" fi # DNS ServerAddresses (FIN_DNS_SA) are aggregated for 10.4 and 10.5 if [ ${#vDNS[*]} -eq 0 ] ; then readonly FIN_DNS_SA="${CUR_DNS_SA}" else # BitmaskVPN: let's allow 10.4x.0.1 DNS providers #if [ "${MAN_DNS_SA}" != "" ] ; then # logMessage "WARNING: Ignoring ServerAddresses '$DYN_DNS_SA' because ServerAddresses was set manually" # readonly FIN_DNS_SA="${CUR_DNS_SA}" #else case "${OSVER}" in 10.4 | 10.5 ) # We need to remove duplicate DNS entries, so that our reference list matches MacOSX's SDNS="$( echo "${DYN_DNS_SA}" | tr ' ' '\n' )" (( i=0 )) for n in "${vDNS[@]}" ; do if echo "${SDNS}" | grep -q "${n}" ; then unset vDNS[${i}] fi (( i++ )) done if [ ${#vDNS[*]} -gt 0 ] ; then readonly FIN_DNS_SA="$( trim "${DYN_DNS_SA}" "${vDNS[*]}" )" else readonly FIN_DNS_SA="${DYN_DNS_SA}" fi logMessage "Aggregating ServerAddresses because running on OS X 10.4 or 10.5" ;; * ) # Do nothing - in 10.6 and higher -- we don't aggregate our configurations, apparently readonly FIN_DNS_SA="${DYN_DNS_SA}" logMessage "Not aggregating ServerAddresses because running on OS X 10.6 or higher" ;; esac #fi fi # SMB WINSAddresses (FIN_SMB_WA) are aggregated for 10.4 and 10.5 if [ ${#vSMB[*]} -eq 0 ] ; then readonly FIN_SMB_WA="${CUR_SMB_WA}" else if [ "${MAN_SMB_WA}" != "" ] ; then logMessage "WARNING: Ignoring WINSAddresses '$DYN_SMB_WA' because WINSAddresses was set manually" readonly FIN_SMB_WA="${MAN_SMB_WA}" else case "${OSVER}" in 10.4 | 10.5 ) # We need to remove duplicate SMB entries, so that our reference list matches MacOSX's SSMB="$( echo "${DYN_SMB_WA}" | tr ' ' '\n' )" (( i=0 )) for n in "${vSMB[@]}" ; do if echo "${SSMB}" | grep -q "${n}" ; then unset vSMB[${i}] fi (( i++ )) done if [ ${#vSMB[*]} -gt 0 ] ; then readonly FIN_SMB_WA="$( trim "${DYN_SMB_WA}" "${vSMB[*]}" )" else readonly FIN_SMB_WA="${DYN_SMB_WA}" fi logMessage "Aggregating WINSAddresses because running on OS X 10.4 or 10.5" ;; * ) # Do nothing - in 10.6 and higher -- we don't aggregate our configurations, apparently readonly FIN_SMB_WA="${DYN_SMB_WA}" logMessage "Not aggregating WINSAddresses because running on OS X 10.6 or higher" ;; esac fi fi # DNS SearchDomains (FIN_DNS_SD) is treated specially # # OLD BEHAVIOR: # if SearchDomains was not set manually, we set SearchDomains to the DomainName # else # In OS X 10.4-10.5, we add the DomainName to the end of any manual SearchDomains (unless it is already there) # In OS X 10.6+, if SearchDomains was entered manually, we ignore the DomainName # else we set SearchDomains to the DomainName # # NEW BEHAVIOR (done if ARG_PREPEND_DOMAIN_NAME is "true"): # # if SearchDomains was entered manually, we do nothing # else we PREpend new SearchDomains (if any) to the existing SearchDomains (NOT replacing them) # and PREpend DomainName to that # # (done if ARG_PREPEND_DOMAIN_NAME is "false" and there are new SearchDomains from DOMAIN-SEARCH): # # if SearchDomains was entered manually, we do nothing # else we PREpend any new SearchDomains to the existing SearchDomains (NOT replacing them) # # This behavior is meant to behave like Linux with Network Manager and Windows if "${ARG_PREPEND_DOMAIN_NAME}" ; then if [ "${MAN_DNS_SD}" = "" ] ; then if [ "${DYN_DNS_SD}" != "" ] ; then if ! echo "${CUR_DNS_SD}" | tr ' ' '\n' | grep -q "${DYN_DNS_SD}" ; then logMessage "Prepending '${DYN_DNS_SD}' to search domains '${CUR_DNS_SD}' because the search domains were not set manually and 'Prepend domain name to search domains' was selected" readonly TMP_DNS_SD="$( trim "${DYN_DNS_SD}" "${CUR_DNS_SD}" )" else logMessage "Not prepending '${DYN_DNS_SD}' to search domains '${CUR_DNS_SD}' because it is already there" readonly TMP_DNS_SD="${CUR_DNS_SD}" fi else readonly TMP_DNS_SD="${CUR_DNS_SD}" fi if [ "${FIN_DNS_DN}" != "" -a "${FIN_DNS_DN}" != "localdomain" ] ; then if ! echo "${TMP_DNS_SD}" | tr ' ' '\n' | grep -q "${FIN_DNS_DN}" ; then logMessage "Prepending '${FIN_DNS_DN}' to search domains '${TMP_DNS_SD}' because the search domains were not set manually and 'Prepend domain name to search domains' was selected" readonly FIN_DNS_SD="$( trim "${FIN_DNS_DN}" "${TMP_DNS_SD}" )" else logMessage "Not prepending '${FIN_DNS_DN}' to search domains '${TMP_DNS_SD}' because it is already there" readonly FIN_DNS_SD="${TMP_DNS_SD}" fi else readonly FIN_DNS_SD="${TMP_DNS_SD}" fi else if [ "${DYN_DNS_SD}" != "" ] ; then logMessage "WARNING: Not prepending '${DYN_DNS_SD}' to search domains '${CUR_DNS_SD}' because the search domains were set manually" fi if [ "${FIN_DNS_DN}" != "" ] ; then logMessage "WARNING: Not prepending domain '${FIN_DNS_DN}' to search domains '${CUR_DNS_SD}' because the search domains were set manually" fi readonly FIN_DNS_SD="${CUR_DNS_SD}" fi else if [ "${DYN_DNS_SD}" != "" ] ; then if [ "${MAN_DNS_SD}" = "" ] ; then logMessage "Prepending '${DYN_DNS_SD}' to search domains '${CUR_DNS_SD}' because the search domains were not set manually but were set via OpenVPN and 'Prepend domain name to search domains' was not selected" readonly FIN_DNS_SD="$( trim "${DYN_DNS_SD}" "${CUR_DNS_SD}" )" else logMessage "WARNING: Not prepending '${DYN_DNS_SD}' to search domains '${CUR_DNS_SD}' because the search domains were set manually" readonly FIN_DNS_SD="${CUR_DNS_SD}" fi else if [ "${FIN_DNS_DN}" != "" -a "${FIN_DNS_DN}" != "localdomain" ] ; then case "${OSVER}" in 10.4 | 10.5 ) if ! echo "${MAN_DNS_SD}" | tr ' ' '\n' | grep -q "${FIN_DNS_DN}" ; then logMessage "Appending '${FIN_DNS_DN}' to search domains '${CUR_DNS_SD}' that were set manually because running under OS X 10.4 or 10.5 and 'Prepend domain name to search domains' was not selected" readonly FIN_DNS_SD="$( trim "${MAN_DNS_SD}" "${FIN_DNS_DN}" )" else logMessage "Not appending '${FIN_DNS_DN}' to search domains '${CUR_DNS_SD}' because it is already in the search domains that were set manually and 'Prepend domain name to search domains' was not selected" readonly FIN_DNS_SD="${CUR_DNS_SD}" fi ;; * ) if [ "${MAN_DNS_SD}" = "" ] ; then logMessage "Setting search domains to '${FIN_DNS_DN}' because running under OS X 10.6 or higher and the search domains were not set manually and 'Prepend domain name to search domains' was not selected" readonly FIN_DNS_SD="${FIN_DNS_DN}" else logMessage "Not replacing search domains '${CUR_DNS_SD}' with '${FIN_DNS_DN}' because the search domains were set manually and 'Prepend domain name to search domains' was not selected" readonly FIN_DNS_SD="${CUR_DNS_SD}" fi ;; esac else readonly FIN_DNS_SD="${CUR_DNS_SD}" fi fi fi logDebugMessage "DEBUG:" logDebugMessage "DEBUG: FIN_DNS_DN = ${FIN_DNS_DN}; FIN_DNS_SA = ${FIN_DNS_SA}; FIN_DNS_SD = ${FIN_DNS_SD}" logDebugMessage "DEBUG: FIN_SMB_NN = ${FIN_SMB_NN}; FIN_SMB_WG = ${FIN_SMB_WG}; FIN_SMB_WA = ${FIN_SMB_WA}" # Set up SKP_... variables to inhibit scutil from making some changes # SKP_DNS_... and SKP_SMB_... are used to comment out individual items that are not being set if [ "${FIN_DNS_DN}" = "" -o "${FIN_DNS_DN}" = "${CUR_DNS_DN}" ] ; then SKP_DNS_DN="#" else SKP_DNS_DN="" fi if [ "${FIN_DNS_SA}" = "" -o "${FIN_DNS_SA}" = "${CUR_DNS_SA}" ] ; then SKP_DNS_SA="#" else SKP_DNS_SA="" fi if [ "${FIN_DNS_SD}" = "" -o "${FIN_DNS_SD}" = "${CUR_DNS_SD}" ] ; then SKP_DNS_SD="#" else SKP_DNS_SD="" fi if [ "${FIN_SMB_NN}" = "" -o "${FIN_SMB_NN}" = "${CUR_SMB_NN}" ] ; then SKP_SMB_NN="#" else SKP_SMB_NN="" fi if [ "${FIN_SMB_WG}" = "" -o "${FIN_SMB_WG}" = "${CUR_SMB_WG}" ] ; then SKP_SMB_WG="#" else SKP_SMB_WG="" fi if [ "${FIN_SMB_WA}" = "" -o "${FIN_SMB_WA}" = "${CUR_SMB_WA}" ] ; then SKP_SMB_WA="#" else SKP_SMB_WA="" fi # if any DNS items should be set, set all that have values if [ "${SKP_DNS_DN}${SKP_DNS_SA}${SKP_DNS_SD}" = "###" ] ; then readonly SKP_DNS="#" else readonly SKP_DNS="" if [ "${FIN_DNS_DN}" != "" ] ; then SKP_DNS_DN="" fi if [ "${FIN_DNS_SA}" != "" ] ; then SKP_DNS_SA="" fi if [ "${FIN_DNS_SD}" != "" ] ; then SKP_DNS_SD="" fi fi # if any SMB items should be set, set all that have values if [ "${SKP_SMB_NN}${SKP_SMB_WG}${SKP_SMB_WA}" = "###" ] ; then readonly SKP_SMB="#" else readonly SKP_SMB="" if [ "${FIN_SMB_NN}" != "" ] ; then SKP_SMB_NN="" fi if [ "${FIN_SMB_WG}" != "" ] ; then SKP_SMB_WG="" fi if [ "${FIN_SMB_WA}" != "" ] ; then SKP_SMB_WA="" fi fi readonly SKP_DNS_SA SKP_DNS_SD SKP_DNS_DN readonly SKP_SMB_NN SKP_SMB_WG SKP_SMB_WA # special-case fiddling: # in 10.8 and higher, ServerAddresses and SearchDomains must be set via the Setup: key in addition to the State: key # in 10.7 if ServerAddresses or SearchDomains are manually set, ServerAddresses and SearchDomains must be similarly set with the Setup: key in addition to the State: key # # we pass a flag indicating whether we've done that to the other scripts in 'bAlsoUsingSetupKeys' case "${OSVER}" in 10.4 | 10.5 | 10.6 ) logDebugMessage "DEBUG: OS X 10.4-10.6, so will modify settings using only State:" readonly SKP_SETUP_DNS="#" readonly bAlsoUsingSetupKeys="false" ;; 10.7 ) if [ "${MAN_DNS_SA}" = "" -a "${MAN_DNS_SD}" = "" ] ; then logDebugMessage "DEBUG: OS X 10.7 and neither ServerAddresses nor SearchDomains were set manually, so will modify DNS settings using only State:" readonly SKP_SETUP_DNS="#" readonly bAlsoUsingSetupKeys="false" else logDebugMessage "DEBUG: OS X 10.7 and ServerAddresses or SearchDomains were set manually, so will modify DNS settings using Setup: in addition to State:" readonly SKP_SETUP_DNS="" readonly bAlsoUsingSetupKeys="true" fi ;; * ) logDebugMessage "DEBUG: OS X 10.8 or higher, so will modify DNS settings using Setup: in addition to State:" readonly SKP_SETUP_DNS="" readonly bAlsoUsingSetupKeys="true" ;; esac logDebugMessage "DEBUG:" logDebugMessage "DEBUG: SKP_DNS = ${SKP_DNS}; SKP_DNS_SA = ${SKP_DNS_SA}; SKP_DNS_SD = ${SKP_DNS_SD}; SKP_DNS_DN = ${SKP_DNS_DN}" logDebugMessage "DEBUG: SKP_SETUP_DNS = ${SKP_SETUP_DNS}" logDebugMessage "DEBUG: SKP_SMB = ${SKP_SMB}; SKP_SMB_NN = ${SKP_SMB_NN}; SKP_SMB_WG = ${SKP_SMB_WG}; SKP_SMB_WA = ${SKP_SMB_WA}" set +e # "grep" will return error status (1) if no matches are found, so don't fail if not found original_resolver_contents="$( grep -v '#' < /etc/resolv.conf )" set -e # resume abort on error logDebugMessage "DEBUG:" logDebugMessage "DEBUG: /etc/resolve = ${original_resolver_contents}" logDebugMessage "DEBUG:" set +e # scutil --dns will return error status in case dns is already down, so don't fail if no dns found scutil_dns="$( scutil --dns)" set -e # resume abort on error logDebugMessage "DEBUG:" logDebugMessage "DEBUG: scutil --dns BEFORE CHANGES = ${scutil_dns}" logDebugMessage "DEBUG:" logDebugMessage "DEBUG:" logDebugMessage "DEBUG: Configuration changes:" logDebugMessage "DEBUG: ${SKP_DNS}${SKP_DNS_SA}ADD State: ServerAddresses ${FIN_DNS_SA}" logDebugMessage "DEBUG: ${SKP_DNS}${SKP_DNS_SD}ADD State: SearchDomains ${FIN_DNS_SD}" logDebugMessage "DEBUG: ${SKP_DNS}${SKP_DNS_DN}ADD State: DomainName ${FIN_DNS_DN}" logDebugMessage "DEBUG:" logDebugMessage "DEBUG: ${SKP_SETUP_DNS}${SKP_DNS}${SKP_DNS_SA}ADD Setup: ServerAddresses ${FIN_DNS_SA}" logDebugMessage "DEBUG: ${SKP_SETUP_DNS}${SKP_DNS}${SKP_DNS_SD}ADD Setup: SearchDomains ${FIN_DNS_SD}" logDebugMessage "DEBUG: ${SKP_SETUP_DNS}${SKP_DNS}${SKP_DNS_DN}ADD Setup: DomainName ${FIN_DNS_DN}" logDebugMessage "DEBUG:" logDebugMessage "DEBUG: ${SKP_SMB}${SKP_SMB_NN}ADD State: NetBIOSName ${FIN_SMB_NN}" logDebugMessage "DEBUG: ${SKP_SMB}${SKP_SMB_WG}ADD State: Workgroup ${FIN_SMB_WG}" logDebugMessage "DEBUG: ${SKP_SMB}${SKP_SMB_WA}ADD State: WINSAddresses ${FIN_SMB_WA}" # Save the openvpn process ID and the Network Primary Service ID, leasewather.plist path, logfile path, and optional arguments from Bitmask, # then save old and new DNS and SMB settings # PPID is a script variable (defined by bash itself) that contains the process ID of the parent of the process running the script (i.e., OpenVPN's process ID) # config is an environmental variable set to the configuration path by OpenVPN prior to running this up script scutil <<-EOF > /dev/null open # Store our variables for the other scripts (leasewatch, down, etc.) to use d.init # The '#' in the next line does NOT start a comment; it indicates to scutil that a number follows it (as opposed to a string or an array) d.add PID # ${PPID} d.add Service ${PSID} d.add LeaseWatcherPlistPath "${LEASEWATCHER_PLIST_PATH}" d.add RemoveLeaseWatcherPlist "${REMOVE_LEASEWATCHER_PLIST}" d.add ScriptLogFile "${SCRIPT_LOG_FILE}" d.add MonitorNetwork "${ARG_MONITOR_NETWORK_CONFIGURATION}" d.add RestoreOnDNSReset "${ARG_RESTORE_ON_DNS_RESET}" d.add RestoreOnWINSReset "${ARG_RESTORE_ON_WINS_RESET}" d.add IgnoreOptionFlags "${ARG_IGNORE_OPTION_FLAGS}" d.add IsTapInterface "${ARG_TAP}" d.add FlushDNSCache "${ARG_FLUSH_DNS_CACHE}" d.add ResetPrimaryInterface "${ARG_RESET_PRIMARY_INTERFACE_ON_DISCONNECT}" d.add RouteGatewayIsDhcp "${bRouteGatewayIsDhcp}" d.add bAlsoUsingSetupKeys "${bAlsoUsingSetupKeys}" d.add TapDeviceHasBeenSetNone "false" d.add TunnelDevice "$dev" d.add RestoreIpv6Services "$ipv6_disabled_services_encoded" set State:/Network/OpenVPN # Back up the device's current DNS and SMB configurations, # Indicate 'no such key' by a dictionary with a single entry: "BitmaskNoSuchKey : true" # If there isn't a key, "BitmaskNoSuchKey : true" won't be removed. # If there is a key, "BitmaskNoSuchKey : true" will be removed and the key's contents will be used d.init d.add BitmaskNoSuchKey true get State:/Network/Service/${PSID}/DNS set State:/Network/OpenVPN/OldDNS d.init d.add BitmaskNoSuchKey true get Setup:/Network/Service/${PSID}/DNS set State:/Network/OpenVPN/OldDNSSetup d.init d.add BitmaskNoSuchKey true get State:/Network/Service/${PSID}/SMB set State:/Network/OpenVPN/OldSMB # Initialize the new DNS map via State: ${SKP_DNS}d.init ${SKP_DNS}${SKP_DNS_SA}d.add ServerAddresses * ${FIN_DNS_SA} ${SKP_DNS}${SKP_DNS_SD}d.add SearchDomains * ${FIN_DNS_SD} ${SKP_DNS}${SKP_DNS_DN}d.add DomainName ${FIN_DNS_DN} ${SKP_DNS}set State:/Network/Service/${PSID}/DNS # If necessary, initialize the new DNS map via Setup: also ${SKP_SETUP_DNS}${SKP_DNS}d.init ${SKP_SETUP_DNS}${SKP_DNS}${SKP_DNS_SA}d.add ServerAddresses * ${FIN_DNS_SA} ${SKP_SETUP_DNS}${SKP_DNS}${SKP_DNS_SD}d.add SearchDomains * ${FIN_DNS_SD} ${SKP_SETUP_DNS}${SKP_DNS}${SKP_DNS_DN}d.add DomainName ${FIN_DNS_DN} ${SKP_SETUP_DNS}${SKP_DNS}set Setup:/Network/Service/${PSID}/DNS # Initialize the SMB map ${SKP_SMB}d.init ${SKP_SMB}${SKP_SMB_NN}d.add NetBIOSName ${FIN_SMB_NN} ${SKP_SMB}${SKP_SMB_WG}d.add Workgroup ${FIN_SMB_WG} ${SKP_SMB}${SKP_SMB_WA}d.add WINSAddresses * ${FIN_SMB_WA} ${SKP_SMB}set State:/Network/Service/${PSID}/SMB quit EOF logDebugMessage "DEBUG:" logDebugMessage "DEBUG: Pause for configuration changes to be propagated to State:/Network/Global/DNS and .../SMB" sleep 1 scutil <<-EOF > /dev/null open # Initialize the maps that will be compared when a configuration change occurs d.init d.add BitmaskNoSuchKey true get State:/Network/Global/DNS set State:/Network/OpenVPN/DNS d.init d.add BitmaskNoSuchKey true get State:/Network/Global/SMB set State:/Network/OpenVPN/SMB quit EOF readonly NEW_DNS_SETUP_CONFIG="$( scutil <<-EOF | open show Setup:/Network/Service/${PSID}/DNS quit EOF sed -e 's/^[[:space:]]*[[:digit:]]* : //g' | tr '\n' ' ' )" readonly NEW_SMB_SETUP_CONFIG="$( scutil <<-EOF | open show Setup:/Network/Service/${PSID}/SMB quit EOF sed -e 's/^[[:space:]]*[[:digit:]]* : //g' | tr '\n' ' ' )" readonly NEW_DNS_STATE_CONFIG="$( scutil <<-EOF | open show State:/Network/Service/${PSID}/DNS quit EOF sed -e 's/^[[:space:]]*[[:digit:]]* : //g' | tr '\n' ' ' )" readonly NEW_SMB_STATE_CONFIG="$( scutil <<-EOF | open show State:/Network/Service/${PSID}/SMB quit EOF sed -e 's/^[[:space:]]*[[:digit:]]* : //g' | tr '\n' ' ' )" readonly NEW_DNS_GLOBAL_CONFIG="$( scutil <<-EOF | open show State:/Network/Global/DNS quit EOF sed -e 's/^[[:space:]]*[[:digit:]]* : //g' | tr '\n' ' ' )" readonly NEW_SMB_GLOBAL_CONFIG="$( scutil <<-EOF | open show State:/Network/Global/SMB quit EOF sed -e 's/^[[:space:]]*[[:digit:]]* : //g' | tr '\n' ' ' )" readonly EXPECTED_NEW_DNS_GLOBAL_CONFIG="$( scutil <<-EOF | open show State:/Network/OpenVPN/DNS quit EOF sed -e 's/^[[:space:]]*[[:digit:]]* : //g' | tr '\n' ' ' )" readonly EXPECTED_NEW_SMB_GLOBAL_CONFIG="$( scutil <<-EOF | open show State:/Network/OpenVPN/SMB quit EOF sed -e 's/^[[:space:]]*[[:digit:]]* : //g' | tr '\n' ' ' )" logDebugMessage "DEBUG:" logDebugMessage "DEBUG: Configurations as read back after changes:" logDebugMessage "DEBUG: State:/.../DNS = ${NEW_DNS_STATE_CONFIG}" logDebugMessage "DEBUG: State:/.../SMB = ${NEW_SMB_STATE_CONFIG}" logDebugMessage "DEBUG:" logDebugMessage "DEBUG: Setup:/.../DNS = ${NEW_DNS_SETUP_CONFIG}" logDebugMessage "DEBUG: Setup:/.../SMB = ${NEW_SMB_SETUP_CONFIG}" logDebugMessage "DEBUG:" logDebugMessage "DEBUG: State:/Network/Global/DNS = ${NEW_DNS_GLOBAL_CONFIG}" logDebugMessage "DEBUG: State:/Network/Global/SMB = ${NEW_SMB_GLOBAL_CONFIG}" logDebugMessage "DEBUG:" logDebugMessage "DEBUG: Expected by process-network-changes:" logDebugMessage "DEBUG: State:/Network/OpenVPN/DNS = ${EXPECTED_NEW_DNS_GLOBAL_CONFIG}" logDebugMessage "DEBUG: State:/Network/OpenVPN/SMB = ${EXPECTED_NEW_SMB_GLOBAL_CONFIG}" set +e # "grep" will return error status (1) if no matches are found, so don't fail if not found new_resolver_contents="$( grep -v '#' < /etc/resolv.conf )" set -e # resume abort on error logDebugMessage "DEBUG:" logDebugMessage "DEBUG: /etc/resolve = ${new_resolver_contents}" logDebugMessage "DEBUG:" set +e # scutil --dns will return error status in case dns is already down, so don't fail if no dns found scutil_dns="$( scutil --dns )" set -e # resume abort on error logDebugMessage "DEBUG:" logDebugMessage "DEBUG: scutil --dns AFTER CHANGES = ${scutil_dns}" logDebugMessage "DEBUG:" logMessage "Saved the DNS and SMB configurations so they can be restored" logChange "${SKP_DNS}${SKP_DNS_SA}" "DNS ServerAddresses" "${FIN_DNS_SA}" "${CUR_DNS_SA}" logChange "${SKP_DNS}${SKP_DNS_SD}" "DNS SearchDomains" "${FIN_DNS_SD}" "${CUR_DNS_SD}" logChange "${SKP_DNS}${SKP_DNS_DN}" "DNS DomainName" "${FIN_DNS_DN}" "${CUR_DNS_DN}" logChange "${SKP_SMB}${SKP_SMB_NN}" "SMB NetBIOSName" "${FIN_SMB_SA}" "${CUR_SMB_SA}" logChange "${SKP_SMB}${SKP_SMB_WG}" "SMB Workgroup" "${FIN_SMB_WG}" "${CUR_SMB_WG}" logChange "${SKP_SMB}${SKP_SMB_WA}" "SMB WINSAddresses" "${FIN_SMB_WA}" "${CUR_SMB_WA}" logDnsInfo "${MAN_DNS_SA}" "${FIN_DNS_SA}" flushDNSCache if ${ARG_MONITOR_NETWORK_CONFIGURATION} ; then if [ "${ARG_IGNORE_OPTION_FLAGS:0:2}" = "-p" ] ; then logMessage "Setting up to monitor system configuration with process-network-changes" else logMessage "Setting up to monitor system configuration with leasewatch" fi if [ "${LEASEWATCHER_TEMPLATE_PATH}" != "" ] ; then sed -e "s|/Applications/Bitmask/.app/Contents/Resources|${TB_RESOURCES_PATH}|g" "${LEASEWATCHER_TEMPLATE_PATH}" > "${LEASEWATCHER_PLIST_PATH}" fi launchctl load "${LEASEWATCHER_PLIST_PATH}" fi } ########################################################################################## # Used for TAP device which does DHCP configureDhcpDns() { # whilst ipconfig will have created the neccessary Network Service keys, the DNS # settings won't actually be used by OS X unless the SupplementalMatchDomains key # is added # ref. # - is there a way to extract the domains from the SC dictionary and re-insert # as SupplementalMatchDomains? i.e. not requiring the ipconfig domain_name call? # - wait until we get a lease before extracting the DNS domain name and merging into SC # - despite it's name, ipconfig waitall doesn't (but maybe one day it will :-) logDebugMessage "DEBUG: About to 'ipconfig waitall'" ipconfig waitall logDebugMessage "DEBUG: Completed 'ipconfig waitall'" unset test_domain_name unset test_name_server set +e # We instruct bash NOT to exit on individual command errors, because if we need to wait longer these commands will fail # usually takes at least a few seconds to get a DHCP lease sleep 3 n=0 while [ -z "$test_domain_name" -a -z "$test_name_server" -a $n -lt 5 ] do logMessage "Sleeping for $n seconds to wait for DHCP to finish setup." sleep $n n="$( expr $n + 1 )" if [ -z "$test_domain_name" ]; then test_domain_name="$( ipconfig getoption "$dev" domain_name 2>/dev/null )" fi if [ -z "$test_name_server" ]; then test_name_server="$( ipconfig getoption "$dev" domain_name_server 2>/dev/null )" fi done logDebugMessage "DEBUG: Finished waiting for DHCP lease: test_domain_name = '$test_domain_name', test_name_server = '$test_name_server'" logDebugMessage "DEBUG: About to 'ipconfig getpacket $dev'" sGetPacketOutput="$( ipconfig getpacket "$dev" )" logDebugMessage "DEBUG: Completed 'ipconfig getpacket $dev'; sGetPacketOutput = $sGetPacketOutput" set -e # We instruct bash that it CAN again fail on individual errors unset aNameServers unset aWinsServers unset aSearchDomains nNameServerIndex=1 nWinsServerIndex=1 nSearchDomainIndex=1 if [ "$sGetPacketOutput" ]; then sGetPacketOutput_FirstLine="$( echo "$sGetPacketOutput" | head -n 1 )" logDebugMessage "DEBUG: sGetPacketOutput_FirstLine = $sGetPacketOutput_FirstLine" if [ "$sGetPacketOutput_FirstLine" == "op = BOOTREPLY" ]; then set +e # "grep" will return error status (1) if no matches are found, so don't fail on individual errors for tNameServer in $( echo "$sGetPacketOutput" | grep "domain_name_server" | grep -Eo "\{([0-9\.]+)(, [0-9\.]+)*\}" | grep -Eo "([0-9\.]+)" ); do aNameServers[nNameServerIndex-1]="$( trim "$tNameServer" )" let nNameServerIndex++ done for tWINSServer in $( echo "$sGetPacketOutput" | grep "nb_over_tcpip_name_server" | grep -Eo "\{([0-9\.]+)(, [0-9\.]+)*\}" | grep -Eo "([0-9\.]+)" ); do aWinsServers[nWinsServerIndex-1]="$( trim "$tWINSServer" )" let nWinsServerIndex++ done for tSearchDomain in $( echo "$sGetPacketOutput" | grep "search_domain" | grep -Eo "\{([-A-Za-z0-9\-\.]+)(, [-A-Za-z0-9\-\.]+)*\}" | grep -Eo "([-A-Za-z0-9\-\.]+)" ); do aSearchDomains[nSearchDomainIndex-1]="$( trim "$tSearchDomain" )" let nSearchDomainIndex++ done sDomainName="$( echo "$sGetPacketOutput" | grep "domain_name " | grep -Eo ": [-A-Za-z0-9\-\.]+" | grep -Eo "[-A-Za-z0-9\-\.]+" )" sDomainName="$( trim "$sDomainName" )" if [ ${#aNameServers[*]} -gt 0 -a "$sDomainName" ]; then logMessage "Retrieved from DHCP/BOOTP packet: name server(s) [ ${aNameServers[@]} ], domain name [ $sDomainName ], search domain(s) [ ${aSearchDomains[@]} ] and SMB server(s) [ ${aWinsServers[@]} ]" setDnsServersAndDomainName aNameServers[@] "$sDomainName" aWinsServers[@] aSearchDomains[@] return 0 elif [ ${#aNameServers[*]} -gt 0 ]; then logMessage "Retrieved from DHCP/BOOTP packet: name server(s) [ ${aNameServers[@]} ], search domain(s) [ ${aSearchDomains[@]} ] and SMB server(s) [ ${aWinsServers[@]} ] and using default domain name [ $DEFAULT_DOMAIN_NAME ]" setDnsServersAndDomainName aNameServers[@] "$DEFAULT_DOMAIN_NAME" aWinsServers[@] aSearchDomains[@] return 0 else # Should we return 1 here and indicate an error, or attempt the old method? logMessage "No useful information extracted from DHCP/BOOTP packet. Attempting legacy configuration." fi set -e # We instruct bash that it CAN again fail on errors else # Should we return 1 here and indicate an error, or attempt the old method? logMessage "No DHCP/BOOTP packet found on interface. Attempting legacy configuration." fi fi unset sDomainName unset sNameServer unset aNameServers set +e # We instruct bash NOT to exit on individual command errors, because if we need to wait longer these commands will fail logDebugMessage "DEBUG: About to 'ipconfig getoption $dev domain_name'" sDomainName="$( ipconfig getoption "$dev" domain_name 2>/dev/null )" logDebugMessage "DEBUG: Completed 'ipconfig getoption $dev domain_name'" logDebugMessage "DEBUG: About to 'ipconfig getoption $dev domain_name_server'" sNameServer="$( ipconfig getoption "$dev" domain_name_server 2>/dev/null )" logDebugMessage "DEBUG: Completed 'ipconfig getoption $dev domain_name_server'" set -e # We instruct bash that it CAN again fail on individual errors sDomainName="$( trim "$sDomainName" )" sNameServer="$( trim "$sNameServer" )" declare -a aWinsServers=( ) # Declare empty WINSServers array to avoid any useless error messages declare -a aSearchDomains=( ) # Declare empty SearchDomains array to avoid any useless error messages if [ "$sDomainName" -a "$sNameServer" ]; then aNameServers[0]=$sNameServer logMessage "Retrieved OpenVPN (DHCP): name server [ $sNameServer ], domain name [ $sDomainName ], and no SMB servers or search domains" setDnsServersAndDomainName aNameServers[@] "$sDomainName" aWinsServers[@] aSearchDomains[@] elif [ "$sNameServer" ]; then aNameServers[0]=$sNameServer logMessage "Retrieved OpenVPN (DHCP): name server [ $sNameServer ] and no SMB servers or search domains, and using default domain name [ $DEFAULT_DOMAIN_NAME ]" setDnsServersAndDomainName aNameServers[@] "$DEFAULT_DOMAIN_NAME" aWinsServers[@] aSearchDomains[@] elif [ "$sDomainName" ]; then logMessage "WARNING: Retrieved domain name [ $sDomainName ] but no name servers from OpenVPN via DHCP, which is not sufficient to make network/DNS configuration changes." if ${ARG_MONITOR_NETWORK_CONFIGURATION} ; then logMessage "WARNING: Will NOT monitor for other network configuration changes." fi logDnsInfoNoChanges flushDNSCache else logMessage "WARNING: No DNS information received from OpenVPN via DHCP, so no network/DNS configuration changes need to be made." if ${ARG_MONITOR_NETWORK_CONFIGURATION} ; then logMessage "WARNING: Will NOT monitor for other network configuration changes." fi logDnsInfoNoChanges flushDNSCache fi return 0 } ########################################################################################## # Configures using OpenVPN foreign_option_* instead of DHCP configureOpenVpnDns() { # Description of foreign_option_ parameters (from OpenVPN 2.3-alpha_2 man page): # # DOMAIN name -- Set Connection-specific DNS Suffix. # # DOMAIN-SEARCH name -- Set Connection-specific DNS Search Address. Repeat this option to # set additional search domains. (Bitmask-specific addition.) # # DNS addr -- Set primary domain name server address. Repeat this option to set # secondary DNS server addresses. # # WINS addr -- Set primary WINS server address (NetBIOS over TCP/IP Name Server). # Repeat this option to set secondary WINS server addresses. # # NBDD addr -- Set primary NBDD server address (NetBIOS over TCP/IP Datagram Distribution Server) # Repeat this option to set secondary NBDD server addresses. # # NTP addr -- Set primary NTP server address (Network Time Protocol). Repeat this option # to set secondary NTP server addresses. # # NBT type -- Set NetBIOS over TCP/IP Node type. Possible options: 1 = b-node # (broadcasts), 2 = p-node (point-to-point name queries to a WINS server), 4 = m- # node (broadcast then query name server), and 8 = h-node (query name server, then # broadcast). # # NBS scope-id -- Set NetBIOS over TCP/IP Scope. A NetBIOS Scope ID provides an # extended naming service for the NetBIOS over TCP/IP (Known as NBT) module. The # primary purpose of a NetBIOS scope ID is to isolate NetBIOS traffic on a single # network to only those nodes with the same NetBIOS scope ID. The NetBIOS scope ID # is a character string that is appended to the NetBIOS name. The NetBIOS scope ID # on two hosts must match, or the two hosts will not be able to communicate. The # NetBIOS Scope ID also allows computers to use the same computer name, as they have # different scope IDs. The Scope ID becomes a part of the NetBIOS name, making the # name unique. (This description of NetBIOS scopes courtesy of NeonSurge@abyss.com) # #DISABLE-NBT -- Disable Netbios-over-TCP/IP. unset vForOptions unset vOptions unset aNameServers unset aWinsServers unset aSearchDomains nOptionIndex=1 nNameServerIndex=1 nWinsServerIndex=1 nSearchDomainIndex=1 while vForOptions=foreign_option_$nOptionIndex; [ -n "${!vForOptions}" ]; do vOptions[nOptionIndex-1]=${!vForOptions} case ${vOptions[nOptionIndex-1]} in *DOMAIN-SEARCH* ) aSearchDomains[nSearchDomainIndex-1]="$( trim "${vOptions[nOptionIndex-1]//dhcp-option DOMAIN-SEARCH /}" )" let nSearchDomainIndex++ ;; *DOMAIN* ) sDomainName="$( trim "${vOptions[nOptionIndex-1]//dhcp-option DOMAIN /}" )" ;; *DNS* ) aNameServers[nNameServerIndex-1]="$( trim "${vOptions[nOptionIndex-1]//dhcp-option DNS /}" )" let nNameServerIndex++ ;; *WINS* ) aWinsServers[nWinsServerIndex-1]="$( trim "${vOptions[nOptionIndex-1]//dhcp-option WINS /}" )" let nWinsServerIndex++ ;; * ) logMessage "WARNING: 'foreign_option_${nOptionIndex}' = '${vOptions[nOptionIndex-1]}' ignored" ;; esac let nOptionIndex++ done if [ ${#aNameServers[*]} -gt 0 -a "$sDomainName" ]; then logMessage "Retrieved from OpenVPN: name server(s) [ ${aNameServers[@]} ], domain name [ $sDomainName ], search domain(s) [ ${aSearchDomains[@]} ], and SMB server(s) [ ${aWinsServers[@]} ]" setDnsServersAndDomainName aNameServers[@] "$sDomainName" aWinsServers[@] aSearchDomains[@] elif [ ${#aNameServers[*]} -gt 0 ]; then logMessage "Retrieved from OpenVPN: name server(s) [ ${aNameServers[@]} ], search domain(s) [ ${aSearchDomains[@]} ] and SMB server(s) [ ${aWinsServers[@]} ] and using default domain name [ $DEFAULT_DOMAIN_NAME ]" setDnsServersAndDomainName aNameServers[@] "$DEFAULT_DOMAIN_NAME" aWinsServers[@] aSearchDomains[@] else logMessage "WARNING: No DNS information received from OpenVPN, so no network configuration changes need to be made." if ${ARG_MONITOR_NETWORK_CONFIGURATION} ; then logMessage "WARNING: Will NOT monitor for other network configuration changes." fi logDnsInfoNoChanges flushDNSCache fi return 0 } ########################################################################################## flushDNSCache() { if ${ARG_FLUSH_DNS_CACHE} ; then if [ "${OSVER}" = "10.4" ] ; then if [ -f /usr/sbin/lookupd ] ; then set +e # we will catch errors from lookupd /usr/sbin/lookupd -flushcache if [ $? != 0 ] ; then logMessage "WARNING: Unable to flush the DNS cache via lookupd" else logMessage "Flushed the DNS cache via lookupd" fi set -e # bash should again fail on errors else logMessage "WARNING: /usr/sbin/lookupd not present. Not flushing the DNS cache" fi else if [ -f /usr/bin/dscacheutil ] ; then set +e # we will catch errors from dscacheutil /usr/bin/dscacheutil -flushcache if [ $? != 0 ] ; then logMessage "WARNING: Unable to flush the DNS cache via dscacheutil" else logMessage "Flushed the DNS cache via dscacheutil" fi set -e # bash should again fail on errors else logMessage "WARNING: /usr/bin/dscacheutil not present. Not flushing the DNS cache via dscacheutil" fi if [ -f /usr/sbin/discoveryutil ] ; then set +e # we will catch errors from discoveryutil /usr/sbin/discoveryutil udnsflushcaches if [ $? != 0 ] ; then logMessage "WARNING: Unable to flush the DNS cache via discoveryutil udnsflushcaches" else logMessage "Flushed the DNS cache via discoveryutil udnsflushcaches" fi /usr/sbin/discoveryutil mdnsflushcache if [ $? != 0 ] ; then logMessage "WARNING: Unable to flush the DNS cache via discoveryutil mdnsflushcache" else logMessage "Flushed the DNS cache via discoveryutil mdnsflushcache" fi set -e # bash should again fail on errors else logMessage "/usr/sbin/discoveryutil not present. Not flushing the DNS cache via discoveryutil" fi set +e # "grep" will return error status (1) if no matches are found, so don't fail on individual errors hands_off_ps="$( ps -ax | grep HandsOffDaemon | grep -v grep.HandsOffDaemon )" set -e # We instruct bash that it CAN again fail on errors if [ "${hands_off_ps}" = "" ] ; then if [ -f /usr/bin/killall ] ; then set +e # ignore errors if mDNSResponder isn't currently running /usr/bin/killall -HUP mDNSResponder if [ $? != 0 ] ; then logMessage "mDNSResponder not running. Not notifying it that the DNS cache was flushed" else logMessage "Notified mDNSResponder that the DNS cache was flushed" fi set -e # bash should again fail on errors else logMessage "WARNING: /usr/bin/killall not present. Not notifying mDNSResponder that the DNS cache was flushed" fi else logMessage "WARNING: Hands Off is running. Not notifying mDNSResponder that the DNS cache was flushed" fi fi fi } ########################################################################################## # log information about the DNS settings # @param String Manual DNS_SA # @param String New DNS_SA logDnsInfo() { log_dns_info_manual_dns_sa="$1" log_dns_info_new_dns_sa="$2" if [ "${log_dns_info_manual_dns_sa}" != "" ] ; then logMessage "DNS servers '${log_dns_info_manual_dns_sa}' were set manually" if [ "${log_dns_info_manual_dns_sa}" != "${log_dns_info_new_dns_sa}" ] ; then logMessage "WARNING: that setting is being ignored by OS X; '${log_dns_info_new_dns_sa}' is being used." fi fi if [ "${log_dns_info_new_dns_sa}" != "" ] ; then logMessage "DNS servers '${log_dns_info_new_dns_sa}' will be used for DNS queries when the VPN is active" if [ "${log_dns_info_new_dns_sa}" == "127.0.0.1" ] ; then logMessage "NOTE: DNS server 127.0.0.1 often is used inside virtual machines (e.g., 'VirtualBox', 'Parallels', or 'VMWare'). The actual VPN server may be specified by the host machine. This DNS server setting may cause DNS queries to fail or be intercepted or falsified. Specify only known public DNS servers or DNS servers located on the VPN network to avoid such problems." else set +e # "grep" will return error status (1) if no matches are found, so don't fail on individual errors serversContainLoopback="$( echo "${log_dns_info_new_dns_sa}" | grep "127.0.0.1" )" set -e # We instruct bash that it CAN again fail on errors if [ "${serversContainLoopback}" != "" ] ; then logMessage "NOTE: DNS server 127.0.0.1 often is used inside virtual machines (e.g., 'VirtualBox', 'Parallels', or 'VMWare'). The actual VPN server may be specified by the host machine. If used, 127.0.0.1 may cause DNS queries to fail or be intercepted or falsified. Specify only known public DNS servers or DNS servers located on the VPN network to avoid such problems." else readonly knownPublicDnsServers="$( cat "${FREE_PUBLIC_DNS_SERVERS_LIST_PATH}" )" knownDnsServerNotFound="true" unknownDnsServerFound="false" for server in ${log_dns_info_new_dns_sa} ; do set +e # "grep" will return error status (1) if no matches are found, so don't fail on individual errors serverIsKnown="$( echo "${knownPublicDnsServers}" | grep "${server}" )" set -e # We instruct bash that it CAN again fail on errors if [ "${serverIsKnown}" != "" ] ; then knownDnsServerNotFound="false" else unknownDnsServerFound="true" fi done if ${knownDnsServerNotFound} ; then logMessage "NOTE: The DNS servers do not include any free public DNS servers known to Bitmask. This may cause DNS queries to fail or be intercepted or falsified even if they are directed through the VPN. Specify only known public DNS servers or DNS servers located on the VPN network to avoid such problems." else if ${unknownDnsServerFound} ; then logMessage "NOTE: The DNS servers include one or more free public DNS servers known to Bitmask and one or more DNS servers not known to Bitmask. If used, the DNS servers not known to Bitmask may cause DNS queries to fail or be intercepted or falsified even if they are directed through the VPN. Specify only known public DNS servers or DNS servers located on the VPN network to avoid such problems." else logMessage "The DNS servers include only free public DNS servers known to Bitmask." fi fi fi fi else logMessage "WARNING: There are no DNS servers in this computer's new network configuration. This computer or a DHCP server that this computer uses may be configured incorrectly." fi } logDnsInfoNoChanges() { # log information about DNS settings if they are not changing set +e # "grep" will return error status (1) if no matches are found, so don't fail on individual errors PSID="$( scutil <<-EOF | open show State:/Network/Global/IPv4 quit EOF grep PrimaryService | sed -e 's/.*PrimaryService : //' )" readonly LOGDNSINFO_MAN_DNS_CONFIG="$( scutil <<-EOF | open show Setup:/Network/Service/${PSID}/DNS quit EOF sed -e 's/^[[:space:]]*[[:digit:]]* : //g' | tr '\n' ' ' )" readonly LOGDNSINFO_CUR_DNS_CONFIG="$( scutil <<-EOF | open show State:/Network/Global/DNS quit EOF sed -e 's/^[[:space:]]*[[:digit:]]* : //g' | tr '\n' ' ' )" if echo "${LOGDNSINFO_MAN_DNS_CONFIG}" | grep -q "ServerAddresses" ; then readonly LOGDNSINFO_MAN_DNS_SA="$( trim "$( echo "${LOGDNSINFO_MAN_DNS_CONFIG}" | sed -e 's/^.*ServerAddresses[^{]*{[[:space:]]*\([^}]*\)[[:space:]]*}.*$/\1/g' )" )" else readonly LOGDNSINFO_MAN_DNS_SA=""; fi if echo "${LOGDNSINFO_CUR_DNS_CONFIG}" | grep -q "ServerAddresses" ; then readonly LOGDNSINFO_CUR_DNS_SA="$( trim "$( echo "${LOGDNSINFO_CUR_DNS_CONFIG}" | sed -e 's/^.*ServerAddresses[^{]*{[[:space:]]*\([^}]*\)[[:space:]]*}.*$/\1/g' )" )" else readonly LOGDNSINFO_CUR_DNS_SA=""; fi set -e # resume abort on error logDnsInfo "${LOGDNSINFO_MAN_DNS_SA}" "${LOGDNSINFO_CUR_DNS_SA}" } ########################################################################################## # # START OF SCRIPT # ########################################################################################## trap "" TSTP trap "" HUP trap "" INT export PATH="/bin:/sbin:/usr/sbin:/usr/bin" readonly OUR_NAME="$( basename "${0}" )" logMessage "**********************************************" logMessage "Start of output from ${OUR_NAME}" # Process optional arguments (if any) for the script # Each one begins with a "-" # They come from Bitmask, and come first, before the OpenVPN arguments # So we set ARG_ script variables to their values and shift them out of the argument list # When we're done, only the OpenVPN arguments remain for the rest of the script to use ARG_TAP="false" ARG_WAIT_FOR_DHCP_IF_TAP="false" ARG_RESTORE_ON_DNS_RESET="false" ARG_FLUSH_DNS_CACHE="false" ARG_IGNORE_OPTION_FLAGS="" ARG_EXTRA_LOGGING="false" ARG_MONITOR_NETWORK_CONFIGURATION="false" ARG_DO_NO_USE_DEFAULT_DOMAIN="false" ARG_PREPEND_DOMAIN_NAME="false" ARG_RESET_PRIMARY_INTERFACE_ON_DISCONNECT="false" ARG_TB_PATH="/Applications/Bitmask.app" ARG_RESTORE_ON_WINS_RESET="false" ARG_DISABLE_IPV6_ON_TUN="false" ARG_ENABLE_IPV6_ON_TAP="false" # Handle the arguments we know about by setting ARG_ script variables to their values, then shift them out while [ {$#} ] ; do if [ "$1" = "-6" ] ; then # -6 = ARG_ENABLE_IPV6_ON_TAP (for TAP connections only) ARG_ENABLE_IPV6_ON_TAP="true" shift elif [ "$1" = "-9" ] ; then # -9 = ARG_DISABLE_IPV6_ON_TUN (for TUN connections only) ARG_DISABLE_IPV6_ON_TUN="true" shift elif [ "$1" = "-a" ] ; then # -a = ARG_TAP ARG_TAP="true" shift elif [ "$1" = "-b" ] ; then # -b = ARG_WAIT_FOR_DHCP_IF_TAP ARG_WAIT_FOR_DHCP_IF_TAP="true" shift elif [ "$1" = "-d" ] ; then # -d = ARG_RESTORE_ON_DNS_RESET ARG_RESTORE_ON_DNS_RESET="true" shift elif [ "$1" = "-f" ] ; then # -f = ARG_FLUSH_DNS_CACHE ARG_FLUSH_DNS_CACHE="true" shift elif [ "${1:0:2}" = "-i" ] ; then # -i arguments are for leasewatcher ARG_IGNORE_OPTION_FLAGS="${1}" shift elif [ "$1" = "-l" ] ; then # -l = ARG_EXTRA_LOGGING ARG_EXTRA_LOGGING="true" shift elif [ "$1" = "-m" ] ; then # -m = ARG_MONITOR_NETWORK_CONFIGURATION ARG_MONITOR_NETWORK_CONFIGURATION="true" shift elif [ "$1" = "-n" ] ; then # -n = ARG_DO_NO_USE_DEFAULT_DOMAIN ARG_DO_NO_USE_DEFAULT_DOMAIN="true" shift elif [ "$1" = "-p" ] ; then # -p = ARG_PREPEND_DOMAIN_NAME ARG_PREPEND_DOMAIN_NAME="true" shift elif [ "${1:0:2}" = "-p" ] ; then # -p arguments are for process-network-changes ARG_IGNORE_OPTION_FLAGS="${1}" shift elif [ "$1" = "-r" ] ; then # -r = ARG_RESET_PRIMARY_INTERFACE_ON_DISCONNECT ARG_RESET_PRIMARY_INTERFACE_ON_DISCONNECT="true" shift elif [ "${1:0:2}" = "-t" ] ; then ARG_TB_PATH="${1:2}" # -t path of Bitmask.app shift elif [ "$1" = "-w" ] ; then # -w = ARG_RESTORE_ON_WINS_RESET ARG_RESTORE_ON_WINS_RESET="true" shift else if [ "${1:0:1}" = "-" ] ; then # Shift out Bitmask arguments (they start with "-") that we don't understand shift # so the rest of the script sees only the OpenVPN arguments else break fi fi done readonly ARG_MONITOR_NETWORK_CONFIGURATION ARG_RESTORE_ON_DNS_RESET ARG_RESTORE_ON_WINS_RESET ARG_TAP ARG_PREPEND_DOMAIN_NAME ARG_FLUSH_DNS_CACHE ARG_RESET_PRIMARY_INTERFACE_ON_DISCONNECT ARG_IGNORE_OPTION_FLAGS # Note: The script log path name is constructed from the path of the regular config file, not the shadow copy # if the config is shadow copy, e.g. /Library/Application Support/Bitmask/Users/Jonathan/Folder/Subfolder/config.ovpn # then convert to regular config /Users/Jonathan/Library/Application Support/Bitmask/Configurations/Folder/Subfolder/config.ovpn # to get the script log path # Note: "/Users/..." works even if the home directory has a different path; it is used in the name of the log file, and is not used as a path to get to anything. readonly TBALTPREFIX="/Library/Application Support/Bitmask/Users/" readonly TBALTPREFIXLEN="${#TBALTPREFIX}" readonly TBCONFIGSTART="${config:0:$TBALTPREFIXLEN}" if [ "$TBCONFIGSTART" = "$TBALTPREFIX" ] ; then readonly TBBASE="${config:$TBALTPREFIXLEN}" readonly TBSUFFIX="${TBBASE#*/}" readonly TBUSERNAME="${TBBASE%%/*}" readonly TBCONFIG="/Users/$TBUSERNAME/Library/Application Support/Bitmask/Configurations/$TBSUFFIX" else readonly TBCONFIG="${config}" fi readonly CONFIG_PATH_DASHES_SLASHES="$( echo "${TBCONFIG}" | sed -e 's/-/--/g' | sed -e 's/\//-S/g' )" readonly SCRIPT_LOG_FILE="/Library/Application Support/Bitmask/Logs/${CONFIG_PATH_DASHES_SLASHES}.script.log" readonly TB_RESOURCES_PATH="${ARG_TB_PATH}/Contents/Resources" readonly FREE_PUBLIC_DNS_SERVERS_LIST_PATH="${TB_RESOURCES_PATH}/FreePublicDnsServersList.txt" # These scripts use a launchd .plist to set up to monitor the network configuration. # # If Bitmask.app is located in /Applications, we load the launchd .plist directly from within the .app. # # If Bitmask.app is not located in /Applications (i.e., we are debugging), we create a modified version of the launchd .plist and use # that modified copy in the 'launchctl load' command. (The modification is that the path to process-network-changes or leasewatch program # in the .plist is changed to point to the copy of the program that is inside the running Bitmask.) # # The variables involved in this are set up here: # # LEASEWATCHER_PLIST_PATH is the path of the .plist to use in the 'launchctl load' command # LEASEWATCHER_TEMPLATE_PATH is an empty string if we load the .plist directly from within the .app, # or it is the path to the original .plist inside the .app which we copy and modify # REMOVE_LEASEWATCHER_PLIST is "true" if a modified .plist was used and should be deleted after it is unloaded # or "false' if the plist was loaded directly from the .app # # LEASEWATCHER_PLIST_PATH and REMOVE_LEASEWATCHER_PLIST are passed to the other scripts via the scutil State:/Network/OpenVPN mechanism if [ "${ARG_IGNORE_OPTION_FLAGS:0:2}" = "-p" ] ; then readonly LEASEWATCHER_PLIST="ProcessNetworkChanges.plist" else readonly LEASEWATCHER_PLIST="LeaseWatch.plist" fi if [ "${ARG_TB_PATH}" = "/Applications/Bitmask.app" ] ; then readonly LEASEWATCHER_PLIST_PATH="${TB_RESOURCES_PATH}/${LEASEWATCHER_PLIST}" readonly LEASEWATCHER_TEMPLATE_PATH="" readonly REMOVE_LEASEWATCHER_PLIST="false" else readonly LEASEWATCHER_PLIST_PATH="/Library/Application Support/Bitmask/${LEASEWATCHER_PLIST}" readonly LEASEWATCHER_TEMPLATE_PATH="${TB_RESOURCES_PATH}/${LEASEWATCHER_PLIST}" readonly REMOVE_LEASEWATCHER_PLIST="true" fi set +e # "grep" will return error status (1) if no matches are found, so don't fail on individual errors readonly OSVER="$( sw_vers | grep 'ProductVersion:' | grep -o '10\.[0-9]*' )" set -e # We instruct bash that it CAN again fail on errors if ${ARG_DO_NO_USE_DEFAULT_DOMAIN} ; then readonly DEFAULT_DOMAIN_NAME="" else readonly DEFAULT_DOMAIN_NAME="openvpn" fi bRouteGatewayIsDhcp="false" # We sleep to allow time for OS X to process network settings sleep 2 EXIT_CODE=0 if ${ARG_TAP} ; then # IPv6 should be re-enabled only for TUN, not TAP readonly ipv6_disabled_services="" readonly ipv6_disabled_services_encoded="" # Still need to do: Look for route-gateway dhcp (TAP isn't always DHCP) bRouteGatewayIsDhcp="false" if [ -z "${route_vpn_gateway}" -o "$route_vpn_gateway" == "dhcp" -o "$route_vpn_gateway" == "DHCP" ]; then bRouteGatewayIsDhcp="true" fi if [ "$bRouteGatewayIsDhcp" == "true" ]; then logDebugMessage "DEBUG: bRouteGatewayIsDhcp is TRUE" if [ -z "$dev" ]; then logMessage "ERROR: Cannot configure TAP interface for DHCP without \$dev being defined. Exiting." # We don't create the "/tmp/bitmask-downscript-needs-to-be-run.txt" file, because the down script does NOT need to be run since we didn't do anything logMessage "End of output from ${OUR_NAME}" logMessage "**********************************************" exit 1 fi logDebugMessage "DEBUG: About to 'ipconfig set \"$dev\" DHCP" ipconfig set "$dev" DHCP logMessage "Did 'ipconfig set \"$dev\" DHCP'" if ${ARG_ENABLE_IPV6_ON_TAP} ; then ipconfig set "$dev" AUTOMATIC-V6 logMessage "Did 'ipconfig set \"$dev\" AUTOMATIC-V6'" fi if ${ARG_WAIT_FOR_DHCP_IF_TAP} ; then logMessage "Configuring tap DNS via DHCP synchronously" configureDhcpDns else logMessage "Configuring tap DNS via DHCP asynchronously" configureDhcpDns & # This must be run asynchronously; the DHCP lease will not complete until this script exits EXIT_CODE=0 fi elif [ "$foreign_option_1" == "" ]; then logMessage "NOTE: No network configuration changes need to be made." if ${ARG_MONITOR_NETWORK_CONFIGURATION} ; then logMessage "WARNING: Will NOT monitor for other network configuration changes." fi if ${ARG_ENABLE_IPV6_ON_TAP} ; then logMessage "WARNING: Will NOT set up IPv6 on TAP device because it does not use DHCP." fi logDnsInfoNoChanges flushDNSCache else if ${ARG_ENABLE_IPV6_ON_TAP} ; then logMessage "WARNING: Will NOT set up IPv6 on TAP device because it does not use DHCP." fi logMessage "Configuring tap DNS via OpenVPN" configureOpenVpnDns EXIT_CODE=$? fi else if [ "$foreign_option_1" == "" ]; then logMessage "NOTE: No network configuration changes need to be made." if ${ARG_MONITOR_NETWORK_CONFIGURATION} ; then logMessage "WARNING: Will NOT monitor for other network configuration changes." fi if ${ARG_DISABLE_IPV6_ON_TUN} ; then logMessage "WARNING: Will NOT disable IPv6 settings." fi logDnsInfoNoChanges flushDNSCache else ipv6_disabled_services="" if ${ARG_DISABLE_IPV6_ON_TUN} ; then ipv6_disabled_services="$( disable_ipv6 )" if [ "$ipv6_disabled_services" != "" ] ; then printf %s "$ipv6_disabled_services " | \ while IFS= read -r dipv6_service ; do logMessage "Disabled IPv6 for '$dipv6_service'" done fi fi readonly ipv6_disabled_services # Note '\n' is translated into '\t' so it is all on one line, because grep and sed only work with single lines readonly ipv6_disabled_services_encoded="$( echo "$ipv6_disabled_services" | tr '\n' '\t' )" configureOpenVpnDns EXIT_CODE=$? fi fi touch "/tmp/bitmask-downscript-needs-to-be-run.txt" logMessage "End of output from ${OUR_NAME}" logMessage "**********************************************" exit $EXIT_CODE riseup-vpn-0.24.5+ds1/branding/templates/osx/cross-compile.txt000066400000000000000000000011321461742244100243120ustar00rootroot00000000000000# some notes on cross-compiling for osx wget https://s3.dockerproject.org/darwin/v2/MacOSX10.10.sdk.tar.xz sha256sum 631b4144c6bf75bf7a4d480d685a9b5bda10ee8d03dbf0db829391e2ef858789 git clone https://github.com/tpoechtrager/osxcross mv MacOSX* osxcross/tarballs sudo apt-get install -y --force-yes clang llvm-dev libxml2-dev uuid-dev \ libssl-dev bash patch make tar xz-utils bzip2 gzip sed cpio libbz2-dev cd oscross ./build.sh PATH=$PATH:/home/user/dev/osxcross/osxcross/target/bin/ MACOSX_DEPLOYMENT_TARGET=10.10 CGO_ENABLED=1 GOOS=darwin CC="o64-clang" go build 0xacab.org/leap/bitmask-systray riseup-vpn-0.24.5+ds1/branding/templates/osx/signbundle000066400000000000000000000006551461742244100230600ustar00rootroot00000000000000#!/bin/sh # -------------------------------------------- # Signs a RiseupVPN pkg file # Usage: signbundle # # Use it when you have built it in a # machine with no access to the certificates. # -------------------------------------------- OSX_CERT="Developer ID Installer: LEAP Encryption Access Project" productsign --sign "$OSX_CERT" $1 $1-signed.pkg mv $1-signed.pkg ../dist/$applicationName-OSX-$2-signed.pkg riseup-vpn-0.24.5+ds1/branding/templates/qtinstaller/000077500000000000000000000000001461742244100225265ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/templates/qtinstaller/config/000077500000000000000000000000001461742244100237735ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/templates/qtinstaller/config/config.xml000066400000000000000000000012471461742244100257660ustar00rootroot00000000000000 $APPNAME $VERSION $APPNAME Installer ($VERSION) LEAP Encryption Access Project https://leap.se false installer-logo.png installer-icon uninstall $PLATFORM_BLOCK riseup-vpn-0.24.5+ds1/branding/templates/qtinstaller/installer.pro000066400000000000000000000010421461742244100252420ustar00rootroot00000000000000!defined(INSTALLER, var):INSTALLER= "BitmaskVPN-Installer-git" !defined(TARGET, var):TARGET= "bitmask-vpn" TEMPLATE = aux CONFIG -= debug_and_release INPUT = $$PWD/config/config.xml $$PWD/packages inst.input = INPUT inst.output = $$INSTALLER inst.commands = binarycreator --ignore-translations -c $$PWD/config/config.xml -p $$PWD/packages ${QMAKE_FILE_OUT} inst.CONFIG += target_predeps no_link combine QMAKE_TARGET_BUNDLE_PREFIX = se.leap QMAKE_BUNDLE = $$TARGET QMAKE_EXTRA_COMPILERS += inst # OTHER_FILES += \ macx { } linux { } win32{ } riseup-vpn-0.24.5+ds1/branding/templates/qtinstaller/linux-data/000077500000000000000000000000001461742244100245745ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/templates/qtinstaller/linux-data/readme000066400000000000000000000000361461742244100257530ustar00rootroot00000000000000linux-specific installer data riseup-vpn-0.24.5+ds1/branding/templates/qtinstaller/osx-data/000077500000000000000000000000001461742244100242465ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/templates/qtinstaller/osx-data/post-install.go000066400000000000000000000144271461742244100272360ustar00rootroot00000000000000package main import ( "bytes" "flag" "fmt" "io" "log" "os" "os/exec" "path/filepath" "strings" "text/template" ) /* Outline * runs as root and setup the bitmask-helper privileged helper on macOS * needs to perform the following steps: * 1. check if running as root * 2. setup the plist file with the correct path to bitmask-helper * 3. install plist file in location * 4. while doing the above make sure that existing helper is not running and removed */ const ( plistTemplate = ` WorkingDirectory {{ .Path }} StandardOutPath {{ .Path }}/helper/bitmask-helper.log StandardErrorPath {{ .Path }}/helper/bitmask-helper-err.log GroupName daemon RunAtLoad SessionCreate KeepAlive ThrottleInterval 5 Label se.leap.BitmaskHelper Program {{ .Path }}/bitmask-helper ` plistPath = "/Library/LaunchDaemons/se.leap.bitmask-helper.plist" helperName = "bitmask-helper" launchdDaemonLabel = "se.leap.BitmaskHelper" // -action flag values actionPostInstall = "post-install" actionUninstall = "uninstall" // -stage flag values stagePre = "preinstall" stageUninstall = "uninstall" ) var ( curdir = func() string { execPath, err := os.Executable() if err != nil { log.Printf("error getting executable path: %v", err) return "" } return filepath.Dir(execPath) }() appBundlePath = func() string { names, err := filepath.Glob(filepath.Join(curdir, "*VPN.app")) if err != nil { log.Printf("error finding .app bundle path: %v", err) return "" } if len(names) >= 1 { return names[0] } return "" }() // flags installerAction string installerStage string ) func init() { const ( action = "action" stage = "stage" ) var usageAction = fmt.Sprintf("the installer actions: %s", strings.Join([]string{actionPostInstall, actionUninstall}, ",")) var usageStage = fmt.Sprintf("the installer action stage: preinstall, uninstall") flag.StringVar(&installerAction, action, "", usageAction) flag.StringVar(&installerStage, stage, stageUninstall, usageStage) flag.Parse() } func main() { if os.Getuid() != 0 { log.Fatal("not running as root") } switch installerAction { case actionPostInstall: if err := setupLogFile(filepath.Join(curdir, "post-install.log")); err != nil { log.Fatal(err) } log.Println("running action: post-install") if appBundlePath == "" { log.Fatal("could not find path to .app bundle") } err := postInstall() if err != nil { log.Fatal(err) } case actionUninstall: log.Println("running action: uninstall") uninstall(installerStage) default: log.Fatal("unknown command supplied: %s", installerAction) } } func setupLogFile(logFile string) error { f, err := os.Create(logFile) if err != nil { return err } w := io.MultiWriter(os.Stdout, f) log.SetOutput(w) return nil } func postInstall() error { if isHelperRunning() { if err := unloadHelperPlist(); err != nil { log.Println(err) } } log.Println("Changing ownership of 'bitmask-helper'") // change ownership of bitmask-helper to root if err := os.Chown(filepath.Join(appBundlePath, helperName), 0, 0); err != nil { log.Println("error while changing ownership of 'bitmask-helper': ", err) } // copy launchd plist file to target location /Library/LaunchDaemons log.Println("Generate plist file for helper launchd daemon") plist, err := generatePlist() if err != nil { return err } log.Println(plist) log.Println("Writing plist content to file") fout, err := os.OpenFile(plistPath, os.O_CREATE|os.O_RDWR, 0644) if err != nil { return err } if n, err := io.WriteString(fout, plist); n < len(plist) || err != nil { return fmt.Errorf("failed writing the plist file: %s: %v", fout.Name(), err) } // load the plist file onto launchd log.Println("Loading plist file") if err := loadHelperPlist(plistPath); err != nil { log.Printf("error while loading launchd daemon: %s: %v\n", plistPath, err) } // change ownership of 'helper' dir log.Println("Changing ownership of 'helper' dir") if err := os.Chown(filepath.Join(appBundlePath, "helper"), 0, 0); err != nil { log.Println("error while changing ownership of dir 'helper': ", err) } return nil } func uninstall(stage string) { switch stage { case stagePre, stageUninstall: if err := setupLogFile(filepath.Join("/tmp", fmt.Sprintf("bitmask-%s.log", stage))); err != nil { log.Fatal(err) } if appBundlePath == "" { log.Fatal("could not find path to .app bundle") } default: log.Fatal("unknow stage for uninstall: ", stage) } if isHelperRunning() { if err := unloadHelperPlist(); err != nil { log.Println("error while unloading launchd daemon: ", err) } } if err := os.Remove(plistPath); err != nil { log.Println("error while removing helper plist: ", err) } } func isHelperRunning() bool { cmd := exec.Command("ps", "-ceAo", "command") out, err := cmd.Output() if err != nil { log.Println(err) return false } processes := strings.Split(string(out), "\n") for _, proc := range processes { if strings.TrimSpace(proc) == "bitmask-helper" { return true } } return false } func loadHelperPlist(plistPath string) error { cmd := exec.Command("launchctl", "load", plistPath) _, err := cmd.Output() if err != nil { return err } return nil } func unloadHelperPlist() error { cmd := exec.Command("launchctl", "unload", plistPath) _, err := cmd.Output() if err != nil { return err } cmd = exec.Command("launchctl", "remove", launchdDaemonLabel) _, _ = cmd.Output() cmd = exec.Command("pkill", "-9", helperName) _, err = cmd.Output() return err } func generatePlist() (string, error) { appPath := struct { Path string }{ Path: appBundlePath, } t, err := template.New("plist").Parse(plistTemplate) if err != nil { return "", err } plistContent := &bytes.Buffer{} err = t.Execute(plistContent, appPath) if err != nil { return "", err } return plistContent.String(), nil } riseup-vpn-0.24.5+ds1/branding/templates/qtinstaller/packages/000077500000000000000000000000001461742244100243045ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/templates/qtinstaller/packages/bitmaskvpn/000077500000000000000000000000001461742244100264625ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/templates/qtinstaller/packages/bitmaskvpn/.gitignore000066400000000000000000000000071461742244100304470ustar00rootroot00000000000000data/* riseup-vpn-0.24.5+ds1/branding/templates/qtinstaller/packages/bitmaskvpn/meta/000077500000000000000000000000001461742244100274105ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/templates/qtinstaller/packages/bitmaskvpn/meta/install.js000066400000000000000000000166451461742244100314300ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2020 LEAP Encryption Access Project ** ****************************************************************************/ function majorVersion(str) { return parseInt(str.split(".", 1)); } // from: https://forum.qt.io/topic/114975/qt-installerframework-is-altering-my-string-slashes var Dir = new function () { this.toNativeSeparator = function (path) { if (installer.value("os") == "win") return path.replace(/\//g, '\\'); return path; } }; function cancelInstaller(message) { installer.setDefaultPageVisible(QInstaller.Introduction, false); installer.setDefaultPageVisible(QInstaller.TargetDirectory, false); installer.setDefaultPageVisible(QInstaller.ComponentSelection, false); installer.setDefaultPageVisible(QInstaller.ReadyForInstallation, false); installer.setDefaultPageVisible(QInstaller.StartMenuSelection, false); installer.setDefaultPageVisible(QInstaller.PerformInstallation, false); installer.setDefaultPageVisible(QInstaller.LicenseCheck, false); var abortText = "" + message +""; installer.setValue("FinishedText", abortText); } function Component() { // Check whether OS is supported. // start installer with -v to see debug output console.log("OS: " + systemInfo.productType); console.log("Kernel: " + systemInfo.kernelType + "/" + systemInfo.kernelVersion); installer.setDefaultPageVisible(QInstaller.TargetDirectory, false); var validOs = false; if (systemInfo.kernelType === "winnt") { if (majorVersion(systemInfo.kernelVersion) >= 6) validOs = true; } else if (systemInfo.kernelType === "darwin") { if (majorVersion(systemInfo.kernelVersion) >= 11) validOs = true; } else { if (systemInfo.productType !== "ubuntu" || systemInfo.productVersion !== "20.04") { QMessageBox["warning"]("os.warning", "Installer", "Note that the binaries are only tested on Ubuntu 20.04", QMessageBox.Ok); } validOs = true; } if (!validOs) { cancelInstaller("Installation on " + systemInfo.prettyProductName + " is not supported"); return; } console.log("CPU Architecture: " + systemInfo.currentCpuArchitecture); } Component.prototype.createOperations = function () { if (systemInfo.productType === "osx") { preInstallOSX(); } if (systemInfo.productType === "windows") { preInstallWindows(); } // This will actually install the files component.createOperations(); // And now our custom actions. // See https://doc.qt.io/qtinstallerframework/operations.html for reference // // We can also use this to register different components (different architecture for instance) // See https://doc.qt.io/qtinstallerframework/qt-installer-framework-systeminfo-packages-root-meta-installscript-qs.html if (systemInfo.productType === "windows") { postInstallWindows(); } else if (systemInfo.productType === "osx") { uninstallOSX(); postInstallOSX(); } else { postInstallLinux(); } } function preInstallWindows() { console.log("Pre-installation for Windows: check for running bitmask"); component.addOperation( "Execute", "{1}", "powershell", "-NonInteractive", "-NoProfile", "-command", "try {Get-Process $BINNAME} catch { exit 1}", "errormessage=It seems that an old RiseupVPN client is running. Please exit the app and run this installer again.", ); /* Remove-Service only introduced in PS 6.0 */ component.addElevatedOperation( "Execute", "{0}", "powershell", "-NonInteractive", "-NoProfile", "-command", "try {Get-Service bitmask-helper-v2} catch {exit 0}; try {Stop-Service bitmask-helper-v2} catch {}; try {$$srv = Get-Service bitmask-helper-v2; if ($$srv.Status -eq 'Running') {exit 1} else {exit 0};} catch {exit 0}", "errormessage=It seems that bitmask-helper-v2 service is running, and we could not stop it. Please manually uninstall any previous RiseupVPN or CalyxVPN client and run this installer again.", ); } function postInstallWindows() { // TODO - we probably need to package different flavors of the installer for windows 8, arm, i386 etc, and change the installer we ship too. var openVpnMsi = Dir.toNativeSeparator(installer.value("TargetDir") + "/openvpn-installer.msi") console.log("Installing OpenVPN binaries and service"); component.addElevatedOperation("Execute", "{0}", "msiexec", "/i", openVpnMsi, "ADDLOCAL=OpenVPN.Service,OpenVPN,Drivers,Drivers.TAPWindows6,Drivers.Wintun", "/passive") console.log("Adding shortcut entries..."); component.addElevatedOperation("Mkdir", "@StartMenuDir@"); component.addElevatedOperation("CreateShortcut", "@TargetDir@\\$BINNAME.exe", "@StartMenuDir@\\$APPNAME.lnk", "workingDirectory=@TargetDir@", "iconPath=@TargetDir@\\icon.ico", "description=Start $APPNAME"); // TODO I think this one is not being created because the path doesn't exist yet. We might want to do this by hooking on the installation finished signal instead. component.addElevatedOperation( "CreateShortcut", "@TargetDir@\\Uninstall-$APPNAME.exe", "@StartMenuDir@\\Uninstall.lnk" ); } function preInstallOSX() { console.log("Pre-installation for OSX: check for running bitmask"); component.addOperation( "Execute", "{1}", "pgrep", "bitmask-vpn$$", /* $$$$ is escaped by python template: the old app binary was called bitmask-vpn */ "errormessage=It seems that an old RiseupVPN client is running. Please exit the app and run this installer again.", ); component.addOperation( "Execute", "{1}", "pgrep", "bitmask$$", /* $$$$ is escaped by python template: we don't want to catch bitmask app */ "errormessage=It seems RiseupVPN, CalyxVPN or LibraryVPN are running. Please exit the app and run this installer again.", "UNDOEXECUTE", "{1}", "pgrep", "bitmask$$", /* $$$$ is escaped: we dont want bitmask app */ "errormessage=It seems RiseupVPN, CalyxVPN or LibraryVPN are running. Please exit the app before trying to run the uninstaller again." ); } function uninstallOSX() { console.log("Pre-installation for OSX: uninstall previous helpers"); // TODO use installer filepath?? component.addElevatedOperation( "Execute", "{0}", "@TargetDir@/post-install", "-action=uninstall", "-stage=preinstall", "errormessage=There was an error during the pre-installation script, things might be broken. Please report this error and attach /tmp/bitmask-uninstall.log" ); } function postInstallOSX() { console.log("Post-installation for OSX"); component.addElevatedOperation( "Execute", "{0}", "@TargetDir@/post-install", "-action=post-install", "errormessage=There was an error during the post-installation script, things might be broken. Please report this error and attach the post-install.log file.", "UNDOEXECUTE", "@TargetDir@/post-install", "-action=uninstall" ); } function postInstallLinux() { console.log("Post-installation for GNU/Linux"); console.log("Maybe you want to use your package manager instead?"); component.addOperation("AppendFile", "/tmp/bitmask-installer.log", "this is a test - written from the installer"); } riseup-vpn-0.24.5+ds1/branding/templates/qtinstaller/packages/bitmaskvpn/meta/package.xml000066400000000000000000000006021461742244100315230ustar00rootroot00000000000000 $APPNAME $APPNAME_PLATFORM $VERSION $TIMESTAMP false true true riseup-vpn-0.24.5+ds1/branding/templates/qtinstaller/win-data/000077500000000000000000000000001461742244100242325ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/templates/qtinstaller/win-data/readme000066400000000000000000000000401461742244100254040ustar00rootroot00000000000000windows-specific installer data riseup-vpn-0.24.5+ds1/branding/templates/snap/000077500000000000000000000000001461742244100211255ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/templates/snap/generate.py000077500000000000000000000024351461742244100233000ustar00rootroot00000000000000#!/usr/bin/env python3 """ generate.py Generate a snap package for a given provider. """ import json import os from string import Template TEMPLATE = 'snapcraft-template.yaml' SNAPCRAFT = 'snapcraft.yaml' here = os.path.split(os.path.realpath(__file__))[0] data = json.load(open(os.path.join(here, 'data.json'))) binaryName = data['binaryName'] DESKTOP_TEMPLATE = 'local/app.desktop' DESKTOP = 'local/{}.desktop'.format(binaryName) POLKIT_TEMPLATE = 'local/pre/se.leap.bitmask.snap.policy' POLKIT_FILE = 'se.leap.bitmask.{}.policy'.format(binaryName) POLKIT = 'local/pre/' + POLKIT_FILE template = Template(open(TEMPLATE).read()) with open(SNAPCRAFT, 'w') as output: output.write(template.safe_substitute(data)) template = Template(open(DESKTOP_TEMPLATE).read()) with open(DESKTOP, 'w') as output: output.write(template.safe_substitute(data)) os.remove(DESKTOP_TEMPLATE) template = Template(open(POLKIT_TEMPLATE).read()) with open(POLKIT, 'w') as output: output.write(template.safe_substitute(data)) os.remove(POLKIT_TEMPLATE) os.putenv('POLKIT_FILE', POLKIT_FILE) os.putenv('APP_NAME', binaryName) os.system('cd local/pre && ./pack_installers') print("[+] Snapcraft spec written to {path}".format( path=os.path.abspath(SNAPCRAFT))) riseup-vpn-0.24.5+ds1/branding/templates/snap/hooks/000077500000000000000000000000001461742244100222505ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/templates/snap/hooks/install000077500000000000000000000044721461742244100236530ustar00rootroot00000000000000#!/usr/bin/env python3 # DO NOT MODIFY MANUALLY # This helper installs the polkit policy file # for the RiseupVPN snap. # It is generated automatically # by the script at "snap/pre/pack_installers" import subprocess import os from base64 import decodebytes as decode POLKIT = b'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHBvbGljeWNv\nbmZpZyBQVUJMSUMKICItLy9mcmVlZGVza3RvcC8vRFREIFBvbGljeUtpdCBQb2xpY3kgQ29uZmln\ndXJhdGlvbiAxLjAvL0VOIgogImh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnL3N0YW5kYXJkcy9Q\nb2xpY3lLaXQvMS9wb2xpY3ljb25maWcuZHRkIj4KPHBvbGljeWNvbmZpZz4KCiAgPHZlbmRvcj5M\nRUFQIFByb2plY3Q8L3ZlbmRvcj4KICA8dmVuZG9yX3VybD5odHRwOi8vbGVhcC5zZS88L3ZlbmRv\ncl91cmw+CgogIDxhY3Rpb24gaWQ9InNlLmxlYXAuYml0bWFzay5yaXNldXB2cG4ucG9saWN5Ij4K\nICAgIDxkZXNjcmlwdGlvbj5SdW5zIGJpdG1hc2sgaGVscGVyIHRvIGxhdW5jaCBmaXJld2FsbCBh\nbmQgb3BlbnZwbiAoUmlzZXVwVlBOKTwvZGVzY3JpcHRpb24+CiAgICA8ZGVzY3JpcHRpb24geG1s\nOmxhbmc9ImVzIj5FamVjdXRhIGVsIGFzaXN0ZW50ZSBkZSBiaXRtYXNrIHBhcmEgbGFuemFyIGVs\nIGZpcmV3YWxsIHkgb3BlbnZwbiAoUmlzZXVwVlBOKTwvZGVzY3JpcHRpb24+CiAgICA8bWVzc2Fn\nZT5SaXNldXBWUE4gbmVlZHMgdGhhdCB5b3UgYXV0aGVudGljYXRlIHRvIHN0YXJ0PC9tZXNzYWdl\nPgogICAgPG1lc3NhZ2UgeG1sOmxhbmc9ImVzIj5SaXNldXBWUE4gbmVjZXNpdGEgYXV0b3JpemFj\naW9uIHBhcmEgY29tZW56YXI8L21lc3NhZ2U+CiAgICA8aWNvbl9uYW1lPnBhY2thZ2UteC1nZW5l\ncmljPC9pY29uX25hbWU+IAogICAgPGRlZmF1bHRzPgogICAgICA8YWxsb3dfYW55PnllczwvYWxs\nb3dfYW55PgogICAgICA8YWxsb3dfaW5hY3RpdmU+eWVzPC9hbGxvd19pbmFjdGl2ZT4KICAgICAg\nPGFsbG93X2FjdGl2ZT55ZXM8L2FsbG93X2FjdGl2ZT4KICAgIDwvZGVmYXVsdHM+CiAgICA8YW5u\nb3RhdGUga2V5PSJvcmcuZnJlZWRlc2t0b3AucG9saWN5a2l0LmV4ZWMucGF0aCI+L3NuYXAvYmlu\nL3Jpc2V1cC12cG4uYml0bWFzay1yb290PC9hbm5vdGF0ZT4KICA8L2FjdGlvbj4KPC9wb2xpY3lj\nb25maWc+Cg==\n' with open('/usr/share/polkit-1/actions/se.leap.bitmask.riseup-vpn.policy', 'w') as polkit: lines = decode(POLKIT).split(b"\n") for line in lines: polkit.write(line.decode() + "\n") with open('/etc/os-release') as f: release = f.read() # this is a workaround for the fact that debian does not place snap desktop entries in a system+wide path. if 'ID=debian' in release: desktop_path = "/usr/share/applications/riseup-vpn.desktop" if os.path.exists(desktop_path): os.remove(desktop_path) os.symlink("/snap/riseup-vpn/current/snap/meta/gui/riseup-vpn.desktop", desktop_path) subprocess.call(['update-desktop-database']) riseup-vpn-0.24.5+ds1/branding/templates/snap/hooks/remove000077500000000000000000000003661461742244100235000ustar00rootroot00000000000000#!/bin/sh echo "Executing remove hook for RiseupVPN" rm "/usr/share/polkit-1/actions/se.leap.bitmask.riseup-vpn.policy" unlink "/usr/share/applications/riseup-vpn.desktop" || echo "did not remove workaround for global desktop entry" echo "done" riseup-vpn-0.24.5+ds1/branding/templates/snap/local/000077500000000000000000000000001461742244100222175ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/templates/snap/local/app.desktop000066400000000000000000000004761461742244100244010ustar00rootroot00000000000000[Desktop Entry] Version=1.0 Type=Application Name=${applicationName} Comment=Anonymous VPN Comment[es]=VPN Anonima Comment[de]=Anonymous VPN Path=/snap/bin/ Exec=${binaryName}.launcher Terminal=false Icon=${SNAP}/meta/gui/${binaryName}.png Categories=Network;Application; StartupNotify=true Keywords=VPN;${name};leap riseup-vpn-0.24.5+ds1/branding/templates/snap/local/pre/000077500000000000000000000000001461742244100230055ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/templates/snap/local/pre/pack_installers000077500000000000000000000033241461742244100261130ustar00rootroot00000000000000#!/usr/bin/env python3 import os import subprocess from base64 import encodebytes as encode HELPDIR = '../../../../../helpers' INSTALL = '../../hooks/install' POLKIT_FILE = os.environ.get('POLKIT_FILE') APP_NAME = os.environ.get('APP_NAME') with open(POLKIT_FILE) as polkit: b64_polkit = encode(polkit.read().encode()) with open(INSTALL, 'w') as install: install.write('#!/usr/bin/env python3\n') install.write('# DO NOT MODIFY MANUALLY\n') install.write('# This helper installs the polkit policy file\n') install.write('# for the ${applicationName} snap.\n') install.write('# It is generated automatically\n') install.write('# by the script at "snap/local/pre/pack_installers"\n') install.write('import subprocess\n') install.write('import os\n') install.write('from base64 import decodebytes as decode\n') install.write(""" POLKIT = {polkit} with open('/usr/share/polkit-1/actions/{polkit_file}', 'w') as polkit: lines = decode(POLKIT).split(b"\\n") for line in lines: polkit.write(line.decode() + "\\n") with open('/etc/os-release') as f: release = f.read() # this is a workaround for the fact that debian does not place snap desktop entries in a system+wide path. if 'ID=debian' in release: desktop_path = "/usr/share/applications/{app_name}.desktop" if os.path.exists(desktop_path): os.remove(desktop_path) os.symlink("/snap/{app_name}/current/snap/meta/gui/{app_name}.desktop", desktop_path) subprocess.call(['update-desktop-database']) """.format( polkit=b64_polkit, polkit_file=POLKIT_FILE, app_name=APP_NAME)) subprocess.Popen(["chmod", "+x", INSTALL]) print("[+] Done packing installers into the snap install hook...") riseup-vpn-0.24.5+ds1/branding/templates/snap/snapcraft-template.yaml000066400000000000000000000175451461742244100256170ustar00rootroot00000000000000name: ${binaryName} version: ${version} summary: ${applicationName}, secure VPN. Powered by Bitmask. description: | ${applicationName} is an easy, fast, and secure VPN service from ${providerURL}. ${applicationName} does not require a user account, keep logs, or track you in any way. The service is paid for entirely by donations from users like you. grade: stable confinement: classic icon: snap/gui/icon.svg base: core22 compression: lzo architectures: - build-on: amd64 - build-on: i386 parts: bitmask-root: plugin: dump source: pkg source-type: local override-prime: | mkdir -p bin cp $SNAPCRAFT_PART_SRC/pickle/helpers/bitmask-root bin/ chmod +x bin/bitmask-root openvpn: plugin: nil stage-packages: [openvpn] prime: - -usr/share/doc - -usr/share/man bitmask-vpn: plugin: nil build-attributes: - enable-patchelf source: . source-type: local build-environment: - QMAKE: qmake6 stage: - bin/${binaryName} override-build: | # TODO - this still has some round corners for vendoring. # Maybe we just need to put the providers.json in the VENDOR_PATH # and pass it to gui/providers from some path that snap can access. # Same for the vendor.qrc update-alternatives --install /usr/bin/gofmt gofmt /usr/lib/go-1.21/bin/gofmt 0 update-alternatives --install /usr/bin/go go /usr/lib/go-1.21/bin/go 0 ln -s $(qmake6 -query "QT_INSTALL_BINS")/lrelease /usr/local/bin/lrelease mkdir -p $SNAPCRAFT_PART_INSTALL/snap/ mkdir -p $SNAPCRAFT_PRIME/snap/ make vendor make build mkdir -p $SNAPCRAFT_PART_INSTALL/bin mv build/qt/release/${binaryName} $SNAPCRAFT_PART_INSTALL/bin/ build-packages: - pkg-config - g++ - golang-1.21-go - git - make - qt6-tools-dev-tools - qt6-tools-dev - qml-module-qtquick-controls2 - libqt6qml6 - libqt6svg6-dev - qt6-l10n-tools - qt6-base-dev - qt6-base-dev-tools - qt6-declarative-dev - qt6-declarative-dev-tools - libgl1-mesa-dev - libqt6core5compat6-dev - libglu1-mesa-dev - libqt6opengl6-dev stage-packages: - qml6-module-qtquick - qml6-module-qt5compat-graphicaleffects - qml6-module-qtquick-controls - qml6-module-qtquick-dialogs - qml6-module-qtquick-layouts - qml6-module-qtqml-workerscript - qml6-module-qtquick-templates - qml6-module-qtquick-window - qml6-module-qt-labs-platform - qml6-module-qtcore - qt6-wayland - libopengl0 - libqt6core6 - libqt6dbus6 - libqt6gui6 - libqt6network6 - libqt6qml6 - libqt6widgets6 - libb2-1 - libdouble-conversion3 - libgomp1 - libmd4c0 - libpcre2-16-0 - libproxy1v5 - libxkbcommon0 # gsettings, pixbuf and immodules are not needed by all snaps, # but they are so common a requirement include them here gsettings+pixbuf+immodules: plugin: nil build-packages: - libgdk-pixbuf2.0-0 - librsvg2-common - shared-mime-info - libgtk-3-0 override-build: | craftctl default # Update mime database update-mime-database ${CRAFT_PART_INSTALL}/usr/share/mime # build immodules cache mkdir -p ${CRAFT_PART_INSTALL}/usr/lib/${CRAFT_ARCH_TRIPLET}/gtk-3.0/3.0.0/ /usr/lib/${CRAFT_ARCH_TRIPLET}/libgtk-3-0/gtk-query-immodules-3.0 > ${CRAFT_PART_INSTALL}/usr/lib/${CRAFT_ARCH_TRIPLET}/gtk-3.0/3.0.0/immodules.cache stage-packages: - librsvg2-common - gsettings-desktop-schemas - libglib2.0-bin override-prime: | craftctl default # Compile the gsettings schemas /usr/lib/${CRAFT_ARCH_TRIPLET}/glib-2.0/glib-compile-schemas "$CRAFT_PRIME/usr/share/glib-2.0/schemas" # Index the pixbuf loaders LOADERS_PATH=$(echo ${CRAFT_PRIME}/usr/lib/${CRAFT_ARCH_TRIPLET}/gdk-pixbuf-2.0/*/loaders) QUERY_LOADERS=/usr/lib/${CRAFT_ARCH_TRIPLET}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders GDK_PIXBUF_MODULEDIR=${LOADERS_PATH} ${QUERY_LOADERS} > ${LOADERS_PATH}/../loaders.cache sed s!$CRAFT_PRIME!!g --in-place ${LOADERS_PATH}/../loaders.cache setup: plugin: dump source: https://github.com/canonical/iot-example-graphical-snap.git source-subdir: wayland-launch override-build: | # The plugs needed to run Wayland. (wayland-launch checks them, setup.sh connects them) # You may add further plugs here if you want these options PLUGS="opengl wayland graphics-core22" sed --in-place "s/%PLUGS%/$PLUGS/g" $CRAFT_PART_BUILD/wayland-launch/bin/wayland-launch sed --in-place "s/%PLUGS%/$PLUGS/g" $CRAFT_PART_BUILD/wayland-launch/bin/setup.sh craftctl default stage-packages: - inotify-tools graphics-core22: after: # Your application packaging - gsettings+pixbuf+immodules - setup - bitmask-vpn source: https://github.com/MirServer/graphics-core22.git plugin: dump override-prime: | craftctl default ${CRAFT_PART_SRC}/bin/graphics-core22-cleanup mesa-core22 nvidia-core22 cd "$CRAFT_PRIME/usr/share/" rm -rf bug drirc.d glvnd libdrm lintian man rm -rf applications apport bash-completion dbus-1 doc-base doc gtk-doc\ help pkgconfig libthai metainfo themes thumbnailers xml prime: - bin/graphics-core22-wrapper apps: bitmask-root: command: bin/bitmask-root openvpn: command: usr/sbin/openvpn launcher: command-chain: &_command-chain - bin/graphics-core22-wrapper - bin/wayland-launch command: &_command bin/${binaryName} plugs: &_plugs - opengl - wayland environment: &_environment # These environment variables are typically needed by Qt applications to ensue the snapped version of # Qt components are found and used QT_QPA_PLATFORM: wayland QT_PLUGIN_PATH: ${SNAP}/usr/lib/${SNAPCRAFT_ARCH_TRIPLET}/qt6/plugins/ QT_QPA_PLATFORM_PLUGIN_PATH: ${SNAP}/usr/lib/${SNAPCRAFT_ARCH_TRIPLET}/qt6/plugins/platforms/ QML2_IMPORT_PATH: ${SNAP}/usr/lib/${SNAPCRAFT_ARCH_TRIPLET}/qt6/qml daemon: daemon: simple restart-delay: 3s restart-condition: always command-chain: *_command-chain command: *_command plugs: *_plugs environment: *_environment # This is one of four snippets that relate to providing the userspace graphics needed by your application. # You can treat this as "magic" so long as you don't need to make changes. # On the Mir website there's a lot more detail on [the graphics-core22 Snap interface](https://mir-server.io/docs/the-graphics-core22-snap-interface) and it's use. plugs: graphics-core22: interface: content target: $SNAP/graphics default-provider: mesa-core22 environment: # Other, generally useful environment settings... # XDG config XDG_CACHE_HOME: $SNAP_USER_COMMON/.cache XDG_CONFIG_HOME: $SNAP_USER_DATA/.config XDG_CONFIG_DIRS: $SNAP/etc/xdg XDG_DATA_DIRS: $SNAP/usr/local/share:$SNAP/usr/share # XKB config XKB_CONFIG_ROOT: $SNAP/usr/share/X11/xkb # The `layout` ensures that files can be found by applications where they are expected by the toolkit or application. layout: /usr/share/libdrm: bind: $SNAP/graphics/libdrm /usr/share/drirc.d: symlink: $SNAP/graphics/drirc.d # Other, generally useful paths /usr/share/fonts: bind: $SNAP/usr/share/fonts /usr/share/icons: bind: $SNAP/usr/share/icons /usr/share/sounds: bind: $SNAP/usr/share/sounds /etc/fonts: bind: $SNAP/etc/fonts # GTK /usr/lib/$CRAFT_ARCH_TRIPLET/gdk-pixbuf-2.0: bind: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET/gdk-pixbuf-2.0 /usr/lib/${CRAFT_ARCH_TRIPLET}/gtk-3.0: bind: $SNAP/usr/lib/${CRAFT_ARCH_TRIPLET}/gtk-3.0 /usr/share/mime: bind: $SNAP/usr/share/mime /etc/gtk-3.0: bind: $SNAP/etc/gtk-3.0 riseup-vpn-0.24.5+ds1/branding/templates/vendor/000077500000000000000000000000001461742244100214615ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/templates/vendor/vendor.qrc000066400000000000000000000001661461742244100234700ustar00rootroot00000000000000 assets/icon.svg riseup-vpn-0.24.5+ds1/branding/templates/windows/000077500000000000000000000000001461742244100216565ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/templates/windows/tools/000077500000000000000000000000001461742244100230165ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/templates/windows/tools/README-cert.txt000066400000000000000000000001201461742244100254400ustar00rootroot00000000000000openssl pkcs12 -inkey privatekey.pem -in signing_cert.pem -export -out LEAP.pfx riseup-vpn-0.24.5+ds1/branding/templates/windows/tools/README-signtool.txt000066400000000000000000000035201461742244100263500ustar00rootroot00000000000000Source: https://stackoverflow.com/questions/31869552/how-to-install-signtool-exe-for-windows-10 ----------------------------------------------------------------------------------------------- If you only want SignTool and really want to minimize the install, here is a way that I just reverse-engineered my way to: Download the .iso file from https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk (current download link is http://go.microsoft.com/fwlink/p/?LinkID=2022797) The .exe download will not work, since it's an online installer that pulls down its dependencies at runtime. Unpack the .iso with a tool such as 7-zip. Install the Installers/Windows SDK Signing Tools-x86_en-us.msi file - it's only 388 KiB large. For reference, it pulls in its files from the following .cab files, so these are also needed for a standalone install: 4c3ef4b2b1dc72149f979f4243d2accf.cab (339 KiB) 685f3d4691f444bc382762d603a99afc.cab (1002 KiB) e5c4b31ff9997ac5603f4f28cd7df602.cab (389 KiB) e98fa5eb5fee6ce17a7a69d585870b7c.cab (1.2 MiB) There we go - you will now have the signtool.exe file and companions in C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64 (replace x64 with x86, arm or arm64 if you need it for another CPU architecture.) It is also possible to commit signtool.exe and the other files from this folder into your version control repository if want to use it in e.g. CI scenarios. I have tried and it seems to work fine. (All files are probably not necessary since there are also some other .exe tools in this folder that might be responsible for these dependencies, but I am not sure which ones could be removed to make the set of files even smaller. Someone else is free to investigate further in this area. :) I tried to just copy signtool.* and that didn't work, so at least some of the other files are needed.) riseup-vpn-0.24.5+ds1/branding/templates/windows/tools/windows10-signing.zip000066400000000000000000044147461461742244100270550ustar00rootroot00000000000000PK"ENwindows10-signing/PKTWM(,windows10-signing/appxsip.dll]{\TU ( (> ,%)ʹXJSW Q۬n[n[VcC|/PRU:&Zw=k<w;u: NY~k!:nֻt;cS1s|tCc>Ozb~$fN13q3ih8?$qf@awDsiAh5Tٝt.9%N)tt#%;6^ݱs)'ɱ1:){m>Zvg.4= ,Ιtiۗ䱱sx5Ol3 H$J"y 166Κgq{S"#,E)4ޔhYVO1 #4:bRqz5l! }؎Ϭe%cxS[R[`Hɻ 6>c_Y-9_0ܾp%i~KG&K_@H6_!BclF,EKf'SElGt^Z$)'y (Q$ew!c9Ԫ"z=(LA$ DKR@ пlسX ɓIB<4q bmԗ7>#$dӺzE7Ao9ʺMsHs;\cRf"P}8\lO ?mZ'+#b)g'ڕ3"hs+9%cvUXi'_ ғSUڲͽZJGrP&{x } Ix:(} eẂWiBQ Z+q R(άXr:|# 6H3tO&qk k1" ,SBAUKS+ܥ-B*mWUFciYVLp| W2G!˂PSN0gFK޹1$ߌҒ z7^b'%ineg'-b7r"K;h|r֜HSLn_[I62$))4 9b$g;R4r$IĶ87Pu|)`c$p{QڛT\Kt5Ԩ zscC6vv&P2JfzR[{V-|&'i)G 797 sܤQ7r uw՜iF\9D+R0cݴ/bջXݙ' gjxg2G\rDcHB&="$4ęHa$'٢ff:vVfX,lX4w`,ﰚ:i a f$38FYJс6][>NaT;?ziP=U1y^4@0w#1yE.Ӓ|{&&U.FڪGt'^u;,FʚM"yԂF ((ig磿E"Թak$ȌrÚWO'խ JQ cݹhXKH@T HpQArIf\[ğ-n";4,1|^|j N[з>=>!:P b# jNJ2?h)R''ӈPc6Ćo=FBO$H' ܝm)w:E͘[P9̃p“D+ ?T3P™I@af]܈`܄܌3DG %_C xSmoK)˭:$mo*X <Mw@*)쨣O K@ž ʅ\j0*}=rEe A%_[Q]wob`Qsf$i (c5Xo0KO¬7oHr9Ys和ݞ._#Gj1Th$˫L,I#-ayu_uaom<a^ߤv:h:hbfke_˺LZBznq~]@q&f*M% Bxd/I/;debtaϚ7M:׉78mMAIGdm:yiZ# ,^"BOJ$u#DSښVz(yj_!vwj3~wW8+C?dsRPxi={"R3'`nci\!+r7|~U=5N6cVر$|%p``3n<חK.W+ri )΄$|rl]Ŷɤ&wr$݌N$: DM.LǚSJ5R]e_9.T݉ D"Ёa4`ؘ[#_9ɖ٢CnTZYB.ߐ_Kr6wTs]r;i~3Ոn1D8g=^E$,s?B~.ǡry&)/HQ5҄ }$M65࿎GfE_[Vg]8Jv PF w k&ϲB-k%Ȣu mG1*3e:!D)i U~O :Ok L?1`6m}9Ϡ'*sŒC&!ppPQ|ډSD$y+NJH>6ZZiux&TamO^5-vɥDR>oDS*"Z1v@PH^02)&o"M0iiwXSvIYFRadE }<; H m(բ/%h"!&DCޭ\Qͷ7|™5֎\dTZ}DfZ>lnGA,]*$q-4g0ZsNa&/%k-A?4HKlϖu Z_*# J/PJOyDbv2^ua$ M@Ƨ: hM%L| &鞬fn2HrfO4]Bi5[&0̝ Z X{}2vjEhVRu\~U@4R~Hah[Q U+t}42M,46 (+!fC3Aߔ[4u #NlPp<òٹ ԄjMkhi!D".`Wcg{fRW [Ӈ*CXIH=dGN#6Ft=]ƹi)`RFOc< w)vHYn_ji>$Ѧ{) v@.P\܏H}lo[x>0e7뚣EWŸ;I\y+it֪:D݃s2 ZeR ["탢`~$UBjEU+.wk#8UӲ\ia^X*PՎhUHv H MoMGHmNz$_]`vI2F'\OtW/\_SsB[&#hTP ^ ZW (@m=qGEw-ӡV~&WCKOObg5F^e=5g.ͼ&V򓛔AIx,yW*.duK>&sWĻ3\^,.ÝMI7xT^77ҔU[:[ě7IMoc? bkڰ&Ҙcӏ;ˠl U\ *\H1aM=z6ِp'vˑ"JX}Q@Q5*aSdzKLnð0VQk"VWvehaѳx>% }NJtFV#i.k]sH@*OaNY)=%GMV^Bl4o.%7GXGL5hDF5檗MHO8D;{g[Ds"p0W,K5{ϚwE]C; /:ϥO\b2JcInL(3$ڌF'unyk֘\ Wug.#$Zԍ`^VD6̄6닻i ԩ^،fBQJpApe 4ZDnBاr7A1x 䣷Wݾީ'M6yy_|)@_4s$!d +d+iJ4ƐHܕSbVqTёm[4^DĐGc3E1:b;Ņ&!"Y]ȑ I Ƴ{n-vL}j2bYF4Z& }]X(*4(ƃb|b&Ï#SpUgU'"({#[RnX9_syu =N{kB Z\M$~+`{LØ.\)|%XZ!ЃLѩ@U5;$ڙ [i^Ǥbh`1| ~ژ6F /0 ؿRAAM:_,=&~ H-,B#d;`)7_kLj"afmml&T5 ~7t^qr|XYwnL>#;p0Payƿ4JTwpjBPCϨ d.VgMm0֋F$+<$7U34ՠ>Ū~rAܳmZWQX/O6h(xYZ;c/ :Nd'~T,ຮ[g`]Rtֈ?„x7NEڶ4-ӛz$΀75 RaC]&G>bᲊiT:WԈE"m|{#ѧjRb'} ʹ#vQƌ1Lld:b~iא=F.W5}g{m;iQ4 ]2akb 6fz~2}/a |7'#$<^Jɤ*w5؍h;cJ2LV !{Z'+y 9٨9VNH_'Fcg\M*4 o';@A.\z#dfG|*dۢRQ [xm:&"u+lMcPHc,C4<ɼZUóQ5|ɒ=LXGTj'v$ PRБcG=wg} HՖ-9KJ״]=vU|SUg^7y5o&V^Q$XJUCu |)>,-uHגhF/nY>O =+F҄{\iDuNXɸ;iEQ I:|TK z J80>kF?6EШdԱ)!?D2um(eYi~v'k^=UX\b aJE[\>m'HYn2"MQ(^vty㩉v`^6!<{-WSZaoV\+ d* ήh $C ]Ȍ!AJ_?e`]hfEv!_:I݋Vk;6_mUF;Y~ W3Yy \SmjGB~N٪ QBLY蛯()TܚN0A:C?ӓR*A,Bb!ADh@3.T8g:r,*FV퐰.fi<P@{81LH ܬP6p~Oprv%{vF3qGp6u'9#T7tFQorFWڜO3osD)Em/M5^"Z6!Giޗ<{F3+ts%#t ܸ2t1ԉcTNpvTəgZ|LFa~ZPL-<9aT+ dA~>ŔDf:]=P_¹Ms.kK\\w͹$ι2Z;si}}nDݔq֡c.c.;K{m^fȽjũj#yUܝd @_C"N،X_.>ӧ%0U&n1d1Q >D 6V?t}/^_<+U4´s5GHG] +cc a#}r&3 ^Da< P)$bh_8 󏀂 #vA=(֭|W^)*K5ǕS)z~S km;0* 3ɬ(o6U6(ć( ֻ{Q"%5֒?@:_]Tӈw}i\$,B1{^"ڬcG \H4tĬl-(ת^-OR,Zhs0kcsȸ+dh"Bc᝽JSKј/t b]ԜT[F4ig УASh"S[NϺ #+RH:i@T=-GOfk6Ғ&]FVvG]P5'# Av~Lj |R*m5ipʻ,(R1 6/(Q]9Ȯ=6="Wy"'OXθ'oFj&*(37;s B(1[rI(F6ѫۑ0_\cMDx.g%߬kT Ьdr<=X:ߠ,;m2µ7&I8W%"L0+bIاZſď<Ȕܛp:ٝ Z%NuAG ;j JzȞo@{0Um5%R(Ψi\4ZL ab?~;uי!u|(O O@1船LsYBmw^Q;938LP?TW%$rJ՜a<;yNȩUs<' rJ[ں.Ty6hD0V#*rj[n\ ojf6a.F,/[x^vt6䝱ܱ.!x.{6ZC}lkC0^vn? /@tWܽ? o-㞭W~t BwB F~4) ^X6K/`;̠ ~\")?p˼_)|K0󴞟h8.v-[$6;f orWým'JHQ9{K  x}&`ؿ3U)/LqvJ?="G;Ӯ9D5gr3r\ q51! oPCC5Yk"C4dcv@h L|'p,9(C+/U|tMFd9 >NmxaZR} o/0z4 k=/0.S5Czб7~sZ\ýʹB)]1c>v|}o1|^)rÿ-lv߭V}=|lv9b]|-o{fT,>fL1C(>)bD1!W񱿏9>v!(67erccg}mRomr&˹$>vj>iwE.v#uz~=^ORq|dױ[(EXrFk"HZ5vK.0E!vVv`b0m.+v'[7FXB[}ЪxHJ65dkJFXmPmT6n GjA0Y&C0 X֜1jo9n.ox=\SR Yp;=.^*PtlC:6[Ya0^X@kOXR\=h؄zX8*V}FiHV!ZX5Q X,sbz-5m& j?Gy$Cb W[凴N}b瞞 FpIL(j'墁o׎aK ]z֐ MC)yTdUXu|" ^~/v59?fԩA 7v'CXO@ڼťB ZB^Jc4f^֋m J 6zrWWѓcI齜_-Fm\aM!ts FMew4|\+F_1B${:Ȼ/C7/i$LiZQ*_P2lI%/S:R8sSjXys =2|ټLt.J*IY2:]hiO6?d_٪>bͧn0{`GقKNZ$FJ,REA&H;6(@wZ~þ ]a,Y=ꛌArWp i Dr).i AɄvy9bp?_ s}IWdʦu.eldY{_caRGc *`_ώGA0k qа+흰eX?1\yRZOUUJ_l"OHQn%H(A u+ߨ s{Bp]8MH $PTO8+|>mD0Tv3TjK@Sn$-ݷWۡUԲPMH5C bxG"j`wT&\] VLCxcF1 i3edjBj?34u͂yʕFq4(? 6[{N+<xK5 %U;k(9iCظF`?(!f'(]NC],bҧOM~'~A`0l ]Nkz7 RYN:ccpVpԔ7# ^>w^Jv^>3zDZ fyi4me l9:Lq^ZUeghtڛsy\yDOqfἬ7f,;L |7t[͡}g&oVo A^+k+z-z}h= z]뒝?־7#IҘ@|Fc`M~|Yf6S2HpGOO)5v^u͒=ᇓ2z<}.BixdE! s. C~ 5g)On$waYPb\nzQ=M>v:rU8t|=7i_)ySIϙs S#|8UU|ŵ(B?guu_# :~fIhDS Nο:*d?:5+T}f ie\bߺ-7 әAR. ? KF 2…?^@ӊwM!/g`"YLZ^;B V(>Ed2iYje`oNH|Pqsy u$ :t/=uѸ?=vg#)]cthU8n5q1RyAl/Sc>>>=,6G1keW@wv% %jXeJ<^ߡz8hCb c% 7e~vLf{g;34ld"A@|W Ȫjڞؠ[Ì`iS``H4viBܦ',(z)@Ȯ!xwtZw6NE vO& &\Ah44lrNځ$!_S0>fgتt# - *[@{}$wz ë)ens)tˆI3(-ψ_ pI3Teڧf)F / le_l)^0cz R҃ܬl[hT%#R3q<CFXMc9 >cxiő[ܜt{ :b%Řr,Y ?բtmݙwRW~vt|m[)F;\ܩê^RWtSzbҶ).4aC/*7:Y=c807яnMD.3 XAN3ڧ%;J$datIK %D O"!Nz@.8z8mN y b&s>N7Sݳ;8c_@"PZqEO<BgTZJ<g>%ipC1`.pYt@&Ky̺czTNR(!ߋʏ^':?@/jƄ;5u :`?f|aq_KxL9l ȫ+-XxYfMo Ih ^]Ę&]Du Ry>$?zB F -?6V 1:CP!eR}Q%NZ/?^LS_`AU}3C%ؘ?^̶۸W>a?tz_O;nP>jUTV3܋%HjB^x./dgX+̰S `DRW$(*:3k,$Q{Ĉt؃y6"PIV%[~Ꙟޝm?$]O^ KVY =.7ã>kȧ#WS(W*ЇYײPx#su4<85!fma6#i7uYzu]Zwzwbмvu.=}fUO OS8c,rU<ҿ}_$s cÅJw0ݓRre#v$`7\ <jrc{y_f4cIͲzzgҍXlTm2} /l%ΥQ+Iqڵ{mE{`| t9 o-+?sSh#ѯ?hLU(K'MQTQ O",_'=3 ^f^7f&#~M< 'D7پmq'u]u kp=2/2yM./4Zy9:h7.[Oo2 =M:O׵~Vc %tX9Fj8Ћu+ ٠׺'ӿt{^B]FdܱJϑ]!Xz#Moeznڄ ъ;9LoQî(\GVZrnԋfR4v:o|q_ɿ[~/^Uxz07zo~#(ᅰnaz\1^o}հnn=Y[,RWiU13gh/+UjB5 .a$j(6:b 'BHeunw{ErDpWսO7wy^P]^/,CG!&08Tݚ!|@=onΛ¹iv\sniװ|ݬdj8NLBf^t`zt[i~3[c'$}q@d WʏhN)_Ñ8y U4aqN >43~`*a~  ۸Aɡ}Uݣyv.O tG&g %e0*.FD!i0y55iwwGF)@S(*w۲P9;c;!KqmկQzi![yhLi+(F OyRb-vATJAs$h'gW|>ylcՓcEgD'$㵈ޕжLf-/_O3įoa[. lZa pm8S,GI%(k^emi+mH gR ؒM - ̘UySFs=(1(mf9P]pE%-&&^T<+ fxVN63oMJUO.s I󬼻yVbS0ޜ0`pd#3tP-D¡_xc8I $ v@~Ң)j.&unLRxYx) J K*~[ ?A gb߸@/rUd ǒ-{?e{EmnbOcM{>4;}w_FK%zGp</c"T̓i<GK8}lZqz1szgjuCǁ(a5E;1;Hܯw$;.;6ނ Wcӏ-#TiH@]eߙ g9jsͿCθ#c\yLhay4U}+}iRY}=zGݪO4<}|7wwۢw![IhgC:D1`_GTǥfL4hVޢh́K-{qit3L8=*N,ٛ8= u['Aİ m.U|_qsMo;RE2MrAEKv {1N}t(̙: u ]&GvqS!~B/u_u}psOjvm d#c?uoeuVy,iru5o03k<)%tCqஎ[ѐ*9nӇKDQ^kXc:WK㌏#y8=g깞{d,;"Fyߡ wUv=u T74 {]xA^,0hXEZ'oAj) k)l1(\GĨ]j0t`.9?H9ӽ {okXi9o&_]A-N|c]#,[T_`^k$kP- MgՕr/EWR&=FU|>7nv3n2g}#1J7xXA-LF碓'zҀ&߆S벗1L5ƆG3,}rW| n̆w.!6!Z[-¸tI3&4* Gy_T5޲׷5d_Fy_7 @wkp-1\oݿ`Wo=SuWZ0N()F@u붛_g+->+|Ye~cV vDfmf^P$T_nn}"G*5;6 ˑ9M}mφlOl Ì6ئ d"|m=>lMۯį`߮VeR-7fh|g}m+6X~A;V/9@ZWF1k0{L/#SL;A<\oBÏ6֗<G`6_ݩ0dUC2zWգj+o)x5q̹L[ ew2T;Ki`AsHOx$|~&(y%0[niN-@N.kRrs]meGAV%!{}.'IjbܟdU.Jϡ<mvs{ǺEIa5ʚCgO%6_ՁEI ;dcdy|R9q<_wٶyv. g2? b]%L6{1Aga :&E@%@*}~V[4y"[c`hCr&ebX$ygXWfblD5D4K؎Q) 6PҐ@|iAP~&xVRRJ.\&.5`M $Kǩptz_ZU]O`r S[#By)Y6`:T"_ٝ'C/M7Ի!>, TyV3"O6M&Nl 1p.)ݓ+C/^4R nPx~ W ܐ:ez/W6sj Jv b_'/|#?@Khab+0̷}Bk"x}ׅ_w2&W#f%qb7 7l) 43gH 1^^ g7>.p=,÷ ՙsZYw;];&t=W4(Pf~|.v͜i(1f5,g'@qC)Kr~![ovokP )v$OɾJГ`)X> سGyB& ;8I"v'6SK ~4Ju;ne׎F+c{tNMpLP4>:0?K;>g)HX1MFf=՘2).X!m b F047DlHr{OWxyDfN_#Ӧ ȷmo5m{O&cg0Nb-0:oDsDyy5PyiBm]C9Пa#ΞŖ_ݽ6exɜp`G(x=kma*_C8'9*+5qE 0ߘ. 6B^`pY8Z=$7מ0xiUœl WX "@–F&/S WZw[&@ܠYK)?XRBtlWʠ6-]|P78BK/O!@LN)SLNRV]:}#2ixƑ-aqtN=L ]`G­:4-+Z"Z:2ih߮Ĺd5ZIr' q;]5/? V7): Ȇ cC2;p]}\/g9 Ìd'ļۢimK?)iNJ.}o!|`$ZO9H+ 1AI+Ok3yF%4D7!*DŻEU⽺Ty5^*k&)ͼ<1XԌ*&{FCojCA@="{_ YE0+Oh < ʆASoNѾ٤9)jL/@cĖt˨z-s0:X\};%0+R & tBWC ګ!5 z5Jn-x8A =C l@Zn~GU#Q:xr Fka[$Zw#fi\584: 76L@>]Z^][<ɯ 0-z hPS~p؈3h#~F!HR7. F ˁdxe &P>;lb }i1NH⊉cRG3LyT9gw 6"t#}X vB])x>`O68B1CbfOǕH˜f;Ewhb= Ętt!ez?o .[Mגݬ+xܥ\bh{Y dUۋfE IGbnB-;R7CLKN+9n2ڷ_JaJa\Z␠J.0f '($>)}}v80Ӊ$3ˇ3o1nʎ;:`T)dðN*?,s/=)7X-je)HF>jHiLj4$big_a(=$=/-i`ļ6w\YH_&Jl589o!jJ$GĒ ~#.!14aw;.A{dq 0r2@F֢'L#`9כkXo"9Nr'dvUe/MYW#Q>S^HKh<1q>?ELɏ|nR]74#<&G*g07w\&` (JH7l uGD=tH..Ӓ'T}=Ҍ?ɷv!Z`^x8%)Ì5B¢8}QP%??ME!#A} (&MiaK0CmX<i5mBn%y{oiØ\Uq,H +.V]\9O~1 H/#]*XqA#Hܕe: 8Z4ҋ%>)yW,)yW;FlEzZInKݽlcybCSvJhD6L:(v޺6Y{kj5;OZf}pOuPSFdR2f1o`v2lIJUxvXV1=x_Vh>O yOR/>&KWFbOòkʷ#H/@cJyoP ڠ)pod>$Z&\Z~xN QaT4V{}4;HgX\&:Pp=] !5"G3]N<mʵis4SH^=J[Wlt_Wt5S|ea~øe%hY]ށ9Ccl8 e@:%hM0zmo0B@_ =b=?@V&Weks4 v"\C[#j"ڌ t>xڋfi`H<B^ Z{4Z7Hph,X FRTlʭA:>SVR,#sꜽy5|(Q7<61 ,un>զC.?tFuTkvm^QM 8/8M|&04S2 Ҟ`?h8SӍsN[":* *BxqGR9mP+knxL7˙f!!Nm!iItV7 byH'-L1u~yTJ= W߹B7esj+TJ4=acgV7V6jsϜ6K9^oYڜ4xL?J-VܓV-ooy^|0PE1h]|닍ئ&0#뉖5i2̩Gl=:ՏiX?73$aiR&EY qTRi+ۧuO0oT!Bׇ:[D NC=%zl\c !۰QqO݂IV,_U'=ѭen M#$>sƤwV\QT4Wz_Ea\A+lGG߆ܓ,$R(V(#+Dh ߿nA-̖4 QB"]~{DtC=`dcʉјYLK>VQ:Chg:"˭2I@_d# m*1>,&^``E !rBD;^ |2+Bc9yy5~7cB\4Iә0)vjw3~t隘YwwO7 hC)/zUu @ޔ]@Oxi1ofc_ʼn= 97R"gabu֓\4; 4 Q#.m؍/U+rR"js>O[(_0W󅷌L_HB}L3\T ߎXj!*UM1dW=cCzDfy <+',?MJaβ4| k&%Pqd tgOX3{=$D^Ǥ鵧l@dCt}CKx[jz=?]cGJgϦiH_R ZwJVgNs+ՙ]+Atuv U lm#qQ4%]) "Yű! 2>$. ʺJE8sRRw3BDQ)P5<(S_d &1z3D6`^K0wP\KZ8$ff)9tap܌LZKR֏0~wϵL-[{d|}<ܫ(L\|@-v6xGv̨~0/vB+~5qjTeWQ!H P`TS.wMnכkjWb ٶV|4g3K&dZ6G }iRrTp';$@2L+Nt:>o_gV=MY۪kAPzNPڢ)HOA:GҹayB3ă,]M:THP >%]o$a4 tp4o}l+f'ODkhjbu EeE?Z0[TَkP=c#=h/wa$L# {|41 ;2ED[H,OPuIؑ_ՙ)K\SnዙJUNd 68gB*vrmy;[aIZBZϓƾ)wD2g & p駐pAv9\@ǽvgwc>B \.HP].fdѻq`^볺al8n#i J( sTN;crBRI^3hHt> äfs9E>E|.$yk&sY_*sSH }.x<6NG٣{on gcD'XLY^dkaN뭂oKIY:{qNR{`Bȷ?ɉ~7ϧ _JUbӁ4@Ia L@bX`*eL#{-ɡp&9hZF͙UTJct_"68ۛΠ##C%3pٲl9_HTܬHP!4L>U |'&*R7П抈LBo`qvm@ԘNApzRCeLs51Qrpʰ%yOempvT x"q AݙY3p/eW< ˬ .Zh/4nݭ*uԧDAzh$8 |BJwh,%3򆾡KAuFޫC#/AP$bC-L_b"xX+}5mO̻(5x}А}m!ʼz/F]!T[)VWn%Q<5SX3^Gc|hTvm_Xn*h2^mXNm 8mFiQ# mXW@FR!5\rP.U$6l~C,ZNY@)f6'RA7Eg{R."Mb 3dʣh;H6\D#Wɯ  VH|r&'ǂL cB%:Y 2̗&lsRv~TOFLa.v9a /I'*(`tDTOX;8Áݱ*(A`,]30~vΠ0G⒳~ p[z↳D9t-:,<}dc/Z #Ca"tfՠWE}&{5,?O_EὓL0qCޫlZ 9IFp | yU>pnNMk&>K\Iڣ8g!DQx7v:aBD@oUP}y^8}8Al͸BĨWϷSL/$=LYuO[s# %~Kc ޿ B+MW\ys0B,R8ΰ;.<U__à  9$EQ5g3z粶=E J ^qf4i`}Ѯ|3"-XƟ~g8؆*5y:!⡡QX|}'GˣDmrLb-C"IECr0C|0 {dEբy;2R8aƸw3}TAAa`h>so{F,a@?%@\ ieQYgؚL7Є?z')d1 0w!xW\+t MA N9S*@|~ڢw~t.6Q.JqtZ#{gs'-E]bU2Oz٘_9/Uwʇi*Z`baX1wR;aˍW}ph(" ND)7zcOiw%H|ME B ;DGopL?ɯ?E]_nxfJJYhr}H[0Mn6B{(g!%鱵 ^+1ݏhHO3нp- dV2Y!W I{ɴ%";V8nlQA&NȏCNIJyO/ڗ{xk(dt.cSV[w.h}+ >moW>SGa uC+r ^ Duq@ayfO0 {'l| +` x %)36P2u ?qy_-nwR g ]*wv&nw);J2Ţj%g7bh`bѕL'Kmb͸sO.+eQExC =b ? Ycn2,{A Ϟkx=,ۡ, 3g.>9Pލ_'~U Ӄ]'awy6K!w oK"$G7*\ dBw?=K~>͎"`S;,rN,]|AZoCH;83y9_hǢN;.+9 H gS̙ыnR},^zJSiN" 6/b!%yYAEaKg5Jh";ZY<3HX$n#K~uxR~T %L+.+.?PnAiROrCDdQ,%E?q6x]yY{=1`A_; x](у/!T4r r 1T?v6yF"_Q? ߰w6QܣΨ'wntO S5Cwo%s a:$j&JAwaN\X *}t {Q|ܧxů7FT4`IR)O} t׺oˡccr*,+1^HEo<.ITD&X wƎWfy[Bl}@g?F | biu#4wOYOK[(48B"zLzC=dxVnïzHIcIh&ez?9yF*vߟ9dHgk@B|;g _؞_-r-1=TXOHetV i7ZzL.&t*tg7,gv@?H˥؆{&+oG-T*orE  &Y 6Xћ|*vhaKa@{9e4PFΤ>H4FOQYGPjs[]qJs"O˹* ŊLxC-sA%$lf_lEyc`8IjԱęGo#)% |r52dcYjLNQmPz_k-/nvLP]y״뱔(~lɅ;>L>l6EӤ# /$rv.qg,ޗ G!cFޯ šV )R]qLH*}bQ4\ mh%6wNnT3>GT& (%[ j*u]ӬӚAA}Lʤ=l7hѲjhϪ½Ä \fhV@2maDJ'hӍهR%!cۖN! jRL4(W^4<3uK}ga{}TZlGtt-s{ȅlvOyvGd[ ~? U18 ]\mr*O>U.@ \+)*l7lS6`([M ReSY_8wAmw/;m]`zB-FVDɶd*)`9Ru-(ԫ,|D@}:)UR}KE d?J+E4)Jig|3~Pd67r 7SZ;C» .wީN:T_O-'*&O6"G*9Y'LE &?\btXKmJS6jTbt?*3sF_?/PNL{#1MQd*TjD/bcc7Pch176:Դ(ٮ4CI$uZJj˽|"3$nR^I ^R%J4WSZT%syI()WK2y,JdU ލH" Bs(Mwsthz|Zw4x5YAğr0f;~ipܷQtɕ&}4iv/$r-Ub4 z u"IE.YJH˙BB[n%4G0bbFbin/Tj}/|>;\ʒ@i*}ްة{3-5[/U /R X9TRZH"^yD*֓J'gOoZ[x>={ڧ,!(i:YwdZ 9J AB*4 ) 8a*Q_*Bjj(ZzM ㄤ y+#ys! LMWԄW`̛撀&ƽ01 wヘ -/'|?]ﮆJGfQG~2llCj -'xc{ji=/v:Hͨ>3:3ʶZѴ&05(`EuMdzϸnw]&vS*iDw ) slkLz3WaD!EH]i:ĩ"hW!ѹN(Nϧv*5 B!TѸZUW"[p4aS+NW I(oZ%RW$߿Q^h)Dp#8`ubGKġ?]HYWqu/]sfMOyI(QK.$]| M|m&{|JxXap]xuCRX}jn=%alUbȴp xm\qlDoZugVهl(KTC;%zdDuDcFFWE=.LܛZ(x7_e=&VUʰ*{NJUٖTIǛ6B (T`Y]W;5'1p"džiZ;.fPWY^JG'\+gWUV+9Lm@ZmL>gʏ<](?;#uhf !Q8d"wq*٣6GZԡ {ofgN:w,LTܩix'E4]cz3|[}gw}%<I1r HΓ\"UptBcpBخ6H砇4+\jĐ::] dQ'(0)e0F˷9Ga6UKK09Chx&GqÜdb50]ꀷF(䪢P9[E`Xgp!1܊iheAt9 \`_VQ# RA;Ԁz>Iva@ܢ ю 8".fS ZIQ_AMokh עBbs4~?=Qr%9qܞDEm/}UPQ%(.{#if+ _)?qvp[AlWCg︕F«;d_ `z ߠ'D×ߣr}cqaynsN'`l|NOB?j 6OfuΜ DjCCWt gfz,lu8B G+^X*wnG೟A}N8D[w~O^ ywd(y9Dm%/G f2"6&+=h;jrHV{oeDStE7Ĩ0^5԰!_3 E@ \iDQ31>NrŬE;).RCވxMi;# `&njFFxʤ ϭF9 Q8Y:z0O#iqjy#iSa Bz KDLmQUI:_6^ !tZQt9[Vr[LD~9e\mE+7b.'Iю0SVl6N[Q,Liġ&?j` WJ?AAkJeh)bfx<Zd-5W&?,p >ݓ*5W B%VZ8 Lv!e\|=AZaʋ1,"{ZalJaV5"F{QX[5" [JAV9ڤf%R_XrmN產=y+ڗģD9ćA)d: Q"$_ + IN(hS!~`Mkt^梶U>yZP< ?hڕGU]YA"A% f`@ADhUm"ɰԅ% q&ZZ-F2($J닣%n d; j|޹ss= /PvH+}E`JL],EX)=Kn26A,! zZy OyĂ\FA]Ttx>Vr/l>A_E: $пX~I~c${LC@DžҮD8g$F~6B'4Pf#_bvdH '5o:A !JO=[IA ٙ smc ¶WέYXSTMRuL13V7x縹M c)xxE C\/bw{2?.gTǘtEKa_hЫJzˀK Mϛ;uSp\?Wϟ"O5㔒nTo;xCuUlj >AlZ)+,`;.ŎQSA]"(e S挅Ss c6!ڳho(KNu8Þ<07 ;΋VkV)fB "dL{AoA"&bP]D7*V)PϕN՝d=װگؘzvtcvj9>EThSˣE-ZMoWe|=1#d6 2-̀QepVcZg^_j|fp͓&c&ײ4%/@\(>πZVdtޖPsPG&@l!Ω Aj(g-|/?(7pX>Nemjn^VZj⑮Z1rz  RTvoTjQ`q{^`kgR} `[h>}I B{[a aA(H]gً^EDvj $Xo–p&xqVcmg7O yD~ xgL4 y :xsm2s稵^Â?z{ BM>W%h8ErƘ- khX@{dvBnT;2 #{9- 8pTIY!p p `|N,]%ihtgo~~ gѐb >A=$71hc qg,Q#kYk1\:|n+@_X1:19dzp.ط4b]@a6mV7G-C"}ATV"( ߦ:;Gѳ {KqɽhUmݫغ.9=6'<$@|uC&"SX`&"$f'k- tɷ vy<u1fiIڕ0&-*ţ53m63MgȄ[ÍDF_Gdz V\^MִОD뀒"6 6`K&xal'x_''1o> &(,a+Ό ~D!e> -xK `_6?zg(;-=7q|M aq㤖CdK8ichJgfZ&\h`PvBiq - %KYq8Bݰr v8J4TYǛYkd$aj :O껴Tiĺ>6+d%Ƭ7ףʮTÿ,fQQF[rmX&n&@MPI )r Х&FГ]dݳQ,Fb1ڡ0}%͍3qi=<Ǻ%tJXQK܅%@eT+E_l%^Eٻ0mc]<}Zfn[=HފjgűSLe5LgϊνV44N#}ߩ-Gߓcp44zą1p%_C`X,?ev) nXObZ,x1o+ [ً;Mn./+&\5fŤ.st|SeGkWW`lrr1{`/ž5* J!)Cj]]h8M> "x cc[!SC] $Tq\93.$7"e]n9jYVȆ, 'bZ~-tЧd%t' ZLD=L"#*"6&Pm"' Xϴrnگ_޿RO7[,O xLɱ= lIPp+Xpux7"__Xo57WOc{rW~ /@0~$_&٭ Yrp)55 [K?uPƻ+ِk,W; gvlw:vT& f{ i :л5H.>d$gv>ǟ@ڥGppQX| ӤfՕF_4@D2|ԑ|('/RU+ TUE뵤DȾ|ߏ$vY 괊K3|+8$t'Fj;Bm6c1wgMGCV;pp!0.:ۍ >-w -PHaCB7a3nji%hI)ZEZ ,Ӗ'MLgոYkH O9#B^^/Z,7-N$0~@j}d }q>RQ[?Sq9 Y1:Y׆Ll>uU^*FγW-")y*"\&QC`dmS 'syE8MTPTv PUxw|z~)X/'u^KU u.9i1 *۽ .3S)9*\Sbs@6evZiٛ '~o~{79֍*. cr X!`#1nk>FV߱`&cɳE',VceE+*8:W-wȪCP6@ͥI PLIf9pZ3N߭hrCCX^;\7ysMx=͚m,*g MYp}]9/t[+vr%! "P1Xd͏&u,Dp4Ңԟ墛ٴy N5&v}l%2P3]xoK.aJ.bZ (.pe%}~k|oT&@ zJե~V-0p~L`|Yac3athJ#ZK|bn4xk, :Eauv}=s#˕$ꮖ+^clKgtYX}++Ya0xb{b)ײeR28*<b7!gv]zˉpm],RP!\ cYiq@ ur- KyȌ]QV8rA_k )mScqK`xByZ6?<  .t#apؓ+MәU.*&'#"hJBYz0[eF5x}Dk忇| 8)`H=SǙ?%АB妒3@_f6 F1E1oR[z.q9)N4˻4<~e߲Núتkf4|_C2Z~j!S K$t& f߆`d=ueDT&7\P77-!!W,۴:h(G9ObM1[YZ~O"X*zB B]eX]a97hČ8F) X}B#PY`@R%bWTǔ[/`[/8&ۉ;:1v*0d& /9nL0Y }!@GMQ=W ?Dʕ۱TXZ's999 'K\"'OUkoۧ}lV"죏^Ϊ$uYb,6" \04"eTyoMd2&IIy 87$ØJBz'g;[jDt L*;f7 eG3z%Eb%Rb瓥JzaV~ZKFh_1$a)hyãN?e,Vj[)U n$J <6¨fٿ]cB-09hi<|M+3(h~ Ǖml&`[lJ1~ [`A 1}I,|(z S,c4""y0Z!7orӞYToF#\J[@GR&䷘Z'H98Rӈ8"ti _v옶KḡS!7l>m.¿&ɢ,ow'[ފaʨO8:[NNAP;2-9x/{!K^xYE ^f4<uDwr&zB] -\]?k) ؤavFf-#uW7 tZG+"pC~<:o`g).MA}- B3gs 9<XGoxx &JZ Ģu,}O,[A27bXŲbז>P Fdm8&{h7c|Rw~ D 9{׾k??^@ vܓoz#KQ\5!}ȐNRC:" [[S0bur6zRqɐ0KXZ?tPw1'ÏȓwVOYe~O9S!>n<5t+?§Y9|*1?4.iyTm %7e׊51;Â_6#ۭ)N㱚mVb2+rnc5ƒhJ:iZ/X\.2_ SsІ0 GZ,f!o@rf&+o )cjͽؿ < *^FC0?oY" jxwm'J6aTPlJoAT`zD$J" NDQ2᝞h$*z _4x1>LJ͔L)1XmG ӊt聁?gd'.O7ㄅƜu\:p ^uw+۫gq$tYCy4E:t-mm/:΢p)y ,[hƵR4AFquF~bjz\雃aCGb Kc?{ޖX5];dckGG``cL}YGWs;#oV+)Uq% LBD= s0+?FatPxJH#W1cQ\SnNf&Y#$_*ɩ+%\SIUAAY0DvM& BHBM"BiI'zj[vI{\'KKFiͦό1RVț},% dr]j|K_EmhY>G>;o߿6@&2xǯŭʟW=.h70.;Ǹ];kSQ#8*:RXďZ}=a=Գe(DW~Kg b>R` ;=+LEy"7,'SC @X:&h_3[~N~'Ҋ;k^ W..Tq/ Iom] 7INQ̎kt vbuVKfX m/+_.&`aXՆiˑV,q߼DSw5e|Gc]T,"SݣgM:-br+,H+(2)%5JHZLP?N5o%b;zuE>T/*JNLaajYAIN :M1B471֤IZ]\"l_n#CޟTul)YLfD/Z.`A.?"ΒϏU}z< -=]+["|: bU՚5-mv}IE-5bLo }mK &B ;? EQى^;8i eXIpIVU9wwS>Lsfn?W'uTZ %ˢhk]|ۿh#og"(l EA! l 83Vn-5 A@|ͪ'VZlB;m=-oX#n)Y$W:Aڲ^ˇ! h%C8GzcRoBr|)|*I$˫LEoF喯 ʨf|{;in5Ą#qxE|'" Zies$}AA_39V: zUUGu+?1Kcd݇Z/}8&CbxttSȒ{0ԣ4%:M(ҿO֎u07Q`(viX%x|57:g'ȐSN t̋T#^>Y.c<6Tx %g4olVDP-^SQaEH-^ (IY 0y~N0FGxv,#ݰ(?PU 0%: Q} (dˆ>@CiМeLEȅtgϊg1 BH8Suc_`>_2M}xE R4n)R^#|"eH ;=LDm\`%@"ᵌxL{A`n$:4t9!( %#S ~`{!Oi4i(JtGQ歒Oƅ=JxFC[{=+՘" ;瓿Xgx$ûA,3-h \ch?*_ =9vl Ć0vA] w$Ρi]Z Dd`Y2dy)ʯ A:3e$yk}M9o"1DNJ'XSĥWnQ)xQ$ly}xݑ2y[p X`8XL vd0G2Yp5l+mV1,=2.dL!N=8Ŋ"Qc @yѢϋuYPK=$G%B#tYKVXKŠK4%1\+ߤWc-IuWb#<7`E]PXM#hc^2 ,+rx,Wy` h[(.$Qb-?:䌴ݝkF8ÀP t8 z^ XԻI*~.AQF\ zbLhKL7 [k=z4b-`D]rqMXiDq ¹Ÿ1&DO[)|K]A<54һqd_1$!)r*!G /P=BxЩK: _e9Ոr.+rMM#ٲ#ٴF%PEZgIc`leqċmj#l6"?\j/6xSF~Vđ \(M#y][9rZ'&Cfd?!*u"^OA<^C{lɂK#&W']Z&?\7&52,TgFU_) (֗/A14;eslzI?1@b;EhnrNS '8a%Nr.vk|#Z $xQ t: !?BU3@wp4@^.])DtIubUEX~@8Q#(x)Xǯ%zi !*/9HpfS힌)+Sw;#"5Bc>FHE>ͮDYTMpVVeIhIѨFm?w`fK\4̾P Ӯԏ=/CHo4z8w7q+f U$-3Si~&PO;UTũ&~c軀V\nE9R<QvW(od 1b`&QȦQi'fUZ/^o"7⤩E/O\;q!|X;,b%z=d {صzy ͗߱(XZB,#ǍպxRJ/X:*/X3/Db6 qU#5 ']/Ҋ  Q{'Y 7mJ썸yq`նQ< \ - Cl.5f;ڞصf݌yLU( /_l$bmW=Tfjg^5@b11v2lD+l<2>ƽ(/t9PۤXP-*ElƁ3ONI1= R2]Zm4>\aN,n*rygVm`s 8.HX])j_d  gl\P'T5C>3΄(.Q.]gKH Dmy>o<["LQW)D _n[T Wjw5(l=owk/F[WO52O~iIZ"fnO5mj**[y4K|ul_7+"n׊ Q&B\v3u F(/zN<|yVhĎ.@Y"StDAMN驈N#93pC:f9 WsQaKQ^[822uX~xEN1T # !AM*~NyWrky0v:};LϞ8*ꄧ7 %vDK;?kȅ>A..VW+7T|E" aTFc +BIf}3C=qvy$9ŗp*~K&d.X~-{Z[&ڂMvVaGZ$"ZHD̉kmHuZogI.EE"j/70+}ٴi?2g_8U;y2vǣx*I Xfry?!lK 8-{aܬd裣P3ʾ7W98R +_ʘ(&l*HNsVwSbr5x>D,PWyNNstc&WEuza]L@ҍ=5fUL 3M vBS8pFXBiWk͝EdI5h=[w,עi.(xg7p%Ffݪʢ[1$uGM])qJ7DJ U'=W^S!?QcdY rYœU=}e`e?g9oݏTtgs)O Oe vN y83>u/!!G ~)NoFwQl74N2=CWVBBʃ/9od"]!'؊ޟ۱nxJ8<\G)r,&,/bnRU*0z;WCYΊǚuvt1zOWޠ!F#NĜ9[0R>,LqQ٨7_mʘ bpq@<۷eV#&]9h"xh_oGɕh1 Î-h DR1Ќ[G~g*.DA6^3:ˑo0O|c=Zķ|w]濔] |SoD$(b\Z-GGAZ@Ӿ@ . 9+ PJᙹyLtsnln]mD:7^*C?/:>Sg16HCй/4ķnChT] K"݂* mU79*Zڀ ~jHmFdr !@67Fl|/y+h,ʆehu:46LRF۞&(,qaj+K?☹)D !PcGb0ʨsYhrw6S{.HҌ"y--ܣZHc{E&AZcN 2: h%G0E jhy>'诂|d3ۍOۢ9IJN^ %(Iɫ׵CJ46vG?l*7EYB=#G턢1s$=q|RJ|EB9цaE"G @Do\˥\-Sֳ:WGp*5ԤyzVa [ <Ab-%M idF_`,2g$0[V(}?fNoT\Av-xW' t ve }jVf_ ^CCg`rzCH;5BQn\!ivwLAT, F=*cI~e Y~#gBo`N9mlxv4s MK :@߾G t_MoQ|:ewN:M!9|_!YRU8מ#Aw7PeO(gW%?Z_l 9$tJ6]5Usȣ*X؂) BrDGr~VEjh倎JU@#mp+ԉ Jg&Nu`}ivv{I\DڎURHU%>c!Ai(77Fy Sxtd^ Fhaf|/`@k|D1m?av咡}gB/8-^ J3OR1;Mo  ^J9<}C$mђEm#Pؕ$]Pmv>V@]vE-Ǣo@Uo )tֻ6B%ݐtILBFYY0Qn8IW|F)Z:ALū?0ZjlH:0!`-nzށ؃WƔ~$/8r+x"L0G*?!D0@U$ւ޿]CA:CMJN{L`7&W+\tQC'z>U,"m0~my+ې?jHwb4.eSDe?4(Hb֟fV[&0W{D0kjxh( }=Qn~^XBLN$O;adULNҋD2qkTPǮOxJdt1o712Ib᳂'xnQ6qO:-^¹\*~3j(nuًSz4 طQV<5G!^ɩ˔wmᖧ=v]F:#u#ey؇, >IC @AoVIdX񈪩SATCIz˫ϩ,eld mUS(<,"%0p@kH-*aO>LO s}cx&[F.?֤Ƭnjق̣p1߲9ʘ<>7Y"{7#'ԕeEgYc0ͷ1Y%gԪD%מ/R#*Jd띔8Xom{! |b .T5O3q^8t$ Xz;PoI챀`mvO(QS;fNmiS{4=yjœm1ST+yA=/U 衫~s6%C\791r(aįZʱZ* x_xAk c:cRn-4f G~캹Us.iqyk"pDXoP/Ʀǿ5]pm2kؘ~Z:5=%e &l*-➒C|}(ŠU)UF@9קro<ī?qz#3l*Oa#*jHCfY xuowÙ&cBۀ|qsqS<)~mf_ͅv#NWwPҼ]7̿'e]H c3}ˍ liʐ'4^M',ax?d&/Q ᄎs-|V,RQFӷɮ}~_K\KXH&[vޚ`(YbR' ㈐ެYVRV 9k'VTn%ZV84aU?^L:/0iz&z%߁ii|Z'b*l5|ȓĪL acPj˨|X -ˁRvGn}!ʍ*B#T]*ݵD+JD e+`)p56S4z[u&B/[Uw);X! xo^ұhu*e.D'k] Mʍldp'{Pր3U݄Ěm)Zj~ȍ!i'-=7Z1֛T22d?5PR|ZEpy7r'n\ojvkCҠ ? VLSxiZĘEB(uI\2\Hy/y`T7V뭑| |H]^NtN+N.:%@QjR c*w6I^}l^s磧JKN\a: dL^r~<7|.@W7!$\toi9K)a 5UskeV!uDduiXc^Z&svH߀&BXtq:a.:1})O$+ޭˈhWQӼYC>]Cjzh %8,̫;c'םOU[Eb%y0qɏ-oޯM7ba#&ƈC<˜!۷VZ:2? 7B?:9D ˡ1""7YG7h]DzW7ϓ!SJsY5gf{!˓s`uh`0^8t<8tjq~K_O^!Xy xn:R̪{=O5mV(. T(<&{L*w0GOyZ uNBV^͈h\B[,:P$J )JҜZRzrAZt)tq5 g\K؁*-@iN$D[#Wѹ.;.vG1WJ2Џ.K2Ӽyr7' >U jш|YcStOFM#i@`y:Ҫ4Lj\2=Z4IJ85HRϝX \ nr[ jn^\qeƽ})]{,]8W!n}]Eg.yNgLbsq:N,g 1@~ g!U:ӥ8}1s$sg2m?z.e7vĸk ؄4Gx3v~Ǭ rnSw|rXcV] R|S9toxtSE_صq.,u!{p'Jz*UqF6l:0|N6:C\;B{U֝O㽻VwKPYe-Cʐ y[Byș3,tlWb|5Y-;pEx:ԸLce76'ܶr ! y Hֱ0~*`EZknWw+ -R}y~<BzS$ͬnN)ss&tDnE>^0N\5-v1=_Už֗"8<Ƅ>Ω'x5?{|L2I!#&Aw34 x .zOZum'xeL`W6#31%!o*}#]!5HuE&'oEZTIҹz&$IRkǜL!lQU`P2*<;=V#*v6L0Gv g'NGlaGM~Z7px {4^dVauEn}M9޿h)[b/p뢑qvS!uU?8v+]|J-gIgU+=kÍJ0eN{g4/f$Tt. j? 1Y蹬ɤ ﶴT6i9878@*с@ucNZq+?؆E3j9's S!&aهoNɺ¢VJ  $j8pω|5ˮWOPc /T};mC)T&I{Ac]}sM/PI`&H#VQԵXs|u\$sD"閈e*O[ 2>#]v7<+B#r]T[WD|m]x(-8)WP–gl`KR`vydDE%&NFRwy{&'o߽>eFKQI@,F;ZO};Mdd\/0FŦ̲26&e޷o:UDNv1txp[3M_0/a^x*d1ag1a@ iI,Yʃ,~,YId;#7Jeni%s'rT(5Iuy˕Ȋ L &jjdF,+( 04jZӢx6ie ҌϯK TCn2 T2o6k|e%[|q!:*؉ScRdn2#s̺طX6fb|$<("\(5#9@oW`!G.cX}yK^=< IG=S wNNjid00>UXXC`dFq$J F0(w2{ לm`j&l9 /Xs:Ep8wq)\_TŷJ.9=cw_PO;]j/>6B >ο[y4ēeVTM43 !۹޹x _J_0C!4ז? ^&)U E}ީ'*jUtZZ rPWxw%X6m>Cj!8Nz DާL|PᙹDSb }Wjkϒ c8p%&JTطVѸ7&%|aC7w;}݂U'vH`h1`']ϤhhE<ﶽnryKKBaV Y{ TWdGF+mDL0;4i`1^6xژ$| V1&{+٧m7[fCIR7~;uDjW׫S")WZvx,YNz˷2x p)~xg0qW:(Y^˖4ghwVC/ S0=G (F q[Kol ou +PBx>.SEo%\@o^hJ,n6 C)nϏx?2Cݟʜ;P+ߩS5 r*\A:qrymf˥n,HW`@1jƘS9زH;}cbs&i#/#,oN%߆`< Ƃ3&v_e82iGw)EϹ_Xgd 1j441yEy?~T.i6.7 Ekͻ'9Nr4+^;.\<c*R=3h0cl {$r& FWP/񐥲X()Ac]xj'8$͜`xY\`.|s sH1CϧK.f'(12l" )lnbŠZ;yum,Q8!À@\JT2||\N7m0 5PCXDU_RKra oR'D9N"6lU-*&6&ƿQN-`yZ".YA| Cִ$dvJϧZV Ðv^_T%/b{={$qxw*KS*t.!WUͬd + ^8{m"Ϝޥdul>dWB#NS;q.[P=X1QV%t2~nkۖK &)842=JmSo!RA,c i?Lj|9$1z<.+8}q#-tjx|wUn˭51N u)eVL)oW4 zbb!s[M\-KN)QŇ-=ĥwus#vx]6d#{AF m*3tH޹h } Tot.1 I$ -m~7ςx#ZyKܮM'^0"3B1ْ]-*6jHVmez{e"ߤ[E”NV)9a8'u;꓿S%b NlQyy=GPhUmߛ[ӥsX|x"ˣ\Md}Es)"9nVW_,!t4~O÷(RfEŇxЛxCx⡆n (X=;-x `z16(g>'>I|6n[.'V?R+HCp3Z#aP 3Érjip2ge;2$gD_oOҡ9BG׷Isl!ϹGw~"Po*mKkNF Y&_o>\Kd.49Bd; ?FqܟoIlʶ>o燸&kB%3as WXŐ6B9+m2o(۪ӥx6F?5FI;\jvddz$ WB`|9ʿkK!{{Vc'N> 9 l \b"&ПF^-/a& ᧁf\o|9 P>oDgۧ32&1P ؍*;'vXWFto$̱("^=Bt^vPg~Pph MQ#q]t{2\[tl`ю U'fd(^jn*)OHqTԮ cl87 Oׂw%MXA˴ n P2@!wVEL<.0y0DMb0,cA0^'J5: O|@9||cKFteARrciw7pA}@Mw:F_LR]MXn&]c8]Ջ5mKMsWIh4e:xQ/Rf|&Hξt8Lʵ@xŃtG /ьB+EfVeŭh𹣘_ɬ]6V%PJ>V*_}V*3R_ 1UVX,[Ш؃b`J߮My$pO:^1 P&$"_IcD$aAlmzs$<[hVUab.lmܧA~Wb5=&W* hJŪWH X9F*DT-7zgX2DXp$?Mŏ=)j܁FhjKIOCGhN~|#&{棌e|__L'7'o)%cj[iƯw%lɜl.:UhZԉ`ӹ\ r![7S=h6+$dqã-c5RK݈:%8cl5>2⩷yǰ9GD]--M-$/ܖKpoB> KR5$ht=a#eN|MXN ؆_-kn{>qAy {.n3R &ɥ26'P"|\$Wa &6ݛc:tZϾ~N=D/76+`TV _cj pEy7*x#n{?6[Lڒhp$,ڣ*ѥ;XQjbvvz~D"4f%53}R -FSb h#@4ǁlAs*+3]uwAG;u# LQ.ۤo:Lz!*DS;r[Dn(r=-U961k/h D G7J];HpB<~ꑄ1v7Bs'n *y-=eƦZҟX-]L]&|Ư Qg4#8^#k+ [pMM B&d|2P[)7p}Ϳ#XĀO5<Ju{>'258^|}mUgU'8 k3*,y K8~\*tq} 5Ʊ.,W09Vonj8)= YY ouW_)W啐>dc׺S ')Lc[H$N.@N'Ѐ~J߄DIB,=R4փb1\9) ){\OQ *E _^a[+ B HLHoŘ 0p7̃)YiK;)2Ϗs9ZRYD>S?#qH$2klozзS9q$+eI>4`E 6Ҭ$J]̓n9*_@j̞cnxMdz!9ӛ[B%k!Y] ;YObD,'.m 쩹oY~u^E 0W[X{ 8!>uS4"c({M:S&3Ƀ8dFW}E{H?6 2'@?,eY_W"&",Z7,YJI 2Op.l8hT )E":иtCN>%y8'f~9~HQ1o(M AeԵW7/Dgb nM wӼ/Vw1r3Ց.%@v.xSM&Kfwp2v s*F1 r':1e!ضD_,K%LZVkC(UB4 p+s{;0IT y e1s ӕPzN#%FJʅxs=:K폼Cy>!~ 7n`ـ& U I411G7^ZgkY3%+֐,Kr;JW_j8_|rF& ߽'B[wRx{h4GL={1zMEWx7,:j>hw"2X2V,9CŹ/\dZ 8Fz1xʑr& c|o9'E#Hp`t/ y/YSwߋ KV9ŅE!xrѡOQ<|]#C=LL`8PY"G|v[OB?g'6O0vAEAs4t[6^ghMM6Di¾Fa~,:E?d;ϫکA 7aq K{W~UUz/hp-$<搮3mMW.Yx'U+7X+t }]L<՞^\5DzhEO\.ApmO@#qA3a "}NDS ^۰ mӴG&LEvczpFN$`b@?徇VDh!y`/ EUC485cԎNqԶ%ݔ,&ȰD(L~3$&p %ΎKc1cK4dq[[&7P/Td D{ mwQci k 9Yd~ab-gjM$FeGsWBf7f\XِZ2\SjǃA hu}"i. llZc&oR:߂Jo3VT3'>-'{x\Rԧåyr$Ppfѷر56mI0 8OE{-X@W\^ tlVS風kes7^&?B>k`xTs6 k(*)pccO2f@ Z~ׄy͎;w$+^9 tY,um:orB z- F@l1/*^h2(HYV B ↩S#.%BR\i^l[҆Z9|: HKGī/ā{Q҂Yttrl2=jJ8G١V>j,H,,-] \KjO Zj?'jjZCϽ•!5g_UKbK ަ&0/\&tj|{ yHb3X^N.g q GB58g3Km6gf¢=NX׎\x, 8nn%[X FIx6 oJO z}d+ϭ;1#]_*g@9~JTx.>IksPx+ |$5b+KDM:;~G5gX KDW5ﭞUc][;?Mcz`QZV۬f"t] ueu ?X7.e<3Vmxxvj0Pj UjAUyJ{F\SyOZ&6VcgT6Ge a&x^[yp}EF@izXTSC-M(_P5As ]=hש4mt5$O-{qHqW.Df8& %8GN&u>?:9];Z;Bb"ju36gǦS)'ctjA,xk},.]&]ꇉt1>Ǯe1Fu77Ni 4 kNl@і|Rs|*xt*vCGצ[PUerCĬ) ⮘U^TPy])ÇAkFIR 4 J60l_Ɯ/ N H\ y;r"1#̣JFIK/ qіy*j4 3\h!/o)K%uHW/^R.Y<ҟ13ۦ%@wK/b(#wXf2,Ze]n>2$:`Ϛ4 xqK`}*]䁺 Ls"6=%3+!;W%Ճ{d@1J+=h[˲d`:a kgkӍTcjHApF}?w^OG~^MOh gٳq5~Cܲ Ef_ʵ|KeyGJŚ0+LrB,'83pe>"^GT1퓙-;ˍy7!a(UЗIƩ;dcKg"3ã7IN4o%\R H%G. ؅GNP5Hj~aJ`q!j8X.eh:m:FŅ \kyvb.܋MVIma{3\8ȴٔU͝Xy 9|s*Oq~tl/_=ɲN +jwOv48;iCYo.xk>EC s=MݸĴWiIĴX݉ls$+'ɐ#Pxп 䯙/[%z jd8StFBM&yc ۞:㊷HWK:/S,˅S9?W ~L{ |Q=SlvT)8M>,^~R>8཯<jq#N>zl'`SX!nBQzdxn:=WMd!#ɁTD2].g@L9m! i1qZ)aJ"'Cr#2@zIXk\Q$BFR'q|^Qq5E@Gp\~F8 Y }`;in8N.֛4*,ـNCZuh*D&$?:0IJ%_u JHYh~t#ɬ$*yR/ro<rIft$ͷ_EȔPf99fE1m/Ol0۩ROe0HFy*/g%q/@uaY*"3r!} Ǯ bǥpru\R|DzVu_"lVsNE%z/L1taH- /_:z݊ ~ k *K4,v50h X)8pzͼT*f. Xz1ک•nٸE᤭" "CЍ]סF­pHoeAm v/' JTuȕv7S7 P>C hf^=f̝Gz|3v;?BO{٘/tm?vy䓐ۮyWFwRnkE:v6M7[ \لֲ`%Sms4;BeAG1P';+~whwYlp=XiPZfJW 1/ 1t~(xg 3-{q|8',7}Ծ@CZughW۬*&'[HpM&nOvI"*_raO&ָ MDsAp'Q{8⻽lK9o>aWRLIHŏTpL#=M<2Lt:PHUg GeQfG,N=*ȥݛNsusDg+_b;4)C;Ȓ@D/iNmFϷ"Vn.aHqJMk/pD,wsI]7: =&z64Rʂi[ 3/e8C3kGSz%OZ<$k񺞯_/@aq!~\<..T;hi~qk*׹8O#p`)n.SKVQnco/7el NeɔB$TE:* [iF=YHY?8! 0aENVDFH#cvh:]r$%?;ۭ\<P~$KIfntЬ|q䗛[­A 3VLڇu"[;c1;Chgs+7eŒ!#}ͲPYMCe!@Z3DQ..$n".CӀ">)>dNԡ,H~bn+/5W@ebo*>79 8Y$x垾KsP$ q*cESU˟YuB\1| v*p]\'Mjn7venP cu˙ ^W[E",FM=l a7Gg<+gdzIhW㚔Bm$chwpK;lmz/hҿ-0ĺ?َ,jN-h>AW=<)\[>\r`[G8[|*8s92NORܨ<UPXX ␤3xl 0Hs/E2 Ӑ=6{ NJ׵o\5}Rqs s1i]gn&ɍRms>X.KY57$xVWrq:!7pEq8VnPVwp0js'4(~r?7D#Q]3jFE'BkRS@gr1ZllDIC=1OT+ʐ#t~I ,ʱj{P5)Nݻ 9hptl$/u +E<ٕ=4;S*qL  Ǚ%J͑ 󪑿Y^5p 0@ufq%L0A!Wÿg#6>3-`Kכ*3lF**qIC@=`'',Hr+\coWfxrGJ*٘`ƿv' L<˦9{'zM=E_~WUfXp/ngm9AvZR}(jӌ#(gT<1]J*5P ej];L|̟J]&)Cdj^G..nRKyXep卛IS[_G+pht,Hc`l vbp|phݽ'JL*-l\=9 m7ХIf4~R wh2\ d5qDAx( ?5?]{Xuݻ%'Ud P6-U[N6[qxUb c´yUĔ}Jw$&OM5܉R}S  JA1!KNs*u5 |~Y}ޜW73.g,C&hׄogE ( g׀yYTs@z33BiNFO0p!t]^j>HRNG$vhkލ,'+\ۊ NJĶOs_ \D9QnTzecvѺi12cvHzݾdu\IoKvJF$Q\e[pz5֛n5:k L*IYWl\N* K|)|OT몂e}Yp DȰQ芝dG9 ]h>xd'f2-ѵLepR 8^5چ Ecm8i]}qy/Ε,\v. x6ݛ$OsOtz\vFK,Zz3`F k)W%Mх?7]x34Λgh`9M3PrQ _dž&p!5]cm!^M*TB<لr hB ПT ;v);q.㪆H9#ȸ:6ഠ(Tu~R̈8x~!6bCތoR2>+(eˮF_ ];M2Mґ]b xDp\O ]gr%T+`itb/^\x~ v 抁F٨@0ln1u0].)".ZlGM(`r.$wQk5DU{3Jchx?qh“x$9*Ý1Ec_7Ű/7m;M4wZ kw[m_L3g=63;šYw,5`|j70iI)&wC[pM GI)]A}*ۉwW :.(׆cshې2KFקf8t*,+ f7xAx 9-񴝒r\t80*8( p7C⺢ݞV`gEgpx^FNMREZ/y^$6 TIJ}.|%AL:9jE٥E/x-TrY9u {cHsga'CMΪ.^Q[;6zE1Cg:gByCg~M^ApqVױ| "^rZF\UB{ֺp=Uir|s^yǣYVL%Lv gOɖ|.TШ.*Sa+][] b-g 4fԛ|J:՞(Z?BU2!(trBζdGbv%{bXӯCfS1(.!2-bI&{'uLl-r.x7DZ tcV sNe-,۔R>U٭ XغU?%rݸo܇B@7|j(8[""[[ؒq{Ɵ{rp j83tBXfXӬȀvSL79܇1οQQa,'Q#$R r:P|% |V?7۬O11#<@(D5{g%>]L=% QHPDN/8jt+Їk5葽1t7$,!,+]]$D72W qE/!xE*\arJ=GwʱB"ژ3S7ćuʉw7܇x_f~C }|6SGIïϟʿO+?K90[Pٍ:)6j)`?"0:H`;_2Oƿz{wf6[,J[+P}.e :/Y#DJ!l6+HH)[BDF$Y"%s! qs,EphH(;IDF%mu)zYWV3ˋ\s3;_*]꺑?Y<L ML`0$qZonȴ]L1me(A2>F}ݫRT#ӨfN&ԓe|bQ!D6|/0,5_xtf .vN&G ~5 vr߳!pD%Z/ f%bލ~ڙx7HLX"Wo0Fy):OBx5mȵX7qu}387w vQkq/ˠ88~eo-Ht沉So Me8uy%ڷ;_&S=IvO_1 ֔$ j/4V蜻_F5ݨtypױxE,4)b:'V@F6s-ڷyFh5|tKu7+ 跆Cq%Fʪ䳚p20}j4^ jL'6dfɈlT/2K4sҹ rV$2t/rR ͫ?l λ 83D LӜsHcߒ\5r&j 8w PUx+Ae P(P}";uF)cin҃YBF:}53kM?V{ȕ\WcS Q;ܛQ4D wrA e`gc (+io {P6J\Fk-e#D^[)`\FƔawL#mnY1pLlNiӦ CxR}JMߨR XWPHߚwqV3Qr<74#,_6E[̼0p uPRJPaOiq8*XNxb|RPeG]մkKoz<Z58ZlG'lXmZ䪓I r|a&h  mQOf_:A"F<80ݖOB?J #2zH|cUM@UѶ/6kѶT(%T<JՈH4Fu]:g&{fO% A'wCT!􏋥j:P0V9_x橤'9Ewo֪ҁPjND#Z/k"5BnT> cDhsM1 EuX.6W]`WDmVE_lE<0Qkg=X g  cG @oI$V`g'0iU$07Qa[tM3+zNOÏU6+"]{R\D8_Jr/# _:7Xp! sSUu0J6::}YNY_VrZ|**cUR돩*sf6QV*'UVU`MD 9V#`?-ܗ p-ʯ-UlG:JXf-HbgGpN*(R g3]8(yeY C 먽&JyHŰHf c靿<ӯB"dqձ%'[u} :wO^BrKH ;\r0Goeth{;$k: !BZaeb8MXqpAH0<$mA=4w&MUUY 6~b"ԜY:H z*H[k`<2AJ$LL¸cC-==몼F7O6mVYaI;-B=',ţ9:^̀ gѾ&CX/mK9`h˰|)RnUTT5#Hy|,䣐J0r (M2F&)uU$~חU 9Rf6KRU2YD,q]A=aϨrLje{<'$ ȣqÞKpܖx v=|{a@yP+ )=U'=~I`{Vm`={r% nl=Հv.pJ] ,q%,+ÀA2t 0r˘DЧ-jMIt'DŃߚi 񾓰ŞJsA*A%˵QQ9n lS}}$PIKMixJS.Kcآ+7bk䅃%J^, CRټV!qh驲lү0 Mpya4aYfcʚi) 5Cn' >-CdӤ,oxΚUh@ks]a~oL$;&)5ei-LzeԬ%TpIez%,6@X7fZFחŐN5$pxF#ৱa`LDCH'籯Ogn#7122NqZ܋b:oH^esRj/C:TW5k\Tʀ͢ȄJX’ _7ډ!)[N8wa}O:0ח$=C~N@HChE$v͉q!&Ujv{^i]E[S:0پi4N)Pџw~/h5Ѓm$QE/3W0娾Mx8}% * 1V<+ʊMɆc2a;iܥi 섴.aH'L}5gLbsږK*uhKQ) 9vsk,\Z p4Bo$)f϶%HoDEfwDyb\ye-̗fِ%f}9^M.=b5>Ζ>@lHևDAG_X%|XҞX;oFFUxV78O1[ш +$]P J@0`S$ȵQǎю|w> >b`(asbHz@TȂung}#;r%n6-hG3?vFM& Pͺm vob5:y]\{QAIaaۙ(܃n%.dH$U' .T17gh6hp[uc߲[WXv, 6"3\N; .${E7ՌL!"? 'Ċ# V6V;w~qg@3:.7BVohZnK2ΦC1* v`-NefWI*AY(v;r#gˁ?c4zAV^ +3aa^#z>WdQ4 \ތ?Tit.{SAEӈD҈(&MULk#߈RU gyDR b2lͫAǥ0Pyq)&"Z3F0J\P aovfs9G!ZTp?] /GwfGՑi~o }{xZEP{\b~O>^AV!hE{G.KqFy*{\=q_{IBrIh\IJ$UwfKH lm@2~SFI  \dzϮx'Zv Z~}'P̯һ,zP [$oJzZC|p^3+JGyR:V%Bt?[Hq;O˂Yn%/Q*@˹,$0-ÎU[U&H -"M찱:/?40-& 'L0SCVun{l^(&hʈ[*QM85‰RT! B˳ j kW uzlq 8i&滐JOٌԘg=y [*ލ`b(5G _!w>);OJa4asد7F\51:}258HfV3I Lئңo%>2S$ %cNRд쓇[U$zT<ҊNɻitņ51b"I,/c̓b4?P9ˆvjV'\sZیU=m>'z\yM~$/}LD׋CR6>Wo.ͮLHVMCX!6I=33EeaH1R▿i /|{kd~@UClxC]vx7o^& lc|)ЃrDvcxʰAD%'Ȍ>˻L[,@pu;~ؓcF$4uQ/MŒ(|]lqUl$*b<}2G eZu_wj rdKJԯqX68Fa?=F/KP8?5c-Vyկ`W( zåG푏d.B1Rʤ+F3mif]̜FI&{dÂL$dcd8k4MR*0i;vl #s) :jf"9E=<*q7K,fDDrJ"M3,}*9XXye j &`̲SI8R ̸vu;@dպe ӟEzͭ)) o1oxaʮ~ws?{Qy=C\?ѲOڭf1lM4TΖ˵-n(tF~l4S,P'pE6 ?M*冐%j|M]#oʟiנ<8Q_[-k?!әolҩ!p2h7C"߆ :0ㅵ>mN sm7 Pp+N\)"4 o0@Ts4>bP3<. H読$ɂ&ͷ:.B'Ucr.zWl1ndɦ#1O 21ϥ^ sNrHjG68ݡ=/=ϖǽэVb,s !iqk? i"Op j Q}kFF[QP1%-^uy8ߡ؅/HܩIǪW4-um_-RPy}[P <㜈? -z xU8dP4(+6 q6GNcWdIapOk\ZsSNB2`.$`[lEp)pom* *: ""_u_{*z(bD./#aZ/& Bv?Fނ_ xmB2o{8(?.3c%\ɚQV,ލujuL4Uo5o4d ټYB6Cij*d0T+şLgv1;Gyp5|caH|BˎZ'M~Gfo%4@)B YR]T]f [%j/.6vs `t[o~snUj"ߑ@#!pNY"aQcDIX&15tstjr Uk&[Ņ 7*|8r/իIXc0$ ~/>gp3Jrq^DM[7sIbAss#&æMzYRބղ9DF .CQmed |N8\M8+t\"IQsEU ړylL* ǩ]*~GSH8~D&;om}1 :"FE(}7 ft.^+=뒁`Rݦe3&R`Sg|.Z1e> PRzf^ PG&Bx!e5yL_Bbj2z:i‡>#W>'V ul;6f{ V >?p"RG/22M΅s[:kc3%7UuN λy wt3joG DcJ`jlgުkU*? }mIAO0C>ڏ|{e.T[AJqSM2 e6XH3L</6h@l!@DgoP]6hz]nf5^C ߧ"fYn8f XT`!r9l}%:TxQ L% ~ E§uMxUPA"/3~-'M2IN*;9CB{Zl Huԧ뉴OZCgV &i+4Z1tɔAHItVCDq,ԇ}:8e55I.WmtGٍ łK7AYsV]+9+Me;7;W`nHk}>vIIŚ xuь%ZOй~C?qy0cq #F Y.kEPckh:V.gBkUхdP׎4ydr`(>:NbA 4Il)b.>!%뀃1PӪ.R;X&3nTjl#8<+G*m]NΈ껻Go9Vj,J N9θN'ʰR[1!$* PG@Hnԟe"' MqRP' 5a{O[>Z5{d{:iut?£"ɻ.'c9g3RݛHVN )voι4~0N7laJ"[^r}H8շ,LׄgcC]ÊV)Q^IT~r;=kZsY}7Z;gfc|*[=ܜX Ae}G[_Dw5x2v-5̼\m:?LHb+mI }”FisHrDr@z;V罰yC-X ?hc8cu1RT"A?pmMIOh &)$7{Im\a̎"wmE%kzdJcҁ7ǦW,Ճ)x k +3)5,Ѕ .I[~l wIRÜ+%)hM\G}Ǹϸ)m5"?O̳_s4k"sLdN6 ܀Q|D6ԢКtK w.l0AF YnR\WjZ[[[kDERj]Vk AٻIk$;wgΜ9sf9KK?D-OuDb`ApIxOo33Kz3C{3r̷͍ZN=NrDޟdf͜Q,!5.)? }34vOf-gN ضx.4J[ո'3]oϙ~"kϺSL,Ite7,^̳kIƾ/_[2о]bT~_x~ߟ?%|[*`ga~πgL(ON2y0ro7lL!^d+>2`RR=%pIŹ m*WtAO|}ž̋;pWH~s zgċ Uhpi="GYh}(:O$L,ԡhMdo ,2[م|4KjYȖ}nieFDZh?" e#[tXwcFfPP<ȗY"4L !?j2_Hg w6~}ҏ~?@_}}Ѿ߱cN}Fs}E{ԟEZx3vI5SuE.!uSi*<6 '4 @XhAO@T\QMQ3θpoi>2:-C1[>EiS HLÆcI-z$b /Gv Q]bX1[a_1H=/Jºf1[AďV9ӳ%eK,=e Onl K3zKi]9ĠhDZJ܂(C1l8|o mqJӷy34&OΈ>,ae{F ˬ5ά''IxJPkX{z7bx'|~P][.9]=qK%l| O>w@ ġ!X-"gx7%,+KQDF9*nt72> dx;L[ (ۢ(UgpMQߎTW- O O_wkl2$k.i]#^gu39Vd}l jG>bv W>>lgc\*@xxnvn\Uzx}@ 8]w=Cne@nX!"8!Z$俔_<+IA'˄NuX>Airq ˋIC6Sƣ:b@btO3ZqF s HlB1m__N2~X jdZ\ 5O+bR]I=Y1ÅP (|8es{xF9V6|T)檩vܮ}j͇ K)i{6-v 06MߎҞēlfe{lD"!8G?LDdVb^A@1woF;<:RƮ(aeed\CLRF˩ޘM<$O9.:r!ﺔ`lJcL. TQ8WSK/*0&U^4&fLR#T·LGF/$XGͻ"lx=y wval/x>G΄sG4RjD/k)tD{6 9 r1+9QPgp>m&fO_Μ{싱2- V,.F6cbiID7Ֆe&>|<3#'} B,{q=:8%ҵbx3 _I˞!}ΠwNAˠ<Q1c| Ԯ{%h}v3&Q ӹDeňًG1,h8T(rQѽcW?8q{}Q NInf>S.&GWXsM=0T}`wVmD?E5cdWZDN}ߧavoAӼ<2X{#NB^q]i` 4v!1@P0 D6;/6Nk^LMk}8S/j~߷_*gmZ̘VҴVk8?J{-gU{ բB4tpzLlV]f՝mV t, ly}[-jd[?An/P_8۵2y%l>F˙O8YLܻd0?K70 |/aJ:v341#-ͥ5}CA{ TQiD*47 jZ!ʞtu.ZkNlc]WML;r#{ԬEQee.D?oEڵMNyr"{f-+Fh!5ʂEWï:y!uQ\ȵ)*̘uWFoG0*zxe P]qa]s/1qKiemv-g$l_U e$smpم㈥lmuibZy6(fɝXnlrCh<aYWM'.V1ޫ4P9FԄ3lfTnD80e 9oegh@|(?„Bm`~VگܸdZ%.ߐIX`%}_@\Wy3ï +Ot>_Y-W)ɧ'ƻÇ޲!$ŢvWBqxP~"]6GB[? ]'k_>h=<:/ #lLJ_zOH6B0D@ݚ/*9y}t,ax4|. / i|qU]xanɜ6ՈyT#5d p~IJ^jB?h46/4z{|FrحxA c# 9,z*o AM"l\,įs.zZ/(w-K~ߐB;+̢h|»q\nnk %J^vI%NV;GpDxjҸ&TTL.cC&5qCv  O11s kV(CF/ _3|]vOr=ebxK8 C\4:OF51J6vy$w~:iw)/lw0M݅Ӕ`j0ŋ/D$N{ 'ymQvŻ= = kn̐^M:c ǂ4i^U@{~ ]]ܡ~_YQ8U2bH=ikW]O6 2Rk:[mH!њ -|m#1;`>c2V5Ϩ+-+^Cl8a2FĽE6a_͍p_Eo.Gc\vvf8zJ^ԩoYNfO2tpiympQi|ѿ zLtxT+^6&S#b3P5V)ƧexUc PAêD{_{7.Ԓ bQ#=HN6z=V)*u|Ŵaz _1Mp;DG:Wi<޶0EQ bgY9^4G.l;''fَ*;AG6]٠;AO6X  lpp68$T d(KzДR2ʍ|Zغ>/_URHq9Qv?ਅhŒU7k[/n#vF"l$l=>¿tUtCH;CT|Rkh6dhڨ 0~aAҺ3BÛ ơ]TSќb 0j]2 c"! 7raT(Dє(jLm4fxٲ`Cx9OЕ3|5KҢ{'U~+HRծ:vml~)[t[#Su d$HephjSPlh-^W6=:6;[0ɵY)]euw 'hbV!K?8X+^&%bTjϨQ;`k Z vޚq X,z>U)\a92`<.+ M@dQ^=-v|A'dž{%3G݇_2Z~h&ؚlk_|]q潪nP44k%"%*Ln~{BBu(^FvYonuJsg`+$ x4}!FP̩]B/ NeL-(D#@;hn#+ E% 7߇Q[|pcU{[i :]qb7$<-zVE}@a30&#ZFA#}:oQy{q];tUў :waVaF"J)vļ}T`V?YMhC_!ѣ:CݗZd3CVa}@f7a]@㌫O PL'Jd_v$ PaCHNS ^=?K GTgb?~?S4kjzmwمVyizks]n01ŽWL9 >'Ejdz7 Hnq+`0䩥eS7d YYİI tAsx+O){  u$a$ 5$GlXT+?d-[Ƶ"{%ynDuwwcD`qnBb _Ef x @KN?Ru8Rc@qNH4xE;_el i4쾥T, _$g83Qؽ-kIփ5,Qs z_QhNJL#2~~/B~A*kq=jYlghzS,b4LhV pS+jဗHÌC`*q)4 BF Q3ke7w1~A&~ĬH@h· A6R*C:ο$Q*k +~EV %t*2<&p83"t [g|[MuO԰ O)"`nnuU{C:`Knk4`a`W435Z QyMƥy:k|"P ds0V #UbdbT9jpesLA1ܯWLާ݃neKMxMU[jEkҟTOrӃ"v6b-rAQx⻠Sn&0ށCvpVKBEW ڵ^5w. eg:ܐF <Ɲ;4eZK2@n|F`q(z ^K5 щvy[EE4IBsۄyq]@ŏEdj1l%|է/O>?ɓ;^]{Z+=ɶ:Ff-`qNqŏx4~(\'fmgo6OB?s[Ѵ0mcTKtZJջ\ܩwYړ4]$md9kkF {1!=;MyB%@]GkpջH;sdvSI20w8#')OMuq΋i{pi@<;y"Sz2]R@B?OԆ^)Mil\..=7d$xl߇?8z{: { ~g-Z; o> ;9ý|"['®HEָEֳ8.Rm]mݷxi &mh}6Gc+x0Ï Vvxfff_;I]m9xaӉzb@ւߚk%MZk]Y{-uGjњek7-0zY3OlI'12V6J{((w Gd81Y}I8]&G6Ykt噁%9˙5~lAŴS#.DX7U=Tiy=~?uwgx:M y8fjDS7 =<ߑЍ(JWWb^V6cfu>am'֠tM\zp bBE5{`3#14Dۂ&!î֤ypENdBy: /BfMh^6iAk`ĿՅ]  }d̹-:݀v#Ga1X'"R!N,kkq@8~ 09=mމ=Ʋ|JSZ S;t-GT&d8Ms᭦qى3ۡo֌pZa֨.48] mn>>[maFIc4'7j1)LBQVVpN4 ̻i奖v[:p>l4.'4 ]T(ܭ 815?@:XUfQXjY$4 R A,8t*PUV |.1j ѸYN[n! 5j |?+3G 8 ܌%hhzԛ׏VL-RvV*z–KOrWDbL0:SCZ6Q_7_{̄۶eTZ*}RjPơ&.q7-y-Ur%$l59t8:7VM}EA9G!܃%}B&H&241K0OKl:8x!jQͤ#Hx+D,CjŅ~ JsB9G!]\y$NW~==7@-;ۂzFTퟅ]ܽ@=Q2BMWp9Ө\9إ-l}(6}Y+IBll]O5cPhL9FQ uR} I:j(O 5ſ˨)YR`< l^q]Mb:0;qJ{_zKv%ۭc\՝{|%t١;Ek렓&Jjv໹!razi'٬c8+epLGO_'(kA1C˼nRDWOVSRϿB _;7>x*\`1@:|Q@̓_bF $+f}o\TyT0I6C(T[Ɠm߲xގiUذc?&?E"2&M`UГP>Xzh#Zs7FYs( WPK\ڔH!? iY(]>[2I'K1'G/:'n<_BH6tŽ#Gq*ō/mCNZX,{cn)FVH%{GRYOk_%u&:%seb@ŰFfy/Y~yEtF|+wq%?XjuHpFr8KWf%W̴Wky$g z_`36K$Ut6R<ռ3>ȃPc*te|OdF }~UR>[Y@8q|uSw Z%TZf<οtOdW G~\CZ)GKC-yĢ ɿqYb){,9+Hv Iu^hbpS/{R?NA=Q,QԈi,٤s.*>N2RP9NBU!V^*4x3.ɩ~,J槑.̶Ap K-ܓy_ftSi9r9E~(&Q_ń-~Đ :BtS?x;ċhp4:rlӣۋ ;?Tqv~"3ūf*0&_4[h?w9 \6OOO]rtl_0􊀪ʷpɠb·]c1>sI'p<Ϻ/zBðǐDh|@똳5HA 1B.'ӡ3,s}R+Ҏ;H,_kHR q-8O@Qh8 `sle"/=DGOdt <ŷEkDN\* &#ߜ񞒥5-{o<0ci/Q1h}Utr {Nb6b1lvow?F8ǝծOlKn+R\ݣ u20m [y>0&wckGZmqcitsp1Z^$4+mU60<CƵ8ڡK}9(t"6e0`08ƶA$yu9SM\SAƗC]ͻv[zW,7`*g5"2?|p/&xw޵``U2vSUȏ܄H:|l(EpcA{2pxO'U z{괅B{%ey-<~TiCE6Y*䷿zT?t[R?@ٺЄ(7[܋O*-?N6c$@\ּ~EQ~UV32Lqcc}[󎷼G-o/z]cwh}W;\؄LH 3|6F|uџXU)Qk5tT)!!)@)tS;#dy&VCDD[H _%xO+;Kڡ`B3)rO:+=r 8*L O^P8عi;/ģT0Yݣ8IԈ.!m>Z8Nl =cN#kܔT8ˮG ދ0!5Z8+(.M?,w! CX jjo68BO~o &Ԇ7ފ bnRk^e?KzL)[`ul\_4y!u?zҥct~-]ntptz&- Wң4lC" \%|C ؈"V?,f Ԡ/Ϗ=D Q;&0SF-- `=z^ؑ>&yM+hܛp aWJq^s nB*$bKrLLlp/C~7VrqBbos ytӟEs/4lRy}̡zx/+2uA?U}NUgd}l}sORϑ4R wв@!%Bj{o,:Hio'R\XgɈw@D|ן\tx>G%¸ޑ~!'9᪜9ssy9dïwߗ r _ '|yo'+qOoxOoY DAj(͒;!×nzL4B s=j>q&o7O}QE}RɂʪbkNפ˚jPS1Z/zne=ZP 7{vJ$rfQ~;tn6ܜ^~+@*eE_ϝl6)kl2NY},B_(M/כf6K|]T@d[ -lBwF1ېNT2G}j:3w*3̬l7KtzRc/%ܦz•G:;Nn/={W]HVܵ -{^P !@ !|'w-kdg8^zaoZq5sd^¡7{殩?>iܣ%}_PS~|_su6j=nxuhpڦo_MR7Ϫu-Ur̺[S\6u2`џ[?~E';ڞZ8cbJ1l7K&ާ*/>Um-}rOW7X(^[?*OSz6߬DM_H9g-bOS"Doj 탯1tNݎL?={~CgVB&i֢ PwZ$L>O}| }TQhiG=-^TҝMr/O;▀-a -+1lQph|oNN F4{榒 YuQ>Q^  [t%Ī, axû6Jp (z[gc֫/,rsmvJ07{SuU 9_{Uz*\cM2ޥ1~K8}M%wg"C od>n x*.xOp>O/7]ӄ|WIHx/ãN/r; $#3 ӵ;D2 gq>!۞ӹK]MFJ _C _u;t'u/?%@';iNa2!cGo!<4YDx@3@{{p9ς;8f5s"77_zIX-Z9qk^?*'gxsp_?N%~G>GMH87ps;3|Ag8 zާe$ cx@vģ'QOax a~A'Í.p' _ ae˰>>fût7q: Wc/`pz221 ;~3 _d8=63T 7+OٙqqC fùp 3f80BhH#RtF  2 Sz+_CrjZ8`]#½BC}V=L^M)xߛ(RM(*{Zc·SIA.1@p)iл=x@omCa SE6,R)Sޒb/8f 1''{"^x }c G!N nƏ?'>j'N8bx1G;^%)(^%)(^NStf:<7Mϴ.L3#Lёba\ܵTV #J~{keh@OeDR/Kj6>VG6+{toH{@pg_ڇve|Q%k[b)fQ]!(\`9H |8ARrO.n7k%qx23Lΰo}v^ş_+hE[t~/[N /[CRmSéqTO?__}tE{i.Un%i+3@Fȉwdv0Vdd.]Po@*~SA_~z>g\NdV۟;ӎdyS7(ѯz8RøA e85yIxśLFkxnK<) ^ I#o~ i]GF{l{pX٭u|aPUYyEU ~zo%Q?qW`{SF +AoTć:KLʥ|" v+29tӻ_. ៳ El*|Hc[m.^s^6w=6wa՘1G]OxL5j3:U<z ̡{۳= m;rr#v&ʽ<ᘛʞDxO$5.kӓF!7Fݗg.k9i'CHr@}"eܴvmF:ƽBz!m;;I:P:m Oٝ o^5рLr/孆n!4rQ'\4{ې:-c{,n7z)rF#cJ0W;Zi$; .kzoGkvD&DIaV-mCْ%} ۉ|GnmGa;d@ ˩~2щRk2fB*/IdRhY#(m`Ezz}o .xj`˿KP5nh5-Oe 7Im%zSDM)a:QvDe27^rdt$y jѱKJaeLwp{AZY\~2_m+mei)NڴׂZ_#n3 ֭3)_:aI"LMUTMzo*(TJ{}%Kz5z9a ֪seDs=]x2? uY/t]6aoEr1rT2L%9MZI"}6s;.0ZːYv9}m?W;,%u"Heȃ^G \7`~c63IqT[D\֠EnQ( f|1Qz*ose [Q`=`W|J[KUf&Y藎s|[/^rLjAeE.6᣽D.2RrjɷO}RVyVG)ݫ$|{d֫;cUc4=- \mE.Qux] }S FrWtq2_LCU+m̜m()-،>NFѿy(=GAZrl2ZGn"m_u?BrŬoF$nDݥЁݾr<."|KΟƘCDEԻ2ԗ#Rvh9DGJj?t@A׺&-N_z3wsJ%)%IT{Gd4Z-[750dԧ%jTjHFcx6 QG#­(/U[vyg-d4pu֏!agIV n[RP6HN]@ZI/;bAtW?CْRZjP=R2%MYTc r>R}kf՞`bEo>w9%.Wx5mDu|Q"IfJ>U:hIw܋ F1H$.V̕*:p ;/v"pV!G9vXJ`JPJV9&u"f^of4~ӣ"f0obĎOm`;=mغf٨1+x7+gZ'VbL!4z:;6BhhkX!Hm[Fi{vs'ltr\'^G)XV<=5n9E.(G:3}%.^qfwHF18x-NZAي:1*jtm+E9#OlR cLx[=,\"|}ĀlN=A'vRe> g&;*U)걂X7fnܶc޹ӥOxs~nν|L;8n=/퇛| yZ~[ȜTz9{Qo괶>+g(FUMZGvΥS͛ .+ m,$lz/ΊY#pb{ֻ&"LSgz gKrra\;'M|K_VYg2Xm1=Ѫq8Fkz^ٿ˗=!jAДޭs.afK4ŢR'_0PJk]As}T&lh`JTjw93h- M1VdQ;Bh?0!'LF`u?ñ'A@C7ZW\J5'ME_Au6!nA!ymZI{IGIà)U Js?P/v/OCWΨzmGY4{'v<{|4}cҬiS/ڑg&ݧ/\Sؖɞ2Ԏ ヲi;uZpnG_CVްؔHaM0wp08m ?sٮqsW"RrlfuG`)&w @.Gp2!WҞ}.rZG,Yja5:|xv@8=#(7!U:V̼*ZX[]p@pݪ ݘ~Qiʴ[QLJumz5gU÷Οu{Z&h%3$WI}MS]I>%4-֣6ʙbF3F3Lf6om7Y/lSQo=OƱ}lߵ7JO:rAOJVS0MƦ$`։<1%D,J i|oXy3>*n|{> :yw#4 d_/^=3ySdՓcB.mŸ Fԙ%:H;FI͜>֙Q#kwհvL^8kvĨ;&ܖ"Z;M26p#y$B}5QQO[Xh`u/D?v= H3/-t/;K:Gu(Q F-Cx֬:}RȳŶrcw!3 Rwac%2j7Ѳiyђj`\,,ɂGԫݪzN<:]ޑ\ %(}3Gm~uMy"Geȯd'N~ݎFZg$o=H(z&h65--q;`)Gkwj9FXFR*Mߖ}P'L4U蝀}&/8QBSG>T{ה~u{?wL[Ԧ|z`j{O,%ʹK lCWFՌQR'C)z_Y<~ފۛp{yiihSۀ:39@{YбsjRt#7; e_Xnf]i`jr^ͳ3r7Qǡ721MiCkQi Mt2'j_A;0:/sJ߉&~{4WLt>Qgo;56 ^޶aS`;+&9pobD7X'{ ̊_&O[OcNФ^O?}Fepn_;K4K$Q_IEϫ{R|7 }b}5z\Ouœ>>OV&+:*>ޥ'U>8.Ӆ-wҷcѿx:Cm?V|/=%f<[?I)}O;u&?<Ae;)Vs}&oz8瓧738?٬.D(]fO*D?9v:E9 $:=k)Ŝ׀LGHy`9oYk)Mou;UĻˢeY{}_oS,77IsB7;ށD OO ݋X"+ozsFT kM;S}b/UFMʴ&P-݄F }w~|&FB6Ҏ?TVvn3?8?M 外ް+R|rf }[d>˺0һ/2EIl[߇J-Gd3QZC?vj *g&/-Lb H}DW8g?7ph겮u2MD&5O}S9[7{E)Cztc kPmsc ߇M߄0)9wpn+Pb `;n_d;Ys7=4oǝ;F뀾ICT e)9:A ĝ ìUSd\%aNaJɐu&{Ba"@0EDIfB&3̄j+ō""ŵQd3,bhѢFD=Rښ"*Z+ϻg$m/߹۹瞻w#Tl.~?wwOu~jgO'םNU3d\nI11~9?n?O.@OZٴ-k{Pý)~|3oES]Ud6?#nΐ_ (+o2i-k1k<Ww5y_RؐoᒆhUuK )`R~u(t/)շ<(_ȯ4&p/E3ȪȚLRqi+NTFw?R_Mq䍓fLnĿ5v'–Ϙxt`تzFw4B詫7Vz˞֍vwTrN«gQ 3K@y:Mr6(mw? %+J*x =mSY곂fiI ]߰U҉f&Vj#PGɶ2ଞEv7ISڧ_q=Ԩǧ*!6Bo? OvJR:$Y?Z-ƨ5uSWwJWfVъ!w[yʏR˹o[n7sЖqN3?{sᬩ3"N*H>ڷ}IleR6ӯ=F?#}d+Q:dK;ro-$|E~RrR/~ow7JO|+$XK}C=d3R;'ӏO;E{_J5N4[F< tr3:_ Ur9f[$ ]o-[C WwC['_>߽?3\=dq,ϴ6j,ByG_zR)W~zۯ칫LǾ|/͟i]h5ZMM5&EjCNF_9 Nf4Ymy.lNq\\Xo&{Ny@uwpI5n=Ȥ{NSeb6RwO.9y5A w\ ~w&\k6EYncqywD@ݹ5Sx۟6l=o!cv0ash悪+/Y2#{7Yc:K@#ցWdTe:PvP_`p0np ,6{bS}᜴EM&>쪓}{orZFv~P+>oVV53>)\f7MBokfAjL&4k.ruEXv :Z;ͷ̷9Pz)c";Î^N;~HٷŸ19' &2oxZ'QZΧVr<",QB|.w]LQ'k{fJ!NݿVZ~W~5P ' SW>'d3pM!Tt˺beuRš+H/>klދ1(}@b Z___| PS ȗF ru*}N,镰SN2~k NM1InCyN\Ȇ\qgQԓm-+lBg:姐*"yߡyHxKЖ{up2Y].N}|}XS)Q_ X8K /?X Yj0eTl0[ NW{S4vK#]&fBrfh ϙy7wf}n +FIs|N[}I೏rRAz&qLyӓYrQ줔N6>mgմ>yyZ T_s;ؿ@=LPfs^eNZSK+.JQERl-ʫ_~?\[s2wm [K(P? u^rP z_ZV7-{vޘ;7RAaQqPf2IcɬsԴ8u'~Cw8) XWII_yS Y-0 詈Yww4wF(#W# /)ϣNx-T"SbX\jC5K:;B %tݑ83JWc cۍr`󻋳>{m[V=+EĈ?z޴`;|?u??v_>z~ƶC~kZcIjٰи~ToYkj&}..7~_Qi. E?݆mc,k6Oz]LvmA+7޽d«=֠Kg?̶c[߷e]|%5G.Q->yWF%y #jwQvg\34/n+lGC͟BDS޷"n;~K#oSͫ، ^sLOGz{g2=y}q_=&ܼ+Ux;+_Tzs /~yƶ.#9?7o?<~߫-\[ּehmz9BSqﰳ+K}J{_Ch=7dk_nmQjw#˱߾oM릭} [.Zuy~ Ζk}3wkls'67e;kSu&/XP0wWb?DԪ6'EpU\"YwTpe|+Zк(m^qL}o~Ş{MU>X}Wvw?^ /ytK3԰UK4ꃙr{ŷl1!=RWv{@];RF 1sy;s,27';m7{kx_iAGk>_UG£^86/Ϗp$=Klen޳Jݞ?~w;1vä#~|{ukRꞫ/7'?eq'^c&It!*:[@"@q> AW( mcwZA,>gFL,2u,Cm|(L\`_~tἍkRH%eU+4IB9V)p0ΘC%P=_Ř^0.em?s1qf?uG2.c휿4 #?.<187; S-<^쿆̿|?ӓZ[K82D.\w0r}\W3c^x $`\ _/`˟C+߻&ƩY4?JEc9.k|s?3fZ. xdq$X? hW0{ڿ/*ƫH@1WŌofޭKh@ɘB|[o`_ h&Ɓ(߻z"s@78h#'߻廕b.I]@w2h5aw-c/ed;c7Ba쿝xg372_hb|./'%c_bh6Q쿇q:p!Bo 1b2_1?b,W9?b(q!m!Ns)D!{C14߅11*ZKb,=!wBB8!߄b3f79bmC 1߶<3ѥ!ӝMHHɥtRK RuO29tF}G٨ c.d|5O|?ݝ?@׸v#׹~MH$ҥSTJtFrS)IeHTC:|ۆbX8:L;Q j8D}7ԧ\>hî|}6ȧ|y><nJ\4wA#??u n ݸg5bUꪝ5'_|o*)N=ܢiK5|ՔR}MK?ig .M>pw&;MurBfɾZ#/ZX*fP!VlXvxfDb)f 5X\bMBC"ig^j::^`8`Fz LAcr!Xb5Ƞ@j^0 GA]G/v_pO"KyYd[J`U GK4+\KZ q2-%Sf*XOa=$RryH)ӫL>1jvZh]\/WQ 0,/u9\ʯ;)HlĩJ0ZF?-2Q*>)O#yʲux^^Ҽ~)KivM m25RZnsx^yfo҈cZ7O)0YFqͅW=<­ܳͣho})'m1<v[hѪfrF+;n\q"%/\&"NaLj,ȖٲP6E-IrҊ^(S `K{Jv/G:upEߡS17I{7o849dEGDt="Qdl+=sKlǏ1 " <}3ڍ2k!.OASʹѰ~60̓eIIMD^½>iIe"t];zd u {׸*'2=:q"ј!aωGi 1*7l'>v9<2h (.rKJ˽Mς${JY  e K-]Vhy(6PK;H9kh?|wzvp^$e{:gh[qcRocN4v0YP-4gR"R_菴#c.1A٤,G^!XZ}qB:O{czwx3Q#}PsTd<Qv8:\U o橄Z>ɏZ>tlGwjwM;VD\O3bNum|eՅwnPvoH?\KXM5}W% efe SyUT^W6"<޷΀i6?sPĈ0Iq0j~:E\1\A~yѯ=-iZ)ՙ" ~LOfE8lp[mFNO99摈<egk5nej{r[bk|"ƠfK^Ux}W| k(5LJVN Xwu'f8 =Q&z'a,e,S=竢T"~ê9:(0> ـ*B^7Hޝ^S⠰[41=LԞEH}<;tSձS@y$>EG~@hPB{7r#en_yO__p48]>^zX;Ԍ4ϖ@yrԫբNlx#&܃4q4z6r;X*D&|``i{lt_f&GɁWɉ3; 7&|xു7e׾w|˻{➏^:1i; X>ƽ #lY>D3l7wxkvoat06F{m&0 ߾K0J_0.`Es2w2>Ψ)1q8xƩsϸ˭rcDơ>>ڶ^8_-a~p_dd`0z%\Wr=of|j3c|T3NbfpN's=O/`x1(̟g1Nd\++*V S84 : Jvz|rD5zGм20O:\itޫ;Q~_϶G#!`[i*̞f[q"Uy1)t l.|) şN[MuI佩VpjJc"s* .%xFM<+Mf.#&2ݘ%dMEf͊a@wk*MkLPV"5-b4U>Pu9z;<徱ƩZT䪇l58pbrF}VeeAn1KEu:G"g u(wl5”X Rae& _{./]"i^d5W4A>u&z5I B!x7ha6}*a:k$oJ{(ޒ6eop+h6' Pr;wD]Tb79xU,(U^C\Vo4:=Sjvw\Sv㍫IZ1$ǧ7!\ /x6M" Igj0`rL_8inLb[xSSnruG7T *5 tbB7|cs $[Gwh09MZҨR NG+_@W,2%^U{UU^:x_EEeӊJΕc~,|}}=GϿ'^p"! .WpHE{&+-5駭lXpU"dЅ&"BJʃl!-$=TWz|/:KmMbgvx(ʹz0 Wk^WST}cYb3),WAAɓ?; IIjۉ28̊DR.# *>̆ P x=X|2pub9U[]9$F+F΁:48OyB_-+)9WP.ẓ;ey/t)%y kWքzS}yU Q슉da+<7_%/#6k2f:YuqBmdW#HZwe'[q?Z^jrƅQޛeYYV/d2C' pV bgtCJK/0TTV<߼*t7e , (Q"~?)YAnMTdOizG($O\8&yW}J}LhDA>5 zK$Dѓdc>ih!@>oTZUdJZ%frQU%101NtQA Hobk^EmXg*l MV>hG|g.5)D{M$<4X(./F$ u`̫\w,+Sp)cUyajK!aq%VNXgMqx:MAw"+_#'c ixϲr`]-˲:q=QllU "np?7Q' % w>{dg =8g|'0pg09;@t7{p_/|3aZc{e;.>=e?M'ln[Q dyu1*c w!HnE0v4hác#S@p͑VnjFggpӳW7=fg/~]8 n>:yV<;u ApJwp*Ap |R|~sAMpہ].g'Z)?=-Z [`KnMϮ xs z mu ̿e끱ls7=] mnz{Jx띘pkN\Agxv|Ǯҳd}Wg($ |`2x`nng?Mϴy}[3nV[< M˷_ )|) idz{"pٽ"[߱>p7tw\vWob RρOC};i 4VpgW5wA;#`~h+߄}߇ ܃3z{@;C?1~+pq  i[ \mp_ 6| wp-ީȆA`MJ '&V%'Dܫppzup_J8:[ :ۀ};8 DZݷ_f!JĆN8nJ"0vJ;2P>M0. ,.x",4Bpu 'ef`IGX7/QըoDܤ8r9p;OyJ6C@JjS5ІF T j%@Y;Q.X#u5&h5m$.Y=n-p?hnJj-p'WLw-׿ܱ^[/_ ~@?8ahEq _ } RƬG`Kl2lN{T`w }1ɿX._ eی G4wlRᇉ!pؓ*1wX+v|-هz[ʳx;?1}t&"7?Զ~&X!zmJ,m)pǰc? y)ŽI'_> / #ہǠw%P}_'ƚo,Eٲ% 1d Y,+J53fƐJJJvBQ)ՒJ%3Si=λ{t/aLk'.ߵoS@Mp-$?( (+A)Kk`@f 8t`/ i p, iCw@ۿ,4|]d:(B]q1(mat h(H؜{,VCRw 8Vd- xPҸa[p6p9u& '(m *$̷\C 2n.W!Cn|:F4qe `?$x 2:l:t!T2}!@_hCN>mЁf"D-ps%u+ [B_Xl} `n*j"l Pb.= l;C7 wl4|FeJ  @iO| v\Ρkm@v@l(4m C%9tm޸9J>l~,2а/%@%\3΃E5H }m 7G ʖ8']+ˀuct;Xh%4w%6GN.Jq+Z@5`3@{v!{f\vt*&8@+n샾݂K [[9 5C`v(t@I!;a<Z0Y m@gކ>}Nlgαu$a?6mc$ː0AeiLgCASt/&+ HԂ @[,pq? \ܰ[hDZ+ lF!<0Q(;B SeR!af6(S"Ά4,'!~T 7] LN=n ~_~ PryQ!sDpflȒLi@Dd, 3Ekf-h9 !>1.X9nBХ~d?xͣ khH#iZZ1111:aZ(Jrc4QKՈ 0OM ](zҊG y&+BO '̆(dee,V`6Ç#TGȚ9{}hLyAޑlP9A$a$rܯPȎCps49ܟdR׏ y²HG'?ߏr8;p#ۮdO>5F瀵߈A Gȟgq@/ρٛ])heY)⢆.?L "6t8kP>ȏg"qNACȎ tr:j%qXN\ B%#}dXqﲧ/;._Į1jt? nFd؊G/Aƺ:haOҞ8Xhh(Į Z?SjC\s"u|>i'T#ߥp쁱O\jhhX,XAZ12gDU=hQW7s BBFED1,K M 37Ƞ/`O?k_/O?, OR?-s"b|! .G{k4&C짔﬏8a.j($ BBp BF!珄A;8 B2FSE[DfP& G||bDHHV8ÿ> *A`DӾ!Ebu!|Lp"h2dJb<2` |#gXJS_mbZ/m2(b Ib]>P}qz u`'%C3i8 {4' [L0速DȀX۞S2: /F2-ÎaѬpbqA*mbG=>A|H|/Sc j Z?|nuZHM p{n8pHᧈR$)*(+ōM Sb) J*%B("J RGiS(= B姊R%*T+ՍM Sc j*5J"j ZGmS=*B㧉$i* h4+͍M bi Z*-Fh"Z VGkӺh=͟--MVFIVnفٱ )٩ٙٔlVvAvQvIvYv]vsv{vWvO@6B秋%*t+ݍMc z*=N"z ^Goӻ=:g2$*e +Íd3b F*#Aa"F Qhf3=g2%*eL+Ӎ d3c f*3Ia"f Ylf3=&ß##CQAsH99V99n99999 9)999VNANQNINYN]NsN{NWNO@g$Y* eX,+ˍ dbY)LU*c5X,\\B.k[[ۜ۞ەۓ;IHyynyyyyy< Aуc1>Gˏ(`A`</&=rYr 8r$T KD;d P},/ig;$.:%!$.$.xD#vԦR"iKJΩF*__{;rI2-Wy40X 9hF5>mSux5Vpj_u6=tZ9bunU=s2snܩD\wy. Ef{p<7 _;Lie5G-6k,sl/Wd9(*e)(k'~5 3z#Kt)3Mre'qFP1Х2*˯ ŇǣS[{ܑ4;r!m\7Dc砳֨%)L; Ĕ>XE#؇sHmPHPُ(Ê6 ::zDt"&U[OW9Wi=QDn{vLXYXBuxp FEjA|xnPQՄBǞsqqۡ<[7vA]Q_xm; } [Lvk%\+7XDq}Ƈm[khj[۹ /ަ|eoyPZbi!:ߜWjNԊ(ƫX\Y~B$`OŮ{3W^+kv8Q6ӾBcwm:>Wh~s8:{Qf ټG A*qIAD)T #-1,,0m.eQ[/%F4цKƲɡc=Pb=h%3&}Z}C1 [*ls1/o8-" |?6psC p㹸yy8LkDw3aLsԧBpBrbX&m2iWؠ]A{,E1c٧`4<9ŬP |(FQN|e fīXyf|TpaP'^˞Nh2;4j1[jCf|#-34KֽE' #^xl_qWH"Ex;K=sYixK{ٮ}Y/[R䲧I1Y$֑'a7Z%nW6~[DҐ2=N7>xV6t,Ŝ6ͣl7ֽYZ^7&i3? zKrL]Tu헴cUȤm^USҳ\Oܫ5MzƅC2EK# Z v*} eumv`c3 -cÎ$q(N]̲$jiԨ YZMJy[-ڻC%zB߁oF$Dz 0$)9ʱ_ C5'z^8R^m٥d>GS: VR|SmiS>d0{G>zY:[ni #*Dj$/O/(vT$/cp:wLJ-W;Ԋ=l }u#v}g7[Rt:ǯL!ʬe 4j^?>ߛŵ:9nWpVV9^z'8(91k|03~~^tʐZ}BKj%O!KVo^Z]`g^&>ZѷLMj&mt<$_LĖ+Džb+QMBf{I\WؠGxzNW헾?0丹QX8^ɓI7$Ű0 "z$M]]wh&)khbͿNbOG"FpXUP%vQY@%Ha4S,3 DWCKTF٧gۯ !λ5)I"$ޥ0ٝ HTc4QĔIctϸ̡(Q3UOY],tnwu pe̕}.fib^JrD=[8{ו:}.E3i7q +}GQs^fBMsHM[oD*IٳF=~iX]mfN{\OvD磵i;.^f.#Z*f]6AdFHo<2oâ L4q]~DxgĿ/4_]7}h瞊jĞ[vOu<]mPLNy:E@Zl๒r ųx|tF:Pё^ 2g;s#1ي'o w_ _+m]4E׌S=jH^G```^hS5uYȎB)X X73hOģgo07Z~aZfNZ~`8Su+Mq q@ e{k>;B$~1p\W)sGwgL\7ڗM;Yx#wkzm/Ğگ|͹gήsǾ;{*cc-<,Trm*Zv84OLq6#$Zq䛹ּXF͕ k;͟|{m&wDkdVv5~[?uŋ[،ڮaTf!ee Ưڹ85R7 9!s~ܦk *ʝ~O_,\54w3>9c*4 [IRWS׽jMKDe**p ;{i{H䣧M{M`Y|}'bOpXLnbe@٧I'"eMؠlpVy Svͱ_h9O]owKhrLiR&s׽Qۓ=m8=w&\?2p.M+qxZw?''E:Wƣ=w[`ܚzk۝py KWWiGr_YxHg/uQXU^`%?e?]ب2>x|kOL7UNy'{l6nja`6Y3Kb쯚rhΩskFUbES\??[_xI=]JR5nѢ7![cXwu'"Y4%=R2jfO{yi̙ËW@*5v6Y+7QM|q~m.g'n2ZFm~\Oid>[`NArTkCNe֋ȣΩ&R zGt*lx q:;is,jdՓܑ^ ?8z`Jg]x~ ; tyšVn,X9ӋskͥfݾcƬ9X>;afmCo#vSz{IXPݫE7m>ڝ-T>{4{n~MxXtx4ީU'U=tksl;sF;#t>WܤONvۘ25aՏl5ۨICh.cx>DߜVД{g^H vYG/9xMMOlF0 Uf 5 $GӷaFjl (| s|"բiZ*H|kBO ]B}rsj G#ǯ!K[OƶNQGTEUPb ʏUË~$A%P(/7g]iS~[A.˵s%?t_.@S[(jCfM/('EDc|wHJK3OIQx:8q ~"C+wj,G!+m譳3 yNݿrQ:LBQդjSIUxQ')GEa")MD{Ϟ*bNػ'l <TzB/VJYK,]f,23dc+!v4cD%1MEģP;1&&W7*:CTi؀[}4,[s06I%g j9c}m;1[jÆw{z\fJ5[£Ezm ݄TX*󨉗}-y^RWR;\7ybxIG=?xbǽn:?uߔxf Q}!~ ڄ8eT&K~XaݶiW:O9$/X>v|A77=:B<.K>@#ql]?Y/wC4,_5:xz쨠BSo 4UO]W5 |1x0v?®_>JQAw?:Qfߓ{H *ÔwaED$TX$}(k دQfkkuSlNF||Y\{5.$:ve |/;P|ص*mҝN)$+]N )Wt{-ۦl\U]=}FER~)ii- |WuJKӮZ;-tsc )1*>$(nLZjb=Yv4M{-Xl]q%!z0я'pZuSmGsxatT/h`_`bt=/z,ec /{/Oؼ}.#zeȬ3 ;N޼!'ݗiC(ݳh{3 d2cfqɝ jḟTK>4(~^wf2%h]Lr}V'ʜ>;iޛqc܂ 6s{h#-rq5𼓇FXJeޠ1=e=y,hUu%gv] NQIemxѬACcG{\s۞zmH9Z..˨:ڛ'_kY5Rqmj<9vRC tqn9'ZQ[ \}O%VAeꅊCd'߲Y^]kLrBF L64z;v߰MI0~>>1fFV,)c$Sk~:d{Q>FjM;06%'_r*VZ0oq\Dí[V(/5?ȻAci➝ˮwIpClK`RD<@9kV&8mꝿaڕq*y_mhF1*ejMі7e\106R#Zv.@J\,{JMΨ?<]ahI1e{;fg-ۗow1|f5j̭WLy%flQtV/nɵgJ[gUt򖒦ߺ[?Lkk5$]E"0W(Q 7ijSU<^-#̓h)EI7-exnxyҁ鋯-O\"}y4W:S+xŸRNCIW( QFn_GXn`̯#Rj JTK>NW[,(c RِfUaR,BE4)yd Ux_)BE_dagaa0'!BE;7 ] _ 4oꢜ7 c>,lV%M7fU\\aa#9.Ѹh3ylsUpz:vZqs]%y\cKwKk0=Pi|PpJ;Oڀ(ܲO%¦V3-S]wI_۳'Ω +.ig>$ml^wM '-} $m4eoXӒ3_\mk(ޱ_(ҋ!ոo~B&KAdcrS⣝3VdʖXs+۬}/—)G7 UVY,:}/_3ƀ_7 G,\~fէ=6ԌSORθ}C^ <#m̒ؠNKdOџo妑)aRMfU~ 6]g$h h:Nu^9jhqmXtRO顋 DQ2! \=C'LĽE{ ٖМ+4Wh޿m+4Wh_.4"T ]eNJ +1t #TT)##TzF PDإB~p\cq\81*ޜrJŒ5qٺ6&V?`W4Scl41YQz6<lj=/-4VLf87VvYC7XU3#UY/gD6,J;>Bϻֈc|uƅ p,Y74_\Dr47! 4F۞X4_Yꦌ"ʁs=I*gg系_GR.*bl%Xw;S5̉~u[VY z7Ub - z{bTB{q*߬ wުvZi~p" O,ֈ{?f{gSM2-ųnb-m|8X&QAcD1:s35bQ6vğM0ٲ}jӤU O5˵;18dׄ+ mzbhj?y₪]]kxkC(& a<ä0#xh0_x In>,6Ad$p {8u1,<Iz*s2yH|@B=zo9'*a!##3'@DWmE:t~Db"$+:v|Rl?蜱?E?0())))W/`vc ܘYOgy(Tr`0Ϸ8OwL@P,annji8@q D'PU  Wգ1ԋF+PXeexw,%CMy$wFyNo+`)+F<##u 8g2+l%r(DPW!]%S(SaZB'Q\]@λĬCsIJ;C7VlO4p[N  UVWO6Q*e̿S`}dY^C$@рMخSh0\~)DaInFd4<Ee9 AOhD% #a`Y$ ԉ' Ӟ%ů(^ O~@J0ЉDPZ:S9xu` 0ԅǨ"0$ )#X={*`e?M9ħJ)/J0ItIB)\XJR~e*#SֺC!6T,&A,$;`;ȳ  R|ONH$1rsQFsr+e`21sh P r9ViSdINa'M<=YӬ VAk 4{md/kKG2' 1zc^eT #ߩF_W^|+jvA/RO7Dj"_J Ք$ CgYx=Cs6^Wtp:"a(, Q( ļZ$-(#V UxOh;1NGY2Z$)JmZ <HBN*<͊da6Ywdz|DsIPNH8ltC[t@$}D [PA̲#i$?Ե1'G@Y`A@!DDӼsm5pH tKu$Zf a;ڭuNp!}$vXpd (~=ȵ!FDe_2 bg"39 .yŞ (\*h0@.a?!i;)$*(v-!ft%cUDgNaA uhBEBd#d^)Cg5A |FY|Rm$75E7/]g~* s\MJ P. ,z"H\5U`I[h^RLgdأ5-WdϢ԰ z9h^NS8 cOB?*=s$ &ZHߡF6CGBtF祇R*HUSDzTР폃<Ƌ$wqqV^' &WkD3Gϒ\q#$#u {+ gcJmjwaރ 0"Ez5Z.浒:hK$$ܧ4UMtDY*)N!zeϐXQF=զh^Y\~!7sȥM^(%~5y}ĉ|MD<O diBWPuD@$ V450  H8)y;D8X/bχ_*zƖ t絺S,S@zDRU;6_/9VDPc1[%a0g%=x{[ńxGV^#sf#8ꅠ*Qf؇!0p⻢Y.6Uu^DNl<y+l%†hLUQ}aHsb#arٓ@Ӫ =G%I@D PU!rW^΋ *HhiGМƧx|X(,>ėhg}?L!$q2& :IƦ̉*(`-.)EŤ,1)xr7m*|BHb2 Cܗ$MƤIh; NŨwp,byl HƄ˓XXXZ 90\6/,"990UH+K6"B. ijHaqq<`w &#"b -Ɛ ߞf [`P+vt2KFrxB=Fow咔(DZ w׊Znn괇`Mf R"cbPALg5bӍNq10PkS_iɜD^4DWRD?1Xh Ih&њD \#\ ȯxz}h"{$I%XC^`2m ByX£b KeE1UX@ox!_ P}CamPK iJu%8@<٨/7; Ov[C5I`D<%KRۚ {Jo [TO~TzB<-«Anho+w3[ЈDN3j%)9ˣEӼ"9Iܤh9IbiI33C\.;aJ| K:ps#c \vfM0O`֗gx2R4H}U@:Bt5qDؑ-"-E$ D \8\`ͻQ(`Idb$8)\b g!AK.;2eaOOQTX@İDejthNe'(kԤil͢ů =@,lmbH|%|aX|a~|POwȣt-*"ݺ(Q9c2~E'~FY8 0iGЅ-E4-j #׏'%W"bA?<%=a!I"j/y T1i IUFAzD=z%a)@>E<E#a-P2B'C?ӈ1qF?Z?XtEhL@cBf@~@)ڸ?,GCGhlڏ:)yЫңw5lgO.`9/hM#{ b$Dbr{oP,ҵV±mq,P1`DG0R aDؿ{J$JbKK,-.-QU /O]s2s]%M~! JJ&qIq1SY YM ýĥLዅ\2Z2Ǖ`pI +1\O;OBH {=vIF٪ءqstr|)L ]R74B!2瑝.})zC=ߙw,oќMҾȃX`U)07aQԢ];*ɇicG-j$HHЧJRQ(\!eJ! Z؞gJ3|_Ro/OP 7>h@*' v48 >)0v8ԒicgEǵW] =nPJ!6L%#^k DEn<^p HNyϖ\Q)<H ~ۚ1fॸ95'cq/|tw')"--W]97d ظqfqe?61Y[*lQ'#RXKGTn2V3P=^o k_9˙|>#Ǐ-iڒ2ckv]vutrQG{NZ2Ѵ^6ѿռ{<:v rܢWɸ| d?׻ӼTXN9N9ZR}ݫӾRo7vآLryUv*X.ۮcm:1fZ[279m]~>FԶlp^)xjZjf[^EDEYR}9AE!͋|;N=bo霳PpXPj+:6(Dqxu'fS^9X\RV$QƸn/|D{`A[I0U{ҚXI;dw;jWjr_ʿhrW |n%.%NsGBD1b^фALۍmྻ3q/NYĭ:R{0s3FLlI;,*˶{|nj#:;p_Z9n:灾n>dLeSPkł1׽zùZAkuMs ؏ K/+lZ6vhNjջB57ܗZ6SƐknaooHZ^3ɶa'jMeًW~Wy$vūZ^~1}Jy+NtU!Mk5Q|م> c2Y8_y1xyJ(>4mm~nf\c3m^O~1ؚ ʷDMjtrY#4/i-ذCꋂGo~t@;qgcO͸!e)Mz pKΨbyfENq _tc.u]eIO5;: XJyzG7MAXstXKW|,谛8Uvl|%r~sm?bY/ ^Kr>=+IK]tYo"ېJfx#sHMvő̫ϲ.U=M(tsa\66V1V,g<ϖm2/%xB;f0V>JaQUCRl4nw5!U'ͽeɥB>*~g܏Ps1ol=3gɹKB¡Üt?۶?QWrY%aK2RR%irtj|葆BY|b|5 X*qnnm 0Lz[s<cƸpMo h$'$gsi47íl-mmf68]N[^r?/"!EFWN6`xw]Q=ucN(J_1h&XW0CCy^זd kK=1+*=h;5H,2VH#.~ڍ%i uD,~?d輤}F'~|{vg^|NR2s{O( ~T3ғK[m.*< *a?ғ/#8zh轟:m[n q+k̨k㫚/ֻiޖx -Y{Qۺ"~rL?QsIL|^oܵICWC"}ߣU6W4ObՀփW#./}23}fuo Yp3<\g Wpu m=k .}V|KFɾrn^h{/Ytf뜯!۫911;N 'r[ʷ9h,$R ZTϋJ:t'N%]_o⺧1-qwtb&~!֖R Zz0zt6a3kVnΗN;ئEľyFsvU{)77)c2*<+gԛnXW]S31EUʧoZ0j1x6+>dn+˙(N?gbδBe+ašOEm2-N{UaջϳVL_$y;fXؙSm'S6إoHk9 U+hTXߋʽ ?'Ew~绅;q`܍n2i g˘ɋYky͓.E($U47轈5z19j v*wҷ4-8{;$N|dwՔY//ضޭgHѻn_vhU{ O,\+uTC,LozJHb>:ݑ1X.w >Ʈ_?a&Ǡ>nI{YK+N޸FkgUEڌ{? iH͜"<'wLR|xZD%Er-\|-)saŗ.yoXG"_ͤcHoC '+bZRڶ-;>;[w#AmE>I3}o1;BqEL- ?{˨b+mq.;ߤ:ɚGy1"g[b9jw3Zk.{ӱ^SXSK_[/% կϲҔe}rؒ|x.yg^߹(ӗzw^E칄 zt  ,q)isns ` I5]" ظ[p3++K)n,Ώ'p"4oDNwhGeuTt 9a)B\ܮw#K%nq)2  Y9CX9cUZiJt]q.Qv~ɸ痿:1Ŧ;JZifU7t0Zb=캨7늏%Yb={hǮ؝~u yX|FS3rJ W)3.syJ c/)ab{x|tpm9ަY*dgǁMoG{lܼɺD4@a5L/kpgLFݮƭ2:FԔ}64')u`;Ш9ܝ+$v>G%|Oꗛl$\9%?= k?c_%On94"Ks&<Ki9Y%/V-Cž91OMgӜϟl!(-ϵ=''X=ajZEsj^꒦6:/U޷]g; u[v;YT3-%\]Ǡqru6n'r:|@C/ Hl \ƀMR0`/`Ҟo Y(eX |[E0mW3zJrV;S==";nciaߖGBxGXх2JXwiVԺKi cǞi4sq~E# džů{iKYvTӋ'+ 7^5QO.ujNuO:,w<+I]x~tv ڥU~{pogZ?l)}ݜgNvqF Pm^4|`+od. h:? YtJXBySѰC67#$1 +v|}zL϶M n(Hy7uasfI<47drlL4-OhN_pp%nϿ6MyFQ,1>GǏi=kΫ88%1>ͲeMEe7\ݷr0!5 L <{'&|?v-O5 ?{d:]0jC4lTS 7NL/7iuGÇ`{qGV?Y'Ϋx/}gVOUrU-&V n{TTUXr휊;؉fm3W^uh94][sx8^#\k~mMq u yOJ=\^猪foև;WoraqsSl:o0ிjݖk'mk,q{ F+__{Xklܶwj.y&vhQG6}Uum}qP~FCOd]3NuU^J/UgDŇgN䟱,\7yLMy[c&3~ɿt'%ݼOVݕYpYMN\D%mы6yj Z5C417ZYLCݠt.LMQ-%1æk:.fiw_n~ӦDIzp`άҖ{WIz^oYr/f<3S#; ߵU9>eǂmӻ;ϪVhUWףWV.9sӵO4(U8 Lp2R@-(?o}sI!/xm]bT )?} d$6k:Qr쑵wk.X-?邊wq2c:'pAETi|Ɩ  * kjP5߹/Ӽx<;4PyPhE a-2dwĔS;sJ-o=Vqo*Pme?xXrηrY֚LJgKU| /7qӺn֦.T+<9sȦq_PO*}JoyfyGN/|{ k#\wsf„K-Gi ] 7+^{(5|tKk'` yPaN2_:yزT\m㍶sVZ=ywZ޽ZRD۵$0eJbW!E p@i:M2E̲tkFנi`Fih֒!A 70sεtz{}($3h&A D{ג~ȧC#q9H7U}j:IlqԩQҗ13QFaU>hzXTe@EYmqTT (/@e 6PL&K*)BeiN H|qs}ăt_{΍ 7ax?B~ˆ1mnfj Ft-zlJY6~BZW9n4^bЎ5ԃ-*K56VXxK ^RU> ;KGy=.sw5&F+33?NxǴa5<#`zs]r;qȏ^' vQ9;5\FºJw6e\ڱD d^wƻ(\`PVޟx$hL2I$^Qg~f۷i]ׯ_U~GYSpD/ܾ}w= ,URZ2V7 ***Y>!>pyY盏xSI`ߗHYЋ|KW |/H pK ?Z*ZF=ށS^b_*24k %o%I񷛣roE`%j #I-ҁ>X5}VQT`E|FЉP_i"YC-)(I!\&̍471Hb0s)w5EV!*A椻3V )&K'ߍPVYۈz\;$o^v2\9c)Q2|112@v6J5C1cW(kl8),LE67z-^S*B"G1ܔf[툄=&aFr;n֗jgbkjv\]nn?x8EFY>P!sKү5 xs(GuNUk:Y|+[S)`t[%4@S-{"*[U:u)X, [PzLNqVP&Y{ 0UPa4lLD'p& R,q`$ !ɾ"dS|u{CD+2wЮ0i# ; Mit|.!YYfWq#QBcf7 VD.Bg#MvL`. pz5H^M,vTo)?A4h }"qfiF$ݞbNH,HL$giaXӛJa?LEzIk 3߄^O\*c͆0S]ۡ:nޔdE`,V\bvՓ 3!oFY\dBm&En[I&ū/!>0 >+ zL"˖@*NC尩|A;jأsRx6ٜp4jjL6 ޘt1-R=,]tЦĿU9ai:r*dG}fwOzDy-P6IBj0hm{j/IT-A9} ?(aiAq!1(JxAВC̹/MNۉn̠eđIpN>fW5q9aQ* w9^#L^ PڑfNЧ ^?r8hVP];"; evPd".N8'Oi01vպ0gV4RG8C:hCd";Mɒ 8fU i[ LؾdMB\To/!h spC)S9} f'`cQC 1Чe{c^{a ֯qN"$ a\kh"&bYE،CC(\YȎ!83tW6J~fKA~X<)NNO 4O-HtA))"sh z?hvϓ!oQHJf&/7sZw\kD†(q Hϝ~%] [eX% EapFVXEѯY!jP)r"$ٍn6@DA)=U;Fo"(:EyANAId^P"nBfUy}P!Yd؛AdҌ wy/"A!  "txDuܗ$;gV-"J5X;Yx_&h@d)jMWXۛ1]\l {bpWaVdzlQJ|unl.(d܄hA=Lh(vƊXciDC+ Z`Wdl_4@(aH3:ıMz+Ђ! sך {]B0_Bgd뒖.+b ;/{lĴ81E~Zo7pt7&1S[ԳO]C<5`<1:]hU }7?t"8PLhM$B68e NJ(/ɦޮz;04[HBk7=1vP_ys9| ~ h|%yne(:Ca.e'2ͼ&1Wt(+6 E;T G ! ǯ+.݉/̙w`6|w- ^/(16\68ycJ&TVn 6V#fUIҖ<*mqq܋Ͷ͊ebD!Ȟ|5%XlO6e:)0';liTov>C&5)>Ul1p?17uf%OBR;BkIy (6/?]fX3;(E¢>\__,a8&#U;.zG˄9w]DžŞJv)ϱGӸNR Y,bỊ~k1Κ-N񔷎K+[aֱ lz!Y#nt֤[M K9`|\\Ýqntcf4ɽ!a4=IU ȒJs-# `a aD x9O-nq !cz.5\bk&f}M `Ot<+nnd%hS ;~$m[J%cM{vDQRiw!9cZ\spBx́ه /cUGdM!Nȡ.kAkjL L,a0?=#O} 3 ⋵{j`@M'Ӏ]d['hٍN,OvÛ;$yP{?IϠӬ+.|^[~2 (>qFE^Y`Xnes3^f@bK k-KBI]!,[$[[,4žWeWƬU0O3[M}-#(CsɵDŽQ>9v]vm`J7 ¦DŽ%_3Fm ϒuyG,Z28ӸXլ$f.%0(֦p4LUYJh<&A[+$p<0B!ťԮ -CqRK&>l<=1vXٗLgRr{aZ+I/ ⚁D6\*٭s=b *Z3ax)EUE)͒) 5G= 3Iaa1Xs>XlooX_RvZEq.!lL)]׽~Y#MumyB'@ko 烙Ik<d#mWF9@2i840r8(ndo_1lXl.U3h9ĥ`m Q0GN4"~ڄEK&ALf#if,Ґqɮ;7 ?6z 'w rs 0BiL̚< 9`?ҏx8vdz ?4ÖZx4i=.[?NK${}´99~0oݎ_ E`& !^hK i z&\❗jEMhr#Vh\:Tfk̺/"!Uä)FbdHQ. Ү98ƴK7nn I8(X-͐T,NcVlԄrn@07 !Jznp(~xoB#v܁qy:%~v ZsRcۣBIO{ z89+l7 "(X/mx nynwh<3!}GNyj_R͗Gi۽0tLe}9=3%sѧ=c#O 5YSyTjr+~sR BT'2Zå8`+dRF'\4]X<c>yzVHny"sȯvHݒ8DVuD8o 7M|m|S*![C8Cb+]X2t31GI1i`Ґsj;TQTN6ÞM*n"(rxU<'=cܪDnb-FLĔ_E *ʠJ 1TNeowW? d{Sl/*HIg)QT};xPWG{J:W!{Pʩ(ț *m h?ܻIYŷ,wtʍR*J5ʏR]ĔlQ||zgxlr(اSԫJ9k<ΌizȩQ#0iik iA]TEt FS0x(=Sޢ^OuVC izt7N0VOGJ|bܠDŽvF)jxK"~|d.paH~]N:EXZS/HBZ^PF~=/daa  0gSU2`6Q ,x7p-/((0·(` l~AUU>[Wc< 2x<`,/`K F#̱ҊRU2 ơOWȢ2&"P5$&΢hiT.?HseM2L6Tf`Lsg׵8*Z(>3*௫(ƔV  0@.XYhFj:/)-2$*LeliRkXifPE}!Ζ%T&!NK++&* Q517(5슅c5 hEBC HGkܳyZ z_\r@~]8? '½ G~<n4y< 0?/X7jMY 4ß\(nK s?K"~x GQឫ|y?|spW{Iӿ^3%J%b '4mc^8 Rԓ Cg?{= k?V쒗;t-_+.٧!KV;f+d+ xH "T߲n^ %C&]CyM P6B7OxC~ZOFs3zG;B%_Hc1@@FG 5hz HPK'5B#rԘC{baORϺRXꡏZ 9gm:$7Or5i0IpwEDa(MqsdPa(- [hm)#-vqA)*Q QEU80r#[FFHOp,\$^ԔXR۳E;oP=}j~ SN,RBL7NAAӛ^'B(AI)m}MP8,s%X>.Ǜ ';t֠wj\Vs#X7%hQ Є1ZF|_n]ޫz_%ȟGvB/_N:a(ERH T:tqzS0}jCгKN䈕xQ^Qp2yCJ]:u){x@,8a2y.Gl RLՠM1YHZ OSjgIKo9zXҟ$1ls V)%[~]mz8/1RTK,¬a^%XGD~48)CHG`IG.XIe,ǓG:H)&__/J y!AְaC[ qg/Y_ȿ5-St} 1b⪏]Pb(ڋpJdw w,NJE҆ t.!Q u%=K=$5Mx~ U=/zIkD,bac䱻<,*YA0G8@:$['Ό{aFSP]/ʊh%Hw?醢ʊtbNNHԞ?5|iҏ2ne[+QM 4k}Gv,6AvE~v+'}:pbC >)Z_/*~`P7&wrH`DJo>'q{bc2|VBO: {I):;/!:ᕸR֗E?|bbQcGGi _/ޣ آs = J AאB[²U㢢 eёIDTՂRFU|![qt$ѳ-鴞 ".\x7?x1mڕy՘ )h͹&K m/O\NPI6Z5ϟW|ۗ[~^_ⱶ /J&:pېzW1YG^;qγwQ|*/.xkܡ!/uoԜ}/FXyXЄgA> < b{F|1<=jy"Q >/ݧ/Ot镕+zC1%K_4 ,:>6W2R{83/]=ٹju35erK~*@8w$:5:ӲwZcgiSnRO CNY||]ʞ<77&>l,)ǧ~s4b%m7oȩ+^~C3mqIN{݅yyѺc3&4/9b̢D"TFK#+Rto7aV2˜‰˭#džZ{7DWa‡'"N"{#bsg {P#zfy:e>imCrfĿ?9Hz%}Qr/sf߷x7;*ߎyߨ o#'o="z2^2h QufnaHY73<'֦Dxr'17_Yw׍hw3~ZwPCܚK õ3: ̓G#>8*%;5ك>rS} g7loŪ9O<П̺zh|O1FDql+ߞ0w(?/Oi)}#7</}nanb[IӿsM QAK:?X=# rv٠έ +my{''uVZ ^ 0lYy QϞ ǩ9rFk7ʼnK9c3䟶$DǏ`1L/}?$3-~itSάCq!&fzQ .adyzyy=3~X!QonX{uWc{yCGT1'^ZȚjD{N_m7ӭkU~TX[}ië "+?9^/u?was}q׾ߨ4oG}&P\˧[ޜ zI|u7 |uІi ^C N?ڎuqGb;^VX^pov?1&5%QtS{VoE[zp %EcPCA`lDcw9}iȇ{'otl'bVKŸh:&GEǏECdže vz=@QC48PTk3MJHЎJm%~W3 ƚBCCb ltUFڗ_oZ >bhq40ż׍a;u>ǵ T<1K_%cNЯjmEWÞyrwfRYy'=/nH?u건}۞Z^X'?|bӭOn;>2lj{/}$ī?;)5WVwְ>F{f_`_z >wf[4,Xu:`PX݋34un[͞7pwx/c5{f.lo?`m* ?XOg__s$mSS#~=jR8.oU?$?hRcKf-/g{DgF=xs ?߹A܏ͲyeaJʌoGLkGSa5!x#ٴ\}nȇAoW,}0߼5Nɮ=:7S`;mҚOkƮ5JDS,zgN~<.vI7;> 4.g?zkf/ W6?̑/z&$vkǞeٮ{5~zj>'W e^h%ψ}M鿶sPnqglC)"$c{NNN*{"%Yfj Yƾe.dM #;Y,![.ٹVr.s^睙ߜ<;c36ӣANYAN ǷLj߅;ߢ(g=' P(?Qi~ci-J%.w9'0AebIҕBG\7S0@=3q.>mʮ3O 8JJBHvp!>禦!p2>O!nZ5W39o(p^M:'+A0ͼVTv#2uԫ mVB@藫xWRަ լ~JjcO_Z2 kSܴzp BS*O[b Hi=}l<&J5+sX6Kۄ)z5L$^2k i:RgE3k1s3U?'_%zpn'v^&,Å`GaS@T/;rKjp_615jed 40~`b~>uô4>lZlbbcq5Wub0{ؤFۂ7MKЊVW[kT@A ʴbh8KMm0\tTÿiѐϹI\\"_r[wU?9E9ItnWׂE1H7 u\Kn0酖-^òU1jI V^V.V]G ^hOm4 ߶5Rt4q;Sk^a/cVi7zCRn%?QR$P2vyzyk\Ή~})ʌj= jk6qcI{!=&QU:o_b $#EM\'Vd.:xYںf ?k?th],A`yh "v< nm[qw$/EX}ĆV* [C@#'!cH? sO$tFͦquJ=X:*!x\s}s4]t>N> pl ѳo%7mE" }r^8XIqbz$\!QA" uXJg#engfRPO ӗ`а`l d-5v`:rׄ @.pD>Y\l(>`磂sQ|CU5AOǁx"3 b0}mf(yɞogin#u^V^{qx rSFD@NG' QQzdqype #8D龕)&D59ۧ)ѤD T:TdLڮD9LzHz2yJ)_7bexT}sHi̻NW}wv,403joնSR3\*S6džCGԘ:T58<)Y)@Q 3KEuQ~pP8hsx"uIBNԟm_$%?PŞYfyKb9 76^QA1#ǶNJ׹(S=,a8PM{E0dbp$StqyeAS}N4*ܢ ㉘v:1uTP?{ba3ָJibOZa),]|+avilRCgi/鼍B^H9WhCo4'(O>^ӭ?j]TS\&VhGt$GH,f@d@~'#^$YeZ ^rکIdo8 Ԛ2Ev֊嶩Zܣvqv)GU]ڦuy{{pmo$Ks|Juʳ9QbT)HӗETǔ麷Ce)3&8 t 30_&32^G"x.̕W.ht2ķMDTx>gX,p <7Nk[&FfM_N ?=i)-D1w\4G9L P-ͺg︢Nay*f.%J*'Ó׻M5Bl|42e9kJYּ1<dVՎ )Φ< d+n :B!>ɨ8:F_cDܩd8y]GZp(Ԝ֖3AZ*3dv4%vwpN*!i4FNvvdl\H9)Vy2eVWMࣔ1 d J{DE5t!ͅ^sM>ݖ!"Ȗb[|]z!\]GVpz^pRvd^VT1m%m+, |z)'p ;~lj.xLo&?KZ7|gn\IiD N<]úftTJIƮ.5`*2kYWuh/2ˊ17YNs*lN ,x 6# *"vEmDMq4盇k]qlUR);~myR]iOQ׻IvbsL*dЎ"x/$7ӉF40MH2p>P1:bf>-->Ks93qZV(4ΔU@%Q9D!=-OKBI5b*驁b-:(;CKg[?b )r8E揾8[/.?wL1~TP̳d nc.oc}W*m 1q?+ ]9"{O7~ t_Et^uPZ@lTnh0S5 "W& s"/ 5JFt~[~QOX }Ӝ뫆_~:wWwTS6)!Ozi5.\CZerS0{xIq OIooU'RԵ1 "H쓦2Eͪbst%=x,s;%̠W=ڪe<,uh,ݬq^VZX$Z1I.JKJ% ӕ cMaj+9 T-XFMfZzCXyj<$*nL5 o:\y90[‚<{ߣ\C+{G+{+{O\+{\!c.|NWyiFHkBD6[tzIM3HO;^ x:PsCA >A|y+l11WTuKw)v ZOn qxZW kU xFʡQQsQ'w?G_a0mr3iMv&VTJ!OL 2 c%d}x dәNwk.39ۊlABQ:ęQۛ[!Iچs/?-P{ˤzY}J}@dUF?h4,Y[Rh^$ȂVT+%ܩPK %Miv&windows10-signing/makecat.exe.manifestQMK0 x[ZACAAiL&IoۯEwyy/)fK;vUXn[nDba^3:FUk+4PEx(RriG@/Svr%S+Oc:ݎ}F ;Rpҥ陙CfȂ*wBng(N3M\g-{7OC -\(.uEfr^-,)KTPK͓RMQoIwindows10-signing/Microsoft.Windows.Build.Appx.AppxPackaging.dll.manifestmo0Ww@wbMؖ*۴nkLjLIhwC=|q>^=5uҝ3h@ۢ-/%azeKUVµvapuMsׁOb,\vQ4ZV=(BfBa(k*/7ɂԶ7eU+[܈-M]ix}Tţ{QY.mp4iכw@\H:KJ<7Rp2a%{d)650wH&ĕwbVwC  ثR d:MOfB\ ROż|J~ ՛%X3j۶|B,<QPK%Mo!+#Gwindows10-signing/Microsoft.Windows.Build.Appx.OpcServices.dll.manifest]n0EH}LH-( R֮=)<U bg&{-鐥N*YחurO n%BI[@J3{G[M,t (:$™)GCJ  o׉!vlP]Ynblޕ YSZES#dRkz^6KYV+ '[O]DP=ШdIU0i2YdTgw$K$(/^taoqtI+Wc (jB$h\#r<8w|PKR%MOaGwindows10-signing/Microsoft.Windows.Build.Signing.mssign32.dll.manifestUN=0I;t#ds/]{ w{yb6sFK\qۧA)B;8vO[bS!Ta3Z2M ys%aHe7w ^,O#X-P/9\ǃ֊M8 \7YZȪkfe:e{~PK %MKGwindows10-signing/Microsoft.Windows.Build.Signing.wintrust.dll.manifestU0 Dw$eoC*sJ;R}J'tVvh1z{T|BcׇSRr*E738jD) ѦI`m(@X$C M#L>YGZ` A@VH(ǠU{Ks)?JPKUWM%(zwindows10-signing/mssign32.dll]|SOhD NY&HJ ́TMBFݜ  ȏ֢WRq|L{{ι{]`2 iPgO/5YzRgR\93|ϹiZΌ9=5v\;N$3]ocJˮz!'kl~^l]>zW-˗es JN7Q;=a-r SexqM: ?雒i[Ѡ } +VHR'c/Gj4 M ѐA7y]x |P#4h`0ho/OCKfL\N¯OsKe'(dYr.(@>?xr{3fθ"gyM\d`\1 CO*7?oO\a%vd+"V%Op;KHjeޗ4ផߩ#a!<Ŋo.\%^/E"%﯈. ^FVג=9} f O*pfdeꜷ`H ջ,רQۼG5[`Ym4P7:CJew)a=eqίw [Ѭf-7B򗟝bݥ>|Ѱ#mB?KTBRs82Rآ]NS/d(S,q;dh"y|J\b]՞Jz.C>`d~^b m幆Lz'Gm;@C506'Ϩjpp۟3tK"ƩOIŢdy#SQrQV ojh6Tku*^I=1ys`Nk6ٗN/ JpSvR| H#o}`r?zH"O+NZAO ^F2dKȸԲ gpN>VAWTm{RQ+^`V1h bW0slks1{VAS&ɝMR}Xwު\`9B+r\c*b0%a?qϘ F/D!f6E 1Qq1@υ(O c p3HτRf#>9Ye6'*g(!͟B.}"6!:n7HJʱ@oll^8#EgcE/W '{Ci58"P9W gF$RUSΝ*Q! 44-?F[X1"+6za^tԳ9q UF^W0g!EMް]:^!O)0}BwjF(1C#txD07Aa*P u\,6Wdw 0ZKhw((e{#"9qH7ø?\jk >~ 5mjnDC,H U$ \Bz!U]m D4OrFFeN!CKg 9H  t)lc8luvhYg CJNwWbjԮa1LM% *֒lӁ&2VK԰{UPu;@ FKe_B:RQLy2F5V{i,(+B&J[K]b']zԅ %c)-J6jjmrX;r7z|| S&8s@}=(>Adh<l O*h"e:@+6>7`s ܤD~22" Tn5G͢CK զ,  O_I_w[vj.XCQY4W.UưD0#ɠ~,3UJu"~A"[VHmRDqYDh@025ӭO88F<Q7D\UzA6Kh^{0LKh>+HG (zlY4aZ}Yxws38l Ɣ*H!H3l> dB:hec2Xy90=0-F%2Tf<2 :l4I*JCC>td/O%Wjhi[l+x|:]i%]ַfKL{i}zαA&:7~(Y3L;?zF1Oɬɂe=dᙸ,g LrJ 5>\VX.ֳ^g 0BBk6{Fnl >qBӼ\8NG6rc7 OP()g;} ")Úɂzab ٞgV|TsFaژߊaq^q 0q'3u3Ǣ)9Pꨩ@EhF~PX5;(}*FdpfMʼn.n#Nx£Z#`%RIhUcKz6|نK6O$wtbWiaWdI0%\ c&DJV\Y9˜D8ie+|W~Y'ZjMiJ&dyQ.0%)Q]uSUK4>lM^onr.f&K tl^jn+GOؽRިJ1ZiI iGFx<|^_joj֞BV.Řu$>Fym;Dw9ϗk7X?ϽsMH̋E@[f^[5P OwӓKCU@r\MtD=V"Lw:cNлj~$/AeWKrsנy1 q_3ź62fS;56,eJ @J eld}5ڋ/Q=G`uǩUfZuޫ;}N${)faj UPNpwAdt.e,|( 8:X}ʅi͒'0nlm0E_2q<-nɪY0`WW155a$V j%DEɲӌb^ex4ĝTq/boߪٮAJmm1`d/+fٷ Ck>QtfqQ;\APZ *zDMf04ۖb hy$cvEA{/hʢ= ܰEݖn;%bK /YK ֺ  {@&}:kg Lk1%⃄f ~uwӌ[\%KJo?#MWn;vQrz< \`])(~ <+/*RDoXMNO1'ߓic;Q!+HT"+ubEbx=-4cZf@(Ue X<U>_%a2B А%GKM4g&n#P+r3P2Q? xIeh*v D`9{b[9F5ca}7Xx),E^ _f<$Fĉ\3}V}QR]u8)yx6?0D$#3vPzf-*X18a-tY K|3a  t7% x|< o2ĜpXW\q$I%‘ʎÇ4[-uLjOTi#Z~d֤^]WMYm0ǘExSؗKsYNP[asH5{gnjݪL޲hLߥirsi&9ԑS4Io(hF ᑩ)gzONcDݥE 7LZÖd^9*b,c^Kv%ڹF&b WL*ZTIW*l2@%-0Bߒ(e^&CG'z51_0QGR)A3-y9f d.@q.7joMҕHqQJ:2i S@^`,P(R +#V&NM v}8T7rflplr@y@{]Ôl*` Sڜɛk6c`Io!yA&#n%jx_4$oއ/4!4wl1ooWMA,wi)y#7i7e.a+f^w>EeU=y͆hhZO܆=l, &E rOq} F=+F9*z|`k2%X#ʾ¡nu`i% "5gP֯e֕57eA2Fʚ2o=NcS{(ZvP.O(,N?0D\X;Y22O"lhz5˅Y/a5 5um>G B_ᑹp:e a߽aB90a潕M`"\nZ|d%=$V<=Miyܮfi9YeZ6Yc4+6BNs/R6N`2U}eVk%r !nb>_e2a90Qse~tnRqfpߴ0@Nk2HPN!eB=4$|k  VL^E+2 e.i}o犔=7oWE/bt~nXo ~m z kOghx+2sqӘ %Aue[pkhj1hѲ"ZŚلG]a@۔xrv۱rs`,8x֒0G&k=-Ox}o2b-7#,o7\v zfW$"tw{! | \ wMĀx~ X.y\׎ڐ4bIo}$ !7}*ePbg,c@/O8`fڪ7{_9Z*h5 ᅌC7'_{FKLRv7'{4ii6R/d|6x(wF'k \dsYGZ s>|g ƢFXUKn-HBV+1<mP[X LM ~ nYM R?c%Dj`Ѐ$˴y_v08hK1.mkdpeHBxmXm͖*;Et}?*Hm|%6@LHB8iIv~ޔ + úf9. ״3Tbo^5kX'8$Z~F=U/^J쒸!DgpdWJrK|GW|nynäALXF+*Vss=oeTNN}kj@ܪ0yd;|b2]TNE>HRm^9EGM6xhίGƷ/z_#z+鳤܋v)5Xm/PJ]1]7E7˚*l?^)rê KQZn KMϾDӁw[l_L!ʜKPa 3 `]v=aVɲd7<ހ.~6&߇Fu> zCO@/ {l?2f +p4pᄋG#aO3Ȅj?>o ZBwIphmfEF(9>D~jsySrbc@5p&QY{!rT "SG4ŗŭE׷prXeM-UVe `>?H0zwhNβ G#1}.=3,Of"Cg:\2ᒘZntס^5V+2;\ }_ug1Y`)g.ɓ2dX>ynoYndsZ}*?W韓oTdZvAIaz2+t2x"9W|C/TXX߭j{ c}v;FzQb֌4")#SWRB$A2j;|eboaտbmXyx|,tOD"H%U H=^| ר~i1/iO.r\<M0j ,Ŏ4c{%%.E(4'<0L}+6Рdɋ= N7(BĖ̖V ϴaHElyrW.FO;iI Y뎗${\#9hWL3W0gYNzoO:қ(&E1U[\!CaLϲ|(Al"bAAf(&(F'AW qsxIO' ;}/D?(çsȭmqI-ACR!>^1;'"#ϙq-‾q@IQn+d {J!^/}v71/zrthD`"c)E?h sɢ9M}ILٌ 2=gjrDꮥQ ->cռM)w`lCȕ6iN 6Ra.ضkO7JO>QAZRV찃]Q?̞9} vQVY#WAP-Yrll0suʩ)ô_1Jd\z R(|ͩ @!T 1j"}eyMOZF!-SDZf+\ Yn%Yopsb\S"o|zO $\ǴN,)HQWp@ll*2dħ8/GGOdߙ튌RlX4lZlZX_THLreɭSd-+{dTcgR\8^oF`YYQSRT%n e2ƟM>U_k𒎗/ȵ9 'cRr 5.ee+\9ZNs^erQ{hD}Mx̐\GМGcf 7m?G"0U@Jp1TF@|/ %Gq f5X_uN$ˏa:MV帐pࣈ/$ȃa b'D }EeA3cm|a`䧐6֧ґhPBNRG2@-sKq|͡b^8.xTxW2 ӮSF ! A\̹6c/|8= ԤL%#w$jJ.'ٰ-fQF׾̤6:*GnFGcA3<.7ZD:EL0O+-~8:6EG1"ɲiV 5MDGh1vN2xW?~_a.i_ #C`W 1*.=^%a_pK4HH fFBy ޖ0 1ANȤV;Q x|){ Q<^V-5uLQx3RqĽ%;R>sE0xxϖ >͗C">.~41S4i'.Y49~|9٨t|6r?&6ވQ:K ʈGΩ1;H^dP+/QǍR0Px &BdG-#9 3 H$ZhM/9xf Nĺ՗~jNOEMZWJ10ֶ5!8swNUq&j- Nu4B$ r (Ns TPmWjGcwkQ 6ii_u)A ֹI})yCB%NjKoYpjBSXsɨ 6j%iwx) $"$љ9@ 9KcAmm,ܞ,M%.q4\Loh㮌|@>婞j؉-H^52.+-FizAD\dLǯbaf_-U[Fyooco`5EI^i k(ڄSh-@h`"zzu?LJȹjl3}9e }_|QHCߑN|B#D8pڒi04Pais֑zU[%v# ˵.&J/ddz%7* Uղ#k>lo`8 O~%>G#~Csiw< Hf-lKoLhKBmD#~?XU$ѴUiNߥヱG CUE!9'q2siS|*gfe?&Wɣ(vSl K /OzgC߬d)qs̷#2]5wiU7MbJlC9[ݶ쉻X_qb Lf&FJQl73adTyuc^hNh31hκ_3Ec Q[:iYmb7|})F[<ulo8V N{@ c #aQSغ@<ʭN~=lEL'+W j@Fa$lc3IiuY;͘2ƛucw(o95OtnpfK{x ȑH`f=n#zuJm$M$8iձԈoB.ro0."Oa] l[XS/>& { _ G3y%v\Ix<ѹ9?&e.&%i~8K󁎓h-I'JJ1QkQG=_D$C/h_wkt-g yZߍ89>f #e͚`ԝf6H&ߓM-!T5!SS8enp rB6XΞ&!c1>Rؙ%aF7 ߮hM vc(yyž͉BFh˹}TMa d3ݻsgHT{ .8x%md0ˮ,uK:1 ]Luxm#R{5QH/>M6b/us"R?t7pE߉<3N>_3f4ӧU{8=z¿3{·Z=1WT#{kwOc#HykW)O)Z̄2BQϐ#X S7/P!moz;Ǝ ՗CNN\{$0;DC$FZ#4@ R j*ʁOoz[*BXza''i&\E _>Oul;_'isP&ܲ!_?CtOb[u:Ȟt ?ARjp&,Ƒ3T 2VkpH/D$z #.{^^$,}jN'WD.=ڗ ]I҉VJD$Lt;l=V`E‹7 7}i PT ]Jj&Bx@ax^dYabF[-0+z3΀wV7duD走n|σ)|+/4<(hkp?<Wyp~p>%'$6e$)jR|֗|~1),,:?g{)(M*<>?qjrYjHzoqG:#n )WY`Q/DTeyo@|׮ Bbѹ?\ԪEs4I lo) {TF_.JY響'_9O}~&LGU-%?]XƤ.1١oLB,9^{ >e>k|m׫?@W}k6A7G]7INfn?EiV?΀̓QPt2L?-ٮ!@^4>-yrBi-TrgP.SAhLcɋ@7b3G{#W2C0vVa\E&pjyAȬ{f͂s.RVH|p65~.ɩD߅e!_M؈ g8.$M ߎEpy0gƥ ֊ti 27X=ל;́s(+X;[J*tXvWOVVR:Yzs;578rg wf3lHw -X33Ͼ68͆!c3X;Sxqև+gp^ g0V{J4xI V 3cO q#xw pQr-vY##$h.esHAtDkq}3[쐼\yf=R{"@Uef}Qxs)X[5?5W昂Ry^4OUDK~YGj+v%6;fcSzejh3Lsc[h/2=/&|b'ΞL&X$E aA7_r7Laz;vZ/-@SpG YȈ"T?*dY"D(SL24Ͱgǯx5d=վ'Sd 7U.;6piIF:A_n Pk\:bnw ,C+ܾm\2w⟤iL7 HʹQN .[xݣػ$:Xw3s 2]EɁPw'T;^d?9@s] ػ(+$KHhI n A&$D솠 GLeLVz֣V1<"jzD${3f7=joy3f͛7ッQT(9u0{Ǡ%Dz<5*Rob]p|#6g5fDIѧJܮ% iq Ѡ+_+Q# {K-{r ׋; X3?0 `+ [kܭ4$'y&~OKڶH d歲oӲzeӓASEM,MACDm-렷-k"UsBkr!N:?@'{G0@Z8pŽLt*ݸ3pXf2IjezvOx߲%foh`8GF!k3v|\*<(t`y/U$3]'0 9{0<π1"=L1!IRoLw(81>JSsA50" j7"ÜMW`vi|-jzb7[/'Νu ^X*7c]4ɜ-b񅵧_EU#P@庿!W{t"׳}؏Tǀ e8 0! c0<,˭7yo?YG͎[4<"' 3Qh a Cx{P@]:S7aP(ʗ.d;h%h0##{6#L>ńMw9$(9JH!L Vy\x W;![-/Ej:f}&4~mv*t 20N2*$o{S7kѢmǟOԘI!bGC4cDA3a(>YGM~&0; dhk%W0PE-SG?C\B':܁B߻ңgd`L-+3!DfI*e\ՍͭZi*}ͅĪ u=yU|/D(Aj62}ɖz){A1ϑEF@fqx-,UۢRQ-XG7}W7f'̱3FW"* RG"m ;xpټ`=_C<64^e)5|=o)H)B `ʲ>B^#`W&+og)%Ԇ{4Zx!{G9ǡpЙwӾ4&I=>?ou/JR uw9ji%˫TMa)7 Շ5D F#`B ATƹ1ׅ< =8GFa$f@o3 vbB1c8u3j-XU6C|BKA}ni`=z}"(2^uc0mu%rIIܱ*{,5OI7! >,~PĔIda /{vWr{C IqG[]QǒDЍeFȂg[|y ~hԚ!Bu~r,Y7zE.B:/5~gu0AL2 Q.G Rd8rd㠊-_eZj^,6/MK|lBctx6&HLJQk/KQ+5e,ro&\QMcw@ӿ=J`iLBfʔ@;R9Y91T{HT1X?z D$vDLܟDSã3 լ_iTEY^ e;bwFC-}j5)[E=0cÙOžTo>Q-.W$]MJk=TZdEu֎& N,z`7=(3{> 7/Q 3Hظ2&ZҴx bMk AWx0گ\Hҭ9pQf](D_X='K@&)&o%ϲ(d4ޫՄM3Uۈ3 [E}>⮜WRG^FC[`R>|3qc-ɛ`~"0guR6߇a%wKA>۰I}^=t%ǧnTqYR  ׊8[Rsb\)۹a_ ķ3WYԅ&8:DvZIw 5c?g >7݁~K2-ʳygBWؠ*M3|O8"pXf7XF/4]N{̢K=obTܫ p(_Jy~<ӧ7p 8J}$Pet}}^#oޤGtP+lDt>"Jq+ 7;T,:1q4Օc,OR8GyJVQXqubr6 (Ja&=b%._"o6{#1cXSISb?Ni~s#UTG`v#_}D(iP\COrNd3$MO =zDm0Y7u8R߷s(braFRxVLdGCST4 rđʝSӭT+Fpw6\`UsP\gM1ԕ;oĞkwȖ.aE^Ƣ|(òuM_}c"W>8nwb˥ZKWg 50eb gHC0d [0SN:98`.yxt 0Nm53.e,+JX!?0&x8jIpH Y3`(wcj}xf@w/eg4 ſ%&TosP>fOc3IPU鏉l>`: }^N'~QXk2 |:.<G;$Pg]RrJu pgvs(v;i69,&s6SJn.[#$bE%xyBLB7yIo2ta<8|3i,s[-?\m$x MYQE Jū/`P}yxW werZӴ^$.1ˢ7U;y]Ap; b*ux&?Vأt2@ms9%&o'4[.uNe4n+( )WC}IMMţe+i }(@**ѮGZm@3< #K4_|K>n?h3St2bU,XG"}|cI+L5EM r`p@Z\,dyCT:!g#2 4R~u^JexVTꓙM|؂.dq`7⩘~4?=TD:A{4g:Pg죢m.b=qHs1֝񎻣]0JqR%'Z'w'E&uX9h&J_Ja/CVg?hFÇ.YQ?Fjpk1 {ːxȁba!jwVC*מ8)'`0/&f rO՚sVk8>hk֢팧 ' 7 [Kf |oBnۍ07^Ovy wRyHs{0Go{˵# J!5hb B a PB K< [.?Nk|#zMC%%|bQP!#ʹ2np y:z~]%hch,>IcہpޡKP. ) F^ *`V X60;Tg M;82q )F7&"v/sGn6|F:19K냫cea(¶s|i "G=(v^T .iBXl #̬p/B^}M>[%{yԲq|iqJ2V`kͿ(D_G%r&M3n0sIÌ6T;С[#3?xyam^qdØ]$v*:(bmʆN;"䩒 T:53 zg0 4 ~pW^'nJ՜[MT Iz"T.ƚ6NLTJ SkҴ^0 Km."7ʶ`X V)uѧ}hߓ~ 7 z[<Y x}NIJuB QzنH+Z4-Rg Qs~}G}O\wjۤJ,@c[`ޞv L(R-v1 ߸?f |2$=N^,Z nƿ?hJ4K=$y槄9?f H(D-!ӥ;h›7OT}˾iZ}S>T"lhe4 .4M %S݆i?-/PqM,` !9:0ӓP5 wR nLWpreG3z0~0AMïko7j/39;I6"Ca涇d.j߷ U! )D¯_\N8s tX,w q"BdMd)C ۡu++4 B\&nĨ5g`! Lkt4v5UH"ų'BBDɣ!9JNJ5_".hukZ%-3bkӶ8i%^L/VOU5b{C}9їtF--k #z 3<1GhhwʃM"28]^bC^ 8읪)^xIl>FMBn鼟0rflT=Cftq-UΣq-1-k%oa_:ŇqE (AXhX\wJBjŭ|* ڄ۔n%|v IA,mxQA 8h0'\7e=]R=$}_r=E=Nh5܅ya>vbӆ Z'^BXQ1I<Dݗ5)m}cFQRrhPj2Ѱb !xsl$.qu yh/8n Et3}8il_>YVCYqlmnB_#=+砆 Z=p70uLq+r:uP7S%|7?]rw^,$!b?OPN ~\.fWn~ջx͈]s65Sn=-f ].d:N'Ft9&^<8>e\=UnFjUނ*ReWaOsw9yޜ+xal,|{^{ PLZ/%%f;J$7rKG Q1%]}6FΫYA ENT`?@X^mHcD \O"Lj^$zކFrNjEs`ONT߽(FٿH#Ҡij?! g5h,sbh@=\ `rQ_f;VeNaIbEM|:Ճ131|:f&`!Pna$ꝋr|yZy1l#ݪ;AB{'9'aỳxi)7YshN7M vt8xӂb%"~9b|(oJ#tҡđS.@҈#Hu^E=,XmeN>kAa)rKtZldc&(xn]^Ξ-=g~ѯlh, h 1f)P]9M✓yWߢڼj2\jQ ZgH`Cc= #jzӔ{k:ȠJMf+i27IKv8DC-F 'w9ek2]Ylw3瘾YBL7)b[o[)fV:e缄\*b8gTL{_JL6^uvl+sJ yevV)4v[ȤZ~L!Dٳh%G!CyTO$bxK6pd0mHkuQ6&wMQ.b qs81O[t=QkG X<4P_gƑ;as⒑*.^Y k@ߝNkSZɚKex sU!4ȭB}Ze.řTԆ+NNNb,_g{wl >t2K9i$ה^8b7y4ǡ MB.]{>Q84>71J~$|GrOO IJhiu$MNIdUl7t.UD`WuO1e8H@|G1AL@o:+qvJ`%Z*?D1[B'Id~g Wz L qS0{_@ċФ $i3!Jo YYl\3GFXںU8;=!$Fe%ќ(ShoS:";'GتW-N$I}BX1g b8w9m&@EJVF:+\q~cs{ucV*/Y41;fLlDIɮ g0Ϣ lIbzilEɁ1~OOۖM{G X`aF-?0K+a ˣ1CZVzw5q ǜ]eY`nW&p~zI\9|(Q@ߥ2 [1Iea:nxХ߆3Urr+8/d^0A Y4% Bx(o4ڽtkپ0Ptԏ E"IO.YVyΟBj ̆W"PC;5 a Wfu#F!xͲI6O3K.@&{-]l?gڰ_UVr˄Y OqCD &]p9|b?E 6n֧CqwYqһQݲաzɴ(CpS'E>zh -ې_041g cO;ryua޸jL6 usЌhzTL;, -d9(":w`(s=͖:: m"O _3 PGb0*X:T6a0W6];6,ZDk?f?i A- 58?(jI5lvDRgQdA L;<N M;g48nK#'lGLzgxy|$eS/ێvl[r9JHbKnu [@^qLK#wx g3>lҥKB62g{Y/F'm=;KN}UáCsay[-[lA{~Ӽm)5CqcX16q\l~8]FRg84l֦@]8hw3\[2gJnn% 8ޙ\.A:~-yC)7y]i󞶢îN-Áy>r* Ó9G F;ەnmIovH8 s9ƷMQ hKrNQ=J@&|yϪBhj$o(d|cq#HMG*Ad% bAhcqsG#*Hj;>.ʴ!T s)\z|c6k'F33$}j?veR:fu;\7w$%gHQ~Fܞ$WUG SaxguA^2s. >9>4ݖ9;Y[_{iϚ-FnoW C}kwǵ;}v-kհ]_v#br`N7/7CdςL@&p՜eKQC]PuI,BbDSͪ/tmq1R wZP/LA/GVdy :z.3?@8n)K~k@gvA|K A,_ ۀċ@bUKZO=G/Xiez^B;l NyGGq?>Mx}ȐԐ ݔ[ُ~3 j$Cd[F+|X!6^ @ًྖG3`Np[3T>njV $x"1@5u?~ \q|6ޑj## <4Wbh^'A7ah"u751+J2<7ʗM)4LRnF6z8gi)=nh b4[b]I /[ ,03f8y[?hߋFhjUHȦ=Eo5]pJ#)5" o11cW,I?)&( 3+tI;) j'AN0D0-aw ] 34a] 3W0m&`yya 03L:abx0f7,0nY`2l00UY80UYnaVfvf0gy`2FL+ !CA熁?*۷s!UDFi4@ղC¡eµZtze'9A-q-d-BLj{!xȭ0z+[sqj3]iYu٦N-ktE(rC)b K(shtJ?.*t!:2!:e|ut)cvLcft$K dkt;Tjntʐ躆Ť9?bn 6Ĥ1)Ƥb:tLJ1:eglcrsL!TL]'b<bIy 1yJbR&bi᎘1͖)ɕhT6YZ{i{_˥:IDSfpDOL71EG-Yd[?-2p#Ëe@2܈0[cE^>+dxRì dLeK _InV#V|3p p !ý2<*7dxR g0Sp d-a _ &vF"CĿJ0^ ßp oa +e@6/t&q⽜#d'e52݆0olU?%)m2F| _dx %24pVz>Ζa /ǼHxdƨ2UMޢ[:e%š^).dƑVͯ12m ?]nߋ-c e}[zSF?]cO̿,~vqD?SGz-PY=H/'{A⃢{ĈcԱ<)g2iE2~Ѥɓ_HKVjtj]NTԭ_ku._[QUi]n-_[i;Z 6z׭+׭kmSN>(tO N۬ LE׬꽜iaQ6D }˯Tr{1>oԺ^W*oaym=fdJ- DpUXbUPSL)ot'zoYyoG4ۑg!B(xf<ڀXeHL@54H2x:Oz^i/GKN x8jDPƕHA鴚Ws<\*~Wm7` W_W?ߪ_vݕ5"=_/2t zBSZ|7EUuL Ω>c\͖9n5u^kz/S 4Nˡxސy#5ޚ5լ]i]\S_% *E\َ(\XQȘASu#9o,mm(ZX1eke #3;ΚUk&ՖK;k衍O=?ի[|$gdlrm<< gD4Q߸}˙碄 ΓߥY ׋wQ, :zx'wMiw!kV.g^M,jf7[8ci0&ޡE51S[hO H+|֨4J00f#M+j*I)"!Z'ąruU.؋-Q]ң* M{@/nrHT dKa_?B(Ed$hi*6% ^\fLDVfLR_WseSI4SOҝ;{TיmgԎ(K^|fPة7tsQ$Kt6 $"d@o閤 HV0jj,uYB)"e^JmhFEBqum45\X:N C'槱z(=gԳH[taB¨U& ¤i2iBn>꥿LƷd4DJ )<?ij]K觼6IڦL;eOI1W tPN{Za*vziS{YZߠLQ5 lBFdƉb EqN=GZ}ɱ9q,f@*Ѷ/OjFq,掔=+M1~cDƘv&!r˨rOE'lgOaOΞuhW7SQJեWDE[}_9D( C_<|um70@VET0hokV ZHeޔL#Y\B|e4VwYDui4x/Fa /54]jcLک1Oq0AG"Uj*d#dTalbla|-R1' Ez=k*iD@l iL:CohKi0`YyegpHWt~`+/ SSL᥀Rqc0KK߫P#ӌYl=huXt<3),SǜTET0eʡL)w2H<9+$SdʏL)/2D|Ȕ SdL)1<|] ƔۘSNcgL)10VF[ p ">Qt"M4s5` 0 P8 42\;]8X!^H(X9jXhMB:zDOB0 #  ?+))P 0H((NH=G$ʅ#JM$]s8D:f縂Y JȈt ~, scTÄɩ?/V(SgN:9sB8mŝ9C  agNS3"a -hJ(riq -" ,iHۄOHLH>>BۿR=n:' JK@I=f,Q.F*Kc5s0TCG<//;;A&˩stv\ Et(jżςi; kV, E %B\LLß"֖y!?'wjOTǫ^!5T +3T  "-ni)t1 vsˡ?Cm@xx'([ 3f7S. ʚ RT*62>Ɋ# D1!@<;=7:ݙs_+l^u%tO@O¡e3;W`s XFl ]pd3hu`uܠ"zQЃS< Vy@'D M2!7_J@|)}z൓ЛAޔKޓAWϝ@/7 WGgΆlsGρ@G[υ@;}#he!3 Li!V.9JZ n|_.@ʨ#"[ˀKQ_5ګ>ઠZ.] %c8[Jeh |6=>~?RpAW̢/ٹbz/Τ_|~w·7.,Ơgλ \z)k3 :a߂>BM5FNП3grqhƺOi Mz) s74McN^@Kǥ$,X8??6э_x{pKT >}39+p]y'5>Aoۄbw<ǏaڤG =w2(+9c3/wLxBʙ /IH O,rIPl2h35-[/kSXꈕ;R,&G%eP\$]2@/L[%7NM)N7ݔ}h[f/6.TyT?""*N}SXлz ~pΣ1v()ߟ]7_͐Fd!Zfñ$E cm s{Jt"ã= Bqi^@[8wiJKkaÐb%wH֪Ohچm+Õ?^Heil`Ƿv,Y7kʺ+Ur0\Q/6?}@S_0 "ڻj@\؀?Co%зH}p3̏IJ8$apžc%MF߯ˆ4xRYwu?-blۋQ8;j) @#sZs3\Z.xvc!^m~k͛Z#94[ȩ7suOsNC ֡*whg$Z<斤EST"(YQSnZ)SB⯷ef#`9k*,9vAYWo,my!7O{'^-LWGzj15.Y|4 {u1;WY|Ow8Z]>*cEC#&ti`U&eʢGq8Tjs-vyѩVF«Νت_^zYzܻ5a͜& 6L ܗ[8sN}wG39-u Dp)7x\/vVogߨs޾_N<۽{Ta)kzjq3"gjb ޠٿEj׮\hջtʊ|ȸZ9bݝѽ\;y2`JiKYwlPTXk~1,]mׅmThiiSS%6[xxU6mHlke#}O2Ѩda<򌠤=/9/?i7 ǺכG=L/asNmn O+[~l/6=3Y,xfWk}ECWM_Q.{'NVI8]gAIp,!uW)┆6T֔2s]d:Ӳ$O%rMwPxf€uEWo wXE?(ˎ*q②7V__z1&SI潧 7;TW]U8o7ER:-y9hCf-1^;byVy?WGa?ƸfI3U:UNyV(lʒ z~{8NQRNcש;\h-4T{Cftg_5?jZmi>"|n=3#B~joYUaw-~x~~WWoUhʉV3K4iOU{Wߝz{fvuEnc%~MXzrG߹>yNo1&s dYvA;+C'%*6;,@KB.` m+3G.~!B$Q+ F9f <89L)\1h-PyGYIg7kG'kI7s&cşl Ϊ0ӟczEL\ 4Zf-M 4)_0qq~7BE_Hhε_3Zۇjx#q|MFikW-Mhg.oqxfyCXqCnVsd;OVoίfvl3 Gˊ=λcVM}T_Z>fK~0;!@fGܰ1$%3a@5n띷tO Nܛq# voxC ' 0msכg=6 Qw>(. 񹿯=TVm7=`\W&$І&;vM)3syRǭ#.pO_}l1}8K3G/u~J>{KzƜz듮rrow9.ŹI~Bva/ihO1ujY( ir{o2x>/f÷jF_F^sՔVy`F5/r-͝.w?Ģ` >#ɷ:S e{юz?e6Ԙ;Oo>LKX2^~TțCȣ{=Ȃ7r練oP9or$9j2b`O+*wzX WRof6##|Fβa([bEGw>R3 rߊs,Hx1sQ;}4rm K|p0V&kڡS8c}DKE~مg?xY^ֽ9X:SXuӁjqjb 7l@#wH]Avum~{nizzQ],sfEcCEEW&+ۿ:oJhU|2w;E?9dn.\CcR֞ %dҭ%939VMT`j'PX>Пg袍rDòA8 Sw>]{ 9;|K%w=[xƬ'ׯ1/qog^Gtq}eXcc,t䅇zնNLkr2z~! mNj:os߰k5H%L\)]:T?sol3s6/ϳz5c51jڍCLwȄՓô)KdM'K^(U\:\rV8vߏyѣ&w(Qv}4N"xu/Lo[$L#m|y/Wx[o֣woz{S45r|j6;vռrY3Y9{α v.sJ%d?Xf0~[9Z/-[QT}N}Xì+5b %6CoEOz|uϓFZ`•º!wn9|* P2_쯽Pпsk/Ͽ)׭0ck/ˊ"sETuNy*"aas[gZ{̽^{̽ViD5LLH΀`F>V|oΓߗhxAh!on#'u9ӎ-Czt4ֲt?a'er@B#-IEiԫ6 ۣRB 8`&-ߛE*](T2݈fZ&ߡ28#~EfW㢛Ԧ&]){ε7Wwyg *t#nfdɋL'$xv?O4l7UwX4+Y RnB6n劺bv1do \>⵭敺{WK]kZ]q{v*73_mQ8ݒf>rQ(9Μb_"]j'{dS+ ?̋?4w k<} ]`u:og":TyJ:*" ޹m{{ׅ%w$b+ssd2wWqL.#ssJ;*ʆy~{]ݽCOr_+^ZnqQcO~2oST4yjxs=ڳBM,g/KFZRp38jdB, 8G] o\wq6]q6gʅKd5x۹L5:}F0b`X%mw>;0jISruyuATZ8:e,M zp0L4m8# ̱ cSjWMZ}fpٽ~ˆ5U3N\<}q߁<ݫy_Ҫ+<]Y[76ynֲo5>E/}Bf2%떸;~bufpw%IA!'K̎)9]/Z̉edMgŎ/[Õ~gab,Ntb&׺3E ,ꙭ*W}+u\4 0=||G|cs*gw~$ċmɄ&~߼Jd3k'sjқ]eY]ͥ*㿩4PJλr~G40WpkgG:;ٶ[=>i 1(`kc̓E[WkEUޝX]y,,M*◾EsN}ƪ-oԨ/WX\5:<3;Lzhf˻I_z찠ן-/I[{;6A =H/%W{^eqۙՄTjt -6pZޭ]ܘ}K9gOn%OU}WMO̝_wlw>feq畦%:ʏٰul`d`G6{ ΢ّ|Gc˧W,::TQ#r1\SN>K ~0Y|FagSJ52aڗ:s^rj[r~/"%pq}jdA]&踁I٦VO6~cմO&CtvZƘA gTwUlekpYobFyז}kGǙg谙GPJY\m‡m.kYܰoʄ4a3egfc7H5,8UV塄 Y^닄wLY%eE }lO^~~gW_۲rMk8nlL]kYwZyl)A#.F0i< fcyըщνF~ޤ]+ 4wIY(Eie>X4Jokd)Э'uDz:h: 韯:wL0:, UkR*CEj/SJ8ki3BSע+-֭t>2gL`*z}ܑ#y#uK3^" -|$YpV ɒ퉖s;$ MPEnZ)[l%\kWa_;KPt22f7XN83 UٝE9b _k=cVb%Y;e#@^)(#V^)G"dy9?Ǥ*ƪYx’< }1r6vGbkq3mxPČP'O2#TZ?#Tfʿ(T?qPBŋPUPVM9W*}8aR8J>BphJm8%u#3D HMajGW$ղy$: pж3h'xe]ۍRALXX[D\|e`Ca5YR5=^^Fis9%z}y&/Z1{STU͖^U5xZ`BzO~uƛ xM@ZBcX-n~yAB@z"=v@\ ޾I8Ђ\VM_ZA0w0BwURz4 vqcKA D\3,j &K%_"Ș mBz 4Wa›}C:<3nl! b_ +T[#FyM/h`}\UIK:I i!l</gXI(f]˔͖٘=`t ,yL㙃60c ̶E0( o׃ T20xeםlI;,ĔSl sF")Ɖy0B'[d^w)WE-@|6J}YaCPȔ Iٗ }$ZI sFK.O_[g9;9s:sD%H%Ξ)a9[2sQ"nɰrX2AM#זa[QN$X{W~q{SZvaVs%>6/m>JBgds(g;{2%Ѿ߷-ٝs?ʯ ;]'2&dF(}w^fZ`,ݭvMQ~W}dޥe S~*.ě޺+T@YDOF3ms0*,U%CFPB_L뮖.BL7-fcn ĴPbjچd4hN8 z[sxncCʈI Di1'*;\<@I 1>td@6k};j`w{|GwN}~di_bVβdiWYZ)K;.{) Kfia{qE^c9CwY FXhK+e,TB,T@v +P\p;GnˑInO:q&bzbL4@w gv}W}>`2os+2WA l>bwfu3Zz4qIxO"ol Hߓq2s3Hq{tVݑfkƨ~jV.sY˸[̨:fPuh9z[p(  @L%m.D\EXv=hmuM /װ>{oAn7KmB`RU8>Y=vRQG#Ҍ vr(tFLuI@=ң]q8X8g8h5FG&A7F ^JrjEh5MQ>Bؠ/ePQ >z2-X` # pO5ASWs'x'&;PTP,y@̭l o7B}:R!$T)TCm,vK|{PmKAM^4珈JKr+5ɋp挈4[B' d84 gq L8ݯ6#IBo=O4qh뒬 `dXܡNyJm A5GcI~ D[gcS@Kd#BRV<9ZA557[ T2Vq<x<<,X?jn`ivpeY6KZ*KۜR>6&ex%MRK~orK\Q&9DmñV 4+V*w.J,E6>c){$J4|a ٘yu"ϋGM5Γd+Cp>eI0(9%H]գE:Ba+KOX7 ,{>cx߆~698G"N|ˢt %󨍨Wwc.&7K#^@ky tpjۉ22 $|6@ⱚ- V@8!zd#?Nb@d) q6C%z@2?ƙ!Ħ.ɽBC ǩkfPP.[5К< ̖Pj `s-Єv5q'A8DGhA)>?4| _ F?nSG΁vՅ YJ8k8 q $ci?bDѕ t%F:A x`]FZxsZ4*iFz0 h2'JD;.cE6El:yUPG~#87c]Cփ V^PH'*$M,v EN%vD#:*khZOKZc0r3OѤz"8;gUT6uӠJBa0~gA}!XL)9T?˽{e=V>FGm156'f u^(]2b㌗'paxwڸ] jP#~e81H{X{LTYh|!'R0%1Z9}4}n>2zr%XDn&$92ɭ ZgG=q8S\39mPxk߷WXZ6ĈK =.HjZ@z=sTr ɼ G멩̏9E6ЁwwҺH <;A֊p^XUr@Cƾ秛4@tZkS"r+(J5iSkqD ͜[:1{&4Di(QMOA0@B`<:( u;Q*`gwzAbuF`jboX!].s#b[EM]e4L6OrZ=*f@NcFuN5)lye6*z`@8<kY\EmWMYP.z=jOb,Y'Ps' ?&! mһcDOX ۠2X"Oo1ͮ\b qk=F`a!-p{z6hHpaXE*aQnؤksArod;y_@_ߋѢι5|@-a3 յ]5֑SbJoi0Qf} 巯|mE$BC-/R T<[r\Ru4cKQѹ3FU kvDo#1t xg'C|]x[\"߁lԠ`=H #v5J9{9%J6[@Nu'ֹfIJsPڟҡ?Řj:\n;L&*4AQTPa]5 gi򯲦qwk4>;ТEĮ{Nom l"Ea"d_o[[r#OQvLi|Щg#S^]X+r[}}5:L-+>M9_ELUNJ쓸-@3$c6̉\,⟭dF >Ea8Ih 1=I@h2ꥀ} bKD)&{[k\!+ &5+ ]?#]$O oŅ 3/CWO#/V?*u|BF* B/"bY C<$~87)30F V?X6$L}m5$ċr&Kv88/bEHP4A Bn^Y\CTSfVߍ/$pTNqcǨsfA[a>j_2|ri~HQ[`֩o+u/z5ՙGisT9a QXa}# ɰMyYAvWLpPPj:+SMqsHZe=dMTU\I1.mJm̦ XjmDi]6{$ 2,7ӂtX8G8)9W!ѰV@F@&u%n]6MڧZmHIPCQ!t32< U<$|\S|φ:lT!I4Ŧ}yId_~`x1Ą' >xW#a '6-1B2}ˊxxw~[Hd3xոߛ \d):i~=UBP/ARD$JL/W2QM VrF̄iA8%. !5\Ȓd_M$y =JV[Cl4A}ϽTŞzsA8ߑ}yit7kT@p 00%A(OgOQ;P0>b%<#A00gQf2i6-J&]ھ4Pnd8kLc~5ګLuYZ;#)sC>hӹ |k+?jltF@# %Pv ?a)dL0ILYt*eLV ȋb =l/n#.0hڜrrtk$jb)2:cϘ?w ,-{YYQkaty r:6'k?0&L$)I&6ڴ!GԱlԭNO22%čVB0Nh6|+#žFk/ ܘMVrʜ=TU^څ1wByl?#&9=YmmNxPRFK2h@g/5Ym#{yt2^2kvQ|XUE-eM[{釽*+0>``~ c<8 høEןcQgqߪ(Q|0Boa c6q2`Tqo wr 9e%1_ 6-n>s=el_G*ikv *'5c^&Jb %!Krsl~Mj9e"7GG\( 280w3 s+?a26<'|2Vw.cڍS;3 o V" oUZr3Vsb ěWMw <0C7qoT9s(ӴU3UMHLaAK@́Bpb!QX[GlJ+mZܥRePy8:8WGhg/t2[>/&!N")vNR0R1I;>:1MSnKMH4v+F ;#Ew{ t鮃l3N`Jio _3N1ku2&Q[ )X%Nm㐗!*L }{iЎ$nY5{>gO阯kbұ] g1VloTIFL=$o[6PFzAimǼP s߷6(1P669*'oIUW׷rXAƑ7Gޅи~?qֺbCR*ՖB ;fpYW-+M!3^Qz4ѥJxIwR1Yw{>`2e4t'H?٧V'SZ¡pYÅ#ȬEx/ N֗k˿lw=h<[eYS'<`غ`) 90J%gfWLCMH2BWBnQ;J:Y;Wֿ&fn`_t+6-O #T31qJ'%ukǿ#F5n[18\, A06e.Ofiq#8a*ƷK0F(ؒa7oaLj܉/s-4מsUk\W>,h(miY_^Ք>R1?5}NYv34n\Mꍷ_LZ3LbEHݻ҈e;1~o֨uVމmb9]91EXŐfO7 z?ֱF iq71QkRyK[.Aoox/6)`x3twٴ)T#ỳ-RnC0,+TX.H&)b!*('bVof@\@@.%a H}܉@ [vIN.| zFXCOǠ4$i k>L(揁q `VC,_ 5?y ម5.55*TBT .gY"\##w!A 8-p ָ» D_wZ5̎gXG 8m2dmɌ/ bLm䅦,k|p3t=ZQ<`23q xTB9ۈyTƒG6 <:,h<L'<|e[F>Djni%$5c!J-a8:\98>;ݼJAz?McHV*GO/izAz?}zBoz=ߴ-g>|,o++z? }m[_BF~2Tz/[U9}OӸ[uDp( b G:'؊iPþ wzؙs#=sf+cv'voI=.ys8Y.@@"?v 41 ̇>go`m:܆,i6胳|ՆkAuW)GZϕ~I{Qҵk3~Wivɯo cw6фլsd'TnI:k䆪3[D&GA\Ɂ׈OL?,ovBcoB ؕ_8]EFfq GLlܗa%.\K 閆lJy,1߉0Z}6 Duq,P-\drRQ*LxR(j*Plg! M/|9: |vͪ=fVYϿ38 G_ | |>6>>mu 煿s&s~?Z6tÖ, zL̈ #Ϩhj*3RUQ$#w7" UFL,>t'?R!d c q\tm5ѹpѹMEÑDݳƓITi̥F:UmS"fwm#3sbzKy)J/y= bXdۗywqˡ?_~oW[\M~_R}~K~]~K/ aoGK'QKE_ux*UFd[7UnA2FYZT7Մγ t r˥=l74^V* [^wPt%o4w'70oNMcƍ) $FC~mkh hGeG E`gyga?6> l ѯ۳կe񎖴ׯ]SU[脥EMH׽K 10͆NW*tP] t-Z/]r8]K%WP5vn=UxIg;Hha@zݳCjVV^Fu]daG="RHCV&z{5_d շUZ XM4 WN ]Qt(X|jt.۰bK F@V3rKpxY+^Zx]xj"Ȱ̈^M{ x*Phzȸ`# 6!lf rF@Vu30}czgBϟ/:%+.[9LyFvN<2W/'tAٹlpo\Ij|V6'7MK=iF7Eݴ=hy+Fd^ZhirCZץ%P@THPO't26᪮7..zֿ^߿7ûkkhjv&ID ]`#4o»~"v*N2dzEyv .=[™a X.?A! @~>@,7Lrհ2ܖgX/;?%@ZpRD|Gf#mZxIֵPmT!@ t4~1_1i,h4r:guji %ǃ$VX;2#(1]=UF{J;|'D@QQ0Qt#Wi@D81ysuQR.t, ^h(p6ج>HTBHnS}''*2ڿZ i?Jm@#hs `[$6~U˞GpC=RiNfɋ37}l3^ψ xpѵj36g*>}Vg[P"> 챕"ANB+r[Yڥ/zR V=]%pH:a2Qsc,jsED*#֭{#`;A!VN}MթDD'YW/:+VjD/^= ^DSt\:Z@w/Чh~xȸvjbt9Wsv~M_ȌxG#,&M%1X2΀wYz3\89wܑ,m!O3ts.jf̓Tq|ŹܩyL`%m37NwpH̳Enwh;Xtfڦc}Ӫm ĺ370MV(ڦ 4XV/2ld3/R,0*+ *% &SABAj\១,y~9hqS =1lP J_1K@[t|݉6}{=G\5}T GHv7,@~"MK<2<"tƔc<VLIގ7!Żfɾ%bpYb{+*;j΄x8$y*nk@r s. ƺ;K:b@c`U [TW<ϸbg䯘Y=ٽ#_q3_3_QFfN[ikynw$ rw}Ix}WVk&` uLKԓ^'h=d6ɬ>/AFmt>Vު떗/Vo/k >S/aPOUɹSUrߔ"9Z{;U|7_įO8."~YU?W_T~}J׎U&Vܘ_16mVa,Ф>}xTw< ԯiMؾC~;]+o?^"bm[ߦjmXo_ѭ}6 .{|~Qdi|V+oCXLF؏nszn===ϬAAgV2g:V\}_k@}Yw\ޮAopǐ虨/p G_:p |?zR=w~I aQt@@ dXבߝۧV~LZ/?}G_`܆}*Ѕϑ?Ȧ]N\)8:t_4`D%s9p"nQ5rN)*I=4',̒ܞW>SV0DBxOr8|<ݟN5g`FV wGS*Miy[6x־0{*`#`CxOt Z_1vmnpr'bn9UCHV CV8+3Ƹ2w 鯝VRB6D{nX~ůh{ƽE{ ٞ S}:mI%6 w}yZ@/aiC]r̯`_TԿGS_"R3_.|H=՚: * 렋`5Rudf(謹}V?| -VƦiic2z+e1^|cϧ<WۂS;v+MeVPp \^:3MP Flu'f<Qε='E[T~索tl,73'ɭ7-_f`jQㅉGg 6xig<ଲ'.Zr뉻?: UPן3Z\YTX ey}{J_Cf4ؑ\H0*{9!2r7CncKT;DUN j <yjO?-~I|&<[y:1)b$t;Sy3\w!p;mw>y'7>րL\F|R“@,>7!cTNTՙ }]UWw3W)V80ܚx]۷iUI ?0C'UMX[>Y)_[kKthw1]fyb@g\di?zwu'ȰD{dDClbh80@H{Y@(a#B HWn=0-; c$-y~m(MMr+WM4 < vqyP@He*Akt~XFݢ2E"?ԋ OD|)-u ;t <0Kc@ts:nIzs]V}<)6`察RbRKuuITK'ղL-S6Fj yui-T^e=]=!9/#Jbh~bcWe1R4R^hx]a:z0~ 4LM4/Х^u4L|ϟ{x KKB챆`^oWPwe(bzur be_,?`7s[+TqLGXw3˅`5;ڈ6dmD5b$;8RrXezjTثEV]o^\3GlZ Nq,.[lNRq<1;b*S>J 9qYb: ?ɳ'DnZ:8Z^4O-t ƻ;P ,+WpQ\e W l~}= C`_.#~ۗ6@v㒖x75Z?ڔ6ImT )eᰓC#|Kڂ<=̗w,.ߍ$|׍Wj"/߁Pϲc= o6 '_ʑ$]4) k+]zb_ݩց[<+NMYB}E_j#1kHkk_H})?xv~2}î4㠱&HY-pK8J9 b 2I~MQ'8+`@扃*znI]ۖM~u;:?^>z?3=g ׆Au>9nshcDߋإur>L-5!Luorý "y_oݦݶ/)]?̽)GHk7W3jIzlt.i0E@Vw|`S{v6t=;SHhj?";#Ή'=3F(~e p:̼0鰽%T,s`@ V>Q)kxw)ϛeŌi&J(HS ;kΨs 5/(j]|z=CPvR<-S39a/vb2R"k7geϦ\M0M`Q)ЁjYu йζ) y_:oy:I.k= kќ:fTRl^O@HҭQ>u#1Sw]w>xG4AOn=_xMQSo7Yc7;hw>v|/P,_Y[^Bڦ\ TZE39mP!=$P{+[⢁kɌeu}w z^<;?T~VJfu?;o^>9O8SK+9Ѧ􀄛q4URg}pŊEg%<(uVS|[)~=)lzv]&60k%wԹF:\A*ax}<JQW:wy,qZ>/](Qk<0?:_Sށ\zWд6FȕaT \Q/?D?o-?NWg mxWlKXbu>O珹I9vrM9 ݉%d\3xe$KvKN%W  ]1k\zwr1,(#bUf0" ]gT$vQ0K-Tvpe R 3i(.L9B%Xțw-(.d62Ry!L||C*l`$n^U52ͺN0gqЃzPjs?`^Nָr)_ܟ/||=Oth!8=ݤC1~#a/_b7Enmtn⋩_th~|_fEs:8״\ /NMCu>;’^86 [%?O v 3Zy?w eC ^B|~| S^? Kb9Am,[Ф.7gw}{ܹz{D{cvޢ{*˩s^gwWmo'^Ԃ`[eI$8 ӓ[EomoS o?xO?xsˌ!ݖT`t^UwSOЏIg~lǿ|syݪG1;j>g/ `g~UlQ&#O ~R<-ReЃ ,Qb=l&S]IWH74JC2?ot^˹t^uqy-Hڒ0>})I 3,fy ɳR@XU=$`H;R7,D=gOn*Ê^!T;#6SGk!b-L>3svh^eMlaY" VνO3Kt^9]ӫO/^IsJgk"H{ͯJMvBpLŏ]Οƍ5$}r&ؙM=>$؟9#NU\w`R)/XO"5࢑:_\OsG+=̑qpL߻6jsgv>/W2d/ӝ)KvVqG'&}"c񍽞Sx>[3'r˵&]"n˯a>ۘiO$裢 \Rx3h_~reGo'~E_J_TQE1zO~j0uߕo⏎tߧQ>O >O4pXb<)vӸ~ yJO󩻌nb$9ҽ_Dv,6C|VotݝOFb|myQ3/D6D9Ӄūb ;G%FcbP$݄DJa?nK>6ۛ?sJaA= @Tmr$Z=ԇ{$ ^H$۲]|Y/[@2@% oOmUJ+ ɱl<=M5CM [tEEqPѯPo;'EzA_]<H_s6'~7-׸8uۘo[ѸЧcՋZǥoӂM'+KU{SЌ~]oGG`j{NSY)y[/7SFG=~(@(b?:() AY4PzhOK"bIu݈YўPg/ӞЕ~.ݥ.VsuJ_ڝ:U=uJQ7e.2B.⶯&"XRjj@L%∂I~#Y|ɧ& ΓH8`2U'b%qD. ޿H|owsOP1=zɓ%I<㐼- ([WVEfH\ 4N19&|.Q-#ʌ'@]:_G /c]bn%q9'yڑK1%T1y8R"E#呝 G @T8[1 f[#e AkxxP62/k¼f^-ץo=-#=`s$c)/T_IׇQ\tŇ肴£4c-޲<8\o4U@AO`?,jK,|X/gu#-у+x [Z(mh~(ԅj#îmEFH+[uM|v9qϐ(6{‚I@`eӢQԺ:614^/X˭՝t c,{W"t`xP=^EOMχ\MK&c}t*v16I|IE bxzCAωD"#S_.7Jڳ.W~oH nn#z43=t铴 Nw˯;H;VQY7Crץ@~9Y( pts=pAe[2 iZo-YBrIۥe7G ycM[ ycpٌJ.zw4sac@|/74ѩz_f;y{MF`њ FX#lj3ŕHڕs;&Z֝i@'*|$d}Pd-6EYYq$"kDzr!<x\4I"ns _ 92iڽɒj׌1՗`Emt4jAp.#6<Z䶮)ׅl%ts)=7 H&'mw7[l0 Xj@z+_[i.x'GK;kǧMsq/Vԛ\ [o?'6ũBHb`dY 0)Huf*93J ձN \NAADg^Q$|1T`)32Ȟ7X ^Ds"zS>uxG&y2F3وp*}KQǢY1兯F֗DV %biVKXi$Ǹhr͋1z#0pu]h0]fq:TN rԾUoii /OЊOQBJJg=Qқ݁C`cHtȨ*K2"e|IbK|^>[ĝTE_Y4 һe4r(RE De̔D$;£t3N:V㒨9 oo[p|S69CF)(80Άiӷa2P/o~oƉr?YYY'u_4k*]>݌D3hRꙷ XĤ&׿B5"$?+L'Ynxm߉yJ&ea_{?)JNeQOMBdд:ZU 7#[Qf3 WɻpyH*\2o@nxʗ2KJhO}MxרBM|~D?Gsg E @4;fj8 @[c@;/ *_V #QG 4w1?iSgѠ:}/@;卢\\LJ{Ԏ!€2J%}%}{لhO] C|Ts%y'ľPIS'jST{gCs&Zر5eFS&{v.z> Gh ^5F-U f3)|~!V )WЄL+o~3HWBpi_%Ϗ#kL[q{jO >[mP6M|@@ ӀjC N|p͐W]WH6IEj?#_ozyҲɔp8%75GڡnΘV_v#XkxK(/$  ~F MG'QvB%K83E%o+r2%fP!pX+֍ Bl0X y){ZcW>XUz*cMG-C\l*#3#-~oxQO &466tkn~?8tWNJ÷Go-n35 %=$hj߳&՟B^eFO orZ.o6w=]T_U WfQ[0?Iα LV+X_vu.=tQq ֟Ygm{}e[7ph7\!19WgGmޟ4C7$K$ل[^ohmlٓ0{ Zvy~:8EW'Y3jx kJ(άP`Xzy9|"YsJL2v0#46 dZX0b1좦7)=zayt+FD7N^#|v,D`:tV,Mpx(G7V*ij+쾐- y 9_m=O \7>u+NjPO%p"%*gD03ԋ V^]YYу&ʼ=3M`U4_%~-[/Chu J8V^Yr\MØkvT4G$UmN]eb(^ћ=G*C=H#Bd9y`.;A_M j [s_ާ+Ue\UiLp"w{#-"i9V aˠXDFN8ƍYF9DpkwvMf͠3ټEKw}4򏰹x)9eӾ8 }jmiKeKv,->ĜTYeV"[\6 ݵ7t8IbJ!ѺjivQ4V7^FqVy(lP 75Ϊ({G\~m֫+lW}%Jbg[yu@.Ӆz5҂P\#"#5};T k`kR:EѝƼbkN}LBp|q993ƫ4./"׹:]}S/f [$YAlQ,O 3,Ox /r(p&ב`s`/{ūG"iJa+a8S 6)l}[M'hj>uK㱦;'\}[K9Ŀb/ńmTbc0 #+ j> _v!cMJg@Ulx-N_k0 ]axF+W4 ճ1e#2"Gn4Rᯉ?>Ouk'|0s;e<9.ˡM4e\^.})yr?ǯ+ ރmI _pX<xKT@W"V#%wBpyDG$n?|h4&:gC!kxx=8=x,zrq.ȧ4: X POXLgL\Sc HaXe]:--6z(?-׿@畢"̭PQS*6ڋv͜f~3j7b,% ?uim،pOA%fWEm濚+ +qp(^ gMbPaoi벖  9nh[ܭ/0Jp)bhxCQ{L\ .ve^'Oި %W"`Ȝgd]_i-jqqp1&^*k5X q(Uq`?`m\|DIVV+oIx۔B-*׳WY^8iTz@\?I6.T }{TYܜ,>EE2fURye|Z1|Z3٫\iTe\u)UB P`f_=ݳQ>4s !k!!6~dV_IZE`y Ļ<Hr3Lf' Yԃ>6l{CCs]A|_I`ЄjB?uW|ԳUk-@&evW"㯥z_yfܥ{"ϥK$:] ߐ+[WGfYKQZsvSndm@\Y7P_?a#DcPEr} |@U-hzjoٛ}ͤOku ^+G@IY99x/n*5oczڔp"߇invyY#>E]55+A!p<ئsA.10[rBm!x&r g5T5[5Mvm6*IKhD6ŅZ ?b#b2X\#0SۑP扒ט%\bNQv[6v/ǏɸW};:VƷ*MGҽU.2\6~txTcёAVy iΨ*mwplܳHxz]vdbFGd7` WlNJӉ]3vPdCߡ++ U?_ژ70ohk+C$j_Z<Ϟ6E0`K`JqyE)jolB}tj5[Fj>hm}7 dL•@|uC|nsvF;Ev@I#W[|̉vhKw٘=l~=[KâVW|W󇳨pߐhf,?J"]`UƬZGTM`3A߇J1ꬫ Ȫ>qOh-[{",韜?3iZr}K}4}Eb7Yj?-qp`n]i7Q%H㉇yz7X6gM9yӂW٬6U~]?FvqOaiOe I:S"__LNH*{k`louisv `OCMaiC[:zb:QG{!wx_ԊX48Կ<{Ձt Nkbjw箇ĺ4>^vԕ#1J]&W7؁T(WmäRfzaMr㕭N)rJg<],Nww~}AJ.%kd$@y^;((.~QN͢#?qS^#(]=PO(wQn(wF'HjT9FQ(/E!+]ȁ .a^vZe1Q#(jzBOEDVQW QVLʊ. yByА \HG\dQ㑝CEzG։"FH_T}crJJKupsRC)k'CC:" `?1 RsFylgYގ4%rlk`#l6@vIlE `ر)eD~<}_@ŀZ@l1onm *.%}_^ٜhѵH A<>4D$"_"0}R{ޗИ0}+gp|tPb^F<͒/h{Pf=-l vTsw(;IYLcuyO2w 1b|7dB|F?D٤$2U] C8?~Eb!G4=l]Z+&d[7jnM=Wu~W){K4OhnYYrEk#R0uQY^8Ei{DꥁvsB0OXNn $~-m[{cWB[κCgEW_4y')zK);آi `isu𔆓 1 'y%AW1םJَ o=^gL?;u#fp 9"bEGwT&rsqw0IJVS>H:/ZMK:bT4R>l*(`OΗ+ž# $(Zy:V]nE-!C6&Yx$ٔԈuq*:^mcUM_BG Wc{ @ P -,S[|TiCs(nyStԩI38_p`?Rg}[B͠ #s2ydwluߨ;$aqc G/?Y |+N98+A`)h3Jl4{qj 2|I5o<"%)9(cKYg#4ldY8ztFS~E+aRE.r g0y3WTQ/s$RhCųSc *1ѥ $TKlճݱ.S_6 W5nrTZ| z], N~FKݺDG.[ש!^2SK# Awl]cࢹ5ZuwR˥{u E䳦ҁBʣOHwr%X#'P6eHaLHN.ɪ"Xwvh17YLBzſsvilyWQx(Q xոWqCpcgmd!Io Ӷ҄$:}*E]zX3έ!;S{pďxmJP{0oiB>LDE)e4UҢ@B W^O0$Y֦Й.r\Ps.?],A,܍ /3W]<՗h@x}^4'}1?MoCG!dkK;V=5t?lޥSL&}A0gI#i`XIg`kv +g61M| Hq&_x)WCd v࡯NNl[wuɀdz]ۑ^g!N4GGDخlPlEx&[ p[F49l܍R+1)`R vh$_>ٟtFOA}p><%>]3Y ,}KO5SV2c1:e+}dŴ(‹P-}N&A"yFP$W`9+.aJ2r=TO|p.. w+͗ߣݠq~KMmoD;}1^8@^* FQ QRVߚyow$7yg`bJLG"pS/2u}] -$o3AÇ@6ql84]6D8A}cM{%l"ǔӬDTA>y.ڴBj{#[TBLuVE8]4qʯ"Yj$+ߵCh 70*ssؿ]n[K-{;m6kطt3u&̶{=͒D848k$-Ffn;X~祠lKc]`^wǖ(^@5|].8R 8_*e'Mt&+$matS1f%E5\(ޅ ;H=g\w@v]9=4Á03" 6VY#/n ̍>zM/q҉Aäūȶ98/>_=Ũmg0}'(I(0R1+ɣRjPzӵo8|fjAIumklo=Yf~{8Z͕|<N2@nز{^>;V9TbVi/4mqj,֌Ϻ6W+Y)3u8UQ݂`eKᶭ^-6+|"2/GjHn+nҔpZp+CV.A%)Kپဗe= vkB)kJ> j_m$*9͵^y=PqVDv͎%ƓQxSx k95*"mw5R?fpl(bO\DpT%t͏c "j" sq,8.1l3cJ;?eiE Jb4= Eɓļsv2VFXD5'H@\'Nd[PڄМ0w]+ M[ JUͱf)_tUww$ȋ̤%Vi}_(Dk=| Z[%GҼDU[vn*b)7 H9A54LVچ"ywc#1ر:T[Z:kI$ 6߅UWQx<<ӝCg׷_^ׇ:=&y+r6m\c cw8i`U\%aZp?,;ZBMj+DcHW?`әWĨ{5z/F8^NFKe88ʣSK\Oˆ#<#F Xu+/ #|W}+ 'õGՆ-7YNinuծL F"*yP066 ;*n ВkL+a%-E&Є:I)[YȲEZ!¢/IM*#!g<؋2W+gToTlZ9Z5An(+p]Y 'eY)7{ƵBꮮkYXݗr)rTUNsR{WէJ-Mj i<һךs!&A xx຃)RcP[ԉs},FxyXX:;#!bszi5<җ\Xvk441WVbfv7FF uaOTfA,ȄVV]bwyV7 %*Vt/j2IeTw|Jף9ʴJ5V[bz yCu^TA@0`Dk~ OK"Jpr4S3äq\4Vb6<ފX59Sab; fND͚m$x˧;b:*`Kn N J_>q9d%-E d4V:Z_ܺg3IrqS"9/Ri/4fi:n[3)+bAgLVA?{ CVsnXlit 7rrI;s2N_I57Ζv1'P,_]/PN+Hӕj!Ľ,:g>&085=6ǢSaX+USmۿ}lt v,qiþYcʇqSh#'== Xkӿ_rrA>)☶:'x'q;<d\QhY&{7b'm,Fc1a#J߈'.1f "T9;QkIs˂g.F5_܇J { D!8cv</`59y\"?XJ̼Rě1zQ'`R򃭪-?X,oK̖X`wsφ ~\g|2쌭-8L*#oq0(},d44yIx-pFIۉԐGW JDG-,9H8gQ{aX>H|pfח_k)Y)^SVc2k+5G5MSVxHSie=,)/Irζ︔:/J\܊I8~GqƼV؜|:!=ԡ.52yzWttxvѴ|2hr0TC_pKɿ)U2&#gJ (Qc;nsv<ϴb;hɻ5E[3<5x4Ln]V"2~Xqʛ@6\ K f; Pح%y7]n6ԟ1?025ձ0Ǿ*nU?Cb?՗y֐rxޙ;V"=Wd\?HbaM T4+@]` ,&.G\` {ŔYrW!^ Gޅ8s hf0q)DT׳#(m1eL U~&ދ0P(pbu0@TMYv}N `R7l6:?u/ {^0]_Opuׇ/Ot 4]mkf9|epc&!KQH-bWIj0>j`ݘ0Yr* 96F]Ό ;/guo/&>j8 Ej:CQ&e# {ABQ,scI(c(>ޡ>|3n>_gsϭ3 tB d#d/! 2[AFO| Ys%|kyM=|j{4~4mq!E 9 M!qxa s))>)'qm<[k\v#%k?VED\ͮCѼ!߯"5ɀ)Łk#G%OzK7CU}Wwyaf:-<{Bşfɱ% iMw8V{1ψ95]y8 } sD T'!4 0G^p:Y;8NmEXZIO_&vF 51czF kB$'!8v9 !RFm 9w&{0&SB8ᄡ7ӪU}*+vPCXka:ִ%sF'pMs2FFCd;^x2]N?@=kPtYt-&K~5 rX:fBud/w'7(i3]ƶCMÒVS3K(]1*H ˞xK'5o8_a$hYā l)a8Sl~Ϊ,&UcxҾiK5Q8bJ4a;Q"޴q`Þ׼^iDf:=.f&2^Q^ċt)Wer*|V13['KV>*UU f9 &n"Nf[o"B)3c gWMjK[c*+rD%F>C䛶8f,*]F@nRquod]DY1SfrVQpμ8Ӌj*_'3fi`TFx[ASI_,M/tnKI*Z@XgߔBIHiʡ6g]9СfN00p/]'Cgx29Ή8n0ȵ kŽ8N m0=8Xy Ƭ`o̷; nu':lwExCbt-o'b~oF Y#. ^O9T4y,DVhvlU%] }!agBRARCvH& D>ޕ2 *p}9ZZEVkxf-xdVH g 5.,>1%;fJ2 c<13Q`y܅8@*|ŗ(o<-.?1le2Uۼ;_T`sM߇+m2C#D&I՚KhMV5Q R:_5>Y꺲6zm #<6 GLS_U>CSOC}6r质"X^vM+@@Yalw7?8c:!5R@&mCn|ƨ/r&L9=|6QʣV Oz=w}gciwpw二as|^Ԍ)y9f3!fEA(7#/cޞsBG51g2Ta$9@##x,sq/D_z }8f)-Nے IyoB{uȏ$Aˣ$7'@'SI!k;l0/ acck?Q:ڀG[ ʶ^7zQYO,M9o|^v؄.6a)-|=q/O/OI^,GB-7-OSId0 =Pj- R?k|kgvy !{cs.aX F;ua!CF/1X|]rKV󓹪.1+!X LP;$`~P\·]4 ;$[T ўä9wJ~gC4}PaĚUkz qkzaYzqp-WbR+ -{82[-dp.6=(D%~x8N'9XV?P-R˧cχ }%h\7]UORy{/߫ܐ+RZ7$#Z7 +GoNP vQn%,u 7K6Sƪ*nQ/B`|j189'j GG}GVO4HݪfVVvW9#4j)j)6EIl.g ¦(e)J#y6E~}dQI-m?Pu@(ǯygOvϞK={7={"uf&"E[.B8Iԯhn]a sOxmwtb]XJ_^u%@l|_홐1Ade,c*yDP9#uVJ$\(ⷙpͩ P2F0ב,}XXccIGG#ZiٹG YMCm*ZThY,뉖c1-m[\_gHEUH!a)%KFjVYOm8AAD:E`JyIϣłyD#-.v+( )-)9#m̑<GgƗd2271{L"8^a6YmZ#u ^_~/@B]`)R-eꏐ#pF-Oy%8|ǨgiK5X@+i=|}Xtx1nC)CyxwA]ik 䫞˕1nj?͝wisztYץ }`tYfzZKף\Tto rD֧k].0\XDͼ-RS+Uwz@RQB*v?Tʱ#BKr,;@- 1c6DDޙKp02rn P.]# U$]lPIq$I/ U$Yb!H:g& ʈf$!钖aI[\w?}: X`Qa('o~Ō;em7HsםKy?K^5+\6GdN$yO]G}o%T6ާ::Rk^H@w-R^c+y׺q4rׄFiє.&emIgV>I|@V[8xJ>@L|I,d,CVS ľcuF|ia'nVwkO8ڀyJahY:7u `_5+$%0b ,PDVcLɖr-DhO(z{=zVX ݗώ+~ PG{+ء&<{EǨwCcJ/"."G3-d—dZWJ|?ԥRR^SJpFУBkTB+B*P:*woeR0-m,~3W7Q|bwDbeF9$z^wm֋_fްre P\NQ\ )j>W|裕OiCO4=.ъsqn ̱ &׽GW6-}5_ε쵮/ &z$+軵ZyT1GlJM?t%5ꮍ,ק ˶j`t=M tuکuҩk}u3]ÛJtq{t {k;k2@ [e:Zo 仌G|GG:J|6D,Kne +RMf?F8V&d;qPǃҮu=s K}JLD1CK–%aMZ2uC']7OFhW%~$̬zE4,v> V'B:KpbEf_R5b X@[AhhzsfK!ؾ)^C>Ef/1C%a ]TJ՘+Cnu1C,5KԭF"5DouO'ʤcaX [ u<4@v7luݎ?bZMҰE݁{B)w*5c=Е+6:7:Kjl BѴJbԆ42`PE45?C3DUCl+0ͧ^D |_{l_xt ^ LG,|nj\(f ;E1rjA12=gZȫg0͐H=AFݓf9t^5IQua{$ޓlMe亝M|x.ݙ8()>?0Ozh<Vن`Ytoe5!"ʬla r}hM;ha3j.x.y렭h>ɨS;yY>f6?󓘍`\?7a`øܒ )ǟ>T㢆=5\[R aR מ >6OOQr /Q0R`kXUe.?GTJ mw5-l^Rh)JXAk2WgY.MQZHy&I$&[LdRփ,Wsl,fI<9[x=gU=%e'!?+g"sU8bhk媨=뙮3q>/e^hճ=ݳY?x]H<(ki^=3/EH u׶gx&=3f۲~M&峁[Gjy9 sOW,a2.mYntѧ4=^Dw a- '(46AEih%Ӏui(IҧhaF0&*0HCC}~x XHI4puIxl&yZ7S$*qeJ| M45ƯFՌx&&.@; :7(+a^A`F걞 %zƛ^\޵3MZZڽ=cyl%ugUB}Cf;F? Υ/e;Mr,| w{tf4?|'?-3BEFPf(zI_߱N.اOƾdOƞJ@+b/g-C݀kv3%Vx˄~@@L"itG6cZ-cz|cR#cZڥ.}s6J7Kr۰Gy &Xu Dvv đlAv ^tHCL/`CnkQSV6,;c*m /K+sF ^4᳃XBŲ` ն ^h"T$U9H`Fj2K_7_O}ݐ?9~$/$^hx<ǝ6k j^VͿdq(X#]dl69C^j=@I~Vl1;@ 9-fm.(BݕuTiB$ I˳@<ȳ)syvAgMcgy6QlW\yZvv_%00<*sѮAmx^ҟӞ誙ӶN eN,lw=;u洇bp7r_.}]{:N.ZEcP>lQӇ6^'Zԡu ډԝxR'i: tr'>t@щ$rI?KR'n}#komQ$i {S(~B] ˴$<+ꝫuxPY"ђvG.ۇ0`ugwe;첹\]^C.;Dž.=!]U;|22|9M ꮳ#BCusPlvN}l3:k<6l~FGخxam0%3D|_%lQw6l1NTl;w ml'53wcI`w`i۞%jlgl,%`l#m;]xN–9DZ|(%45ZC,㥵o)̴>{Z ճuӄ6+˳<+#D½2}lCf*?ζnE#tbl-mTntCxmv8nv5XC7#f9B .9h!·y)@΋W/o :'wm= \=UkS;C4!nxMaP-S0KR1,@vNSh6 *>H4Z~([~9W.M!IAm޷cdbAe[2n4d_o#C~/Ģ5jahKƙ,5b'3kLYb ; ~Va,A- YF 6+%F]w `^=C)^*Ofx;44bmUq"?-Q۩CZߩ>i Л[rUuPp ~<$7!=C[Ao)~{`"ۦ~ ]ZQ5V]gzC)\pk+XsfLr9h6{;K\C|Pwl!yEsNmۥgxi U,0-کsZS/1kTbnͅOa?FCIbƣ2'- $2I3G}o9*bse:=zm-r֬h@MmڨliF#g} 9[D ux9{H[<- qn}{ls;>̭45* jjoljKTeIe@Yži΄I&U"b7S@(oM};JqylO"T:H?kT&9SpU_cPhzh Ju#f z݂!9$F@S?2'* x/e&,wEX֝ݸ yc aJ prM kŹM>M<+_ q i"+G-+8[jWF%2>,ӏW8Wc,mVfR~EB+[+0&!fYc*]$j 4szJ73KَdhԏfVxBL.5UKTo-Bq+SA:vVBc^U&69ݗ| a3|66(bu= )׍3Ө`jgћE88ډQ!5S\2*Rɮ_/JLn] &+r떇r^_En[K&cXnMV[\OUK#9@J}4D_k-ӊ"xV.)xh p[SNv91H 45H^h0Z ,CmF1P+Mpmy:ti8}80T:8 YӾQZzNG郲SexVdž,ƽQznqbRkuZX pt5af efKU__ht~z暥}V+IⅥ{p OI ܁'!q~tYB/7 fj@=LJ[({keh_^tВ^ ^2O?О;&A|1~hN:`kkۛ٘mDS YCe2.Vc-6mO6m_Jآ:.Dky]$Dk$}Ƶxh8teqPejeށ$5ʼi}*~Z* ԝ2OҸӦɝVt?w7GNC}faa.^KRRq#!tfuDZr*D?f4YԏNS~hRq~?4rE'.{uOVާӓcDO1{T'?=wX2'@}0 "2@(-YvkD7e Q c{Ge% ,Z'ze| |T^[4M0q?bdtYGvpK-*Fhy?z#]lFzzݽPm@Zt l0l+{^zQGۢ^&b0o6 :ouysOCͼy6=ysy<5 ҙ7?vcd=dd2}&!uWJ6 l:;?tedGj6AOm+p'pEj+;6$cחW^՗HcʪݐO~w0S-~[u^C6:`jlzl[dlRc{O6ؚ;ޑخEu!`mGzuaA$L[.Oiݡ`m&cqNvDDC}]\&A-{Z/jVXz fF] Z* ;k&]uI7}ŵv1C^L6#pv6]|;vy7K[vh"rO/K;C "·9D^S0{O +~ƻBżd$ ]{k1W 1ѷɘwrs3"n_ 7:v݁ٯ]Pq>U-z nWҵ2neq;ҵk &?~3.?x쓟o|_Pe9m[VeKw(.u $[ ^U% mBvd.Sסu]uזLϤGgt9 fw/aJPS{y_{^^u`>*"dw-h@<&``sDU񭭢ω[dL¯|xC"+KKo?ܖ!ዓ$uF/t Cv虁_THLg5ٽݣX .ߔYW, ;QYʾ1fmdg$ndoy"ZQHqA&߁ۭXn QW-9p[zGrjKT[d-yF}^;c/'Po*ǹ3$g&IaXI+,;]w $t:[$!.'In,>$ψ4$#*'۪8bqDVwW?9" M:Pן" C 7ܫ?ɝK"WjxB2@W&qrsue~wh,/NPӶA^$$!X^Ipv8'qQ޽iWsK¨1~<Π-`ߝ(`]{`O"r3Y ;K!}Pv yr x'1^,\>}">i!ΒKQ- j Lu8r06}c.YJ08 J#"҂_i(2Yϖ@"%v"0NO}DƊ+7~"+UǂH;ia<͐ FH RX! 5V8}X*hA|5l=:ԛ2D`QTj+9}Do}ɷ෵gaD$c}4-Иh mdznAIyo{"jVOڮ* ']h/jbui- m &Xt@Ba\ $,"10bFqgqVEiQ (PW*R\hK?q&yss=;H-y⣄=~; ȥ~Ao` ͭb APEph+(3te6QfR>Dq,V_'On6lAJ#"ap+̓QQZO>ͨL徻ykٛ>1@+6vÔ[\v$)r}A`~ ZANW'j6)ze}Q&d`ZD>ЩF) ӄߏ(o.͛BiEp9P%WِtLp5M*\|G*(l&o߉ʓ(%^@ߋ׭xBwpbw2PLf],C]#GϷ r-cQ.w~>ǹ!o,:淪GH+ټ"l fm\!ŗSSr"հEM5=v.,?r H8?"a&5rNVݙ-+&?Tkǂ:a|/<;f V0vPaRb XFI+SjZ $M[nC$E&o;鴧`r3p <"o 9C"Jə@!{"\*FZy[X/4I!|Dm)9q]RaGo :f╹#spO^;ΨINܤ-hpL!NmG`MG&x*xEEW::z ;8>ʿv`<bx͉7'k έi=PZ S܂1fr:yE0n4\<喖u ;D`rY``rw=9pO;XC:먥6O ǃPS.%WR&\1czەsGegO418=߁:Z8|+:[\7ZUyTGrOJ<@w>lآfzzj-b;+\.xۀkg u!1 =ݝN`!MW3.<lW~:J=j,JՓ$V&FK4:wsv_o5*K61W$Sȭ/ A+|s<HZ}aY걏,&ø*Xy'נU \}np_x.H(8Z/΃v'{^ Aeia-s $n,HƥX\lᄃWP*\匧L#˱Gf3ef ܉6ې3>×H gAgMC!R-lfjVv6EUt4wy9pi]^ KE5M"^5iBD8k@"sOc_cSceh l2 j@Gw1pG6?9w&u=1Kg{{aw(_wϥ][x #DŅ̊ ar0[,PkU h"a?jgp,_9rq61KPd) :1ȼ`pCquxS|NƇ,Hy:EdeIߟg A]U%m=ehkU pڪЃE[-YhbW Tډ8k3&c3:xgaDqE٢ :F+(IaK)̮LAMw 28 j_yAq),!AҼc8ɀ+,ev6;- MCA'{qJynUݗ(w¥X0Ձ8\*Jbњ;F._fwk$|_91]*1Ɇ3X(/';,v|VOg3ebʋ>U^)v0LJS52ϱ_8e, H4i.M\Miq('$=X+HzJsIO3a/EaaqdnV#s5kvy> x{A˪^Rc~0V pZ3OE9-s#?GpޣX4+3wBTLp֑~l :X$JQ PlXgo*J&7hۯ f1n,`Rf)j2UrhC| 4IKLb^!Dy(]OK$ {Xu87Lm \ێK2rLmem"C~}[y^~?nǟI)}mڎ[Hů6q?l5  121x' R(n2$=\Ldmñ2̖Bgpn(ixU.hF#{$0wԜ"w1 ]Jp~ämwfbȢ%06C0+(uq5at܇Xj['+nrdwG N u{$h1VzN} 9:fNq1]ِk&>{T>}=T7/bL ( I`JT/ô@M tt'h@6SL֢}F}Z%?rV"q5$ٙ(.n0~]0AK|(cD >{[j-TK&wb D S%[8]kabD &H|ӦL颱b8G|(Ec/'Z=ʍ=Ot1%] ghahAjah*D .dݕW-I+qywKq?/ ?En*I?kwWf NdR?Z3Y8% dX3+t3ҿ^vq^U? 2O񣡒0?zA0gpeq/%>s, 6/R3'EqxQF()g7d Mo,: 9(*@ωC8/M5V,m:Qh3F'C,;PٙW(Q:阤 1'7$@Yc߈>&ĎN n(AGLU5? AΨ_H;Q.ni!cS(ciQI; ·WWW0cWZZ1f| %TDRm6_2`l2hY`yfB5@!Bb*Foxclw4Ħ˨5G QZ .цK\g|rYYlɿ# m%_Y;K!( R=6o*~Ӥ HفwhtݜНnqtL{K8>p$Nߏn FUfc$ssN 0o=`7OwP?fh \6`6QÐc}mLܗDLqgqiie7[ &b/izӵK|Ղ¹UII)E٘P"1O~ĩف6O(#'|O}CSȪn%$;P>9A9[/ԡ|M@|,v!e%] eq<(r2NrҸJ@)#sj2Q#/'"Pcf&'tLqaYjd-Dʏ. 1#zue̙e9o ]PX^ПR!R?5S@T:U[4gѼSbyHWw^xgǃyR qDqhWԨw.ʆ d&_ R# +WC}+ޕLfg>5ZykP:m$r[tH|~ÉJ\@5ht5ލ/e7Q ok=dwyJefsdpi!oKiҜNCМWe![_T YCxmWT S[80ȉVt"01tJeLLz䥪'\?0_u[5xe&\~7dz_ |2WYd XE k PiRVPV2o獚+ʭQ$MZϝLf' pùU26e0%rcoE\H-/WDP=KLM3_zyoPG, (~dF<-uGuz͍INq=EKU$&*"WhϜ>g=ڿBnTR[ w,:j ț ˯Vt6g`gMP׼(F@O#FW_;2 rH15V k|@g~Q˛_P4.#\0h׉~ᑣ` @|ښY]Zf\-^3ҦNׄ8'才> ?83@!^ Vjo@ aʨIJ8 R!إ?dv)\;%љ73;_լ̲0%OO=o%i0}N{T_)+tDw7]#;,:Ntէ]mLᮞue-jun.J47R4w$܋9Q\jl7A[q[F_ O`1_-LˇְͲ].r_%oQQD>눊ncee/U)=FpLENmˌҭu@+YhW4~ꓟ.뉍l6ęU'kuZr5W׊ox6_kxky'>r@2,L`E$rKT>F|ADEEyGRt"Tn0+3,|f9BɅt ހ Yڵ!C,y;g\!I?0Ệw>0ŁFq'ϒ'6J߮HYv]Q^/5ѵZK:@ $O#kcMa\m_M?pp7ڗ~\""w.ޚO( NNnqw)w/.bX ";?h&,/'l8 1PwZf-7'sݱ唟>w8PK}st}s#o.3{4,@υZKB!7Ik7J2(!lGmG-J#btE?,'vlFi𘓁϶-p(ܯW #Z*/hHx-!f=>2Q'+\)׶f'/fT+^.a<~BӡNAiT-/eQ10\)G0핰a9m~%%q'q|fv `92464vOJUi&);=J0žוQ ?gDq|2eO^TvNA܀lf#`>c0 ^ EiaI3W}< K,ꃝ3Zqh?~ KX|_@֘ $ۋ}tbď_s/WǃnF r[/x^XQ۰֋2 U1Yy4s dc#p;䓭$R!dꤐt<Ҋ5PVb,a,;IrE|v5TDCsj_ (9d Pnr7en M*# 6B1T@#fɦk'"ns1o7NyT)Qa _* $;h$ʪWMb taZ_grz<$4rͺF*f!.?0\Pُƣfdқ?C=鞢+i]0g. !0rQoc++C+Bk4qd:f t-nuhsYP75Phs6 _5`6jA Ph~®iԓz,K҃ReГ2<ɡ'xbWb? ar=GA[2@f"8MuLy yW5ḓa%o5:2BH?F>_&i\ʧ~,fo%^wV[76eU|}_ Is_?+},u{Gsu?}X=VQ=үfe~uq;ٸjo|jut?~C+, >3'B}֠ϴ!g^]XDtwaѥ\C_S|N#So6N7h:ŒN1} u9Nq3qu tS|-Vozkb3XxN)V>)q|bOS.`<0j0D'( ]gN9p ,>L>Gh'KBxRx;D DPX sIJ+H cyCp[(T55(Ah(x(O =^/*vZ#{u@5lZ'D3(f_'z3j9 Hf8CncčC2+'Yz :u9c忺å T.ًyR^=90+8-%.qʗ ^z.0 cn/ʟz6wQ+Ċ+8aTԂ:V$k B+#"WAd=&ޓK93igag%R#/"Y)ڝsѲSw&oODZS1aF_, Ŕ.(&>Qn|yVx|ٞ$&h/WFoW|FPT-?Bص|ωцƸx,8c?07!V#NMNﮬ4?l?^1vb s6u94UoX'#0v{C cڎw)0N ES_:9 Į>- , ZS3 cl3߯7ɹy3,rT8|!E? ,-j6 nju%"U)2w]*_899rJ9ufaY_PIՁEAy;%XaxsN4S.bNC6!T]2sϡD<CW:*3(U?Q+lLv%0tn9L=3GL$=7YDS:jtdǒτ,^N ~OFA,PcF1ʖqՠ.c51i+-ֽqQ]wJ2ro.X<To>Ѫo./8D[ou徑Fr7!T]=1uoe?OA Vzxȉ#Չ @F!e?C<o&i5,F\6Cx";a"?Eٻ!-s< \O@;H4G[Ea(܊*e/p-[\R|O12D<+3G>XCR-N$ȍ#q iMƮ\1\5>}fȕw[~*a0i?V Z߾zwLl-`&n]'* $ .d1 ]ELj`sLL(8}QZi aA҈2=*fqs5ӈuiĿHЉcODУ;h03HRߕnjWLQ1-foCLb KZj#h,;=e$lUQ}hv`fYҒj^ E\ [yFVՑ Zرe 2';fz7(¿m Dʂw:yҠO}41]+ 0Q_ +S7n& AV؄A@w(z׿V^"Y9꧈ըý?aC;5U ߁mkPaͼ;m:l,)bm!'7Ɯ#Vd3Y؏s_ jRqL "}f5C0pM|kq/o,Wr*A@+JXG>Qƃu(y}8J #W RBbL!j0x}\? '4 {퐽ʌ'a6qݕ%kLн}1ˀoȯ zr'[MlHvC!lSE⛡Cvy2vӀv< n.=`}鼥P5ѱ8fƾ8$?:ϸ )*A8|kaoTFg ma[< NH7!=Z&0a-cDcj=MUt}#wJ h`5ƹ`Fthb_^{0w5g'0f361oO^/tr9U0F<iW`rMxf Z;w$2q:kߢS#PȜz#XLԻ徼ݹZ&\g^Vxf4{m;haOc>՘|@keҁ6' [nNQz%SaB 9'aUX&][s+ţ~fҙ4n%<,3HC*>2qxΛ5"}\J/PC/P_حФP`2/(/n.HEWVlgB:5)̆R50u-iZ>.S|zD4a?[b++Qp Ӆ#X${y23hD x:4rv !n3D뵪jy,&'gs|6M@D=SLU蛺捬hKϔX_PE^6+x;*g[FN`EPI6 uS{Ntcl=l\) UܞhuGqBV~zԐ^Z3 eAq qs|⏿pbiKIF,^'_&Vv6Сz{M:?E=IM!F|n <%٨>p CV ) 5voNlRx~(0p=:lds0Is"J\sxesBQǽTAB߀wbs@PPqU Ub'nEʽ9·q3lt(rk4E tSKrp7JJBp$?KJz}-\Tk;V11*Vbuv7PёQPa0_< y')"iecu J5LVדM*M:{g nsIZZt$Gٜ[cIxv9ϳ?E#NI.ayvbmvEOx7f'? '|B\Sx >q`I2M W 5VPJԠ}ҴD_AlIFKpD-Owgऐb1|~|/ӗ 15ę_1V5vQF5 =yZXgysX,\uW{Z7Ir7˾# 3rJ;~] 75#9}scyQ~w^19EلTH7 5&Hw9#Ktj+2WpnYoN ʯ><|# wl q0iG[^=񸴘*x6M3i+ i9o{̛k]a ɮKS]1 o&2wSJo1w<}lSRUxNXxMRaFq1]Th˜x>Rl#SQ(`M1B3g3U c412'U!'lѿyvY`sl"?*W}_ty#gXJtgk)Xmx o;fqa)uTq!9{5-(_k@8 u3PF_cף GU?._5W==im#D* _ X̔|T+᱖zzpo[ovCZ i0ӣAqΡt"ދ }# {lgLԻ"اu9xUBy?j'Vb&Ј7/]gvj)E@ZXB12VEtpDŽ" WQâ;΢fr9)(*ic#<疃'ýqH9ۋFJUUZf_ID7;Ps=][gb`3{L(Or;14k*w`#&ʹw`3Nw I\Cf2Ѩ%E8};} tjfksӬ8l@S:_d4'Y+hkj@MPmWŽ::+'=*݆ g+)?,Bzעo]"+Xl?uwJ))ڣ^ oņ[P Evv=hڹO{N1KB՛g*ew˰ t-Р .. ZS˿ΛXw$~+Ƅ_d|J\Y"4V#)ĪuZy{-Ny~gt/y{LTQ^@t 4x;rgzF*rz=0R1o#QXLOsz2oe*K0q x|ǕK_aKDwV9hT8,KFE;^F["}o"ߴ/s_ſ\B\~#.Ɩfm IjQý_|hy>4G+D]:& K9ˀ,5)p)ylC#gGeH/XBfg׮4ݶC!$hbqGVnMPCBf͊^!nYt>5fm [ˢ~zhBDQrHu'ͅ ]vPY8jk5%y8Hwt,ȸ&JY5U q*(cTkrdب3,"?^3m"Q/^ǜhuf3wz=<2eqxN %BJrv3];YfM'%l֠:1EDR&J#叫rX=c2m3eB6 o,j?4t(x%&3B{LlfHv OG:*b:N)=e0 Nӝ!]G#z<nrpgsGGm 8Γ`_ٚ5#dHtS͠Ai;MWcHIxw_aM GD&1X%̶$'~&a=p&ABݯm;[^lZ׿=VJu"|Z1e %Dio /t`1)g1[v\`.P:/'mhV/;h2&ʡT I.Nh)p=7>eZI.@*fJ," ȌGJRy CbyEWZbG8Rev[vV֊yQfYyxgqow'3}s~xPB|x`uFN}V)YyN*臔G5@#yEWoEWE{+P>o*R+"C]+RuEʇ/嫻wU|+tE?X5g"壐g"(ouE=mX*R&EY'hg0hac{2NGjC2{ҁ> f(jCGug )bߜSi;Hpjs鸒2,`0 oôN0Rw!&m3k?H<"$66u ¦6x#6HGpx$vOa/& S(WX^QSӫwzkvq9`0N.tf'g#V},ۙ YYc'G}4G  R)pW)JՕ\>s^fu $vU`RjUuëzNVے:o##Q8T^Ϲ(ι4+͆!)TW)j"5FXAuW1Wl"L,9R̦^v7SE*!z,9#b\W1\]\]X3uoO, I)-W>%,,6tޛ7rܻO# n?3ryCf'3紤?ПA͜Ɨ9u.Wϩw9"Z< 4 Թ-֜m'L5[ " Hql W>rj]\+ <_#f ?,+2M&O;54JDi+UR6J_)t{TJ節_)wn|ANRe_)J|:Ϯ_)3:J<llH=j-=*.?޼QcIFN1[ϳ|t 0f{T͍wa !52VZ~.kՏ=o)VO j}^K|ILO'<[g6vAqAF8CȜO7y3eMN{*Gְ3@c}xٙo<+ p3'n#LDE&5e,,B#|Xtj0 fYپiZL"WsWS8/ Aot+Ug\lh%)=R?C8`:nDiRRK)w`CK ؿ {{XϸׇSwWA[αI |BlngnwǴvv5ئk*f26~+vHSA p謓G= &AoKunZJ f@`F $H;FH&!#4`{H :}] ^4t} <3{BY=?D'5sfz{MўQ:yIb[翍 2)a٠O"l@d>UvNʓb!̆@'6,a2oo$2~iƀu طk k6s[/?L2CϤ9+US0\qW7I+v5^`鰥_u ?eO힦i6]OyA‡8WOIyEmo{+m ^>˟Ÿ2ΧB9bʟ$ƱF;MNWK$񶕀ʰ]%#5ؕOx@3r gJ4hpH$H72P v;;)y0g9~͟އ [LbH4,h|ğ$ޞ~aoc :lI14zLeIymğ=ӽӪĠ1Tи0ѸBÃcŃ ΰIo&'?E>3nʟKyw7"44.=D4~(ѸFIc-۟a?`a>{COOwd3_:L`ז%?%ƞS0> k9sG ٴZOhsnlkr'`$hO?J. v,aK?^Y%?]}j~$rL?_JLc,?Ht@:g*^ޫ-8t6>s!3W:DutZ$ino3lk H~'1|]:Od~(69K矱LiLhG?|%/!`?G% :켯ŸOG_SkGmr#ƈDğ礹yz_|I%tج? ѫ&ϲ$n#hL`I4~K?nta%؅#:y%n@g\/?Xd)inH*>nu4%#h~q-h]g tN t {F 9U15Ej袝=*?P `SR5:ᐁo} z =!@A|b{#a{w^un]c M% _?X" [0` أ{RŀH X3X}3XM'$s صyvY95j4kN}cDbG=/yS(;IٓG.~s0E;~T 0^NvF^w&pJuVD8äF }ʲo}Ę!23Ee G}eǶZ:%}L&۾JKy.U8gR94E[+֣oKK cEq ")Yj-mzu^ 7:K|nW(P~h@(ujX|jm"]N.Hz7hqcPu\S5qD WqC(b(FyU<*}半 >Ǐ%:¢-mPG /s+0xR&`&1ų*C48H|G_{e6N)cW)Q l+ 1G_abI+}B>I5ӱ5NP !eKoO<\ClTCs/CV4rnct$^fRdåCeå)0\mt/ AixǸn+vw~X?'w[𑯨s5CK5D q@j`!{ ((lh[m+gwvC? y3a", m yFegn&ղG;9Njΐ*|Kgh3d  ==2i*}Kqָ_Rуc)漢ΰPæ?x:OנW؍Vڃa4`Ppn]^UZCAfjOe[*,xa!r@EgHvC|b-, :1'PB( .rW$cƩLb$~  fq t"ҧ_oңlsS\cGkmz5AKKݩEٶVCӸ&n 1ْ漄S|nap*_Bx-0޹CkIԪ& }.Ư!u_M+ɯC=ժ9 _Okjůx̯kBlO4$޸Ǔ_WkԠuxƯɯ}%_ 70/KmW5~"ʯ[*ɯCs~Uf<'?6*qZWu@.oXI~ɯ 7k݁+@Wc/~Zic~}]V@5A%U6_ջW%ѓ_|;_VP4~+0~ͬ(]/XI~}ߓ_5_`*[_Α>uQ=5ƯiWk+! ~vfgq,`DEݞ8֜2c ;O|.#|3\s$Sq;@y ? ]^%wylQ9 gci<†Y}gD0.xvO<+ ggb+ɳ~<_ǜggƳv 5ݹޓgYkgՙg۾xV ϖgKg$vY\9Ƴ{|γ̳Oh<[ FFʳ̳u*ɳx<;0}>_yl_͹B=첪jpP ?ByK[ wbQ_ ^2W_s`!A[4WOjDK.s4adAr14*c+`hiT(+QF=P;RЮ-~6=bY @z{Eq͸eMҔg&;*S NyLO9-Rέ'Û·2WV(?YAӽPx7Wsumt`[`+3}[]+^8cute_4%L[ґX^6D"N0[:oH٠pYh,{ ۄ85^T[X&4jUG&̖lD9fp h!?$Fg&MDĒh[< 3!gN |gkũ&lf'r~ x\ Eٽdv, ©baCouTDdrw}gۮooa:qꗷAWeޞ^fۣWxkio?6aۆ}Mۋ7iƼ}h[nߒ4yNZN8='Al]/GIowt='A$K~uÃt! 1CC҆rBUxO|6ߨXYz ?TtN%%?WNqrKQ,Bu^dXSbqa89r3ʓ킻<<F2Po#.F2ϩ#tj&ImAxхt5K <e*y<\-~zwg{ Q VIݜ1RsI y%W)8o3" yFe90z1xwCV\lĔ-x_؉X*]2|(:Qh{IPBh=4仇o=4#v7D;5F%\G(kF{ Y"C͈NT<ȴ(LB0)BZ qgq,JjrL#%%<è+frp?*^PvNG0(ێB2epׄGb8n N%r5|DT:'rJ7w8*Ou` Fy6yo{Ko$xGGQH*%9N7aXʥǡz|⍷ǢyU9K 䏡xKķ]j$x‗k+$OLɕ+gXI@W''K|(sƁcFdAh=+qU^sĴ$Eޛ,^Jiy0Evr ɱ gQR9:ƟܾBpQft}#F99Pu?^) HVq(^M7{qHв)J&zUil4+U)][zvufkq rwzIQ8HOAQPl(7wYͫdl^cC!!^?{)t39Q -3إ3Y-H:Jv:PzhpmA..#r/0 :@T8+1'")2 l5`孆5,^^ u*GOȰl@D>Sj4p0#.e;>X{*.}t'0 -JʟV7%9mĮ4)Ot OJZM]vO[]jq =29G~b6G۟K=Gg:G19zh~Sm}:Q%23F0VhۇYԨ/DfD'|+|q\o $=ͷ<ߚjl ?YɒjiWQv\l41)ĩEȨqF?&Ll(f8`Sl{` * Rx8'.5X{9>"t\Wg2Pɮ t !D!x1U#!Ϫ7l;.'!w׃~pxZ+ h8d)Wd{bx1j܍֜B?Y79/E藍+ɄJ"G姺 %*[Wq$NIjU$O{Wr45GjB&; ֑ NRMK#=V$-gaw}-2SDg`(OB=m>Mژ{Q@NSqU oy3r>Q_u.ɯkz'*nyX~U6Lȯ.ɢaQ˯טݍu7>ݸnӻlY ,g 9z*w8E#xl&̆F^wg;!ń4C4;{/>, Lhɉ{#ާr6gE6gڜe'm΢,.A}|Ӌ,%;< g ʑ%-V)oXn8 ~mP-{f%#RCOjn,8a{5ar锾dk 笏XINE 9hQ+Z9unq' <u#)Pmӭ}baEȲZ C&p8S'-9iZLLCմBXDN WU2;.ig3H,y? .LoGy:H#@$}ʪaZkItlvCri:hF6`#, 5WX>>a# YSh1^?|t'[DQe'܊?#ns.qңxeRp#\W1hW{4kUfU_f&sEpjrhr+?8\ MbU+D ꣅD o\VCi)Z%Z@+9O4h6~3XzMTϏ2ZhΞCL:򀟻ЏcqG $Bmךe>-e""vZ8o_DX Z͟2Z&#vyQBϗңԢTEWF%J!; +=ow=T6j M|Iq6Su7R:S57ʚjPD ~Sr#CBITF._#snx'/:xڌ6䧱xY-,dH}U ȗ }knl1!Ƀ a :ܳiU+8pD [.I>IϿFoin-LkR?л2>AwVgC@pWrl䭳yZ>+o Y Y=:$F8_8F8Qqp)Ml7~|5[۫y֍훎Q^QTBQä?w{1j#j=BfHk=z\85wk0,OsK7KJ3}3Q_*7O$Yy{:Ӿߓc7cuneX(,hAʚ,q%q ŭkZ9 EYH8##Q"Nse+EzUgx2f͹Db2TQ/[W6'旽%W;V$nX~A=*oEE3>B!jes6>fߨ\Pxnl<+ʮ;OwϡeϮn#od<ϙ9Lw`mDr DUQx(ߵǚ(0T.w3~w\1q/6ߍ߻ b]v'l+v#îTKQܛ/~pE?C n,fprM熪:nq q7?ϐ0~ IE^6˺T_ 'gy2ђ)O,&}4|u},T.7~dAl8p:d!ηNFzIb6x f>'Ҍ0 ղ?"|%'T~ )9t~JBq WImڠJ1 d^ #y^E!Wl 7OG|?˛OǪh?SkGq2X;mZ[m[ձx)j&o_9poAw4V_~m[}mV=GBӪ*wD o5^Ҹ w P pfj} G4KlhD fBOMl V$EpAS|ˌ"t>u6簈/ :5@t9s 9I›opє_$ _G7qk/WBRc"),ϟ:sS>j.܄kjceXYV+:h 0~x5 7r֋8XU+ESWH.}kxo*7hig4cxڹ_OˣMӷS~m<_:V{LS_i6;u( wuG2F\0ꊾ8,9a+JO_4Q߲x4޲8`bH&9_"=A~*Ǚb=;?;߶ڻG }}+/N/WחUӗnpUJsL|;3} zf9pzǩV>` =?|VBOkZJl' Ϥndn+U@%E-%ttÑ!+){hU9r]ݴC^㹾pXtJ'2pXy*Cm>qЀ&.v]Dw]Sw}ih #4L8%7<YS#aЉamNSh(FyW agc_z{7 3'Se$tvLF#-"sJ^a2}ڤ'ZHB$&J! E!3 ^oR U0θc߀x)MljNˌFԹ" GC5o-Jw0iY4[ 9)c *\/& 6I0 :%UBEW`8dxrחW]oHbR䁎"t5kH&}:H\,JNjm(#-Jpn.5A#ol^΍>π_É4JYUf-<5 i88c) ;(w }ӳC`HukKf7B'Yi|.*?/_Ki)}^ۍCL0uc{9s7ϩnlqJr=j869(X0F^h?EwN-W1jI8 ouM> m5;Wّ׼%<Fb7Ό+c3of^Uj.neu 9|06lRv%RPm/S zēR0XjAT$<"[p{N/VrHSF8-O}V% ;2NNTN?yFx VU6700KʍT>ZK+Oh Z^][:oeJZdLR[(Sx{}^c&vLSlf&v{bn\Go:!)uŋBGj46+A=țRZ,~OGja7rfif5aJ2-Nvfi15&X( F_oĤOϟFdwPT[p:(_OϒT<T<˦0xTR訖XO%TQ~t/zd`"5suE 36z4r%㬸]2o!7kx腖y3JfJoKAh1!|(*>ש s:TjTJZ^;D?"\xh62zX)p9.M κ$1zB5=:]#>IrdQgB15m Z#@31-=Ƒ+ֶ<ĒA6= U]?,t[B(( VHKHhKHVEnX"PDZp28({P\(M VE)#ʫUAYs{yi7}%}n{ιgmG>KF9@c< 6dKv UEx5e/!O+FUftjiW HxA' \~V+ ՟j:YBE^ yW Ƈm%P'۳ [/+I+Lw!lS]%\(tK\pc /Ӊ56_FٗD9G 4W)7ʫ daUp3]ʐ 0B]Ir} euZ lr6КρOhP~}sYnDVs ׀U_.Afj̔4茏i2h.XБcN( @r'Gf@ҜαS䉅@ݺy 7p54ƕxc=@cR/U%2FSV4`vXv{Ե/ߧWfN16k%Lclƽ\ v炧+ 2 pqs?Ce(_ ƞx|70&%6*( xRKj32sꬋx.[^VӺOm>[ x'/;4C\ ݮ؝ ހm@goKs7ɵ42ɫ̩~U%8_.ܘzi(6 @ѶO0r,gu_^샦UL^$فa{`& qVgqr(Oޱ.K{oㄳ; f݁ꐺe]U-.ԺeH8&u[sc=٣5n"i2jw7=y $A+9؊S\>~x߅ d- "r]& ND%<#0שZŸ9|(":F7(cn{/pdwfab؈=!vk6kvֺd~ϒ;̺s'ۈN$,cD #ܡa2we%ܲNKdsl/M~;W{Us7Dۺ~dϰY=r:ysWwv6q3q'[ `&F(rPG,2xw/;/@@xsq*Y5zuѺ8.||“Əysޱ.O#v'U]tV>{?N4kF]][2ތbע$ cщ V>d ޶ -ER] |LLĈO8L6Lå= ؉aq:a5-`|7jcRfLaZrVtePTwubLGGp屢i-.vw3<o;A. {LqmBkUc9j; 9#ҔjtJ7o6ɮNH5g=fnbt* JWT_xɼlSQkb ngm@v#/DdOlC`4}&OЂ߀fdTzhhˠ`!ӷcƦb d>F'\Mk&էIhٰFt1邦-RA*4/x^k0k/fp+'D>_&GͦwfeZ2υc MkiHjflCGgTpnx%N !l{4,z/n_wG3Iy>G|XLtv5c~65sYu7k튪_f8Qn u: .gh+NctohaqAZ5jD0# W'ᷳ/JBU+}WHpmW))~ͮ+!=oAj:♀'Z;A+C RݳRsLi `S3dm1t=_i k,kEfE.| tl,8$U}Qf? +BVP[88kU،Ktg^]-R 9éܪ6QGra]- .mOȂT5-$n\Z e.mI, KQK,ɘ$|f*%YT= ZFl3bu k43"VsP}et@-oS[8<<4mg)7giI(+͓S *aQ F§QL9qJNU&}ו0 72σT?#+4^WhRf3ւA ~,\|zr:J(^1|̭Ð) A06y^w2q$κh(fɄJ%T{" 0&/un/4-T`Ǒ|v/5С<ؑN@sux RГz 5D/+\z܎!v|J6?2e97)Ȭob@0B!5,Bw2Re b_va7H^3e0R ^wvn~բa&x+ I@}0y[#f @]˸%NyGCvTn*UP-{Ǎz?'q?_sJa>%RUS`2{T]_aF:wW;ju*zDžxC3tr7¸wbZ0ZE#PZkSz~LrO U>e^  ; _ ݼ=B-[g3kF }g c+BJgV&Z 9Z9Q7O}&щLbc)Fy0F]a"9:+"6`dKՀ`1:ITZIo o+Kǫ\T`[] ٔ*+W{d"Fqa%F\.b PNqYjɏ4[j(-<"[4Aw7LЌE2Mz,Ah2@:FYtrr?ǫ0wm$ϧh#9FVG UKTWo'3uS]|;V*3x V*-ؗZg௭$eemnZL&+b*W#TcLֿQEѷAv.f;߫|]uw4Q*1yy{@6n8/Q딨79e(Eqc{[*U(05:Nq}>MaZQ,HNOI7ٛb}X9U )%p[ޛIЊP ZrZYw-Fj`0M|S~N0q)i<哮 給]Cu2LW- ՙPe*epoc&/L&/;n*jae+tL:&E LԎWq sØЇ5S5wvF~.!w(9?D)_#E/W6Abx_YWo~=]E7•zVY(m' 5lR/${~g' uÀC4DW7tu#1&h ?CL4[8I/D6g؎}nj -Mtht< dkJyJS: >Я ޓL0i.k`o 1bAe,)\٩KI/.w!ρo\@j;E˜?^{A؟cFE^B8-;vo֪5 |0BδR6a,UtcSX3U~PwcDવuVM-5+J6,Q`p0D)zM0<kv!\i/-H^yօè1Y,PIuh&Mf{Qч(xy-EpNFw9}t9Q+ǰ$_knצl8©4^H/zBsc7&E0+[(:54(vr ,FFX7I!8C5IP]Y+Lmaq+J3@zx=QbK|#Vb:gY^E#^G^#0$Yrŷ)é .\}frWq5rg2HÃ:Xv7Ę*UP[~Rw>*7ݏh$jIf1&RíyƻI&^} )&J'IpAAr?!Wdowɱa*Hl$ $tO&r{]MD<%M슊U1-E> IJ-2{vZ31[F/xi1<杔]%O ^r]zm7x*mzO^R䶃կ`9,7wJE"$դq>%|j$мrY퐲48;]88VQ"#Q[tZ6yCjġb335?2Ss{$b 0_S5U/:2W#u?u,u|mie`vsbG:SruvmJ^4Fc?k6bNWaղ~Z O/p۳ (2<}=ϗRk0@56mդ9ڛݡ~d:q䈯6ѩo0>JZs71+#Y&FwAӄX{DzL{fa1qj* =1J /Q**N0D%j38oj^k$0ADAù`e~<|IVA'vRٹL6h)nO/0Qa p1螅[;C}Ĺ@Chxi&!{KY|q1e1L 9h{F0'qo ]0X<]{;0udwyD%2ie.>4|$EY:h D@${q|N&Mfխgc.{{SI"`=Stz/ B[\n`-jJdo'IQSP{D[O n ~ܜEe ?i$[x2 MNI&2k峵u6O>{-Z sW'җEd-{L H1 w9W9 WknL;eXhXN~$*TF|)w-&Ž-A\!iܳ"-HltVD]^!1 ぅ&2A<#5оeM#-Z2NEhkӟG}@Y_ȡJª 凟5Yr8 DW"fY%-A=-dj|q>Iu2zWǬ&F yڝ C_^b꯰BcUߴ 7S#!@̴}"\Q:Y|zj!a>qd$Ɋ8S6yC3,K鴈WG,7G}R/a= o+D4(m5lp:-ǰ=MyBnEKf^J`#`ynRcb3-_$Hѣ@'>isXe9rIYz}נ UQJ7pAUg.ӲčJ|2}d⺥GHBV'_@"6xD8PCFDRNdQ6lzǘdev.EMRM׹ ґxG]09.;婋SM%)!J\nn7 |1—@>ϗs8S*LAE 6`hEQ!YRjwl h7CItZdAO> q)&UHݸ̨*>Fn"nި( EecmT2'G; `w@ӛRz#)! vڦ7  5=K@;KŀK?!0Ͷ@ٓ&L/j[1ԖCjKYuL3uG#PP~`N(W5-QԷg.U ́=]!(d<4tP8 \Ftp`<)% R2yJ)3>:n$X*`] YTŲ.^05p`űǯ7I)TYˡ im5S-k(Y]=9<ff>^t6y7^[@b'55K"Ic-'Kyb~4'9QU> ~b-ؚ{_}z1ꩽԯƺFjCڨ'#e[TkAֳn10 iJ(~~nը>Z̦f){} 9=P1 ^Q(X 7&@n97$ZZQURa٨9Рͣ *ma1(|DlYD'hDW8=i{ /uU%[3Vר?o6:= NGpWlTLvA%>F~zoǫe?°fEL(܎756a2KR$;f=6a­c~f%WS ŧ ;gcQ&W]p zb^3+oW6)$k8;rwV394CMe#[ ]Ogc܌4Ƹ-]=Eʳ4_}%Ykb.KֶTX6Vz[&8X㴍u*6V𩄎qVi"+F٨8UJtEEb1)au,&F`e:F[/4`Ԛ:F1*ebauIQuiI`.Nu 't૱;#|rjjc8_y{c 2pC`gyQpGhˁaVGS}4+ώgWU'bU[sJRu:l," e5J̦G7_W0 I5xce@:zDf`jU=HVPcJn 5O ONzEw'2/52;[_}i;Nj ԫid215`Oypt: /s개t2+Hf6NDNkmG'R5*rҧVy=|Q7m5qzF1cGpy< ,~" hHӹ$FMzGYQq+:QE"H`Ff-؍6s5X*xO0vʡ\+ƂmRn2&N ??o!Quѓk+\p#9M:gOp%2V2T7y<:M>ɶ."j662:ު55[ofE(R'yHy+1X*qK+ӕmxE%$00So{^U<-S۷hBiq@kTj鋰czJSBUp ۩DfO ;ȚvS;8b}[sQ<ϳFE.9WT^o|24m'*9Xl:!%yb7ݖ4GL~\(2GAc3ډgd)Wn!^vA܈zw_*tY^|fnLpmes5x ֓_Q7 V| +W`yt^8a:7lO>}!C]@cu?Do|'Kg#:ucz#}/iHQ:}MH1W~RwkK}Ic?Bx,6>` d#S'N:O^Ӛ7'I_sfa>׆ԍƀvn@:WKd.3I7y7y`Mux8fC /.M='3w*kA"0 jg-X7h)%]Y =D s;"!#I謒_$;I;#t _h7-&ier]Z+F31PdˉW11`ZKmyuO(ttȕ+#x{]E%;yz `R ᳑r\NTt?ȝ|RMN. Pg&0a~PG7\._Z*i5y=~%V+0n>RoiLoH_=$›zw:rQd#VrʽC+ ͥ)cnOV^30\]҄wP(\ODfIJHt*FgSOPTL6Bp,*q+&c2@Ԯd~j0Zs }kk1oCIvuI 7 ;d]~ZeIay[C-m.fU{ґs#j) 4D(_Gyy^ϔzL5]iQ'л6ܰb"o奨KPx`}9;"xh'7t4p9= 0| ,( pY,T??65r"㼀X׾x`G`GH%/W5$C#ֻ;6WbqȊIFJW v kUŷ#McB ܰ P4\hm*"E67 šNss>BBWc:/<:^SxtUH]{r.|Y\sZCb~CU&6 ͬ0ӣve aSW(PO6(-R%Es Rs;P+߀ =\Jp dyH/y~*9鄇UQͨf&'c> d:t'0+<[1m.wgbS0>FQFc;YGff) VYΏsx^KsNSj{`ʖp;ǖ1{ƥȣ̔v=w7Y"X e)[F1rMЀ6<6UY | UwW"F̦=X2Fꏁ 7x\2j#))oɠGU.܃.~ghKgWUl̠^8?$$-z,nLf- _z+W_#-$t7f!"ソv2ӱ0]^14\*~?Z.DXA`RTsl@BiTi0W1$tlm?:05 bȇ4KdT ]M칊0^_,yQh1?˧sqDse̙QLFiq g_2?'ΪYIS8Ÿ/CR6 zp 뤰V a a&gUe]yjdKufc3sֲl3:7#0$#>&xN4EFI9]($u$HGЭLպpφ?;𗁿,W?SwdIyLW _ / x6#ٕ]A1Ԟ-0z2 /KD,Zd^ wru> z6zxF?e۞!=}"^Q]Bpֲ$mYOݚp 7U)_m@":G2r)^:,Գ?D=HϽN?& xC &L-4SnRˊ?']3x9a,+{!L)%|y~bkČ0a zu^#)m),a.p=(֣HFΖF.<5rZkkwou;q7B 31RRpAد<_+FěD/{L⯿G1KbU/?wh)J@Lb1Jq?C|FhArA,S&TZò1s &y1wƐ t$1+\eEYn>H%\*ސ[l¬7"=+[y]=Dj"UNu|i,1^5wD lCpJl 2)j [ ]$Lhމ8b˃ NL65܃4gcn+_;'!>V؍s ư_91˷0(_ǔ#z2ݑEp3I<0H4ZMX4~א5t^2  ]RgUT=2j$^_3eA9vԘB>v@*!QVQyBM-כBSW56p(TpT)Mh6jIZ,C^{TXDNĥ^v7z/$YAc{C/MC)&NĈc~eX0\I28؋Zdp `tHqS󄻆f L|c$7B\^JHiL768%V9.1v&$W_] |SOhK$ *QQb @ݐ"Pu` 4"R,5Dc{m, H)*IQH?{stI=|w9=5)sd h#4_!&Rdāx7ޡsxJD9 ShىU'L|O&$,~\fK̉F;9pW)[XO.|1NzJU's G{y ,pfZVT9nVϥ?!O2d!JO3I>qj]#a$v,R!:J SwWX!Q=h3d؆gVpײn5d7&ʄ+Cy7:V:t\X*s<+ĹVzIЅNzHx 3bav*硯2YEA]Lk622)ǸbL.|Hs\8̜O>l2\-D>SaedfS"\jO.w%+ii\< `Fs#9؏gUM3if[kcM :y2dyxи<`eFt=RGWՠO?KsH8o우@ehF]QX1FZVLA6=CSߜ0B+:Y lM4b]b-Q tv(pz(`6-Iӳ-qlxwW}V{3tKxETcxk9.Ȫ/lAV-W3jdՏoAVfdULeH*"QVV$F) 0?n>1"Rq"|P܄@Li*S)<{( +@e/HtpycSorU>PCR ,0hx8=.zե 7zC^:y; 2W\TjYe,z$^eڢwih*Y(ۥ(Q_l<t<  r^dfhF2gϏZLC&iuG ={㰳$ ][|=<;ŔP-71^eףmC^qFz[Do֭qobo}[]w^kξ}[] /Hmc~dM3otb~ml̆[pϯ2bFn:.R]o<ާ^S–2bPSGlI.|駣lJN{]$G9P;Tr9h19n@ӳż/s(, \8aT~+<ċhyBk8v_0Rqjct aU(URv;8 UfѢQ4SW3g!T V ґLB"ۨ:F#ώ¢b ,׳e7dem_~>On_}ޔmv +z̞pr>Ż~?:SX'0&1t#L'klD?(81M7 zKR~V3S-LCsf+Eq>ahsb=ruE!<|:ܷ@ `\36Kʻd JBu> ]Q9R-;͘NHөӔc]pe%ԕ‰DV.ߨnGYI7߯f?ϊ/&5ͳK!$X3Th O`I6Nre<S4]~x4;E"Ix =&B#A4&س~gn/f|Ej>0W\"l"'{͟_?1#|[" W ޳0P٘yVSQDokTn5 )ҳߪB_g~;6b)Bka*eqyd,.&ߣ&qZMN׈6ܒ]Z,`*`fłc r ܃g r Fd-Ƹ+(2?yK9B=6ڣqןAa:-pP6Dw^976'Kt s忾ʜrdA<^LOܩ{]}q%ϸbH!4m3H]$-~73uju}a FM&q8yðlƗ3u!.hl7kBp\X춐l,ѮRгgg,9>|pͫMeȈ  BߑL/*4n >ّF6"M_TZVK셲OnW",oʨL"ny^J)}xj"-Ebl&!3@yis5bQ7㺊F &~N*D׿fX&WE,Daf(FUjGl%Jf 00wVI$HF~}7tb4PeJ2|=n|q_idt#]XǗ%|8\T,өܱLLJe?rď<_ǗN6P,Pu'[G j{|=Ӹ,4*N DOi.I0JO֢.,. Ү8 HD9(j=5 d7wyaTN+Fó8jY㻈ʥa'5ZӿyCNDjaAĦbkb2c)f~PO8Ny&y&H\Z9J;`7jʖ-}>w[-Wu`X][x߳,b73eڵQk!z \~vvu$ynW+'{ȉa]^?-tVTLHEme/8^hޟHFBBȽ?B -DhD5">1'eƒxWn  #ydLEtJ$6t75m[%:E8mjHuY0p/'؅H˫V\OK6Q6]twR",hhf<稇kfSUGu@#;++K?'zV4U7&_|dK <ʋ`&`q qoC݀i˞y}"!," jlTrIf79ϰqOFJKd1xjv.H >#AA4^jc}sҎZSoϣs}+c$xg_^Y#~8\=Fh`1x O5fw~\;tЍ:# @9PK,.وGNV%Z! 7 2Es|0ј#$jk{;ըMX?ɿ?(fX 3I@8~X$u XsY԰@>kgD|aCb9~%xknqczE7K*qtUPuF|/Ò?chE%ITMQI8iQI^$wiF%"^УJjT6ATVF%/H"zd'f}C%. >^} 퉼ذ]>8 QLe?RE/ ܕ%V uT#Zv)G[8=0y8F"1w8ɽH$RH6D"P]i- h^dH|Ӂdw@}`b2;,;z&M!@( M_Aa'T]6F LkXDuv:9vڍY*쒶hwSq,ȋo gD]*w<E7ufbLI_IܮIeIt%69h Yi}rcl:|QEyCDyНt-G1}Dx3C}IԈvo ̯'Jʆ懶d[Z ѸW{KN6rfOfF~D3)$\2Љ)|㷮Vo xœt]MAZ .\~=KPr*DO*^2 gH)zULxY=e%6~+J 5&?zI$)Ws!$B. &[x=ja!j E?091o㧝U6Xm#ԐgؐGMBirP ]3XpOp֕=Q2汏Z|NЫ%zJV/HeYw%X*^ފu)`;REMKJ^ZKj_5oCd4>1=W@<$qs/V jqҮh;;Tl6um{NޖC7 0Hb?Nx9(5tJT?@r1@hZx\?k57y=38_I1'(GlorTɺO Pi[@is$"N̓J&*wO)XqZr 1RxnwD4!Շ6ziˮ6Adl~_=/Cޛ45$WWMS/\OzlU<6R怜ϤlSVn|8U cQR?и}MxewЀ2AZrH8l߅ 6F!c/1ITs[[Gl]`h!G1s/|_8N|PuDol23,gK"7scۻFt)5,fIW0r)sCd/XˇNwX۰<{yK ּ B[ fpvI! w m8z&_e8,ZTnPW˂{堚PG8HDfGTK鴉QJ%.e G׷#_=)u`o] %(՗ 0Ӣ3nûG(o»ﶟ}wKn2~ۓt|z]U4ncm^w2u}z?g~Pm^W8_9{26 ǽp{Rx:c~ϑn|2ui*NŁeÅhdȭrHpՌcϞ݄yult'OQ% :uXJfy(zYK$ڠkzVc|Mk&wQ{@= Y FﻐKr\c@oC.PIM9ԫP/"v3Oag@nCӆ!m~iY2fZ >c5;y-#HQ˘Fiv1oAT@(2Dbi1hDžL{C GI (-TyW)`e:[D~=ctݴ^{l<c;dւ߼D4:Ǘ{zu)BP g=˰gAx2Tv ʄ=L!}O5q((_hzB 8ɎT(R/?^g/|W!ގB>zajF:xhUfsN")$]9R8oY{OPk\"m6.Rm'/u˦c6_ɨpM|͊>TEߌG&o:eZOzOXd C*#!b;/ܮuG`F#AM۱`V}: ~NCOЊȊ\ؘabYM/%*[38AW36kxʄmj ?$QnO>=$#hˏSSFДZIs/8)7Kc ͓B@BzTqhCL>t[CZtn͝*yلk3?tb]OfWZ̜=CwFm{{;3OoemI_<5arpWw0;yM/ i{[yRI{ rH{{܊2.8eKdAC`?-/lݗJGsUlK? si|}=4l,'cۊBQl[(N޼d.M_Ck GƵ 0k ¸7|H-K66j;>L wL 5~:Wy{hȡk i…'p,T0m!2T#`WΠ]Ԗ*fnQC@Ԉ7ߤ\n;[η:뵍i8/:G'-Nla_|)SӖt#<-ɩj axB/H>e?T+ƭ7bO}@6_[E+-"G 4%TK,l'S7̶HEL}nL|˷(hLVD*Uo3{x\^yq,_*p L7 [{ ~Ge:$ZG)?O]hYeA-uqrkl{675&Fڻ8f,&%t懅lplE)]* r痉F5gIze Fi=&Ćoi ~jrm!؜BK9Ts< Qʪ0 J~˄#.?lv6#3m]1m{'.ObYTpo&7yM܅הW𚹿D0ܲƟ4o;B-x ŵwɉ#;0*'&OQNK`==I=Z5A)RѺ&#>t'8,-Xa䟄>V\ <_5~MZW5`;W);z2}Q2YR^_Bzkf͖a6}GcH9p?O TN&2r M0%k4)Ybz6 ra /:z5t_c>4 @j >x5xKm1x5qwMO .KBa9ǚ3vˆ| Oo}#Ί|KY'Mh9;nS$4ǝA=g#{6ݳcݓD8UTt0@vHR'Yu{;;5o`yC!T@8mqeBj\M(RdϷxXpN!ٛ$*btlaQcx=ƫs{78F;yLyb'_R^{29Z>EN+gK2"%9nkdQwdr&2#y }%8xϥ\z!Y%&,v{f6{!$ZAATcܯdRzP;e`e|Y\`4vW5\G0/9H PgV.Q7)۾O@"GB*=|y`*· SڂxЈ'6D 5|uWvlL^ld[k+Xze#UZ+ wp0C^Tܧk_;ԡr4Bɩޔw|^~0g< SqȍBG+5I #mQîK_r J1Y~Jb}nA/z1j:]^|R @ݶeX5PكN/ljB(֨ꍐrl<,%/Y?g>[?EnyZG(ZeCIh_+5AC3pGߠ@~FoVcM7k+kjK5s=O i:BNtlB[$U F;č<}GWbFE!Q |]*X]l ]^z4}b:/7]Ybag"vy2s}GcagZbnr~rF iHLH;b}j-7;O t},&%:ܽ^l j|6` B nJj),^WRo **^)x%NPQ˪PHbq6k5 ZLw bP[Q~ +/uOa\[1֡vS]`٭=o6E+bVY_.9_9-̦$ uhzZLy[0k@N*UFu$ݢ]I#졺aGf5nf hlKDE*xl-A3Q.t `V}*? bud?z!N._SK/.o lCo aĔI 9dH$ˇ |d@{@uR]GֆN3*Gv0 2m} n=8ホu$mfb .KX>ţA|ҍ`>M=)Jv'x>H'@k4CWP|jU7":`Jj& 'O1)l3e$,yL" kiJPh9 n~d~/ :-{CSF["ĭo`cJ@.̶wScrB:Uyx:RJ}k)?|' ӜqT7h6v|D'0TS~j)f^iqEF%R:`*)1CګOIُtԞm/w8eY<^X1fQ=Uv2q7*F"QYmg(eyژk*FbB6ݝ`ژ1/ђ祉ND1qm<>Q|އbio>dxV]}i=Q)ľ#Bb#$&!4/Rv@Q٘hc;2x闹(f.\ꀧdЇsbk-1Oc0O%_l\1RBIth֕{^DE# Eѐ3|k> dS#{^ r:2:WƥV!Pe{!.Vb9.M¶s:Y>!k8ɄW^e('!6\XCբ@ԧXR_L$">uF*;JCHA:"(Щ|m H{D$jz,TˬQ 'kȈJ*\gAg+wpyc.hO7MibWO#>QGT8~u4l?bOķyCIiNH"??Ix8^OjCGx~z`|2AEsU34rO0O+5EV2qMYmGӡx!r9d|֚L}|oy1p=+ Ģ{rIJU1 `j@ueKs^gTlq3A|8) f*r]K ~dTfjf| Szm&hz7TBycrEܢvԑR-o)D{UA(֌ibyҏrhczyLk³xtͿฎJ *k<~)*ƕqxRfw x,ZxC?ҎT<1j1CΝ|\ bo vvъ/̓!ML.=y⍺KNK>dgC9C`B]wwެ~enW:\br0;LY͞ Q.L.A]FF.Qðm5l#q, wh$h975tAI6l΍͜ .it7bvf!g8G\%L7V(.@*@90.Jfxe b)zyN&h~EEwb:]zu6YT~R); c(b<:궔nSVb7M\D4mV܂gԭyߡARA_9+(HNGT83sP!L1ht- Ưm. J%8Wc8ef^@Z+vEQP9+iљV $o;0&9JL{YRϋQNfxѾ+$A7?Yo5le{B 8WÔn$Y\䛡I."jHz<6MZ3,AՋʉ0-~ld0VRZ!+vL̔~jԖ)7~_um寊I܌"w_N0WeIks2/a~s_&y8_3?_vM0;_!xҳ@#ٻz'd,f8:_J}&kuHI^TD #{nԐN`jTe$qy%## qW|HgtZ P+q%ap -H ϻ5J>A(NSOrs\'ˇ|$@+WhJ+$\yd\|$IH#H6V ͏Ѫc_Fǐ)2f[{ҹ,bh ݋,z^I [ܢqƁ/w~PF;W;gc9v@2Ɔ'S˚ 4 Z/dOoJ1X~)k}a#;ȩGWL(O븕0ĔY:cίtrʻ#?vd?lG"7콭fc~Cd>?ol>;Huc SoWƽ?l=Fm]c=6 o0o#S;8-4B\oPa6x7%O;(&5mEh\ $"c}- P8MQj7/CL (2 G~xG F|6ޘgk4Q݁^5^ko|gYvlSmx>u laH<ՂOp,p*=x{FbŊ//|Nqd,X?iGg'cR,7X)zx#ow2Mܠ-q;%;Wd6ąآ_fhۓN(k4 UҶ>uqĺX#6UɔZcgd0Dۣi=s*cݤV}FՌQ TgT!)!b*bWy:%~7/ŐpaG(é`!m.RϵѳаxCgd|YEu4@jRVx(=Ysvl|Uu``/ =?@ozلŴo~989¾ lI?[kzow pPrRϝ_biŠ~L9uB(Α Af+}J+bDw2ij5H,"IhrUP,5#r8'8P( uT/~6ԤT-5}ݪ"}@L'=y_KǺٝSy;*QVCHyIy%QRD5AU|LP|%wdi5_&$.X8=/kǯ Zoo _Išcc]ـ]…q:" 2ŝjA oe tu7ω:2KWOy7SV^>CYw6L)k}RLd;K'i.ҧx9$5-1̚GFR13>q w^*{0pAZÌ%*W[p)f%H9ՌDouM~+;FYt`i_,˔u 4XFBnC.R̞R0k(JLZ UkjRaz)XzVh>)Y84ɸ٭,%|C 1UH)Hl4.#3h̠T^DL%g+EWu]^~W2p._YsBmY2uU֓_ˍr9aD)w,:y)ǽ.R$VY8 f}$I |T6SF<Yqڢ^#\*d4 h_[4DF`?*'+s~RO50/Y(pc~UO-sαŵg(RI{x+h!DR,j0H$(ⳓ8 fadQM7T6EiE[ [#Rι$1?}ysa7|Ӯm*{ԘiFۇT@i5ɶ=h϶gնgj3}@ůwe"ޔcI4QH"5Olɭ}<5׈O M9+52jA?BYă4}am3.eR UvKAPȩ-] 14ePnJig sDe9#\Ly&!4SVL3T\02 j,; aY S 5z;[qt!*fLwr0tHWL3yB~qC"KuV.ܜCgnLQbE Nڸ:S/KҦ2؏8/ԃ7e\Smu$X (-xS O17Xu)V*}׼/fiA+с9C5͉V=ilq]|Lw1ʋ[H h>b?HM9hPkςNNEZqLxDnص(T ƩZ`i*A R@p?kWe|6_o}m+$F`TWYIi-|v>;Ez=ƃA0zw-KJd)Tr1x0nͯRa}?8? .+߼$ K:v p]`vb\a[0eŃ0> s@ԕ$MLlKMv=&q}^gSSY&`?g)̽ $DMlMۆ ڹ> @pZY~t U+?%P<6kT$:ɕ(HacsNs:Q (ԞQ(ܛi:]?Gc3^:9 %9 s-9@sT`%@1ywdo*m9tɶǙ( Xndr_Sg.XጭK~}qp*#1&ZhUL | X~bh}*7Gq1h$WףS #sn|#a%N\mt C!>` .F'XS\S^DF5>+8TRU8C\^ HÝABD]H&:dKzK/JQP# GIUΈʌTֱL*Hz Udb(v!TXM%#CuCuC+B 8tEShJW00tEH+B&"í!3]A}8-2A"8@NAWHt"d+BBWP+"T7,' 08 f6tq+c<ʠI@N1.劉t~&LVx:dE1{ Ѩ;nJ&dj6HQ<ޱ5]*JXUVkJؔF=l,HշffK7$` L8,s)q5A $d^ ?~|Alo kuuj?3$M$mH&vk Bh$ǖ 1k!0bvE.:O\AU}݃:2݃:c=4,A UzTuM'}+^tMNWCU4PBs%- C,:tW!ַQV*#㘘b%?mȹN|\Xo=%zoY#"(PChkR+L?<ѻ-h{nֻm,|tn'> :ϼk;k-Iw9VXB8-e̯ .충jv`e>CtJýʗd+cXi&i&#4yyix*JOFO|Y^I7s.griCڤ/O/@l 8Ow=Wr_c϶dٹ ]5SoNXU HW \IpN)%_{t62M {d6[jO[- -R6 1хh| 0OE M7HmP^BRsRYh`H)g?|<4w+fymMH\Gy|0N:jeEWR]Gyس9Մ\Vȹ4E6S)r^d8)ԇiNE}׋"x]KӳE!Y6k֤ڢ5zvJ $E,uHqVena8Ok 4k:*HjJE+:Xׯ'~uKOWO6W7W}Tuƫ1wD!PV &!\ 3#w۬)4tC [gqApYmSrLJ ' 8ة a5҂J[ЈB!j`K*WFP;Ũtq_N%<zX:ě0Z^Sf}4 j_*o/#&w9-藎3F2uN/$?swNw2b3\p)l%o)ͱ a.8Z|D\>Cg]pxvDk_z鑄-l}ΣeZ+ZB U Gu weKӓwi=A!'A(yOSCz-"c.\˝TK:>hdi3M:|:-3BaULU>"EQt8;)<iUԀ;8T#8/cW@J4g1Yړ9KD F.Q8SKҠ{_C}鍿)24][ _l1L"q3v8māt93;rp@qΪc#`p(Mb`?ҏQǏ0AZDApCFD 'K@FtxLLu*( Q ;T`0:4 p-@KJC z+5ca2%xMci}я%-n$}٭ZL;rA aHX7 d27ukqxrӬjt%WDw$tМmX\d6bkQePO.w[P{;K ^rM?^GRKZƲHa*_ܠV*{TGo:K^{18f+J5 ?7i%:ݫ0[L'yF6$"^A\'!95a*y+v!?Ee\}Z}G3HQʗ8RD4Hw% 'h2lf`y()'ar@@np5ogENSˊ1^zK2\v` jN6]M:†o4vԭ94=42P(rLx[uBo>mI=Bcc4#ՕD7 s6?!zTת{K׺6ԻI18"HV&,JjJ~/۠Vr?*Y8+!xZ%7J%*SO_Zw0-IiAm{{7ZX UϮ"UUDyZa/ŋuxZE&6+*g8d6H]K*'_0;2)U^@g[ǁ_8f4ҍ:xNy\|{Ӽ7|oY+b|Uݱ"?{ bOX=LXԬ~ͱ\JtwSIPj&&jhq}jGVh5BCEZMoD ZM?ac98#9*YeɈ`k,lTX,xka#&SWlJaNj.DNrZZyHi_JfH<. '#".FޞK 5Szfy=s]@ )=Mfimfzoz=ggL޿OJl_3bA|dYȌ̀Iug=_Ckۧgb*0j~%*y 3CYk3I%juWRU:REk3RZ%QJ;szzJzӦg z<?D_x2z 3ӤgMKɱ;0 k*Bǝ>kx2]Ĩ;#?7N!@ \(-RSR?|;a-5U zH#$f茒wůՏ6BK c:_Ie@ u\S?Y 3H<XH _Rnʕ}]L' 4108uL` z>p3!c84-l +VvNP{-3WS&\b,Z0}Thb# `W ~.bA?o.Zpak3N o^N41R4Y`:<扻LMPE|^l 6|I%?5'7%!|$ #&jʫtvU ر>vB9#;b0QܕDqP EUoa#UM˾<%}5Bcd+UOň{٩^[īpܴm}T8뺅A\s7Ut[.Nb' 1SMj߾$ 0*AYDf]8Ⴏs##M1NQ؀l^(j7?+7{LR?zPalbȭ/3r r/{#ɉ Df'r&[:4i(Wot2 Sr@ަkl7)DHnfJ 3QG}/W?rHa_cK.qidm~o7. HY@2ߵܱ1Ҩf )ژ;$5D"h3w.2LJ@zsKD.Bm zңea]+Yx4}'ʖ_\x,zQ+ JOMV'a:%BK KSoTjVz]PcwN*;~ۃ"s8۪ vU$;Kٮd]TSp<=U%! ZHVðH,ڽ],rnQxx\;+CMq}Dsqq $;IE ВQ3I+ %uKi64'taxӭ"]2 nȂ_`d5c,C/R$Z+髾w/ so<"{f.%}w$:'8/SNoRʳ&O%Ƴ,'g%:FxQSI]~`.uPLuGDl8$H'mˌwOr 4=%1pVλg{53W9/7s?/RȇBsKYggV^fVgpwvE}1_?#'}Wv/'4(9tր*I)Ϫr] ?pFL.5C[:N0 uF:O^JؠָEgJ7ϕgVz4-UvtUP娶`ۓQR~c ؜uu9ntXRqz4{K*5u4APn9(E:GNaXFFMй-xAuWI5-6up-TPSߋ3Q]m㢻RjZ5ے7@<ˍ䞮%ڮ79[&|UP(@Ychal/ -~Q/]ʻ$hQٶJ*/Mܓ~#cJNHMd-T_/meZ>x,-t`4LoE+e jοmkwnҞjԠhoܓ9::/ 2= FQ oElcY6g?ɛc9x”;Yvj]=vbp|5,Np;<BtH~dGzǡحJg;@ו7rP+kM;ެzի= W6܇_;'m1V0[ՉV8A{6@/6,k~yR(/mx?[uӍͫvD9*8ﵲ/;kmpmuDoO%bз{)7 SsS[WwE~#96хCd^gO]5[5!d$8>9"m Ebjez z|)])FN{O?:"\ 7!7$TM= ){Wv q`Fu޳rgxMun\6r"hg0^]!bMdV t/ȡZɉH2g=Vӗp=_w8\.LTD`GXw=1?aT4kcV  Ss ڂсCAڡb7l#%FI}3\ޓ>ݬxn_x>L`qb'Su%NpxA3R_i,\"3ƢO ^cdxf_LAߖq:C}7\ˀONͺLI\ؠtfvntfiЙ!C2/zAuM9?o!^)g(-.§:K%ؓyFJWrZbɥ(F4u`rNN@jn7I3ϥ[޾^-T/~YЅH;03P7|oc)U2H*yHbTTY)Dgh<ʕl?VYbUQvmlIs }ڒ^Ixd)ub/LƎor|pqX"K U $UT_Ip7B8"&\K<`JxKnZxVɃϨȸ2h'8ա|29՝&,х4+͛@2 8g>s.: }}j3N-8<13GJ-xSLcCBa`5aT:yW$+@j=f00H%~_k}ȵ~o,> /vE*9i]ŚŪϔȆ{:4H\IJhKAT~2^Oh$tnyd3e+tcĥF T y~UܠQܔ:(:irտw7׈>R5VU#ePYvoɕnbA<è AٌM$R _ Lu/}{xvo6-eǓ_sh>@``{h8AP?_ ߍr̿{Ծu2>T8@qJuD,&ԨAy8E[O1Fȃ^gcqklοCZ?hRd2i0H՛׃_'n, Zc oPxݿ6")0Ҵ9o'|Cd"'Hd|uW􋋳DpJ؟7r|OI5م,Y,zC@ (kw={dOQސ8$ ,, jA K'/ShzbE-6!/oα6|8qSO1>x 3 |s&j>D)q:ޡ" \9.ԒBxj*KKF xIx͠xh.P;Rw$wIڦǻݬ6H+K?F"e$7kXuI0$n&l@>; KG\<|v U' _Ś -B'?g)!&4ƨ.^djeӦV[ٶOo}VP+r+CVMnDk S+?Ij凉VZ9A̗VvTmVjDqP;IE&L Hkt[e>49ŵ( d٥!ibXxKhY6咳DP.?^,'JtJd {q < &^ ds!\g'ƣ[YtV.--ʑ /BuX5~ެR,Nh26vI_2>ZKeL]4m֡_.M-.NZ~eKC/;Ug6Urc^yf7y:z-уv@O @r&$R\sfZSjܤr96ev|QR;N@O¯pJk,i3&> Ng㾧IOD2W+"O01wDN7QŶ& kw1:Bѐ/`a\tw{:|<  ֿ@f߅ZW q`F ѨGg0>0>| ):&N c}b lhbp Gj}_?*W3{jèzUUv윎VOdɬNl䓝x/^RgcxD2ۦ#Q;1Pom:~i(y# quá/\b}X$yW) + o*|Fm—h2}n3jO4զѲqoc {A^\Ѝw/zX9Q"G:Ezt!eMג]j/1n-lH[m=)-v4iɮ}?[Z*F;P;>=%/Sqo=UvREG M9ނg}\iEBՀGVMj){aW1Y sKR}Q~5yÄ&͢nR~AS 0%Yphf",oMg 0ڦ4Njlb,.[|Ҩ[mNu/%~M5 ]lLkҸ+\`д&~_.hoam*K+ǾxC}5Ba, GL:F(J; C$vJR2D5p}W/鳭_z/6㒝฀}X#lOa 9Qrl̋$wMpҷ0-A jR *B_% BA8`6=OwJn@8ZIUX.}9\6 e8K wfbI9 :_nX.ePXzYZIm(E%L2`cyz,&;TEGj6͆3OFܔVC;m,iQ9Bu Ymj r`>+j&LVOu*6aa#thq</y8^il%bt\=nF%@C>:xH#z#jD 9LG-dGK #M^UծqZ9,RfȘktbM*H/YtBd[]"p'zr$z7 3GO.#|`b>vGv|>5Di"Qyt)G2Y:2q_+3A=Q0j)LG5zerJ5[_%AT 3Fgv%hJ%稽Վ/cg5J=jOLjc"wkL4 D]3V1 Jx-yƏ὏2r֊BF]8 ^w%Ժ7;GamL䓝?h1C G✸>k<-$bϖ N>+$M[=|gGmsQEԠXس), r9)%²!DՌ11O1&iӔSǀZO:'=:?삜/́Kc}@HĭS 6!svp58Ncw1)VWr% {L9W93z@wlsvr |r]cc< e%ǟI=x#^=O{4Ǚf-=d C |&{5]q"G%Fg;Jx b1rvP|pVD)fV? bjj_"RD߯Tp']R|< !xnu(g:B.]NUE 3GV֌YVZE'F?rb^v=4ɀlz2k$GYKpp҄s<զǗ'$^zl\WQ5Vfu[ w,Fj{jԧ &K#Tv{}& _* dcqt:yz)#%8 f>JF#p4;bȱ8(2Ɇl MeSVBV^X/l[&_d}&?)~~,lEQ^7%6c:+0K*RfEp"Iѿ&Ys0mUaڬ4mt3Zb4(_oŷ iL@^C9j==8|5A['(tW~zp:WAxAa3C1JlLT@g'xH96e5ZZU~Xi$kb rlf[Rb Rmt0O~w:z~{KAɑa[˭: U=>UY;@+ ,O[u\5;]MڬyrUS\*R@b :9:9: LuHS9|LJcfOWƏ4\|nwEFT, Y-oҶXϲ 1p?fu1n&*dsIG1xj}!cry̖F 4QUfPMg|!J0= ϏrTnS&aUBb݂Ep+u&cȲ?]y|\$]HEP(Q\b W( xAY" u%+LEK$87j=hO9 W^;(*_9){>d@Ǫ )&=XO~zOғ-,=)=T#,fEF{`8G`q4,R>*.j˟ ^V\V[isz *a|MR39{l=S{3= Оg%7KDNל$͟|\Ԕ5k1(%&/m-Q{|C? x8o;=/R38|/P Yx`KhM=ЙݢH]tc+=킅;VU^?*~{ -"k(2+Yk{wFZN}M 49zӬ)g_HJ e޿ܿf*~kPW{msR6Д(͖'?(#͊\r1^&Fxi[4`:U,@)A o*FO b>q ,(PgbC/[Zvz|{Ç5CRzɨ?V:A·oNZwҪ(e뵿-["[7L[譚o՛ ۩Fc4+>GX FaIUm2kޛLt(SS-왟 ˁev7uSX\z 3ۯgp EDzwwG}w{M{i '#BZfalϚ*rO o ,[gݒ_h6lIiB! YtE4Z 'l(4i=N6$7tTk3>a;¥H>Bx4 VQ6긦D\avfȴ#]X|ɧUI} W BZׯ S ,8gaܗ P μhLs*$Z*-vtiYkSV'ZEP@OZk?nHc?qkk_kt}Zi}!RS #k)t_Z;\!kSiE/gGYHدm2֎]>Rdz+ʌjj&>j84zV(8iyIEX}?CԲ{$Co4қIRSE|8V*fXj`ulog_*PL4Ȃj" j(޼0L=iQ~Y-C V|M8o/x+8fF=xP[jf^sA A;(l<@ЛuoAymu]ce. HuN>g=w>;n@|c}^j2zzV Ⱦ93,BBo*UFd2ubkI v=K] R(4 "5eXs$Ge7y_ukкp}e,(TJ[[&r>\؎VڼeQks "^TeS {nu[(#eWrYHE(^oLҎ-X&>qݩFS獤]S߃IRݔPv06mU4 x2TuFX(,piLS]@@J0"]BRz!*UniM0[I-tr8G͢qqvS32˞K>5zQCvnjk5 9InbhGaU! Sg&$nBwbp'gP-pQtGF.6GWDG39#dd 2͆oNF^)dA*8NߙXH#{~}Rn ڄ~d+2N{*>g4SQJ%j. Ń24?Zb|M)ySh`ff"ZvT}gGnhp/fnd3decxY<$kC'#wy۱WS-g{2=62F;p4d7.GwwllďJ拖Txğ-F굘׮WF#6YlE9әމVp6N&r9}zA/{ù|O΄('g?ch')WFtLI>}?^6jdь$%!jSM"s!r>bRCHPaL7Fݺ_<ɿߥ677d 7@ //8,\mh198Q{Hzu[^W R*E2*e%Ji<:5I1}ì U >*.@DWoN'ùkr: N(2L4'c栏^m+2#(+\S;GC%`g9!t-5}-IsyaɄ*oT}|)ne$"ekeS%mpFxRthR](^օP!~B3-@K(ވFEg/ RdH$kRK~7Bn,ш1QH!zb+g%F)L}\u󂏯PkܪP%(g3vNb% 57fbw6hU/`Xgj./$iqAVW7Ln*.2-* Yu339ag^cH yv]g;cMRu|l~Fl f|,[>53c=)XsTެfKs F4ݺ _+@ d'N~'93 Ć6G0U#8yZjskxaih<āi)4€~"303}cvsߎj.Y1 +Ǧam~J؇Zj?dlgZ&|ɜ_I~f" /Uex&2u,&=>e\Ӽ RGᨚIs}4 Dxg-JL.\.kTcM%`  ܷ9ow/֩ "vbg/u%vrdbǃnE7T_ 2a)ٷP 9rL6 a@)Y:e]Q\4O%{Jd pP@8@nj`-˗=uggp+(6:? + BǪGwE:JN{MBSb!0mݮ)%Q(c=h=9s:iȄ/"Rbno.9%0^KHB9GU]x[s! zXHjG/GSEr/1{5J!EH.NdYErEbABޭ_${"1]$G M7GIw8$)d}:bajmj:ZK]J]G_k>*3G^:}4N飽Ν>;RLfNO6sF,:+]>kO*F>;gU7a,鳿Ogf>{ӳg/RŠvlǓg^EVh>۷=az2F\g_Lf.UH]39Nn)͢ FۖNv(_QDj$^=`D ~Dz-LgMoiM|x'㻨#))57ȧ5OZsٮs5AO-~|vSX|6?;njyh8qmS.A*. cqTΣÅD BkQ_ HymaQH$ /IJVx_Vb>0N4pg*Gm 42)"/#\PF&9,jEJ*^t)yjֈ+Nl5 RIO,W]na/0&&z.@Pʪxs}o5h^cg2b!R(-b273rY^*cEG;('j3c PDb_"!IJV&Rwz: s" A g[$184dabŏ+@ܡ6FMr$]2ws^ ʐej]}%}tW:U]dνT}5X|ep&q8Gnɏ9G1"#'HY|p(Љs8A~0 EN& 'CqZkȆCg8@V6r~)<ue +Y[q79 M=@>~<HGCgKR_#i;Jdyۈ%"얡T>xn*W9 w"u1vҔ-wXCYp5ܺ [/)Tk9YZGp\ w>B gn[2MZ'͙(nCg2qRsIԟg-nU;+SѿZ iR $>+m,Q<$İ %pGOL~XhW˒iYG\H8D=13\i)N>Gc(uJ+Fo|PE 7@7V8BNkf4!zlf*Dv_WNz^NC{St !!;н:^EL0e}Ԙ۶M_KwA/!Sg{emjIN8B)nhE R_0\ ͅZ K Odh՞xl,(f2yk-3Zc|н}ekw^%z8ԯz61qI<|܉584IYH^K?<|uhœm5֫3Y2t=K5Z>>Ov[BFuYY f}ZM| S7 ŧXw>D9w_%{_-R[*12HF!~B7Xv'P^<>$<~+H H!e,^J" 4WՇA_>Wf(OЃOЫC~͉Ч- Qnwr[bYjK7[{&k0jB b;Χ(29. F jWxSbl_e6r';"zjEɗНU9#5)wWr/o";! e*nHrA#Pҷ9uVMZYNp6x|# qnٽSΚw|]r ~Qnx )%Wҝ|Yš\ \V뗒 0F]\ U>#!{+UCټFC`vm, J0 MD 8!SQj&esf o2gǁAebPV*z[ƺ;?kjKG!S|*+j}c>{Oml,+qv0Gg #{ "^/z*48. pQEvlfn`;ݢtX &O:̀g|": RwA$[Z̫wTVT&0 2rLl.XKWڹd>`"t@mWkx$ @&N6ooq肼2-VG`{;KXϕYb><"kD]X5CE+c\{mN@p6=DnqdoV1`{]Q+ˈ&Syՠa]dÿhd@"mna]݄n,q5^;8DXP SͱQ X"N+r|ܺMߤ\x`/8.ӟHvrmwgc0|?xy=3@;q6u\* R'LuK|nu7 omMܶ5&EП>h$EQj6P}N_vʹ!շjl$lPB ])(e R~j+'JoNxAMhk{p>eѐgdջM-nzm7!:o[ ʞ9l+/6^|\1fc]vM~O }j:]M;Dd@[|,AjTh=J NwҶͲnʕ6+PQx ~ β%%DQ|TCRXg8&oO}WoJ!ҰG. " 0H͝T(:qQK]S3Q0w7߅P rn™TG_:m|TH+AK"{v?Bofzqwk"i1GPE OPAnQDC\p}?;֋UP_շvV\'駍g`o*R[ jYBS-3Q Z">bh4%<s!(qn B*׷[B53m87Us='\C)l\%u#طe'pzrV $ñNrl,ĨJYl80137$/B('m"F}'zC:_qK5nzܨ}0:Wy{z:ʻHy'UQVAY1wdV}V.;eɹHΌYytFecɮËqԺpz˘X{fXZz9ЁA$0 ?Oz]9|:;OBj דz.W}kwhx oz ؿ{g2ǿ~.UCqEl}w *0׸X.u;Y1<#J7_ݳnB`9Z2ȭn8 h);|/4MMΥPʑM믐? 66w,[G<Bk1Hʻ*<0kav*)U.)+B .Y JY}AՈfK gbXRI"i^*M2vbZX89WDހ }ߥwʶ ];zهyFN4Auͤ7odعҠA,GPsw %`{=N\*~V,I'sIrʁ\mCWD8 EB\6.D70ݣa*G_>Nz ]nw%gUy "u]̨sDxSk\C3d9P12QsX SK~xWtU2.C)ԕ @ԗJr]*t)Qd 9∁%;ve0` bpLE#`ތ0KF݄/$A!`M[µ\9d!u{Q;&ѣ2\0ʮy,Vv^أiv\Eyi>Ȍ*jſiv[&^P2m*Y@;]ͣgfِ\5ؔMRG?CNzC =#l-̜87Ь$Xw.qXjW+9+DN-eLƗO)~`)xoDt5w2C:#Am1܂]^K V>*̧ )\܄(*)^{"t~ r4!YuM8^ɧ'6&dW&f =2xu'ήspu=\B9>2T w9s7׏ߏVPOp^҆i? y-vV3d*PJu'"T¡8~KH(U~B}Œ]2BuS+Չ.`\y8f7K,?C%b,JC0("c ܻK"l/ m.BxXL6ZtbUʋ]N:uOf*yCDLYk{'66n 7Z|}[ͫRb:̲!eP-\aqfhmKUZ'ɺhy6|גD?`<쫄}LyrNf:b$b'a&\DWiJVe ,Eo6-{M2KFOtI[^yyo~P#5( EkϚIR ~ۿ2wML_rmI^H$gɻ-Mheѯ!N3W}@7 ;*Q m 8xc|vѵʛ3|>vx ժa+lz -~Jlh+S? v3ukD2}o]`_y7 ``&N ]y"WS,9O'Ԃ #K lէ}"ÆXP_,Q ܿ ӇS.P=mikZuB I"igL'̌G /Q{%|T ˭`jx#eS0=ogXl ֈ:%\@_<D!DqA G_F] ,}) &C&42 I7Jsr!K9![ƽ?_8h>4$SZgx; qUTQ&r.W:OSs&l)ΏݍU㏠83x0,OèNG@):9HzWNF5@Bb|$O$p_uXGhm+ m3mTGbm1+AO@;J߯w4"$UeL6qp8u7,a r) fz)iDSVKrBDo(igBop7q]:P$kZʒ, *0SŹT9>u2`e#P7ؾZFP5lCVJ6a 6+߁?S@;b rbDvĦ'˦[1 ^xJp6؁u >ܽPǛ'M-fB~4N v=?'\RC)?l T~:~2.N{Ae#kA_מADe ]e=Rpm }!.ooÏC,{$od8#N|P˓Ď?Fma +HmE[[ }wJn(7aUխu^)fz=l!T'.< O_"|}42b @2wȆr_\Tc{+Tfl޼n%{ng1l+ ZHp>IG]s.IyjNO +ݿqK9p!GK IZ{*[v48ӝ ޏ(Dw.L?c+JzW0Fc#-0zmyzOQ"Jj9{ľx[?DWLhtfmDڄfzCnכ59c}ouNXq2eXSQ|pYخ8+@ ,*?ښW_3}- B´a*7ej\e yIk}=Tsg:*[W֮o`ޟoǜ!8%JX!)g2Qa_ M8=?%Z=W[6$^ Lm T.s ٓ|׫YbP2-OJbLI/>nU0( {&ц (;M7oGF0\N H+b5cb6hFyÿ{w#w)~lzFmJă+~/4 8-K/Uttv/P7OhtrVQ6Q"`,M&ƠĞ)YG;Ho>|7uH0QR ΃qײsrDxl^Yc=ߢaʲ gb`X} óͽ}4]r t^ G?:Kۊ7 7hybQKBڼxk72B9u3fҲN8&T9bȞ<> V8z@ATA< .z@b0sWiWLS>4gFsy N'RDOЄ,^@/$#Ҥ*@k0>ﴩ}D\Ns_qgP&r MkbΠ X/1>ؖpv̍ Q6KJ*e$j5n]KY(ڥ)j!h@63Ie 㕶0'lE"5SMp ~, f˓u?LP3O)gRJXDEcɘ+dRLePdbfzhsCCضj?6(v\rfb`Y$4I&y"|3\.@>z.]<2F2/9ҥ+ g` 0ogusMP&9_o'ezȸ6M槙6*7"W*s?&6,sAz]EC~¯ƌDr`pX:~{;08Wp%NVb->ĵOl$ow^'5 ɤrh=5f"B>Hٯ~)fKݝʓGT# r'u.xL ت 8NNeOϮ8TΓǓ-&xb.<fxPgTBG6RӔW>RU7#.|D {  )a|% x~NõŹW{Nwt>>fA5h5>iiILM_\<_Ԍ?/j)/+T<_6-t&.{tm`ʌ-M5Mp;y=9sJZ3 ˔IJӦ0^붒xOvN<,/l4%R$d3KFmoȚ/գ Okj1dQ%G _fg%9Ӊm]PRIڥo9ƗVڦ=ɦDHQfV"' w E@vn&i0&p_mY)*=@)0D%LC[fW98Ju$L6CnJG2ZJtCp'R6 fMu hZedkߟ<6Z63Sg7gVMr=;.͛D<Nݶه麭>l{m+{¿].︵: Ti+)%>(9; `"UV&&kʙc`.R`A.pi9!tsަ78 4uZ&ռK:j|.{` T bq| ~[\;c.̇8?z" rt6z ZA +Ect6% _FݷUVV 4ҕs#O'FaoE CRlKiVŐOanAbOcJ+Iq8K#%`BdwG¥GGclOx'M?=o_c v)'mf7u>⅟m?=]+I`W!68^EKQM;sA==8eM^{W GTkDכE R<(\k=4R$)u_m@Cc|9 %"o}Ƿ޵`!B/Y/YYty bh3mUy1vI1C@5mDdy92҄1pG?|0c%xM&Zh*g[V94.z{n{`3> Xqx4./4lj^d-9S[j힜xB6`ЖڈȃGXDAWz{kJvVdAЯW&^jcc-o{ ,f\kq=/6(CP zF6t1wd=dhڇ%.\jGPGp"/5ñZېPp*6[Щl41zJB%v˜ЪomJ'S im;4#ʗi+H`&'xTS12w%pUYCT^JB$P`<>}OML2BLcB |8SM-NeZMKb-^&l|?{-[nd#z!Cʇ?ֳ/SETA&BR8Ec |)?#aqT/ODƓ*,#ӳrfL9Ձ`ʯS$~q'ګCK(q8hLq/޸:)#V!>WԜ:XGp\\p* 8J5! S.$3aV;Fi9܋p=H蝽4tԬ@_fپ*e?ilr1W^/ "ߊT82X%U"{S"{h)(uC";H/)rQ=1Y̅ȓw`Åm밼"XZ܇K Ⱦ2d.Ǯ#-"!V'Q*Y4*?jSS[=%h>TtW& GV 縍N>4BעyS1ouiT5ԩo7]"M\ef1q>]r(:f%韛x}ht=@%'im ^%[d^ҩ;gϸݙi8] be HS&p%K0‘8hƖ;%VXT]jX1c_ HN|ʧUaS/`1O ZYoE&YM pOl`tXIzpQ@p0M܍e_0&hp@d/;U &zjb5 c YߏT8j,!vqO0M85×)C0wzFFGsȌJZ}:*FTW£(zFQ-LUÿ8SrNjX<*,ܸF? N1j@fK2=5 v°#@X&\Rz+BrjHᐘe@D~su}m2'(jߌ'Xs"xt\<ډU~pn=LV _6rGcc)^h > )Esױ'6 m%/9S_["ysy>0y{elAw =U_y j}v4E.RW1`6ixE(N;1)@:/hwZRaL>B2i%|I66-^poGBn`LX1aF, EwÛt.C_ț2.ok|JvAoOMyLU=Y=l|+t^L.\{=Lqd b VJYf-3F:|y-.݁?b4}$) O'K (w35␶uWi|‡@L'-W$ R1뷸%m(YKyP:w b[)j]qQ6BA?dVʈ=Pxx#o+!|fT>ag!~Z΢`ZM$F Gdp ޶fDH/hv`8jxʱ\4PuF"P޽m.v[UR!#'Ҳ6QF-odq]#hq ʩo^/Oܟ#K`e5>)x:c4[]06'VY7 u9+z&xEohTܣЌ8Ţú,ChL'S7Fc]y$Y<}{T_U 0 Le Ӥ'<dF] G[I=| j'%=!P cRiM}cKJn#s#ÃmoNk;Ȼ *SFKH$v[\d?I#Ps;2K[W[_v7@PAٵz~ߜ;Xd%L  2JHSRFYm5{CJp;R+7~-#.u%g"$ܕbO`l\!I|էͺK5e@>-t"4D: $e}2,ø"*^(2ܘq%R dsIvqԈQalf'NGLG_WhNM8v*V\uKYjQ#}~.GC<8:]p̞j)v&UE[GIH/$)+O-'d@`T/em`T6$ZP~ax:b :y "κܩ}c؛ DVWRykpĕx pw> Z ,M87Xzvc /D g^ZrQXrXrĬ{[&XDpFU!AVH qGjd'˷f|"Y\)c3%`#'25n>9Y[#=v巇k踈Tdj0VE/f xP+"E\|b_ajҤ$;#ϕNfARa&Q1KD^ܖE*3+bk4_Պo*t=>$¦)zcD::5׉İHk~4<8^.J?.Y)e"2x5.EsuTkB[9(y\Ab9ʟiaK̬j2If5'{@m &~6,#RvhF$4"&>t2";#Y4"ڈ`cd`PeȠ0_]4()^rA٧ >ΊsAis\.j<(4(o.Ai΃ROܤ{{72$0PdY8`|L!cru>&a{cIӘrT̘5iL.,1giLƏdǤ׈+cdpPȺM{:)95$%tLI6sT+\ YBb6I&w${dL46ur MQ5Al#YK5'$+' [/jWq nsY)ΖDBvN ?r*fК =WQNt5Ps79?5ӟ2)D\zB׸{3H?}͢C1__7\c𷲵Yބ?m_&]ׄ{[,M/67B qjVe-mא ۮN}q]Bd:)[Ql쌶26rU}jP:{0_ΰ6ccAw]ocř}ʨ(pήsqj.0e\ aSSZiMXwSYiIibQҚLF"~R}-]>NҘtF]$5uQit>/uT lj-)LUɧOUve:AH`pBd>+& Z(K]IAJ!£YoI%U~-Dcg7ꑭV@R*^jf@(51Ɩ _jɕmldiwSWc]PEu{o ۰ '3|"eM@j r,FMpk5T)_>E\ş-<3hlو-g6b_L ;텍a/`? Pf-?1_i &Y\R M~B!?SE(=;SٯJ,":c>Y^nrwF݈4̬|`d1+i*En~6{ޭ+uHݖQWVf`؁'OwTf0qNZ\ʗU2)b:T.(! ''"'wU@IsM?G:u>wbj! f_fW[r;-9ĄVu.F`E6̲m[/ sUT: Y>l?Q mNAQt;W2ֹitn[Vp])cS5 D"Їs-xEbeJ7Kh:(t DQ՞U*Vr4V\x7=ua;LDć-lbf-G"!??@nV8W3gnζI8zk{ٖpA6/`s8j=Ut+B$KFjdہe?)\.a?DXNBXIS6Dӄ u4qDtÚCpww810;l;vl(F(tifl}²/}yE7$\$My?DƋ^pSl dGk4ܣNJYc6T"6 ruQ_lMiL+%bo!5K$(wbxcź6x{-靪1_"_Z7U:ZxOV|b~oя&:IIьYEJf?Pӝf=M43}W| ^*9@r4«,~d@M0x < O, gs;qz6,0\1?oӬ(V`;(qŌmJ;Ԓ,p!Tie"q'o+a͓y /+pj-q֯} .eB[-vpmC_{[+  SDH1=B6"|~~)mo!x}e|>U !}C?0󽅥Ns.i^Yv֤׈=~Fd?ɸ3׺{ j6-;&/Y#QjG-Bx`a6&G K@z-B鍩4^mmPuNƴDYt/ܻѰHr(6b) y縋3QbV۹\|"9 xV&ߑB[VtAe7 ncn~:ٱ l1>?K>-/.{8.M(Vn$Ԟp=]l'8]ܦ6ݞZ#؝EӲQ =L`H1*&^`*(;Q='zR;Nܘ5ovp@EwѤKvc&Jd t8y@Wn#A~!ڄg}g *H|a u3yFZL7L{^9 ;Sܙ]>LNż0TdɉF %f6F/w(￞1'?¹{Z"MB.;rg{Mg0Y |ϝnno=*`yUu{ub 횩'H(3 53w5{6}piq8y xOOAwģO,?8\׍NwKgy{^;t'V +j~p)^ `>{s$rp:$A2irwj,w~uq+͓J_^22I.<:#ԍᕶ̡~E8,s cY (W%;2X16V?ڸ%Ǘ6eEE%NYjjѡ<`Z^w+//8{nҒrЯcmO:KkL+9kx3[->k>l py+gy4 q[ Wp;n:nj-h@!q{#ڝq3O->k^e,p{fq֌=rnÎsq;<3n{LO ,s5ܢ펧[_: n}Y>q[Rn;vj;̸銏Tnqq[n;lhU38{Q]h]p浤,Hs頜|G_>#C>#|, Arc3˽Qϭ "` VQja",`Nh-vGvlvE6o@5`u˄JkZ(zE:XxroE-`Kع:jBV[j[LUu{x/-tVb;K]we<oꁖ:nCw3>Ct+ې;u:pwhź{YOnFx`Fh4ͫh?o x~NgV~FH>6-ݗniF!gBϼ9rϔ 62WwfWV}kdןwi3O\{ٹ2i\YP|$=0WF}Ғ~ty2W,Wvxs%{U͕Vʚw1W0͕Tc ΏSCe/ p ϛ5U x, xn Ã~s߉ϊsV4;oZa[ ~bEaK޶:7ٟKes?c>:ȭMܶIf$_]@ŏ6S3yf/WR&sS:<3O5͈ympD\躽< ;3oeFo u zd{ћ=YGɽ?5Wm'1~3*Hw!Ãh׀*2]Zޏk {-yCv/S'ȧZu#4',>y[[u?l)x|>}g6Wr(s&aFDgHEJEn STč5?E.>d29a=$b! pig,@O\&waQ1TvF`݈aY :Wȓ^gg~i!>3sk1~I9ax{]x]y. kfDHJxrO0* ^MTFGpVs ,ZhjZ~e(M vm#l5goeVEWv|H>/fj6.f+L&ѵϷS/J\&uOjnzU!+S)@.zϡrAA&W4]" bG9ʭN>xv><->8' *p=n܈5.V*C:{S!45p(T^[Be~m,(5u-h"Nreq>Ѳyjf{&M%%gH~&CUm.lcҐݼ}XNV'lj%Mc3M!nPO\ú`E;cT-&}tQ&L],Bء_\uc!H+T\[bZ@]aC9MwO!h^M<6|E6QmR&ZSP4(g 5ciM [ h;(  °RaXC[0nYI`(IaH+ kp&p$ Iu!v4z@SP8~987<-p^ڀ&8#|Ωpb:6CG0-?@S6W_P@xgL=Mnb>Am~:>Mor-d;Z(no7ηΰڮ \ܟ<.wS8Ob9E+&;]Fgc8ٲnY- q{w^dc8櫗d/˖3>/,CFÔvr_(S&UC(-tx?z+r^p.R7,b⠛g/*VPHs´1x3/lbs1 }6֍'KgWqJl |ANh;8`}e:} VB:DFC&v@{Q+(L Ǡ0]`zSQqC LW0`l V40J`Bۡ`: k`97M1 vZ?=q?w谧 @L^HNxp(mFoHX*vArIcM3g.9nM (1IGH(Dǟ,k!BgcU*P\VO%[{\cS-t($tdAdV˴]Cfݨ͐:,<y\><.P:爾O/و'y#\&#V..ݓsV n9qc=JCTC[]<͎8/́Fʼ xR[v`N;ƞbɏy7;vw34])`6dgb<2L_7|O<EKt8~ι@O?xiM{u _LR?(~6I,HW|aq}:o̤ *aD6)oF5&f% Pmg %mhm ɪ*zҩ:2MtV͑ e,L# Xf& <}.J`* \E +P ר(eԕ sLJ {id-h7ܡvA ^$~Ļ"nH'l:_d=!޶'T(M0;A $dv;K=vŶ~SSzl{kLČ+Y+*$אrUGRSLcneq4}Vv[*r"m R 4IZWsv'R&))W9lT$J8\S"F@ƥwb>o6PhNb;YJhVDi4Yf/ X- [뫄d^&aםaׯlX[(9Q0n]ծ@cUѝ`=h2F,P~t#&Zn*,=BYV^ 5qj'} {y /:{"0=X X1)84on֏yP;-F^x ;lqOX޷-s[ @wz= ';=Iޭ%8;u` *ݞhq]/zWb^xWzT:Ni'@<)ϲ(@8N=J&a~!*˵CF8UՐT%]v/;*/|}4I*+_&%6]h h~ʀRaz!gŅSwi#Hl| 1V}˗LFT:{^ jCY'ђXDaDKX&knHT +i2,C+'/"(=縏): X.4&zy^+x0S_y]ַD죨KL+5įPR\?߽GB-څ=B[ R$a76^N]MN5a32VicVۣ|*1y[ T\r-Kţ2u۳|M/"df}4Ӽ; O.ʗV 4_{BFpSDT3]uN MJd7 ϗ+NN-v#\ \`Fcg$Aۅ$`*NR<$g>|6y˲Z5sn&C``MUKHa\d+pso!~hמ$iFN]6럴cIZi-ə:_Fv)T=2K-s922gHfE˜}.}?v'QOG~KNg(YHM\].YH_Gy΄do".Dۂ yYD ,y9o;-[[eTQD_gi+m/ 0Ox2x~Zn7E +`6Hj{ӾG)ٷ:6V+5J^$X* JD;جۇt]be$J_2э >Z]`B+isa6^'Hr]t{Lw.=TBe.o1Zf\|3i.]:P8|Ժ坈+{pW&r.zؐh~Ͱnb~:.Z!edSX3NgוrT\v?LZ)H9 c2KחJ[.g˅&9/4G#W$jTR&N±NA@b*ֹ_YoY6TSIٛ񢡉 s/Y(;UjZ/'/K fClzNiQOFuĕN滀Bהrx, 42AT+RRNt79D:1X*%_ H8$.['7<%&C p`+U*D g10khRP k V}v_ ?r_ORa~@%U_OeG䉧< M(d8 GN)C6KHI $Kbz$#1! I@Bp1[VvabsѸ%Tes Dt鶗vm?m&<s=:mݺ?c#nnf"z)9Sz{8OXlˋ7,o 7jղx5ޟK 'c <#DJJ{PJ.\+\eOI--+KSo(P%qF\\**!P4, 8_@`09\卭]2ewc1njA<=W2N\ kRc*WXvt2p3-A[D;}~?'{ 5ll!BŦM3K7hr] tTd,0 A` TM $F&@@(qiPi*VK]PkTI@U"ʋD`a{{&==Czw/+h د6:f<H%^ ?Chl 3S&y*?q#a'wA)u)RYʯxZtϝ+rܲ*?MP\\:<ۑ8X aN3mhjxha Jt=NuwMb/۱&1[:I-x{[n^xȟ5?pVѤ2E2.VpO>Jx (:&!Sh_O:#و'G(験2u3JnNCp]Aw:]AF ba;S0';jXб:=|.&Hg.X(nK?ý?C۳!0 $'^i ~oVo3OҬo:J4j՘$tIj[3@w=(2oIRUעZOW(1QJXF η5|tO /nWh@n`U/ kd/$bMWj{t իR7K(YB&B3:'YIc8E)^-)`ę(هWk$q)_dߗ,U_Գ`6; Apnn-.8{.mzs6UL2B^k6aa7 bzԟ 8t31'1RH)K41I\*VInM)q̧s8&C#47C*hωQ`ЋJ q6O::7kMWU!'[[(}0Q f2)дRe,Vp_FeUz2zUXDWZ<+M|Ò`xēѾD;=;f[ZBEiթ<U(HB8foY&T ucA\0 |oc-z h*9j|XY=yC2V*xS͟ƅ,#m*fG[VnJ}}!gYyټpqƨi:IٙYP,.Uov[fp T6p6cL6[qeNxlŒql*Uh~5j]yrzi{/ *jȉ]rFwD߸q/=  _S(_Q,Dc'd=RE ǯȕ _.[cg%3Q1tBWWnNOx`x{ĭRgIcww%ƕԃO*ls~D_ƚDz7A/w]Sʟ\/\>\/TK{K+8$%/m9OpRmaB߄eS QkdɽF1_ԉɘ\L/leFD_KexdpC!2sG!C;Q5;2QH'h$K9 Ќ{װ# VTנ׏.vz1chpltQ,]fk}$WU 쎰z@d<pΡJrE}F20Fs2<Ng*HϐtZ"Zzҝ߈xQ nsL{ط{e;Q5WoZ&sfSco6?7 9}ͯ674r*V_8苣rᏃW#Y}pRM>6s"v\ D $ب^3BV2{۩{9ttv>7G`;'@ !kЌm%1w/29+uUQof&EcUBSS;ȪnpvU}*z8PUѭ)H%3{@ZK. ЛvbzYgsրnw*KQM9tHÐ- 9\gWbuڮNz9I//0-ӯRc8{P  Iy)&xfRڡY!gx-U0WB{Snuf,rs3_g\Y 9 m:b/p4JDPgoy!>aΛڙ].??tܣ~}$wITD#Db|"XɹR~G!: ¨Wm`XD0Ai\x1VyL -5Rlb+! l-خ=L^ۮ=T[j\ځdQ(dua}{t9էP}֓OWzJGd؂Q{Jl7OulJXµlNdLW? .4l?_ken־anXm`ƗVQCT /|RF8g(3&W[ŷPklTQ;9\,~ ɂP$~|??~&:4~ZE6Z֜+ox v ̑1_sSUή$whh7FOD$= U U[ZZBtkOY ؒΧ,D䔒(|1t|T0 TZIٶ)LT wtY#I j]T&iqa*5bh$+z6n'EGQP2#81_0l"Z2 ʷܪݎywa"'8p.o õY{tuyEzsdF-%=yIZ?Zcm>j)<+1[L* ҊkVcN[ J*2QEe~cRy܈˸*5IFnUYF Xou_ s6S[ccP@\nc0nis%]P;e\ZHIHKO Z$,'=vWh""FyD~QZyUD|J`'M;N3'yцEAROuau&WXQQk9CWcvzR2PwH))oKGW11eo5;R~Sb!2{ź-` ,#`Q[cSк:] n|+ iӺӚO KT-|Nb&uߖ=<'t<ܼ LQB.t d q 95d(&1+>fw^׻ɪ.1x.aPzYѥ-뀶-ekmc[SnTV(  }9*w@FΆay)KXf+Fa\rUUkfi. ߺT!nN ZϽ%+81PTSԳL6<Oߐ`i%};PvA.' ?XĞOS:*%]xI( bx~UJӿ; V:J| cӞv". ivۅ<|k\,\;5y;YH3s_5vs!nahDޣquE!a쩉 ?rs|\?2cH4MK²6!ѥ=*d7,O"5<VQ5VTwԵ Y!=C0OoOߠΤbtjm`oq#ũIڀ]r, g)mS0)ല;ƤؓF@9'7w|+w> ]b|w{wWwzoW?~ܝ¥D,3{()HYˤDzWR$E/^ $xesFABds^MiًtígZ`[ez&)lHlC$IqEdo4AR b@SPx E(ՏJ98=G fTϋ_ƛ;uICT [`H|s"A4ooLõtьN_>0/CXO8_+y.:?I0ƊԨ%u#lwB%=#?+"k9/$wq})9Ci]AVxyH+~V'!|:riATX^>7EK&XLAγ)=E,d9יYyW+UⵦQ.sXMxl"A < PU+ Jk*2:&[nscLLep!Av2}T 0ƸgUZNf\Z`T؋n!/SH2/SU~P2|P]]JH.Q{̾ #V>`r d0fTNʒ***YNn>mi$.bВ]L:3ɝˍ@HL0qGAeMs~ڝJ3SKU<]\]gC%X}'5C^4/̸VuFd_xl^ e T 6W!dPY Zz2ٟ7iW zTKZ@c'^prg.PI<0xELA#6 M ݸy܄0pW,Z6X]G?| Cjy MN 1FNBfOߎҏjK}ES\\FɆs:G#P_NdXyف;G !4/ 213Q} AQR,TBv]LE˟<^@Zru,.kM%O'V U㹴JwHhYZG{ z?BrK1f̖u땤9"Cޖ$4RN9] *N&hEv<^:jfݚOʯ$-80967U9vhej4oٶyjW u+[ҡ֊'>NP/  ND5V@F0y0iPQRe)x. Wg9.蠒z3XY̊.R=xDGS0\7ͩqTKVmk6XOǮÇ{5xĮD8R[ 4l+jVWYDA3Q=<`5HAW4ӥίTZ:DHvg#xsOW=H\bNϧ[C @L|fbc{ǾmJFlo]>bڵmO:vTKBuȽ+䁪tԱY+p:Oġ~.czA>`! 1l#s"iU i8BsZ%} @' ҙ=F3+PۃI4Ra%c_6G3bV򨎽9.c.l, C5  2Jd"bxn3)zYl@lrsHZBcJ?7z ź5[,G연^ׂ^5RƮ<.|`CX=0I.bbsG䪴+0H$R8\?T"p#P|Ʒ' ,"tûAo iH5ޱE㿔KIL.*Ɉ:_}e6h{ҶuТO綟JT+r8ݓۖg@ƒJ}gzdKq3GS8=V|eJCopUk 5ν^b#ė 0öػ7O0s2}8c+CjTg _"d:d45bnIxty2ɈͶ",%7Q{˛fxW >6& 9:H 1ͧ dشw"f}tC._d5}Sgk')W>JZsׯ< 4]̩㬺~<bXFH# ԄܬZy V rNXc1Sh{G6<Ǵ!; e|磌ڪ֌L֍se {Nn;nxmʎ>25Ja90 EVOB12a@rHs.&ٴh<~F>)bW?^-h/D4 9̥Ο#{E5|.I̲9:HPDJE@"yS6ILN1a}fU6=("*ug9Z]nC X;% PS1@S.Zpgq i ȾBX)wwłW;~y~h~q HRg#$"WB͍~ a]CX&1|Ϻ:΂N##ĽB> uDmr2]#'׀Tޱ jG8N:8|=XF u.:ER.?+@/ -'EdS8bP[LS7QB&EM36X/[Ok$G@m+ɣ8 B#H@C9#o)uhXfDc1OJ 4]r\ec"HjMIqYݴ\lg$֕Y lY+*ɌʼnxkԓQ,VY:O:1Z[alKWJ!9+}g̒~hz+bNigi%d5OP}&/2B 't 8+4#4H;tYA*;z<=AxfKQ,d(Ζ*O"-bu^TnW҉W_7p̀ݵdX$-F72y߃44_}A z= !'ⳓYݽ~j$}Lj 4lC|iOxxLOWbWQj125Ũ/ㄶ fo@{wXc@tE`b:@))>b/~\yд3PtZN4tk-5i?#Fz^$OT!r^:TGjkAbM++'WW_IC&v|:;bSzk*Y.׈F@Umc%#FsIZ3TC5[dJ0%4#ePgߧ;|hX/~jޱ iOٽ!4 Ҝbv3 Ue4X\3bwƴCUM0r_4/:epobJX)]s -<3Q!3=LcžvfVr-`sTaR=Ή QmElxN/e%oSzRƺʈƎyG~T΢= v 79ܦ63Fz˙ r/wM$EBGMk1ߟ~#" S"ΑLagUɕ1jF XQ+Qa+cn{v֗Isq䝴^\i/qa=}RRW )e>d2U߰-NÿO72_H [.\*L)_tc2)5``74}ld}Ǣ[IDbrW.c@_.tQ $0G?gw"+qw?8Ax% ޏp^ˆY財Խ]`h%9MBa) Y(+{ hCђ`{Fg'Iqe򩋃?"~ c+Rv_vG<4QG؜D=Z2j9qS7[aj䱡j9gjh0r1F)&B/di ( ;s f?é@SZGt@ta ({,,j*hAxfgw4^ό,?j*CEN=;Ϧ cm.ٙSb|ٙ1̋&,|Hi[ZwN͗iL,C#wGñ) j[;a33[TcaQ>6P̎Đ pw"@MKE?%&cjlh v9c=J|NmXamTb<K:x.3g1W| %k0IO--b{^H3Zj`VR=@iIl9K\i47h2ϝvP%fJZct~jt t; S8Lh*V4JT&DיyȲ W oq$p bj'ÐpCP,0`xu`ځ!hp0`ؼ`40u[0<`  y!8 -G?V5K.q~igDZupkkHWSN"k8 )2Ɏ:i8E;Yt߸Y3ّSg* ;4=\x`iOrBE#=\*ХH `m4`Mx6u0?U~~G$~?)1PeXz 㴘,w9:n5(O\Pfo+e9_}xcn G56Huݸvǵ!>IMs\vΦJu:}^`R9}jsE10&Y7@GȾukAZAt $2 kHbӈ#ط _Nu.oax/SL <U 9b-0s{qAH Hー٪ a+8-i35+wvӇ|BacO4 F<Tw8 z,8M\hd fNwL1k,Cu+ `QLӴ#AWqB:7}X̚^`S|4$*z џ`WpPیCt6J}ceICIcF[!5nխ%pXdA23CUF70`#9'F#@d)7:c@,`! p;W>K@DAh~O՘9z*L= 8˭))59Jq I=>";#RYi0RH$zT5?Q>ɟ@Etr1F.;~ nY8ijr8@"`3“k O _~t~cPe}O\YDf$Q~yfየuY6',DTz7&YN>E_&7%7),Zu2owS!΍?w6Z6|=`Z9#Z@]i;fӌf87U4A0[hZ6S2nтizЩ HworDv3:CE]'2u&t5-HIɝTUe-wBrڟ '1:?7I7މ(jDEg7;.ꮳ1Xމ ‡]Ƈv޿quH>#[CL~->EO؂q8u>Ī7 k|v<_ ZmyFk6jxu<ܾ?nqFsnyh :O*C9TO\xRzbB勑y@U( Q|-Ui`u֫Z>vi6卶iҟG籸Fi\ #qw5߶dN;rƛMUbxtO)%P||]ʘOtU"To8qSլ93"]s5Тi{~ lotFD3[ /6`e'7ϡ]x~ӥu1?W3v8?n~%wn;#7thDۓSPԦu_4/T]6!g|oma4N;p/ ƞ;CeѓLeǿ:)x\KV\m oTOzxK?>$'2!0.?N_QU Rl|xER0#`am|7Wm{y|ht\q?brFkuvfȗ1|fa*eo~hd(`^ 1\o©d0\G2QՊ1M3EER4>BE_!hPU_k"Gܗ@׆Wl. =g nz*f+w$7'5ӑ3Fg;$sԳWB1>L!_u^ujHvs{]ܙVh86;?L(Auˌ3B{}S 9k/^m*PH{@sLe0=/T'el4ya2IQi`1F)oa*Nv'MXxY `b2<5-2 P8g 0rJJ!mv-dEbi;".~:Z8 ,,XZv9}*[,ePY/ʶ+~1n؉'Kޟ,5ء}SPyg4'6eIxUXK(}|PǾ;p[L/oqhPRtSTTcE|緙~Ֆ|ZSϦ})ch˓ (~zxi=z.^?7suz٥)d=UK~_{Q[]d_<fVl8QXh!9nxYk1Ү^/q0#bRwiw;^ܭ.wrdJwjESKުU"4KI*4$6J4E" =MllRH }~j р&:֍MSg~"4-OfO' qq7NA ߢ-|Y4M/닦!Z|0EVE,u/&Eɓ(yf gFPBkX|pjNOdl%O@=BRFiv@7)Xd-{FRFni$eEHJm;m<]H6462.De"@+hgƄ:yB|I$"E~oٲfZ=OldeoKjaW4^[m CѬ|DRD&=\_UOF= 0娥@2Bcd) ~!Bl~۽Veo7G%>Cv #iwR8lR>nE9IF+*Q\[o:4j$]-R j4ZI[{TbQg\YiH:_m\@TmJ-%j6Lz6ne#$x{zCދ\{?mmח]i4͛u{3ApKeCeK{dJࢬ ". Be[ #(39X/2%̴dHZL+M+_R,5rz)~H%Rysη_o}{v9euʖ=~,{*cm|TZn%xu#V#z8M?ߥ=J9$dCf)+9x7e"yJ-ZH~7H@$r75u%R#J~{)}Sm]ن||wS﷧RHKdW~{hN'铯dZۿ|$}!`o?4umU7"ͺC.U}}bΈ9 >T|0>1ӏ|Xf ʇ=Z 9a]~w>|e >&_ Ň^2u|%{k4>>L^:+>hƇ ǃW*f5 ʇ˛ Õ5}|xƇq:F_Ö/+&>\JZ·I4>#|·"fi_mXmA_F9Mq˓GRRO;,+N_A-0x2nO~tBy1V8/>)䴘 ;h"ݪȞT\ܒ #Hr:}>TbdQ2MtɋmQjʰ{d[)ዘ^{eCyNPNl{X oDp/)+Q4 '9/S\vQ\2-Q$mR:}Ilj1qV`&U֖ᑅ@ynWK]Y?mnau!7FB2.7υ҅I^~9u!/}9E;iH[š|bsbΉ-y{ٌ`{{OKyRY`h_Fe-/m}.kZ)3HM3Ź=դ_rW:P]u/ZG"/)ך |wgSb>mg]u'K3H\n.[ 3=֘GMM_;BNv_g}Q[XGL Sկ ⻃\%?\C\wl^y2߻>**RĈ:]^է9.Ō{PKʔmf\%R4I[PR]NZNZB۸|1U 8Vw pBAfH =xm{_|3ը۾TxQ[SPr<3-ohYyBrC_,le'ިo1QR֐xKhY*?ўJ Tg9p%`T9eFb[WX]9z;ԋ~R{'oUlFtPe7&ލ/x6jf# -K[zVC[JoR÷-U_lKޖs[hm鄶ԕ71ƀ[BF~7sӃI!Q+fʦSrϧgN4 ^RodĴpK*MlcrSFvOA5@nkH/|M>D[l㖯Q8X6rBONq#(_BYφږ~ (`d")B\03&<(-HoΙKgH1K "5őA*[9m<7ą$ /A0} aX&*MB ;+S-F{P6l%,ڦAۖ?ʚg0:b~?knֿ+7g]o)Կͻֿb ķ)xPͩt-]wGz>6}{<+1aHOHbre\Nj`b=ߋ'^݁QvHHx:^BӃk +u]ӵ IPwNF7f\vTj`(7bXotfUz~yPS/E OFsٝk CI&5fGJ"bC7a|T+5%}'8b H&UI lΔavxܘ@Mi hs ٞr/wqpY~*5ϖ[YH]{jun m@L&1⃻bf&ͳ܎bzrϤw;NKyT >n:/?eh(Y )h̬@/i Gx1&#Rt y ʩgG}*C7Cxmrʹ58qx"Do-YqȅrHނaP/ "Vc0W@3]8kɀ, @߀L+>0X܄:^_ @` KFJe^g @&(v5 [uf/Q L)U`rQdu =ȖA4t.SX [jҎ?Ga욳fR[=QGvO;Djc|ӹAL _BWD %:ntn '-12ŻsC5DI21 76TAR baqD-2٤u-%RCE}4ٶgO!ngJD!b'ռ+g)<$؃rRǜXi>J:wCxi{z% 9I[ԈM6qژ<L PڽL2 _",cN,d;1`缧ʀRɀ߫lF p}\67;tn_=7w!u<7HS=T4Aj2RPAJK* tssC9S~;2pW*za}zgʏh+eh~>H9 "CE$CXi]vTYQ%.eI9&Tac7X<=WȚ$F#nM?P3o_tOkUFby*lbibA.U (kJQ ²?9 N%)NDǡd-mH4jiu&# Cr@󔱭@;),MFh65qX{g6&c6&Q)f K)^Wjm ˓[5;(dXO\J4%y3mQ ~~n8_{7i>Z 11~x*btc;r, J {Hje* ٬C dhg{\x7/">o ^ϻ%Ýnr-,R^|D=N"Nm4lF,~o07I1 ^<'/ 53E$=D!*߄gX3 ?? i%8]91ڋM傰4+RH+) N(HyM yĿRȾL'^Bj|W䏱c6~~򻏟-Aυ?L5~'&~):7Oq3'.mrlx[Y,.}[fp(YA%ZsmYk`Mw70_c"M{גm`rjw`kk;095-koG׊?] aA))SjRd`B/3j0FRFG#j,pXQFz0\3rARHwZG̍q.B{ y* j.K=]X.K%i|?L@OF͚yѬNFVHfA,&tqѠS'؎6 yNp xXd^\ sS|_gFBOD1R/>5z e)+$efOT&iA  S/o#`1s]IڏJ}qfko=&3V")HVgT{Z[D ? d0WCC/ճSe/ibr RKO)GPJ< R]7.,7h>yEK|SOA/ěg>Y>C*,?< .69bL>2 V`ؐY΂Oip/ˁiݶBҖG >.gSa5K%Vޗh ؙ>'pu )NyMySMyc1]lޔ7Ҕ v{OKQhXXBb1@,#HnY021qG"-e<9ĒK.92W$ --H Q8$  =&DAw I' c-k^O<SM[@:gyDߢ 50U#_ +PaCy^ȳY4 j!wnyy=I#Oe5qj *y4\ȹma 1"SGTwN{K98yړ'%M}&&h*bz7A*_f%.>$+|\POs-c1j`o))oh74I&0 x ?^̄cJi'& 1G1"5y~MMڝ_/pG <Ic '5l]뵓bUbTH)fi]/ɲ/&ko~R &xRvʿWJ::Vrpw,KT@3-:B}F,|0})Si-g^}]Y5N'3 0îq 3v ]uFvʓ'|1kI@(=w6a2=3=e4a1Xs3YcCsүU=FV.f(MOoQ T 넡~YUPx{3g;WU5%ԒHPɤu}u{_]j`j辶sM6 ڮ F= ăY5A?$&+?wdwOQV q}iͲP*Af(9e|ň>i8϶ZQ ʀwX4_Ut$ % VL`ln <ޑd]m|(/(X׮QUQX3.Іu]^W%蕖^Z Օ_1=ȒLo9c!"(kJFTg(З)q <Ȭ3ψkeڷŁ.䅖 \H//lA9VUL2 q_NEmqFI:Y59"> l&$R4J: MA_vaT1Z9Nտ5͓?T 6ls h@|ҍabO3Ǫy7R+<8^4DJ(Fl)Nb77-FwˮOgZ-Z\J[)K*K|v>Δkqx੢mbʩ-V%+.7: P)ޒ1Wbd=/˖h4;=10)&͠$翧WC+񱓔,2 4{cenA|;:8DQY),z5c0XP֑LKF7!T2~g.d<_ X,?L /p]b9ј N Tq#m8[̢S7pXo C<|xp[<]I\M$NEVF]L3ڇr'OlQ/ΡreY[L*),v+)E]0Y_Q8SROv]uHiO(Y ⁉Z3`ؘ9ў=^{ }% 8zf^Tu3HsUY K=m_L$+f+h&|<-MTw9( lZ>$oZ~*cU7-&v-*1O?nvwa Tو yyF ik\5Ynv+Dς(+Jy,d(*cvyX5`*a oHKHؙ%XuFW|ּص PΧ PG3 瘻1v非Uǥ'pgLZlnFZwK͸ ~hzm TpWߦ4+ҤU_s9Nm^{KpRmC稘 $]Ud➧2rUze+]tW2.> %0 pԸZAq d|0G C`1Pity/m( % -iu4v׋GbS?y{)^^ݮ!`2q*E$,e+Ҷ*=@pAlV UDlD2nQ?$=!L%ĸ'Ť&CD S?LaB@ >,I-SC 5#I+c")dg&AJd%vML" S&scx۹Gi ˞oQW{0tV-E՘ [E&#˦/ NNӀC0E/˫T$,4 ?]%25}7sϮ-#s.WMsJ9 zIZ/8}drX8U!-"(s2ҝc3zMOy0/Jf0Խb܃4S\<,Jjڀ$4=zc^ Jdi }ܯ͢ӹ{ּCVH[z2Ha%^Z `[t+Uk:։eԣLW6uk|E!-WHZERӖJZ[60I(Q~~.Y\Gy2fŐ:;nC&zp2ߘSFgߘ%T ,06JwhGE~4*,V^}JUYGOfUpYEU% `*z&N"AE9f sF/_6I؟O3ە_A01.Q) y0nHesv+] (?x,*rsI9jIYxRک%](% 0Gi@0,wPөvT Jco]Wˋ FYqbż=W^E/8q1̭;xtn/>OחUyϝ6>b-oj7rYaqWsK~G0q81G2g3Vڲ7Y83QPvı>H V4_fH?+o`3 $Ϭ@{$S.Ԧ TmƄ@6)MX U(*ģ Rx.Ηx@K[lɁ KbheU1G4NmtiḭV}8nP8nƝ2a p 0AT=vf44@BSҭ/DB ͌0f$4 ,44BD!mmRw$4,LVCC#GB~H#%lZtբD~ P8LJU̠][lPBzIbwzO)Gg=D]O┽'|hFQnYiYC3Sv5`*1ʿ:b*9GTZ3MTz&_LvXsqECNiJkb~ЪgU-AU' $Q]@#ǻOy4 \*QѰ B 4rXh4YיڄRK@jyå݅.7. rmP.}:0\ZҖcqj(8˲s _ċ25[BsNS XPtDv'K=s w:_)[ Cy…&:ُ΃tlAp:*Oy~w:] BC9ηG*tp:6g:#z(<6Q&<#-k350Jsk%0hS[kdS@9]jr`g%}֎s :-P}1-ss xL;i ~xL}c ZhjaBcJ_ǫu7__)_5?Jl[{-]_EC7Fg!˿m6(uӆ Cg,⧅*}t0(={=*5.[yG$\tEo-Tx1lhV~@{^$JA#K-Um]tV<$'W) 5TuOMyȜ:K}7I}z lUS^e+.Z}/Um_Sd?IiGQ9Ct۪,MQ]hǘbӱzCvI6hޞYiOU ؞1X&F{5ۓ#OC{hOxcI+5wڌ9s0{èh~|XR%vV<6s}r~i;RrcӡP٢#AF}^dS}*p}B Ks.>AKM4jx^#^Xg*^qvf5xa } {^Բޅ c1/FR$XP)xa^FSukaAYm vXn'khb|ܣ m^8S$EIEolYһitzn?L:rJE$|NcXO =Ϝ63*nNFĦ:Cg`=M. 'veСߙ?kJLnzO}nxb-LxbÌ>jLX׆㉕F\[aD?ǝ|u$CowՂWMa/?ZtÕ3_-_E3րAɾpFSMBh?Lߢ)|剘?WL5< S,1bX Tu?$#UVO>|~ZWd4RL;3V~5ᾓӊ2999@BP^\` Sߵi6jtsҌ+67MM%MQ-j17hײ.Xp߹+feWL0_{Sr+4agcP.WD:Hc>H8ABympȓⷁFu뙪 Kn'q|OT7 e8E "X{z٢yg (XC1lXs]^hqu8x|驧74,e|ã^F8{'TE{T圣3 Z6!X Het3*?"2;.R3 ](Y{+2_ڼ|rLloS.^MII)&~X?4Ȝ}^};]HAuib|Mݎ˝)'Eexn.*F.1BXOuSn_d)YE$2__G <=3WqB46Ll.qޫhM211E;eam.e"׷1g1Wo>\ {J#p0YjgC+v5t}2HS毠m_-?J䯔&_98O?;#șI))aWZP|+A0 {PQ3MH37,|竣1Pnf!`p@Em ƾb޷lDm=}ojo(,fxϓ}Ii[Za,IȔ ie4ɘKR 8Ն87Mo_ݩǥK'J1Emسa֗ iiF3J3SӨ'Mti͜4A_Zv ]ӷ`3х⏞H0 J>tZmrWrV%䦹JL]a\KQZߗj|Mӿ eKy-jOqFJ̘ „7$9ߟ>&?i L I7 $+j ?L:/9z}N,D`}; :A1h*};Ϊ*OR>b%i kLO) pxYEf| \EB!ݳ)NO%Co phE6ܵ6q=2Ml:{utiBugxvA0(nk1B ڠ E2@ C Z+ tSmr[h}!hxJ<4 ݦx" >FbWزfE+ ئ*͒R)2/A֫[/ ~z|3. aC<g3y"JEC3˿'ƲI6-D]w ^Wus[uTn[vֈ DT(lVl5l_nSă?6MwH󏇤Fg{i9tJ J{f16ŸapώmL93~W 0|':;Jk;%};.tӿ^g?^^͸q:x ƨ ;JWGѝQ\l +B A SHuE s8)U-Is哗 mS˪)^͔`ʴeɤ6#ӖԄ0OJeYvhOC>Nn mН,ryb:=&NYG(_;Vǜ_GLRDf]Hji O$oL9q.@gUOL*kSWy6ҋӚRgU)ͯq)} '~$"ZtzSHp +n0 VQ‘F*bP/U05켆aJB` ku%Vi@ +!F=B,I[bQk /Anq^yb6b"cA5k3d?Ϝ;:郀f< #<iCw.JWݯw\LM%A J1;ȷoPյF[0Qkw+iO#1Tmu# /v B\^@nwh66ѱ6-F n\&G%ʰ nM' 2&}5 t@#CsDf*GO{Alo'=fv'kuDzl(6,nw\>Ƶ^8;^x7k*] XuqffTԲQ;#cPA!PmJ5C HLִÕ2, 5mk,ܭD+9Jg~V<}= }Jg~hTCw8OM?ts_NY?Ss6}g8s(Ky6-fݶӿtq@v{{h~v^2IIqN&撒N?@}>?fȗ<(|~6sg)b225KJ ^Qu͇b!Ԓ.ZX1ԒޱQ)/IN$fW֌6= /~)x$7HT:*[ ao 輘!DX!7\M2 Cys!C_z!O& ;m*Cmte(Dr%nx{`U,e(E22HCrY2]L2J}d(T9P>>А[PP(C(2 H yլfNo>^')OrT[̅&2t259 P8"zId( -77 eI eP $C%2k`t _mRҚb0e&)H LaZc" Ne2(aN4&1dB5,Fy.F2M2j,lY(>{6$F/Yreb3iaY_ 4_͞~=V74\ۧe RF?))KPF|`G|[W>~*_ (_9q<ֆ4wkNǻWlOo9@Ʒd2FpN4/ j`Wsh|ֿW8:e'{}}M3A~ѳZTz4L}^1’"(3_l n>㾆*7ZQ$ @wUh/݀r@Y޽4_"P=WlY0c>r ޖ떄̪lg=EKR${W$u_GYFyA̲״4! V@,` rQm+Aa=,㽈81:zqOabg88Қ ǪzCeG|pp\gF8.Lpd:C`bR8갼bo/m&Y2 *d/Aӈ$E@6?LES[9UzHf )fYt]6.L=MO6[6 #HU &LS|s^dn5?%.אo2NT"VLB 1Dy$LX 4hyp *t*ͦz-J%7$8X{ ASzNJRE+UOO;VώS᯽08G->t4Yښ_ۆ% 4{+s6O /؎XmG܄0#:>aW>7َ=l;RG#:~lGؕm7؎\ڎ-,c.G˶#iQh;mG|l3aeOfDxr6F"N/p:T:DkmnHDyg41?FFmhbwv!v!z8o[5e=Jk挛[ aojbSuCxV\)ViM'w;F 6SRBkSNz:R+GOTiS5R 9y8FO]+` G=m14N-m=U\RvlUr@e~ dh1N,1%q>+ јx;;mpfp|bALbfpDQTďܘ_S6*mTMs஍\9LcWCNd#S-LJšGErӟd4pJTm- dmh[(_hpFaP-rƽY 2)ϳ@YӾ|aex~&X/'G-/neD)ӭ=3~ " l5@fiv454E(\Ng(eqOPWR}T*3Q0QqO~FX[h4'Q &l7Q^χV}zMk.bF4OT^xmMyKTeUUyLoVbD(0ʛYѮ`峟zQ~8d'|Q0(?Gb>CM/@Έki13KL6 ͺ 2zr<_3G?:OFfn}K'[:)`rT0:WFON܆gF*Ϸ!.~< _`i͌\jv5cX+&Z1Z1ku7>%Z;~pHY/da 手aNؘy+fI'ܢ[_K k.W+{?g.\xx-/+vfRC|HBw4.]3-BѪD|Wc֙F?:qh֌Ap_=M@DXpGtm8fvHvx #Rߴ;,3H۪1X#LtZn[E7zUJ/T2PW!kuACRAfyà <^G;:;9FQ\.D;kgѢS6GՐ:RbԶHE Cג1%XS II jZYl IZt*G 1B+WtWVH}0SLjWB+6v[ZI~E}@GatMU(#Vz^HeT^xHcoYcNJd<$9lF!!櫈d)ű(V(xiLS&Dͣ_ZqERh (44,!K>Ñnc$Q4\of(e6&U3v܁x7bҭ5o/>V^ʫfc@]37G+EwNnruli ty{0}+̻E?0<'}\҂/HU5==IQv.|ۺ۰۰g2y. Ѣ}G3]k UB0#8\j 6$W1ӏ?m)`N-aGl_pVc{+)kEO s4sD3o(:?@9Ϲd &5Y#jc>ڧ-Qꀽ[ZiW`Og!c=15>H2 bd]qˈ"A%`[S5c-+Sae/eݲlLl!V $LC${R%,D72oPiQZ?ڎ jRY_Ʃ-Z%o&T_+^Kŗz/sٲyH` ,a#!P^3U\JNӔ]uڻi6i5)]A7a,P1J^=WbeIlyJ1F&A givψ=MB[1k`EfK>봹T,Ւ=f>pD.xV*7삑+guM?% "fM{ʄ4$e(Ekee+ϑqI I˵ɄT(hHӟX7٣&j5ٜf?nN t%if9!*?a{嚤pChk8ƫJz * LX8É >m~tO eOĉirQk7G߿ܟ`5Ït%Ot1.\ +7rsN9 %}W`_ȼhkɘ/%sng/ֽ|g ٸu?ZYz.h3-m%c(Ԯdhy~VQ|JxpBak mj- r9b;l/h13n⻌BEU:6(S+..8K7k:Lyi=nXI#dL41ϹFDыWa`xŃ7a7IjaC8~6 ]ɻo԰Z^wKQ?-7'x6qT3w\Ы*CN}HN@O+.L/; z|~??7,rGϣ+:UzrQw|G(Z,ܓ@v֢ج;%Ø׿Cnugt2wRA'1h Ac[ێbHbj)'̣nX hJOτaSПA6J<'kg~U3zDVT=9dO͋v]'H﷩ىr;8$?IRb~?߃%,E+t"L m[xR.DaKz c# 7aMݣ=N5Gr>DHVَGlS.x80qB]NЩ\0m|e֯A|M]0ԗ5 X>؟OKi@5u0;SK4q~ iޙzOq>(*B?]jhCd5ٽQR[OL֐19VEGGY2:E}N`M ;2o.h[α`Yfg3Q3 k'?EEh2;n{K:: :H2&fTZ3l(h)#XH20 ŋTQK6>7SCvcŵWjp%,bB3#A1bBM@a>w75Ħ.ǥDQ%*I̜{$>Suf$+^QVkƔ=%-x=ĤFצt›hvik^ZOݜF/"2Vܔ}hjS K-ityF,i@ZI3I]-12~LI3CP8NNpZJR b&ڐaH".R6voc#ffؚ0 ev2N*LOtAC)dhCMkd5f>hQSSp[-ZAPҸM^l!Wo=I'?$c_i?$6Ͽל=syi(X%]V:Nl1k R@f4:TaP9>AI-A( PȃO@% \>;#J[D8Ȳ] _\Xߧ+L dIg :_D6rm!^kītUR1e<&YMָ@͐Ĉ9^gcH\:}ܐ6qCFϘxh~_~;sE[ː3"OW{f@d~m1ه6gsh/ؗdŧ`sM"^o!N>L[ .ƱI&2%ZiEen:T=Нeu{4H4cgmbog?Y{ZsC|o<%'6n^fȷu{ci嘎˛yQ.RUjZg`KjGK@J dh;2 ؟DhAV{#'&3|>l驪͓m_]}ÏYE8Ϟim~:9d odzk3@^̕LJt HVҢ`mkL@- lٹq&]r}^ uNѶmWmm.m谓 L3bQ0$Ԑ^Ӎv1X yOA<•(:wG)hcGȒ:$qY\ܝTvHu317!eRU3jV,X$RiT4O&gukjA܉v{.[Ȫ,5~XgM(6S֙LY3w =5>HF0&!q lcJJn.  UJtl%R>B# \:Y`2{f{] 6 {ԫk4z }NjSvSօF6cGsWKwMEI)2] un\Rb pfψfwH K} VAÞv %хK FsU]Jt :ֿaͦ jKU4;wuRNL͉I-spbj]QѺB1!*`uJ9nj/_H;WBٿ.h> T-O#ᯋ]f08>>p3f+ 2Xf 2XDbKjWʛh1_A rQiHlv_%R'mִ]mBgh''4NfH,m`Bʷw6?-p d~E;ujyui6zP 5RQK\JY/]4/VAK6܍^؛E9h$Geð)nEEVXVڠ1lm9;5+INd퇡VKBNgP f|vXۄ`ش q@O$YN^U|"M +'oOA3.by׷XWLpT]5΍foG7Q|.Hv OFK}  s1opմI |8^LIV5`"|4fX%7ҫ1?8<:K-ʫC| [vf^VtQ{xt4BM}p1Q3^#&/7dqb>yGQgԌ ΨϛuaѶs/r8Rs5R\8Q#ad3lLLt4u1AhdŞdbGNn s>oolM|ʕLMf^cn'ڄژ³@v!SJz`.+w8 Nao"}E#dÄqk2amJ6ʨͬyƛw 㽘3yBߨ[4bL[H-[HBnQGr+\=S-cR^ P>.P^哛ʏ eükx55i#v!Zp 1eˑ@ަKLT%Nc FH+16GmLJ>#iW#OX)5(G@KQ]>u2ɧh*H¯-"#vX pRYa蕏W#Ƭ~E|"fkRD@4$Jmng9 ETXj$h %w4O%tRBh- X,xs9IW2hv게sL^z t1&1U.V}Eq %Fa)t66-T#VS:/h>,j^85D=%Xr-t{se'y/k|9_ݗKVLRE +7)P7&׏Qme6$1'ӛ(*p}J*m/+cIt~3p0/1?*˲we ]THr-eʈ21ejIUMݭ-dllXvi>UF/hv`YN\ ^Y^ }/o`'˽)La[񖐵6d8q )4t Fo2^ x grο˨jxU'yH!jU'#'@dtXE l87ɭ`c'S*-ZW_r%d>%L+N9V`4ϋ3y$s}1ϋxI~9ϋ{\u-TFORF\F)e\Z*e|cfW˸IX"eܣјQN22|RZMZ (àXu6|,Tc'垰tתN\8 UbkR.oy dAosT@" K)]Е]ɻ/dYIsyHT(BBlr'8${2Ԭcs/Cx D.|GQbY $`)Gj BǯCD[jb\" sp,pt_qg mFV7gA(Ƃ17c=a12K1hejżဏ✴4}qfX9/Mwc)=A%Cwᵃ& vRtˋl.k'ˬtA|#\I -4O0&"֦ZN}oSGn>lz!ËxMV ʰk'^ [1{J^#ywiksܯsżC+VIlVh44ʢ|FuYr sNq4P,Ar&!O)/xJ1ؓC:qQSNΠQ},*O0o ?xˏ AM ]V޲p< ¸RR1/UՃA9ʅ-\"_g"D.A{2Q. *rKv~d<[݄h\Pr>Od%#:XP <5 +0 F㋠hVJPůDw P3”N+Xh%EX̸N'#y?C.*-^C7?niMr @faVRn"W7) -MGXj-D,i *) AbH,Z1?5?4+$JWBd!<Ԇ7sBJ%R2OU뒚d3#aA#ۂb {#!$(Q$굽I=^sDMe5Vކ(i Уyd@9='qA^IݐCJeZ^h-gce亜>5?=htkit«9{0EPg46>XiT82X]K4P+njj6ʷX Tq ]9]{ ;2$KٖxH;]gP`xP7 :c(f  a B"A3s]2 P uΣwy C/]~'P7t nk'W1m;t<94c( N7嫵6FDdD`d\.dHucC-!%NVC7!3}Zf]G0%}nz7`/\ł/z/z5BqrX.k\й#db3?Ul혰qy3}z12cWX|`?Yi<c9N*o31x_)(Au`)Q(.`<{fԸ*ylʉvҢcP8n{s|瓀`4~ĚF[$MMpiGL՛\A3rW77p+HŌ=S%^Vmb6,Wpg&?mKbJMS~uveKhXߟДskY)1,(zyAww t`?`ɯTa-,>2Kk OO^GXX^3ݘu}y#xEـ$@rParK`O}D`e^3LxA$~dи!d{I vӠ~bB_s 0gloSeCΝΛAL=Czۘ RO3L!sIJ,0B<ұsR06"`LbM.k~A9DޙhyKԊ\J'cj3v<-B:ϛ#EAX;Nm~w8U&V%RY6@GnEIӢJ&>x% 2y %TOe`sO|h#ɵBavJ9ebQ N%Tpst0Z]] MS"DS!\KE RNG)<5H~ Ar2l^8?ԦBnJ8_o5=!Hje m`#p6T 6|MFwщO("Ho1A jKIE6 w"Z^h(QA.qjNAs+AlZA{B%5Lлkع([5B J{{PCP-oXcJ  5[Ib:mpzZAzQԹ UI޵0SGΫxgEH*W?CwҪ, 0bd9^mǠc_Ⱦ6eRmD7-OB.k4ȈKЩ˖©#X?+GH RyІ*|>{XHPwqMboq!^*v|%̏\Z,]D}Ҥ0*]IPIr|HOxQ3 [2l4qo"`>R Lle7*YqUUN עNz]\0爿N[ `Pf'C#;gw@* )# _`7 Ch.o>fFI!'̩kj~ :X b1F}S]=)LT$+! AP`GqaSl'XhBUZêDîJ (KbrcyFp(SA+g*C B鶌]@tj˅yS҃zB?mP9=Oh𪂦HlYIO?:i;\rx%]Z -,DLBy NRxP7a̕j +W)$+]+ 6>r%|B$`'`O51@îxVIEYն-\*.Rq>oiK1@.e[=ta38ݷhM\:+|YK!g˥>`cq/.%{913Iڋ!PgtþEzm[|' WdlS!5Ӈl<QMBatTwKXo'2s΢ + ةT]S`Yƛr;$-:'䨟 [ŭtB/΍%\L/YeުU|+]n砛-h2dmrèn$ۅno.qF.V!wA|.ۿ2w/FL6|+*F5+w=H :m*(}iR?R7_w^M@=U0F|On[K,6)CGoX߫2AY@ E[C$2PKAp"mr'O7N2GhʟD ޠYݍRN: CL1OF HOB<]6B]{۴VJW"Ob`p [i,=6U,p^7|cwh+W.2nuԕ5eKm"WW3F+#-TBŠ\++Eǚ+V*{Էbmz# l "Cc  1& &fdrt#~:W=[uG}lt> }YsoO>ƃ.\X.I>{Hg'(6z  jٞw(0fhӽF"A@% %hA@zKJHMlMS`i`)!Px-1c`ȉ7A{\=,rXM 8hJǡ3N^Roj&aqiz0[CV~*ҲPc+0"oJ!y@E$ZDiSSAXe˹d@ڛq>2&F&#+(7yN`sfmYOU̞XB׫BDњLjUU*շr~*ִƪNpv#"M%X*Qꟹ/!tec)˞jBϔVfZY%s.oXJ! VO)γG^|<(|VIqV5e3WHj{P)L;MhAKtbR ^@P3fŪ.>5J'/ la5LW9\3pD+WyQ+v),QB+Ӡ[>C19FyٍB~1vq>bv21O,A5rŽ'@$^""Y9V=Za!'~9^B[25 ʍʉ@Ѱz%)6a\Oo1KǷo7ڀ\׊2L!5,ƦU*T'4SDwHQDfcyP~M~N|h:, d_w`ޑWg}ʀm} hL;r0i¶gJ׿esꔭ ua_;s&#^*.WU5AF%J2<2_$!XYsVebwU.O ?}g2u}xЗdU,ޤ;6xZb\<κHR? U,3pp,RPJ'P%3}%?}`\BN, kZ2FģB/KuR Ӛe$&r% '43\'ZsZ3@tJΉ}`=7uMhd19QH 8<DʍPj,BەV{4r%QXxx5quʴ `)Z[)5TQ mz\I6Z.H1H4jɴ ٘ºGyul=G.~%Rb.(<8x?8_ h3L(A[n5/uj >X : Y'5_PvZICbծPq V8a'^AN |A<Po_rAf4<[8*.8M:8D'q}af댂2\}5!D&C!9,@&lUO*an-`೻OZV!yy"ReF]oe) нc'tL9E) 籷!m( E:%LV =Hu4c^'GCɉIաrt[+Ӱu2x>i8%^$JM(Ǣ2RX)#`.rKP+C,@akdmýmM̓m(6/{F:2oWr7`JϾ*0ڞaߟQv+5D;!vY([Svw%QVG|s/ bm% BAD( [ĆhŠPO<(x֊ J8$FTx$ wmvk3潙7U)*N\㕻3f>& vJ%=&>5MɄ#iPS0&b9)cP@534Y8 U, Y''"gF+f Y)Bg5h!+G*Z_j>ݩ ˔wuy?c|]Gi6a>xˡYSi|!Uw.VU#Dk?p3,Tz^_uʍz4ݨOTq;\(i.5S_ݍZI=)͹\8n.AG2 Hto &6DaynW=.eo'pyEYܬN A=#U'e\RsX@LяJܕq~N]fUys+>7$y&#l,Li[f C 9&骃zra9)P̗]c&c@}P)&@ ɿ#hJŝE61nn31FrHBsX}gy5?MCf NdX[|OD-1}TCLJK@oLK3([vٝs~s^QÊ!YY4#t=c?Bs a%Vr tmyXXC}4 Q;ju>>Z eC/#*T'+S ib(P _c8uRH{S*o;+l Y9WO;A(':1;B 5 xOnB14"@%Ҙ "҈$DJgBW+rkN|Y$akx'g3Jˆ>̜ff,Hq⡌X> oyijyo6&\gBQ|EΛ9T}Wڙz '_z0gk ړ2e_˚\AY%É"qO|$?_4B,߬ /ЋGa:JӉ);h1vޥM[DZ.6uaXّ&c{X7?p0tۥQ?679SF4.LuwњF-QF$=^ܐ di+O2nn\Ih|s`8_hFEYjm#"@Ӝqon3Jla 2iٓrq Ø6!I6@0TZj5ߵRkԝ2ls߄JSV4];Fhg0AmZ5.s5jIVTn"up6mݚI#@g,\RpGTQ9 Y '@oK&DcۆnhjΪ-h^r&'5a;5A|KͺmrNsʘS^}/Bb$Jj62&kؐIJ|G^.A"};:+۷h_< ;1\+=>{t:ӷcmlgp WqXIpQVp6[nB4Ctӵν| Wmm5.nrnvz4M:2<LMeƙ0+ˌqs$e&dP8ɃM [CBohW*e0{]i3r37{Vن| izttT *mBIvERDny|L55.ă\sʺ7 ̦EYһ1Mo /ޓP4)(0$]rWmū!ɨTKHq̟Zgoar "x!%7K"P#FR Z6»@hRhწję)gD2`[eCH`fn]U/T5"#r,gCC?"r ; (EvA5sDL_;a-YЇ`#10aYCZj3K xg qKӁ8CYt@|u|/Ox2Z`ӐҐq#0vkHs;c4m|VG|hdIus4.v%רA L;Vi+K?O[hH«;SwYado e'Py̲V˷h6@>hO/h8*WOYa-&Vҹ,︛us˖G%}qduQ @&G>مC)?Z(Nf%:F%qpP'z| /ԉD) ;ƭg-aЯHauv>Erfj^On9 YFd}M*kSfp9$VDm682HĢ5Qum>sYyí~9Y6E wUY{'ks.k,B3jo Hq8ut|eܘ+̕ZƇ(DCs5ZIXiBF)sC`ΟBkWA48}x]{Hx?M'mׂM?lt&B/7)K#4`J/A?H?./$]>Jڗz&|\y*A`&aa;߶8sdC^qkN_(1̜(WQN2?/LPAr}sT&C(FZ'У[0ͰVw̜ۏ&k elk9G]F*5$Jf gu<_N~ DIXV fYUXЉevTYƲZ| ɊHVlwIy?sޅIFmCHcYt`aȍ2/vku$$ߦ7?TeuK~KnCXZ;P18Kݗ#d.32˖T#rB }׃a{NaFW]h/d7kN ؉AVOxA<|{ ۊn`k7򽔋 7z?e:6I(PRN]Զ#_,){Q3:k2ⱒ:Za+HwI.W{m@o5r>|\+bIz4HF6,m^%k+W[8,>jJBWގzgö21(2ع9z2DKm֫X/[`H9n^4H[GOH]Q/Δ+On]')"/V,$8GlNܴRdf (o5C!8TMH~daJ>IF6dYԈe[ R|O00N`z:A&<3;С#>ߦ\q,& EMUG[s@.e~*\om:\O}p 5C$,}gmd~\깟.LKdFt|P>iFOnFp}V׫ Cp%()3O/qN6v&: 5G]8֐Z+l.'ٕ76y 2qς,ڭ&$[Qݵ3dUo>%7 Q Zxr|Tn^9*t vF;js2vU+2wDCy1 !ߊuKZh2v\ѿTo.߼s/F.ߣF7.\SA%a?T—7?Oosb@=|_0HOk.߼sOdF?\~N#ٌ#7>Tf)?'Ds_*/mƄoɓs؂'2᏿6ǰP}vᖱ=xHuX^g)2u062=sG/feDsK>62?⽃AjNS({ (3|aR* P%tZ ͰAՍpmH?E1vd^iHJ1kC+]KٜpZxy>3gӣL3ڟϟW5{oG\y)?J} O@NOҟwFGp%R1pppt5WO[^9p>w7 }ujqF.?\~z#=<.1H70?e#e.f#{Fs0)fpYǾ8% ֭Exf8}}bO|RӘ>qU|6*&^~>K|6>]Tϲ|Tsj1O$}Zz~޴y??5? .RSRԥq0coj 5;~ cyw3~7SǃE6,x|qn~5˿HK5?/bY+<͡?~' 'מ k.3/C#6m< _{n?5Ev)%QtDGy)udQz{9M[I_@-y>=/]B󒞋fq89Jv pl=7|L\kADd:D#J$IIPFQ4 % č/C` SvH֥utܳ@`e\g>DHm@VH`r@":b,%q\B /\ S(RM.Zs%[I G⎉|tcFMT~lVpk@dDFp{|G'=I>tAt*'D~=!oj[ߺS$y c싳Ȯh| X&2K:-yY"g1:{,x>DJ[+Qb6}Ln$>'/ZqFn֢Ey@l*:tQ1 T ^>xk HCSb +W@Ԫl& Zan0P)]Ũ5.0DDQ.IT>KlԼ}f7#zn0bj Ğ1X 6Sf׵ M7#iI4R6~{ sQ;~@-a:j/ jӭ@PkBMx4+_emz}nmeBwv0R{5J6!g:R[עg_FeWe|P4u0j&J>3P{kX6.A1= u˄U!,v,yau/1ؕISHPȵiE =- ʛL_ : qB}ꏿ#+ {.`ۢ#V= KkT>~" 05,$|S3aO p<ϖO |Dg|='s7,>/:>T|zvOkSx |6|sD |D|O]:>wW> >0ϗݣ!#|ǰLvj|Ny|ϠOBsO?gO=3$l>"<~.la{֐/$n,9$ {lQ*w> ŀ&$qN^:*R %BMxgϫ UCNcĮ}5!vWbǾtAH8(2bϫ6@&&Pt.l6f6@/nn[o~:cs zNSrV1;r5Q&oLn<'[S'CY|d1G6öKȜMXn8\1FYqRT)5^;Kto }aUsw8p-o|E>(zJT;^w':SE[Cs6pMQ ycKӁՙ2iR.E-ܩ9vj ^U㏠ CIwdδdf=K{HH fl2ɍfR2?K,'͆y6̉0 3|$.>jOLWpxӾvE'hr}Ф^l5 I.(\ZY.cT-:cCCB*d*zII1moN?plD?{&H_QHWdg_|DE( /8FK5u\Ƿ2ZG#,M[d_awM"<Ԗ,]?ƆC(_i4ϊrYWe3(BʎOC2B W,ʋL+w0ۭ{t p<Ӏg? 4)0U O/sU?HAՑ-,5% Vx)>25S-&i~4/`ݢ߻SC_^<mgNw_? |ܷoi(vP&?֌?c98>na-+? >/[|sF7q>`~Jx~pęy4@+xf'r0Gc"ѕ`Cʬ? s *?o;=!ԋhYo ӀSRRmTyS(SѶz`[\z1l۞=8}k6jMD.| }j~?K>eG $Ol5zfV!=̓ߢg.:77f| [{Wh+X*_(Ee^΋ERc_m+.qVI^W8֯^xJ8sׇ((_vG>p >J ` @[qVڻ2BFuNW;ѠWFcd2t7ɑA8J75Q >*y1T)¸:z>~7NW`棆Mi>$^E{ X~}pl'.{0K>j@t j}/o|[ZM}Bͯ1ɷ?7Ɔ'&6P8|6 < ъX<¤a*{lQ1)^6I+ 'uvV4y`| 4v_ϕ(+tʟ*@yi ߔ[ |Wߏ&\, sF\b!8cq-hA$hbѵ|$!JziF =[ ,.wC! Eg-8 &=CSdxIT_s dH gm6̴jf8\Nb+5wLu nh8J37(>@ۨ3T~|V|._ZBʗMրk [@ } O )c V.]orµ:,Ϩ%?` K\KTBA#~jŤx>u=)b)Y3ۆ2k%ஔ5.E/ n5e)e` ³ |.X<>Cv0y/ 'ׁtx<'ݚ`mJnK}k8}kN|)brMb4ӮnneSt>m eA$i3V.-vw΄Z>Ơ]$ ݬeB[OѮnh7&S ڥK $K{Ch׵w8ڝ J͠Uo3.u]S &25ҠfI;LMڽ(ܩާ5c~o{ʶU6p{K>-v5h'V:WIk!]~_sQWQ5c-P4:edɾ-n'>ULqfyLύ]NAJaU|_c͂sa;&{Ɏ/Sf;&#+~~9% %:zO_75GByK&:ЀΏyvtv<%t_oU@ ?gb}y :/\YQ>3p7 ASss6<}y:sk:}n{Mΐ>K_8-T=c'1&."n@*Ҕmܿu &x>:b*veS ϴRsǙ6s3m{dmiGw7kGG?n}M'oOɡuòH{Nާ zJ{3R?cОc?Ʈ^,mXBuSFNL9THpF"5o\\3=866Qq1zGqOݼqTN˾FL v͏~='&qݾκ nwY[$~$dO&Ԅ]$#&y]ۃV \64] ]''ЯerxF}!5Nw6o~P E<Ґ~~f{*:S2=N+#c6"8͡mmmUCCW!6`8U髣ZtJQ:K?`E!tMŢN45ENvIm8Im6b>+FmU#S7ڎ?~~ qT~Nh5t@s?^c6MGaAGtẏSv+PJ3R K/44DZQ}'sXY#f'A*:RDn S'2r,jR[{"QH%{$'}a0." ?5|tuP'4eI^ 2^YÎ;<>cv|P`86G)ii] %iGLaBm@H$W83@,;Gk(9>eVv V ? {[ V8X'HQF&:NT;_=dKJԴdXڤf^6]Z9u(H|lUdnd#ا=0bQ*LGr49[_JNZ=@!RϦ=@&|Q[VY} [&viy~rSf$3{MKʫWEN\= `tnXxwۊ)4:vl޳ϣK^Q. x[y h}mkZ>Wb+o?WGSarBCmL_9:x,+qz0'zA]C~L8A/ xZ+~ZƏR}:cUʍku(l +6 EcsI<VEGvT_HB"σ]读ۀw]{h Zm.Gs.]8 ?~rճ%tB3d  Iŋgu}$d1UU ` Ni[QZ_ߢr곲h"Zu))UqP7^qfm$=ּ޴LJh??YGAU3Jq弽e5qJ8\s,S a7.Ff>JԒz3&ᓛ˅0nlh ׎.r[@Tܻ&xMȄxLqL`+Qѷ8PRJA%Zh~.٨nߛ :Ɨ@ߢܖW J٫#iRmGGF(~@!sdcS­vob~M~ѵ6;FWşَQLmǨkS3[hd 3~?ćcCRՋkZY,Y}*Ai*ǜi%&I==Z!2 9 F$xRG 3 fM^nZK~Lߔ,㫳|LW2>Mi8ztOToj*̝ZqQѳY>"sW']_s,e^[܌ٵ21dw"KSuh:-(QdLOUKlj3ȣz/:>ת+;ShP۹_=oXJm7FzBfU8Y-FwUId4W%&Ƨ:Mf`]O lk1v[8 Ji=͜}JKH# Фx.><m >ΗU˟cPEpJF嵐pРF:A+&6ki4.fUrClz6?"{r~dS#?yH>y -n (§ܫ׾z3:I9hjNmK0ZbBO9|E4Yɡl9e6vreBJ #PIh@|MsÊX\]ݶ^hOfVUXA;7&-hIv.>PFHٮ"l4x+4SvbegYl&N 5~6+X'aN݀:pcvxVj1u3}=FgV{`ʊM_=u ;) 8U/k(}u&'@o2gfd. ˬP5|OfG[ /ZjtUdg>hoߌgakERP=`qjnS 2_Oc``Nω!7(.)˷UJOP: ~8@$Sfc`s#Gj!˞qgLLpŅJ HtkUH[am|oZ-խ\Gb, rUc!Ӂ@؝G^d8TeqTj5 K\|B& Oswv}88Yu{=Wv-:~]F'u'os[zܫ?Rn{ک(V9Ĵs⯩VWKMÚo<"  d!A%J YK H` @EV"( H82F'(x$%( z (5 rU̐ }8/^WwWUwWWJD!l14NNuj _ -p烂C\.ӧ06waLzu#3F892m^G~LJW~u=;%UKO=ONu:+րl'kTeyMD6Fz18ʕJ$R\έ'{Ձ  x֌n=;{I^C_ˤn\z;&(̡͎<c}&No}Ͼ/s}՝}}A\cV8 8SVmF栾Tu?ٍb827l $tF2_cHdH)30<kG[2Vx?1?,gT"ΈKd6J;IB{@NòTcv=C Ye@$Xdw:t3oAJl[X'[[<جTqâH]_Fg+ᨥ:^B'A z$ 4A 0eJY!lq -CjSo /h#_uq/hοNvSuOC}Zd;Q/2dhxlPg64ӆ*V7&H|#`@xop%`Eڎ@>]h6/YQTR.=rIY [e=?hoRfk( oV]Z6\FrȄс.t5yO! ?cV/8oc^G^kւ~6gfFع0΂G g>h0댝vf=c`\;N(7oE팝}n7u_w?c BOP`-` X ?3y**]v 4y?6 XX/#DWZx-6~k#k[a[k9 U~k~k+ z7ڴv;ӠߢS{DNni;zQSߩt7uwRf:{LߛI17N=Y w߸k ֎,D5OfIYT%dT!:mi51yLIL9ű`v7qSCf?¦ހ| 7 gP]UН ' A⠂DʯjQ{*4]#DP6'7s~5$}NRU󆑓mz7?/PS (u (kLȎ@zsX\K0*|MT(׳Ӊ׍1au<6Jjfm{f͘t@c291~w%!5j/7TXr(:7_1ZU} uNP +ٻ^v)0JI1OM`":]}R_1v\]*r aHl7T9PULX hV@4ߠ,9*Wiv\Ĉj |d'AϟDz4ݳ)(ق,R QD \|_?>)ʞ/tuZe$nDӄk4:uOٵܠSNݝt!SN]!4~)d&L74zDmȘ"b't Ȇ5Sbo5.kchY"r ]W"!H=wikOHh~-,8//}IYP~_o#L>7<(]V>%IQ~ ~qVߕeu^JiӐ\NNTBz*j",й۴կD..o{ ><'b.udVjZWؔGП=]j9Z tѤнew6MA -Ss8XOA*iyw6{{?F7y/pgA^7t/0D7x"=KFvۂa0;ۇx~[p<[hx.-\?Bu&<[]x^x6l3WX4R)Aڗ0[Ah l@Q1ihu^Xsn٥Dr0 !o o/*l (R6es!Rf5o1_d_l}&z_gwLZ7*kί&|}jz=_~SSҫ*=jthzW&z==Qcuz=0 w`w8.t_aGjwދb>oL̯C~4[j<1.ߟ?GJ6.1|q^3ԟLSF']sW睽&(WA,3ddIĻT; Hv&+$uU#ԀR _6Ҕ*/F_gPs_B^-3w9Ƒ:GfxgMNV̕+sedJ5sf WPa+(JDTM̪D8k%XƜ10q-b&NxYcWIJ}gHO5v~ş_veav&vފ5lI;LehClPt ԙr&uD3nU'M%͍.O3p(y ],#;*}A,o5U Jc'm}9>Z|Ńӂ؍ !`\o A#j@z⧪ߟ_Sߚ :?c6/cRMo?9gPSF_}F6x9PG1C՗b:EtצhUp.iexoi*Aw[?򕿽I<sP-2)Bf4 }3W\Uw}?GG6m:xF. =NFYw>Uy3Oia 2uc q֞v&3w>׶ )KEQ_?q@]P;v$w8_Ykf~/{q<~@16>a65 ۽.f+K|ǚ}pc^`Ihw)V/j4fE9EJu EGLkπ>j)j~c)r0ӱBϝBE%g@3.Q :>(ERT8ruƧmۏiҧdͧ-,OixViK{ϟS!$n\40EM3*nZƶo膝B! lMIe3V=4J&B'r_\^7݋x+B 'hc\|)Rq\vS#R,VR)H{I}ʝV8X7:Z 4o@1 ,m|C58*.B4a_8{\F "fTvb6WaH5"oh7c+Vk:aNGhrN'ȬS'9/RߡʗA`禸lK֧MMA_>pXi1A2yy|ɝ#kQ#הM[K rR̀d?C#?O\j߅" 2mdϒ.fA3)mm7$Yz8djӕ\_Eٺh:W"A@hjv=L<@r: ~A/>=>=ʱkQHe%3PqB71K@K8~^ogˮHa ղ:dj6MzʋlcDi<>SZ}aPM9 bm } a;d.&4UӪ.uz<)X4!SϜf 15@Th_Er_ P(JG@%PԜ3mϳZأ$ڣ w(v#ii\XblIa-K%<#>JF Z:y70Vx /|5aFb -9BFySbOwbƒ˓nS,Z Iss{yhλlI+8.;f sہ'z]2~:넶/:^9CEB^MJ6GCvjA!fZy62.ctq #U`G[`0 F݄9aEm y 9HU T;ĆdYޜLTq0,X%&mt9Ÿ3$, QC|<7i*ڗȽ$_~Z- | .䬧86[U-0+`K|$ e0)ʕx  ql@F)1qV^]%.~<9sX莡*Dޢj`|6ӕf$}h:'l07!9Mx$iec^tq8!f`LH[ %S/$,dVu_WJb4 `%{,rJxmY:Kp\ *-#kkL(+P:IQ_ 0:Y\y{Ot`n.Z*zUL \c/Nm̚1X^xހ=ٶ sGHڔ>rޔۯeXmx֛T*;9^孇Tm4,[XzYSY*^τhv V~ ,Bbφ) 4~V })@>+ʑ [ H3(@4 I HkS9iNwnQ3-lrϱ2I_y;YFVpm܊J5ڢ82w_%ɝՇ'wo(yrGadpu%/x+ q,!_v6-Fq@oƗ=?E4 r~5qR)+ m8K1S_3g dJ!(E!-fc:[%,D8Y?Y }UTZzp7}ٙ ?fyn7+]]͏v(G79tsx|O(t,1G;ޏkw^s!^Ȼ4d}!K& M8rs !49紖m7s??z1lƳLAڤ׃iU"O%&=lB)IK]h/*Ql }(IGj%P;S֣hq4{ZLKglL&lj(cttҁDp3=w @A4m^B5w!wB|woMgm5V_ /_~LFԠ_U?~oooOYs\;1`[duXE6UPZo5sE) S*jR p%a8ZgkũӔ)ܸ /OQGhźn<)&aCK]6o".hzu%TbE_94VFxyxwgQ:P&L K3J<F8&NvZq0ӊ^(;vh$3SE)MH݉3 &pksKV {8x, `4R(Ī"Fs: 8g.%[0crf{+69_aZ|QG<ߝլeCy%썕֕q?d;,r'$:RDœ0{+P-}8ûSPP)#ijfaD#giuӻt P%#iӻY/=,i\p ,T0&l#^d+ [QwˆZjmXIF ae4RیÖƔ.a+MAB: e>%ܬ9<+S>?ʰDUzy{dۿP+3Z߄^>毼iF02l/Cß'zJpNJ^X =j^%gMA줽= .GPMml ;U;N" |8-05J^{IRza^Ji]YFj4kB^d^k!R[N`8Z3^֤d]UUǏ]y> *˕ yU歲g*z;SPuXd6qx^G!*h×#>ǦcŮulytI)oL_s5_(sBP8S(~<6@Oȍ]TODHadiKAJvRͰ;sK\[)m]1l5EEQtF%hnMKD~1p$jZU}^a<>G^!٦ZBFh .F)&)8uT>Ehh;EYSj<] Y2jFsᶅ>Z {scmVD3UЗvv ~~iz ׁD/4hD'G8po jh9ІEdOAiXwpM8p3BrJ擞6'&7q_ ^JzqF Y u(a3m$D*<4|у::&Ц"ӝ_j?,z^o*jD.96|M6YLϳMbJ=q!t:ȢuYb?$ġPϴԳ7r-%lI,amb:`-|]:x nI0'H5iGAozDDs6[;(m[OX3mNִm̽;\K͍ڡMHD6&&;tCI'l떦'NUH^6 Œשּ$7\y~掰L ҔM1C򎔴mi(=V ;ma0(s1i>psўMvd{AGtm;DtgIEVv+wi-+OG5/wkݥR2Z"HIyU 3ݞ^1bτqM,t+Cb}YT*9)uSr'U&؁Nd|scFZߨ(؎i?M1^$4p6>$͎'܍L™;]xg1ܺ3Wxg8lԻ gUbI>-F/pme=FYΆ]4psl5} swWt(q&Mܹ-fm=2D|k{%oٚ MRQD=u5돌4Cu<|g Xg;Zg͉ݟl$vPNF]dI21e-vZjvwCm&LCv6"a<+˟3 ?lS?;KW? as"Ycn8ȷhlְ*Z||k:(~d_v4KNFF74H-";M*[jŮT֞oY))!w 5 {_]ؙINT;~6饌f?v+ANϧ;c>.P n^-C~ a?pw%7vBSkF5ZgZf1n7B7+qu¨ҍ-vXNִslVј [Y[5M0,ϛߪ/r<:Otͧ#uar(ҁ 4 j\seGxv8Ws-l[w%wo"YkYSN+73s|7oH綛_̅İ +=>.(Fp1W'rY,YJ 8Y8o:2Zeδ2Dri->D1~Y,ȶ9e c[ MeATˏli3j8XCU CO+:`0Z%r|~,eK;*s柌62aZBXұiLv2ĪQAd[a0SFz3)60?-EGlo! -sKyT# *E"LReĦc v|˯$*;nzdx.,7*n*a0簽(2agVIX ̻Us#ڏy=&V-^vvbmtMŶ-68ŽxK̛-+ S+j}ACkS;R[D_(?fnxc[)Y hE )+ 10jqjZ_2ҫ9ilili|_k՗I_q]ꢯb/eW|>AXKisP%eg)%$KQx,yW;@eޥPD+GiV~,Ri1'ciQl 7^m}UO}t寝.G(b(cV[ѡQzw7;4J:|thѡd_~5pNkxf'$8{*KZp\~IMy81~0(0 z$ iƐ6O'_Y hpzmvqHzW_mu|}4Lz,N/_7ѐB'7Z/"iŚcSZKt{v6~Khs1HC2& %RyaY3H_3W1VMCy E;TwXM~rꎺzw&+ =Ck)j¬ghuH תg83mQE2E\]~X#U¬«˲E<煳VU8rkӦ}oP^3#1pjk3}0NqV 9^ImH6FpQsB' RՕ!>^H̝L?sXnO^IP/cVU_Ѫa[0iima*U}DV_sH"C$G&v %ڪrhA_h.[ӑ ,s!r;F҆< E( ;l-\^OGtb^ (lGF긖S2!s^An9_a{ucZNry8SnFjn<;:1r/q9)#utK=c+xPnGhE)_]mSn˴pć]4]֛4AOd'Ph1V*nԢ*͸)4c toyIwmΌK {ă;y .os`k}1Ȁ*#m g{˔m}SC W&&Sl{N\`w.| @I)ߴմ^zƑ͎-h?46A6iߢyt$O}^4_Szj'|VW<τ:+Do<<7~ȲL',J 9{JDȔZcSV5%K c=3l2Z'2O6t޴.}OT|b}J'hț,o aF,l^"[(Md$ʛ`sA?ۜQs.d W?:̯eYg cm u!cHQ{Z8quR vy]$`MbSzPgC7Ov3gwbüEa-,~vM"~ucn#SvI.cPH R:mG{  )lYs~MU`ϧ<+[`VtJ +q \uze?RA7 i2~ISSΠR-ܤ)j1kEs1:/G™u.:0o2C"C1ՉoW7ތ S]Wn]xwy̦>>,D[IVՖz>}Vmmmm>gjˁmD*GO`=UgeVЙ{'9hݣsm_̷޵&M[+֋,x wc&uI?k J;qH vgd xwhUJ)_5вkev;x]jKM]V~ ENw|w#dDU"D!ҤI,;IQ>ʂ_B,k S?X&3Ƭ8A5^SMlluX-JOl,K'05I G23@@uf_ݸM\jp@r7\]j7Lp)ϐLBQzs5G R|S~$fklady)aoх)$Q_qXDг Խd 9\`ϝOLP(s}H==fyO1/^'Zw.0$p8Y$Q~Gs^޸Zf tOsk P@!Sc&mrC / %49(0[F}? | qG@-a1JhRDYj༓ą*O{c{k[|Ќ:4c}xh{OVވ؋Ѱd{% {k ,>gI?PWn?Qj_t[%4HF)W,bsݼ:s9Q7RQ&4H H?}`*ٮ$ԗ4i2B ig[,mmѫΩo _fhCl/D{N1M|Dz.9aH,˚j>-G&?eOWo#M=W5旝~nv$Ѭ|H=a0+ >$y2}n[Jn_*}@RɽA0?lj[%\fS%]Ijf5lVVgpY XՀӠ)ji3@5 aej#0?Y hS.UՀ^$%CH/r2i5o?M+U_ԬB닞xrp|Ԧң苾?j;3}kl)2wnYθ"?N^$/%KNJq/X&\HmCiUŎy-;͖þ)DP#[#LE?]mZMVtMįjwSI /ܒnC.E6_}&VZ/ytWW'u$OX}#6hb ڟݛEH>X޷7M\}YUFﯰ1Dop*OW'myɍ\U,}V`ᛥ\~d o$Y̒)"$A"hi!OEaQ\lL.?djgVE9q@yWɤj{<7 Z Ojap9t5lCwLO`T1W/FQP_]vl.<)"#N~{xy{w7ebOf'sX6byd<;^9w٫6/> UbzqG=o[u< 4ǿ 4,  L7e#H[MVًmD|>t>4_/N9i@n*eΡSPB_UB_Ցnk«D#c2ǜt$ac4!vH|"'P7zh2Ahe[ft`C;S+I 9FJ!ۙRK{csshصWG@xW5.ȵ HԺ:DzqR,i՗qps_<%_r+?.!7&tGb +NJl(c7dT|Ʌ Vnr& mY`g&#>1WvxX2Jnd >Mc靈a$Agd &/*zOS:ur|3"bG*09LPk UsTh5-,j%|WrУ#Vߩ3Wru l-= Q!)g~f.:>upeM}aVe{f{$8@TZѨN!$m6Y@ځ_廦F)h1 ^`]y$g8Јh*(S:"w#22#H'kt^([i ,G5 pJ*q򿨜mpJW=6cPZl#YP]Q]==HpWEs?i2iszX*T aʔ2ҴRLt3 ?zӵ`g/ˠYBvoNVqp7@'d;lwʑE&eJGxBz#>ha!B4U̶48rSO e5.U0;(,:ρ.,1|K˪3[' A[zv^%$3*vLdڽRq`~ࠇ\< k:å1Y: W.L3Ndaof-YuH|dž1Ax2'YBQ=LQMVP|WؤQܾ>͍ƠeܨI1LfHKӤѽ?lXh&5J~LKR7W uH $Q)$ER@C?$D/! aHR MQ##x&p Ait47iZX$~Xho[y%@ʍFt0C|t[XxM7/񈾈x(Q+}zBM+a!d!PvS-y tx6_)Naо`+Z &tGg'`T5M/_bc^\J/8|wo[w҆vG@In =UJR|Բ9?{0X~;|;{xu/-Փ6>Q .S! HgiqM ~( 35t'n{_e/iDַZxCN;&UYk--K@{ES:;۸FYv 78BOv0v6-7GE.LL6؎|75Rk-x,(g&Q6AfE%W}*ceq}qJ{7r`˱e}[n9`*P7Řǒp @YD#'&,NDb_6G\fV4fP3NL<s2DHT|ב[Dj rskB.eY@9xFxRhF+[LH= "\jO4sG*cL8'epI2ΊFUUa\ďShkNN_ԹM~ hY򎇦`gf0O8 ]AB .ٜU'ȁs0rcf7/2 Iv ]#i4agqp^"}c"ĻB/ ?xzLEh^'_|u2i:ʾve#p`,K+šZ}|b6VJ X{8(B0k%[IZR≉^|SE8m!aoZ@,R $݂ED6o5H_x a4Krw˒z/SXRڒ0BS%˯J_. uIU\KnuIVe\òe:Z.qe*/hYMe.xY˲U9ˊkʤ'G WH"NNHLnt@696IB*+ dvAiRy_9ۗ $<2hLyw[9Z(hk4 LS>e=N4%i ru iR ܌X='ڱ>P%*W*6*C|D|W\b~i;W)I8/J=>E+u](?s Dm#c.7 ّO(B;ڵ4akNc@)\ٔd\z2.l A 2dm-Qp} 3܌x "ƃWS?ʏ8hx4!a_ƻ!O02ܫ o!w4 QIcP 0uju55\61:2>+=\I^IJuC_|(~4}{Փ+THB~ŷ~0Z U|vYaj3D,> \$Wzٚ1{_913Q<|ɻ1nAџA$DU3_!vj@kA8Q;R_߁4cS[v}5Z[7EohL>pWn.z9 rS#gB+S$lq-`XIJO %(~g@ P&Ǐ-l@NX[]T @#(qtU4 "M (`rdAYķhhk/ mSvmezp@HrDԄ1!i݊Ьh[MDA@ѭٵ}~iNEiejHUfLdWYs>B|Ζ)NN|N 9W\>O։:\8ܸ1әcN\AgN9.>`*\7J=C `%l\FxL\9ĝNXM܋B c/iFl3M:_)k{_BiI&r;qcm%Żu'SO{ao ;}G|q%OIԹmOV@zX =(*,o|G9 ښ.z ^ф3 9 I\ׄ5(3\:[n@G*)Gc{g HT,f:*7T'"Hy<=Tt1yM*I<$*\$J[#'ޖ3![rɝ> ּժ\fbmBiO<p1p0S˃h2#9膅fy7 2Q`lm6'wÆDt? ↈJ {k3na?J+&0* w^$#BE@6D5»ظ@. n\ocvPRq/k# )z͠SJx@\ەpp\K~?+Dd~]&lZ ]( R+/U4A |EQ-k#=S8@ oO%wFy Jr?IɻaC1.pz| męT.r=$q*NFv9΃{E:ܗR1a [\1R8Rws]ռC>.7cϻ0^ oM.CJԉh\6Rcd=${Ck,nb`H&DשFuZ[I̡6E(LpfszH@*54Fw^,*Qg[GbpRƫOY$6E7fcX*^_i߂@$+˿FcP2.}Ҏ Tf@]3FW Q tAZb1^o?; qWl 4ʷ60ƻ) X97A;PD>61+_ڕobs9Q(ClE1/f"uFp{ET'ĆCY>Z;p#Ɩlnq[  ]*,–)}J=s*\V&\Mv8А-z!}= #zGբ>b۴ V)(b)blèñ&Ib Gwa؊EK?=VRJ<ƥp+&i?*t8ׇI9 I(ΐDt|K2$N7.GZܢVI0b7@WZའD34ꃭaE D) pQH]rjkNN%Jkm&5*ʦlة@/{Q=A@pYLTC|FKe0yhh{iքcM:h]0hcʠeT4v=]/+OMD:ߤ[;:v~Ί;BcU+ upm+.Ǯձyر{r cUwh |9yt$Y9Y̍AZxEy w$:&x,5@ ?-3N=*>`& ̿f:s_h& 0C1ąl+&Q}P6:YM 9pMձݑt8ywuf0`*PIh16 Ee{כTJ晖&#!&on{PUҥ>cG}+P6h茗^WC颊γi߯9`tAILT$>l'ͼY'^gۣJf9'*m%ax-i^LrRMWcUWZûq 7VoA )uk]3"/#V3(Em_Ғ״p?UTq\Up>|d<2`ƒg,:7M[1c!*cjêF柣rge+FQwPkk*EbFИ/C؃%/ɍW8Jj[Z,9%]yY5߲-sM|ϜcPń N(f`Cf)F@˴w_E-O[I<^5ݠ &8~ b:EbD|XчcNy1ԽrQ 3~!_1~'_JԘ'Wdyt7?nV酥e@{A,Z@Ubg:Vρ/ے]!H7-2yDj^`$i,-W)Oeeb(tL>_1{o {FiD`l!Y #}~C))۳&I#0W~iEWsLXy^*(~G m Bd[jRޞGЗ}d5Մi ;]ٕx72qXvL?@v9XyN/_Q ΄ȝa/[WDn|>[]廹9%Z*H 1 x^59Uu$eJDdXLy u2ͮfUkxu!~GFw\! .v̄gc;'_#Υ.'6=aO=WP# 32܉3.FƄΜqyPmn{ji?cPhf6 7/ K_ #NIZX^3#>Wye=1tJLbq\#gIOډ6Yl8)/? (6oɸ.trK $#,s`; łN(4LC}0y[Fh pJ8L^Qlm 6QObgHگ EV12ƿ# uĬxg*bۆCՓz_x(ɕ\rXO[ Nv Y:Q}sسRFEZd:$M' tN+:g N\@"@ԮISCڣs$m.jĔARdg'ʹuZe5!N 쎶ՇU"=l~?:i`,%- ÿhO DO͵5mVb|2B^Mrtp|QC3@.ćؾ=bU=ϳ6Yo' Oҏ@,UhІbL~@[i%y!$vSqs/h vaM+73D~00F M1271!]+Ea`>`'0"5sF+q=U>I-O}]Em9L[ <ދ\!"ҁK-_.HB6^:Tk)qn4!ڲ+J !Mu+lnTuw.]T_?J*f:0 nKȵV 7ACOUm=kUb>fwj?$t1H<#ޛ:.J韸P6#Ch,N&xtZ&? P"S20ݓeMnA6H]I8BFCTA`.B[x;D/R&6D5G/ϬI$Yȋ,H z$$GAP$!|{>yhP^=X`ƿ:FRsmR{jBa]cf ;`Ɩ$r5>O.^XfԹ_S- Ɛq8T20£l BY.`şqK_R_6p)ɅqOu,tW&SkO]ɲf֒_&A#'7B--s-% ZTڑR ĨGtԏ?"5j|!V?'/%?pT \ę{4 5-tNftNPӅJcASөaN=s҇0'5{Y5ur Ds"xҙmrp>,'Ozci5.jvmʝA&<(oÄ$c>ܬ3f]xb'S֙b4Ϣ~58 &-/]ʎ?>=dfFӱ8g->*߈@e*RA(7&MyGre+P}Nvh=y*,&&$tk`WJxc K54M!7P?nK&#d[lTݨUs$+SږCĊ&6M<*`8;,}E\+בf ndǗQnhe;*)WG#<ʀxx<#:o#75rJq=kq}2ܸ.ʸJi_M\oQ޷Q,N/q&6$uٺG=fZas wBqX J lئ1,"$J.U+=f K2/}&zWYKݣ]U#){qi)Htyu%uQWOs=,N\&p 痏|HR$qFMonmqj_{TR僋a.yy hϓvh|7A@蠖N[rmKh(Ṍs<\E?[5ó zȥrC_1KJ m(Q_|^iF+ǻqɯѷI}TGJ"Ge2qX,58J. , xL5= $=t&Q+#pYDLI+YTnNoFQV|;O펡K˖R, SKrQT:wb Rk"IY߉es @DŎҘ`,oZLD;n0^߂6=i~[P0J~[7@;jL@0oDof|sCo?$fY6V0@ȆJU8mnjssBsrqN<˜Lɸ])TT>LȽuTl~~LgU๨G͹YCѸ#ywzPzv:ʱtH@ܼ] _(q?Z5X,o"+u0>Ѓt$P }6E` lFPtx?K ;=ugyVeȥ(~<%}S;nzZeOp<:_fN.f6J"cI4FMgc0F1J8F<*cHv@d25gwᅋuJcp#k}-Ť_{M-by>ȫ\<Pgxx(ap1f73*vv*/r+^Ё|kPW ucPD TBԽ-@_ W:/\pPn9ogy?sJ'"_'2K`՚bЖd^֟Pr?YO5wc=EcXO4s$A]Oe\OYOk]f!t3`4`o\OIV]l:h~4Jo7BӑBv?xzm=n=~דܯR6#*ȿgK]R: 8 /V[0eD6CVɠ$0[ơaWcZ@;eht S0 h\@<`"Z9G=GÏ\7RK#Zga)ia3iI(e4SYo/=DQ : FJLZ)& ?L ]P} WL[!1v*H^ jw(&BcW#ZРB6 [b6 nH7{v*0S,}Өwb-j]BE]kME@1rZv6r4)5)Џn#-B&RMžZS1Y-l%G[ŦX5qa÷$6X{k]`[E{l9: ˽ q)}F%8F 4?khC8騌11pN"$,6i wvٜӫ %R? !sc伴yI>\>qt8gq4y|p͖AD҅+1 &ةђW%h|#LwȞŇl_6"\)OrɆP?cBq&l|LxJR}bfj3 1h!H2 9cpLs9g{6(݁[Kw խ隋gY2aIEpd%0]M`]:ߣ-35D&/I8 ZXp\#KUC.AsfLv,҈-W[m 0='F3S|J0 O6p; h v,Dc as۴](l]Kk9źBF}ǖ.N1'Y oXVy<[tdzwRaLĵA خ?N;l]x9$*%ufUy\!?Py-]srfxљD"!H7 ;D q#>9rbMYb#Zȓ$NJ4.1f": Ω V%}!<dX"i,3 (d=/oHNy~c# X5%*S&OZb dp|GL30{ <cᔧaWFĂvx,f0-x١x& Yagr3V_ֲg fZ6J<)F+u ğ\%(ؒ є0,qtoƮ3[|]3`fm_F;̂|* *OH4\І^0Кy !I4&mD\"U/^^#ŷ9ϢCa2D;`匉4^W"R|by0i v\M'u5Ju\@7%Μc/Ro3ᱛkcTo7gEb ٩O .Gf6;83-|iWUU,ܱ&[A^P&|y̯ӶacdC 1((9TdHZUd+^Ĺ_f[kRnke36GƿWZ$Vt0p#Lҏ4Qx .w(L <@4qŖږ}J2'9f)Ȝ޸\`}2"1fGnY= jwjS\E=$*o>]f* ̨j~؟թ-V`Sa< ba`Y"6c;T [-|B(7 #S`'0FڎYK~J>KfvlQX 0L#i`4byy16eJ"SG2ȔdZզXV*z|Xu%c:irCXؒ 6ECh8Zz''dY(bb bo!L, K u|?$6Zf7g&V*^n 9+\jl$vgT  ծ+uXSA n,7\M$?آf(MnWN{DF5[E5tr-ܛGߏt6 ޵*٭L{Q&=>GpL M*;=ϔՇe8' 4txGqZܨ =%fӝ;eV LVec@:rz ]w2k"Syڢ"&γip49HUOi w1+vQ#Bޔ^6xS&+˦@jiE<"gUOˌޗW=IA)p$0߮?pnjA vAb=]W=i5F%onވ+ր2)$vvF$ @1_S\r"62ihaGh -NWx `~6 7,ǁWǫpMz#fΟRAday3M&HQP;j"Uڈs~^$tNcrfvͺM?P~K)4V~XcR`6}E\rkU. \چe|c02 bɚIZ0bQQ=-ݎ'3Ȋ7pǥ , i}WbNt{Aُe }gj4#4vڌ?=Kncz=m687mԿzN;S4`>oةw|;`;uکejIfv2.aلys2gLпk r#b?pF@Z!s0JͲflH:iF&Q~Φ\lQo9&̲V:z5kDUxJPItM"pA]hW bx/<$ÝcCGqʖ@mZX_tI~CWd]=n7.'?W;NQUHrA8IHKKrj}i̤cVG Acja40*PACԜV2f5߉vEN6-ێ JE!rju-:pіFJe&\roN@yN5Gxt|c8fFTɋ7y 's@oF[aq8M.Z6/Kf>1]ظ#݋ 7UUt-n ׫F#4gD1K6[v#'~|R[ 0b\|q0g4FWFBUY0u,3A``$0[TCs8FZjOTxpēpO 8gPlQ>/Ͷl"[&zɪ5UA[g*7K50$JKĬӃRwa!4)eRKRwdPp䴶XƝ""(}6֮ ujMR׾]K_EҾ]hl+h_k׸8]7KG^{v9F ڧ7MDӱ3x$9+noF1Xw]ODF̗%~KX#`_∹p IZ~(یLk$Aנ5a9mVSn_5݉(2ƉȐ7 dS@<6X"&^ o\eKKRӏ.k fQ%"`.AD%8b&(?8op^$`DIAaeǼ W䊤1B?h>H:$ : д-CaU(XgKⓗJp^—۞客"a\x$0ާx݀6洭qpwPTeDi#TpY"~b89C|Eo=p>Z@^@=xY+8呻1>@ %dhX 1CwG3Fx`'ZwP6t/~ =V:x TqWqMܕGU]I2 %!T K * nhDIpc1laVmnݤղ(jB$" K (29Y2a.~y=sOO(_ubS^1j8Ԋ'Nc~C B__$H޷ EcM{蚀fk(k $  ()7]${<CdChD?DȀؑOA7)?|?f:#YnwյKtk"&00~BdN8Ϊs͉D ByH/n7\<]f;*9g˸Vv\ [ \KGvP:ݢf@W<-?nO:NS$ &aHLN4&F~[SF.1yo Z65oG}b}_{o1ĿMC4x-0؟IJb2_M:0z#na4ݒlߑ=9o\+jʾs*h+}-oۚ9 :'f# Rf {`!2H'2VQ'2Jr}(9'~LNIW');/dvIRDIwo:3ӱCUy.!~~ynNJ_҉-DjԈ\"U_&+V!/DfD:d'Mв9~cf6g[ZGn_6p-I}6_sn1Z+A>ׁ.+>؛?"D"_Ո,&DMޟEB:qB: 3ЇӾa>ևa>>$}S[_kra2&Pd7p>\%DVDD.ՉO}"aٳG#xoE[~3X"8]pIkb^9 $ʈ(3x )FAqds&৮?5VɫHI[P[ق0,}erO.ɣ?Hҁ* 6 oxqBO;=_}AGQȟK4L҄뭵ߔXӓ6SL (us2[o 1>F K a-͇(^w>V+=~GwuOj/>A7Ka(Q3.KkgK FJ<ɄW(?ܦ$[RܑJ(c`5Qx#J=̜+Dwjy3I} :JATXA&ΤcPi#|~tH:s$HwUCs{|B/S}F:wz.64]~M{TVY{uhMf@{UAm`?k׈jD8&!b%Kށz&-8˘nRĀ:-}Z$^w2zc MG!,jd%2)bE 2S@ϲ/c,)f|!KH!fO~LM&{W۳x Tҵ7TcT)CA 5CfUCaؔ8%M+6P I_W";4v9@Y@s_+٥.HZbSOzGUWǒ׊a fP +pF7źq_./83oL?Sӿ1ݘgߠvo҉F?߹9=y ?ܔ?/I>Wq .9NMgNU,3sZ.f(PN$;xH(V:^ (j_y!^NG$uBpK٠ES())DBbxKmR6cSD׌(iL(ɳ%ռc'{&qdv 2:Oxk.w;'qj&ΣdF=~KoWiH W3xpsy "?tb{9e;Ų't>QϜT j@AE$UY8[KwWcP2\:w;[/ÏZx9[3T75!Y]b?#d=@H ,/֚w(O9+/3p±̨90b\X3 QdGPM6K_\n;B^@}-۹%Yb(GHLmǎCC켿N`Ӂ80M K*@VѼ3 O"kABoCX١Uޡ+z{7?sYx\@z-a4uYL"r>5-o8ճ:3niBTԘyw>bJ`N$hx ,dωNH) ,SF2Yv(NWŏ+Nҩ'vZ8;Vt6wr{7C6n^Y3F+H_w޷}<޿,g`-!*k?"O@ u zб=v2SJV\,Hᚧbvi%w#s!ژegC~g/W~2ȯe[޼ʶߠ<8Uy49p(xu~pe PIdلxӍS 9e➪Fyn(uaENA,-oʷj?ǴHȑГ& JT6 ߫0x/;]8{ K"`ALQlVQ"Ip,$}9 gd 9f~qp GIg n02 xGK+ J+Q}"gJTDÕޜmf_iJC5K733VNCpgw ޷a SrKvgX6%TsxZD]S_䃔E/}ɚU$ǻfhu"ݡԊݽ+Nw,Ytk&0IsR;Ծ )=д9Kw dCΪЬi[ڷEKKF%K'cJey}}t70s3[Yٙ_L}e(ySd \NqIZX]l {>xh /xC#iɑc:~.e@<^ЏԱgr4 k#:8@s 8b:wでت,t*Ea: E&!Pr f.U*HEC`Ye;)*#}^7`|x1``gJ]BYֳp8󅤨>R[ڃǴ.T~p2ܨZGEy3TN|4"%D@&LVGH)tO1#-2͊ٔG>疨lgș lB ΒkԶTa3)TԶ]JdW+MR2Uh3;5HneQX ‡͸J%0J{'k(گ$i 'jzL4jI)#'yL.D2e̖7h "`beA9?NsR?4o啬*Nib!ѽ8q8O#CY|hӝd8F;<+>k;GYmt-ůR:WSӣl4>r lx >FfZb?ξ0A\(7"͝,EΩE>'6RZ.ݶӶj5Jxy6#Je D|?w/qaU3!6t'GM hܮMqB+]t~bt'FE׼ ،W9ڞ(OXFS<he~+S!tť5j8-8OWLr3.<9nT4u _\Wq<-# 57[IySMSfxI4iɪiJ4)_ en''?)%tb+f&% s0mEerI6@3W|] :'=BXTtvBJמ^梙Vk;4Qfo[4? [qƩe^7kY\ES8b=`+k/t뵉>z g禑Xf ͮ+ɷ Dli-ȢLi`=Te`?:>NI6DFBCgZjzՄ᧧PDk>.iCL̓N胺+X-x9s8e C٤hu\@%A*IM;HkF/@dwsxXXCxQ g"M%!,i\?V^B&HJx37_o0zyCDe؏G2^5Sѱ1T Q,Κx# . N},"CFˆ)!Ccc)et_5dyļU%#rV 2vV2W"jxP鑴n>Lw%C&Z-ws I1ul,{C=SD$C4rfo tM(5]"MSEԕ>|J* Y!xPTƇ-Nha.Pv.IޥKpArjXt2닯sI[uӶ(; ̵_h  ozdArmp_Jܞ %%&vOY~\{߀BtVlHCQ.c.v*usWGuk={KH{1BBmF 98w'ESh~`4™|jM?zg8|,&â2\暌2p8/q @W()w*.ƍ/bk__>Ĺ,KʳA턱JzQw;tZKH@p23oY98T+hX#HޕHB ;= i 'u7(j.݃PvzzZ lTK7/t LkI)ԑl/8)nW_h16S"kc =o`&`ϙX">K\*[G,m;8xzN`h $?*IQP?d+At;a$ryJ΅.*at@E#|  7-9joLGZqrb0\>,C#>,BlnCύ'Nŝ_Gl-: y"G+CA9Gn0vOY<꧚o^pK"M{>~{ [ o~-N +~_K`Ɏe3PQY\2PMU$[{М̅i:b+(9w`S0Z`g|`6WuOF_h0_ _щ1EW>OCSȃ _?"_4ls%[E6bO({ /4nO K|D7m؍w'0Khh^j/8޾5䃜V͞Q<|7 ?܄Ň~tN=}ĝ&]xG 58ZOV ;Jq4FX` ۏX!.eg{IbOz0& g1Cעe.`DđYy$%Y\Z^TP ppd7{@p`1]e+nqsYx "=`~f0{rm7#y~5`IhBU cPT a/ɠV[ʻ+=@dѡ(mo`B[ѨRjE҃a8+kȑސǾ̇e?2߯j|kɣ\\^|i%k1Cr/?^A쁕ӗ_ lgHKu(}vd<}P$%ko},7۱̪$+E@,@=yռY& Xp6 jh$xW6jvx{$ǻd@ ժUǻڋZb85N`& ӖX4|vuHNCaăN:;~RC]Yװ >d>Cm{޲6}, J=|x\K2F€lvXzOXƆ{z%ןVBwvo#?wI0V.L?M;8}zE}6Lgu11s1/{{̑02%mJOR ؏0H3=)J]Rg.t ڳ pW˶[sЗ[z[K iE);^(UgqF䯗n};k~t4_ JgtDR^錭$: d33:B^)e> 3un O6t/m--czC~E['%~y@Ʀ|:YP3apnŗϥD)3re/})rӊv4_j>ߓ@[c1e]+x6tDB\(''ǏbO`q=-0h l*c 2ZN^YZ4_yoU>+#w$I tuM?!Q \g{xpu1<ߟ1,&75H\6ta:ʕD/#QWyOLPy4R!IRZТ9`CF? 3ure"aY. 6naZyd$61%ڝB G#^{ux/=j弍̙kՏ}(a?KK lD8У r4K}x+jӼ5T}ȝ~\w guWu*kWs1 טpI4j^:qee\ov).tI^_HHR,$1Dwj*(ԞK>:!%k!W):̹g/N'At).W[1J8)2 GIk:gXdG0"<`c^eKR`Cd!UhQ{<3=^;kmg\_}=lOȆz rxǍl_tiVlum{r]kP%mlYh~s~o; 9(0B(6?:30}( wGt?Zl]A;Mhg\z>fq]D >2 ,lPVGN,!K '2 :="Nw˳gA9.ANBc[/Jͧ@'}]ϙ0nI {Jdp]Ұ*v G=(Ufb,/0I,W&%&vw|:fJQJHR >=bMU~ci!sWs -^$@h2'<6 ' m iGc=&ŵVWӶia$>a[=ǚR=$Xk˺❹YmlރSāvl9zm7$]ܼ~.83k[j",!b+-p _~pfxlnyy툋1yT'D:[JWfN#8Ϯ S_y8>xuHoZ>pqR*;$MC` LTlגh>Ejß'/72B0v-a DV[p[&X˟\d?!eTԋSi?6hjrA9\Z嗈U~RKyXN@H]~aűciոOTw~+b&iOkq,QGN> vreE瑥\-iⶉˆfwjiZCil;Dwe'5R42 "A1 _2nђyQ's0r!UZ\X[HUc5ʂ +^s ]dovYΌ;Kqlτ_~êb"5AZNsH]`yolxu#QVsnΐgrCp͑F"Tf4]UXQtKKb468A3Y.3ݨHoջGhįw[{!.]Τ'8Pqh#'ܽMBәK]бoO,eo'c_P?ruTؚ1B`\rRT1bXY!K@{ MFV'[RVW_o,I˖Gz镽ԆgSNi(m΄B9LPg2}t~(0ӭ<\|Xgy=5ᗱqך*FX, 1l)uV9N},q+7X~s-U _6\ W*WꪼiFjum9UAlɮ<U,1+ nF0mwQr+{X7~Й^|7RmWNDM1K+<ҾPBɮJӒ]d&^}%oth脞2ʖDY)Z2GFC!HH Q˕9mKX J#d*yF~i 2W qԝE֙ȓRN YUIt`` y`L(שTdc7O8{{e8BHn> onHX}*ض#~,;V`,ג2=n*݌Pٌ#}ъ*X;눳 d96+Es 3RR&4I;3RIՉljC2Vm17i+ȱxVNT6ykAI8xt8>@|hP{z:wi\LN*/\ODҍItKktR6. ccЅzw3[ݡKxO[2YǐA NQ PA"^*)~CuZ2hTNݒEĻg>?Qm dJ#oF*6NF3mc CB.@i|.?%R΍&%IT/+êujt ²/L3]|Ž\!<,y!&#C2\ﴯ̦ 3C$ZJIrEctcKdZEcte Ix^r ot/8}(âEn=JGj,iw@EI'#}iHlxG90p૜jl ] _>.S"g k\HX8 qzDF~~tOD<ܪgf|ِ`f\aGK0D=tGTShy I H8NYD|ĿMR9NJ kS<`1݃!j Tp[0@l !=X\Ck7ᙍ)9 X"Fd>܌eA G8weHEoF[Gۚ=j)CuFҧףaQ[ySg^ }wue&[uﰪ=Mriv?}0:b&>}T,hpAD[lV܈Ȅs.XG~SUY0!2&ڮ5B~ Xa '[cl&7ZL}4Xw}g k;APfMRZbm^κ&H+H|;P*NҲf>5/T7 a'].EKO~G[U#0? H) Yr4F-36k TiKf^VFe+i!jak7N}-Wy|pkZVn $֜VbV6gXhwo2!.ԗGe ;XqP#!*bB&Ö(6HZbIRgW)П" |O\; fn+D~/q<|z-i݉[K-C0Q*̭W/*;|׈M#,¹w5..uzY~jЁsi7~SU}2rU`(-׳#B2hRazU1:2I1s2~C2r'F&)+49D>߈'OAS_LI#6@晊#KPΊrܹHrunY: ]ZaD|rXeQv#9ɺLo{=j!䟬I&N$)IGX:)Z}~kEd)[}(ynk4ŀF<(XfNyj21xp° c%r%9Y|d-[^ES:cQZ6c|Sb6Ck3t>E$S\Ӣ+Ʋ>^KmYHjkS|P%**rùҒqrrc=c2HW +eT6|5 Prhr/IN/U_J_ë [9=t$+_^X]M pb TX*0JJR#Ex%r4f4KKOt$XaGTe (W c#s*2Wh|WwXexeڤǂ3T*+T5Ha#N.i~wv;˻#n:L@T2'jf_ON :5"`"=HNdE/3{3dιDLu',K>s41ȗ\gr<#90܍ duŏnum*mkյxy{:򨊫I&Ij䩏&?X+8,&EMbq^2a7Bha H\GLdsg*..?COp̨P!xuԒMxEK틣\,@\ֱ[Wo_,y};Q7bK 6YR3L\ :o02]?]Wg_9ف>A˟f"psK{~-.ދ?ϡV**y ԇ3K{J?ǟu׽*W5h 9v"NMX1;Fbq1x/r qoq:֒5jv5R,NWe |`ɬԍ&=jC_&v*}o۹0`7K1mњA8"@h"ډtI@[=-;#k?m0½XAFgJT lES:(` %x-hi1J+&*{Qo*TV[}MhG 'm2UL1Y1X3,ޣ_&5xU%j }؃瑸y@\IU=rYP9H`\apHv/^ޡ@mզ ;_ I,b= ?ګUlHI^B;%k2T^UaA!yJtnZT֒e Y28YJ6O=7G*L=;R5#s Egá_QdY'M}K!9Ĝ0o&#X+> &E0lЦq%pԈ^Cl%Ќ*B8'io+g|AI bEwgPA;uuք-Fm baU<1~dPD, y7%EoEpՂȬ ۢ}j%i͸zWV",C"=-,Ry#H#UV4o"f^n]%7Z[b wQ+M睤UI^SaCsb$ޭF>S7郓ʴ:pu:qu깸ܕb>V-!Z>*Dy;ȃJ2Zd ZGtu4nuJc̢baxkr&dęe_+3yx2<亽j3o(ǻ&};U_u/&~3u-p}-S\Ӻn!KJ,-a{^yF%8z5i`t~gge\#u)QH1)!6+ciωN.$%Hɾq溓uTȕyª,|&3,0iC,lU"  ^ K"H86sh]y?ei+KkIKAC}>2ҡ>dDl?Hz7K ߪ\"=IrJ.Ĺ,SĹ鹼9qSK_Ł yc/E7F*oOI8j!ot-4qsg7&[;T#SaBVx {W_SHRE^i!Z=$D(H:2|^WN08S1XO6춓 q+aZy}{dR"moi<8! ;O &>#h$T$E^2yQ MTdFDu{8jֵ`{N "DpC\D[d]iE93`l3Xc#w\w84k)|W((B!ˠ/h~ z^д) 7(+i:>:TgOeo9pyI?4 ATү7_?F j>`i(}-j[ {-RJ戀YIΌ(< 7vR50{J/baTIx??FGE[/{,H}9E :,@24XڽM;bއkzSluyê}prwR?U0$4ѽdP!IZ$a01\Bpx]/B bd̺kj/ilj,iɘ)W'|7x7>md]oe8h8\"nY+רu[|?5|ZEMZwܴSoo@& d o_tq,V=/mW)jyԎǏ4匝ܶ&imc8^Ik2wۄaTvuٻ+>($LtSLMNa)cRՔex:&ӦW% yK/nIyvR_@d] .µ~";ɾrnj~AgXv> >+H~ ):j΄J%16vZwmc|:KRc**w,:gT:Uvn6wtS#wZ=FԷ< {C0~OuFMYJ;yG'"XlBcid*KQ>wC*,y痥!&eO6kll Fes!>0oj(Hq yU2D"_C%em`&.R?vG~;+X4M=Q.˭ uetj,)x<Ŀ9wQkreV i,^2E]i`J9b7 /lWcSjznr o:y:K@ i\⣃7(6"tEzW?@qA|Mᕾ*p=j|T)k`)De5#,me9l˟핾B?bqrxr$%eJ _?ڢMf_Z5It2`]/L h8O]PѫQPNNttEZeHrlWE!^Em1[|]Mw>fm󼪱jn \SDslO 4HH UeDZ챔2#Y:0xB*z(4agP0fɺT=i3a3v!qi1Ifdzg`;{#U\bdCnhWU Ycwt__ oQ*R#&.@SCуgxapwEh3DۼAUY e &<#]r 93#[?BtXgL ?\Ҍ`k8UwsYOެd 7>ZAZT,7o6$269Y@ђNMh!7kV $$*,On$3nCT8 fOO.G^?ˑ7u k#oWs$4ob}mI.G-38Q-3?>v/%|8 >GC64G-XXQI8sX[9/WhcbD` g;p<${%AEkM0(OfՌۇJwѭ.:c1B^e 2%ݢ#7Q&wa0^ۈ;f/OC= ÍNLkI&b* (NDub4firW"?F:_BsdTԇ292Y +"d<+>sB5e chY$įOIvYk~֒˸G.?J=2K-k?VH9({*\J2/>R:LB|I=IH=rt0"I$Hs1 os9K;i+עʭ9Zcvnl{v*u2_YZlv -8 LH$t0eŦ-ŴUUC7ev¥w&[䫱R]ȴ0-{4B\* M $p9`5ʂi8X8YJ(€y MO\ 5;08sE!A/9]t )q]zY3m)הnEeR(Xx'fJ KWZX n/9٨8p' /7V`].h. Egha-9s!@`]tklRU& J`yk ڤ\-֣a+tDp'8C=Hfx=[Ů5`8qI@t0Ѐϫ+G3lW]B&'`̘䁬dx<1 E7lnCPte+}kF5ޛ}X2[6/Wx84٥Cbu(2:T e(H5% {$J׾۹+7n;JU[8XG*ZIPk_CZ`]7ڶ]L$m\ysđppQ?&_d6`Ȣ&ѥM5P'-q~:96i|'،7w1-|VSȰU24O%m5~(ЬrޤOdq7r>ODt <v*~O 岽Ђ*bvh"7rܸA(7qT731 ;v .x(RnGvklӰy/aNVٞl5NB: m¦\Dd:"m򱡴agE4,낶oUbY eb>5sBbѝ[Lkjz<Uh+-%e/xF@cz";Vut1T_`l'0ٓW_Dd]'1A}C稡PB4lM#6~ |c3#{P@adž=N:AOPrx E o'q*򼶈-=rɈܺ ^z(( |Ʌp `j>EsB;4؛<;J{s'unZ _v~$.ۃ p͗%'A頌Y9cT" r6۩8r_dt)hp`e=؃oB-)c;ŔLJBO,oU!?HDtÔ$U~Lezt6.Oy*`֪ 6OVp BzF:?B$eQG$. GyA+M2TBe1߾HKħqlvTCGR *VS)?)s ]^_0xrqqřqq6\qkσFpkY'/WA)s+- coiɉA5gf8'~〷k ,dVpˏ)!~Ӓ[+B\`'Tygr5?S~Lbh6owyrY1ׯY aU%Iohq%evҎ)oB"̵|iž 4вRHof`DD^E]_7"Mn~c %4]c]fymיԂBOw_7SRQ13 E\"h1(J|>p F+҅R1c-Z1Mƒfac:9h&uCq߾}[u/MŮȇT lȇ[kܭt"Mq7xWKs0P154@g(g,ӏq"HCZ+U)ݍS`gBGYx {9C,jom7޹sS;wn#D;77r>s+͸u;7)a1d%ڽcC?]aWpP/}Xi/GrY.X-Ʃ|(SNr6E)W˱:r~L'(?ʹr)'PN_s9] gV)g^N7sGnxX vl:AKC\RW,`TY&n Nl-6)QedTCOO O^ycR$"[<؇.AԈK9] [ nAJM̩{ &IZ "?Y॒D,%9ܖ78}.y/:*GhX֍?9犎 6H*^ j^h'/z>j `&c#EzDn- \Yڅka;!f[JMthQ.NNJWuLQ`/H>ƝD(N!9OFC@7|DW2ρ_:~eᗃ_~N8ETẀ]0-`"* 6+F[/!{EHmd[fO#6IZ[|#;>F]ׁsP<7m V%DS:)e0>6›a|Uʚ~/ s'"|zAbsُT oH>VVLGl`'^{f. v'M`Cjx &?~e◅_~y9s2 Ù#L|G}&EQpQŇ4&y~F]Nb+d|dohS|kS )gNjNjB+)خoܼF0;%K:'h_J}J}A,rI)ou\ny`:a*"I_-ry=hD4,jDo, Y! n:>Q|)W)RP' ٭lBG'lxt-9pP \!(ϊ:*9?Rt}CB*khHx*17`hخ!Tw0T eh&KjoMj00~EOJPrZ^d 06 djv25ɤtv2=EFe3#^|:d=)\'U4X]xalg8ȫyXHA> ăl* ܽf7'#_P? 6匣H)5Eb"|NPCxɄL…:R'}&7xP0<d?.~>-(T#8.-"ʌεDn 4ĞHڄ '2]:A lb6ѓ_c}HHvoU%q靥p'ZV>-I ֔)^Qg`l#\]72#䙰ƤZ$3oٗG\N/OOeqQm}רݔl419ui,9bOTOv72|&hk񢯽hm:Bug'4t$GʯCkDx9cta1rTg.Y4C8i\cw7J{1% |e159̓%"e~-,{ Ͽi1嘷\5yr?F|Ʃ._JIɈlKPx(O5}8!:*1X QUC D[KFgٻZI]46q3%a[Fg픧wϣݠTU Ot0Y ^L!Dףd$*%WAqWV(xWjk2ǽF4TRcmsSS.! Qn)};,$oW-f'< mj>kbnl|ZXW+^B˗jiQZìy~z7|19ɪmn1.˜Z]_K޴禁r!ݞ V^{cHuԚU!o7|ۺF>O/ G}nF VG@Hn +tKSeJYQ>m8_ű2x)ؓMY|{߄R c5tE9ʓL逶 l=%&b12xcW_BWַmPZ'mr؃XB,.Vt%Fs-a}^oaTJAPď_fǶD,!>3h*~QtH_c6~VQ܃It|,/ Z+(h-4Fp+7nR~-2hݮ ZRdotQT׬3b>SQ!z* xO[JgHHqaG$\ǪMґ4)1^{4?7f S {58& !. T(k x+?Vr&U@<dUWCa:xy IFc=+K Ne:/ ϗYx>g6]':*81s7Kv7:mkvǐA'at5(j" RvR+@ ŇYhCKHF S8ZHϽ͑~U p&DiϤܤhM$QS%LĎttb ,KcOvO[|OE *N)ݭщ2KA|nN{HG-cD/ I[!1`xkR8wtkb0ॡ萡8@7(dE<ĕLa{GnTN(Ck":B,}6A \RO :0.n(.Uޚ)كYb△tTTe7̤VfP=@aݎF35+` 99%BʥLJ&D?(2o܃.ѠǡPnr\DT9^A^۰ Uo("fb=7=)鰲7kЛ :&qOv`cHۅKKʓ~8 M*#xk$r^{.U_v)\2 ڟ+2ߑ㑘fFUhGF-m UbGD ~>B1m%r]*odHrR,SN ε ,sГ  q h3b 26 _?~܉WSХ ǜݍ&zNɜ<"Ujr6a(]PNJ nXvTX#?P9-V:w];.k/s0wغd,&)b6b?bqqp 1eH@wo ]q r"W=+Q^szDtՏ-҃[o =v 625-\h`Ifv#)C~}xB_ !0'b{" /~?nni`CC:q` ״|whbxQ`I!oX>"-^vߧrl =_s.ẻ+caGK`eIO6A]S!b}֫{ŋA6{I;XI'Hzn&?¸L_MFGy"zO<*7$S*t*J?/]-)uФMl4㢞w"(V%72'X.6bbZ%_z\(X>bc* \ȅ&i9BL[5*-:BP)* gt*o3t*UҮ܃|Webgl2Ak+nqo}h3iMUt * :lwt.:ǥZV|kS!|7,dVLspZ5|'aV:t~0ƒR S= fɃW$*5VPw^b~貱ߎ]焬(w bh2+%ű<^KTuh9iMEk sXJM2ߠuP:~1 \ՠoQL1wG*D9M~-Ÿ88ezI&S'#%94SD*[lI1۷yb4*/X9pJF;jc"ϏT:pJh%i>s l|`aCtR߸\=u0 !"9L'kGywߋ$snI~xgIބh|X1#ְL> g*ǒ4_#b_kόX򝷍ww};u_﬿;0k,6+>AbMrY;E>5$ϖ86no"u鴾gZ$_,~S$[\ d;3ITqQð̠oDk(>C3_8 z,7/չ0A/r`lX ҝ_3S%XXaS΁2Xcb/?a3Wv;{?==᳖fINJH(BvUHTOf*$٢@^GOO7ʻ.4.YҚDm[=G67ūN2T\:}A,gYקuh|k"a傎Α#zj,:B:C] !ܞe!yyEyt{gc A~FS^Xt}m]zڳ{'߉ӞEX.8hGavD@ Qହ[;E-uX1sۡ4p>a NZ55S+ꥼ&A0z5D7/ Ϗzah&6+No?*ovJױn.QYv eZS޴ҿ8ޤYWl9ϣ4o'Fg#UU2kH?-}eJ%ǢZDf!?P]Z6]`X]~b"R`u)RQȄ)^cqe Yc,18L@D#!wюuۋRٳ|i*hT!.- `5kG»]8Mcy !XX\|+&</8S MlgCm].4 ۺ~lEc$ok 1j) |=(k5W)S%͊뭬YF&f!谵e0@<wDS#ჟ} ub#PvN%HW=2ha0o۸ђEq}LgE6X2nh Ɲ[fL­b *1fw>Tֵɼm^2üϺI[`YmUD??OCg0OSW| U> >{{Nl23$(}5,|^|Y4cΉB1zۆ_yCVMWO(&"J;"Z`e^g_/.ȑrHiOR5O~=[ FZ ǕD, >_^ObDBɈ8˺%g=gz_⑴ q֯-Yl}e [%@.Z. p[ܤXF~15XȤVV^J푿/5UKy(>{Oo_)2K-% +XM՗]M+KsU!ؾ9y#/^ >/nYxP AqN1T+;{?@г_I{Ƈ~FPwgqf YJ 8f7&[|\F-z-v7կb=2×]bRS>,G." Xz߇&:ӺaR|UDxϭi:ϳS|jsc K>7睍ȕ  w&cb-毎;& 0mygqsRsAmn5oX H!4[?^#fͱ1 ;zc}w}21>`y_sngM U CH=-zC+uYĦu;7,4irӢN LMiК䶟"Z-e[Pq 2T㲨K3f.' G ce;V}jNs0h<9KK2iU~3Csl ˗Vn 8v@uqYgb11''ȡJ 쎢(KTc3q[Qsq6!v1?BH-lEJ22i8+f2féhUyw1{v \ɰ߹h"~ZDJTlIz9x= '!ZwEӣ!cuE[]>&Z1ͱPJGC2&n=:;a45a"ݹѕ4c0.1Wh.!W9A,cV\Ւue>v( k%.>r|<|F|*HJ5RIMn^87f<d.GYpi0FgADg,а)39S)E 'V"t'v:oƢii dROGiҿurZ"=!k& JcʇSr+uT]mK3cWeRԥ8͢MY$):?r_ڶc%PKԾjp|5!F[1__e9l (`b;[Z9US2:th!F/'7"׸ q۵}Bδ04"p:E3s*=NEϜ4Rv%Yʆmwkt49Q-!򠄿%v D>7 ٴN˗}>hӸ_;-Ȣ4_/_mȠo k~ωŵtC7Gڍdaw!O܃ɶ5K(Y(ƸUE_viydp3q@ SMV!ioh8pՃ ÄsZQA Vαu5ތ|-ڍ@.U]+ljH@:kqGq =*%X*kr0^pտ+#Sh TWl<~\=R] ^)!r Q l]WB]wja|xO4Iڱ|s w^ll] E!KU#-# ; 1 QU>F"f|ٺ]# ]O't<^|^D=[ZgZ-Wr6buݡ|6qo55vqoҸ/1xWї1n=0Р_`Rߌ;ݙn<cH"?c<8ŃM"Z8e"X\ nu& pUi81 ( NvY.qK!%CڑiDC,NqГ{v-R|}b+,=}y"ĸ|{V2!I^q+RkORS\6B-olnQu=Xobb;sDrQ}>y">089x?k%?0FIY?:RO, o(ն$xek_Qe˄E3p .fmٞӫM#C7h>D Aк|;>9Sc0H{8QF,VA(ZvѴsw*!KMSal+ZɘFY'ИPh]D 鳝M8PKvMupGqfR=PAwq$+$M\^^z.iqyKɖX`8o33%`/=M)eƆN{͟RbC0p=kԶ@gNxDMFl_]:^KwOVP㺿F j`y;s:wo*`LD%B[z)9` c~;F˞N; ,Ak %GmZ~'~`^&kcx0~ C)&k7]mіbdz:դZL1٧)>JXUYڙ7R%0v1x{00&ieF ׃8ԎHbNxTyNMhC#Htvy''av% vg.VuxI{sMk;ޥ|vyX ע8&qʋYEK|Y-Fˏ15hovv:7j@SVnI S@lm-9vkܛ>Љoƿ-UeQKL;W&ݨf7L3W8SNmC`b4K/,rp;Lwa-UY0vwOY6͉K$xWz@"v)[rK)؋@wp ilhg&?p*4 `7T E@[񒇗zK)^Jō-By>^^7ڠarxٻjaxՃh:]69d;|t8t+lLIӴZ(HѵRԢ$@ tW*EhBHW]Uzͪ(J Ht Zrof{y )_$fq(E Jh)i'L{rjv¼5)䔃ʗPFb fwDu훉l;%1u$1Zƪ߆?tK ZNӻQnbC]2dt&MSҩ]Mhf\\<0Ip1'=?c@ 9S>|]vG}p9mn1Nx,>'NPNh  ldw9e,貔\7hq1Ι`3ˤmXm?IddUvBmS.5mw00*`lCUJ$yTm4g9 e~)g2Ԩ:$Ə y 6GUiR<9(nb`1>%|qj1cm`5( ;qd9Afg"XD{';|eI6]}ָL* MhRSI&! 5cDYKX$r<JY_ژ"߃lpCNq~"tPhJɹQb &w=~!ńqfw0іcNN5ٗ/AmI ^LEJGdkRFiMOL9eِw$g!\J]56 &&X,4%o0pb |.mprj0 &ԋ||?Ќ̢ES.=Sd ީ^*V,,L* MY<-}s<BtxmX\Xڦ=$̕5Lm 0þ͐6ZfFּ1<~Na_)tRUK%X穀礔^z)I){̨+i~eySt)d4C& Cc5I/MAZ0dq>g#ub0G!*_(2ێڊph.O!]]|Fb4:5 <\?Ÿ|ooa*ݸBihm6 *ԇ9I<GN;sj>2G_ܐ/V F]f# U<* _ Cu<=<`Nkx(T: 4)?*@ @?R +{IZ4mKR!|:\.up.=׊Qx :#+vx upW5DZ' ﮽6jb&xUxmE ^Y^W ^35GU~?,W(r/)]yX|?/{\6!~ΫL"GYmLh"S9^%N⹌%6\.F:H? ع6&4Wh`=/srNzIKcJVD3K3BK:#:[bW2;SuT2,rI`bRHPJ&4%EvD*bXA)'ًmWSq Y>-Nes8ZpȍIsn<f!=ؘ]=5S)Q6Bd)7B`W''w۬ir++f\cڍL@ yYx93nN+ \JrPVzދdIKKǾ[>DL<`y@$Fgr۾DVRvRe˙N5/uXSj"$k)Gd-0d-|"Y)BYf-<(NCVCJJ)y\reUth99&E'`⣎dZ(#0kDšZ"mPQ/|+ /] BDWʹgG˱i凘~-Jbɩ7`=oF[1\eG.*,Yu*rZy3AרN(K rcz<b&?boͲí%XHpMp>a4\B" YT./v#^54lϛPJNu@~B;i(~#-?ZL9Á+=RR7lMƹba1/ֽia%/ld4*Gw}0R[uvG`TE'fW0j,HRz L'Leih&E&o0 ǽokD:ظ/ ^b./^~5D'tcٍҭ ;BcWv;G_FrP6z z ̓ Hf'"389bmZT:ȒU[ɍHv[vǭ ˋik@ ;8}ԊCRTи0JXҹN*%hQi=n' mD:j߫xh5+5/K ON ip{% &},D{ 3U<<;ShH9afqw\1t1K9ez1 nhՠ\޴]3uT&@I*^VpMD* #*H9$]KXac|мL  5*/nK=!,V ֮u ^@2夣ot:%}d߉1ҷL}Sw5STtP"_MҀzOԀсz hEE@4A'S cXZӁ/PN#hP>@Hea/`*AϦ Ѕ>hh9ߍVQ.В08 rK~@/K?Dt z=z\z $L^"W0gR[ }(Cr 0`BEᐣ㠨8$aMZ    + S3V%::tV.2P㯹ކ4\:.ڝG$Rpƍa\$DV8`^OhA2(=BW|nmy8 H^LM@5k;*^z㐩on(QAZo%?^G |QYruPFAEg>3IWj;JL7oq^5ڟ2Ca ˗0z(հb 2D 0^N0ELA'/$O󜋳Jf)F4͔8iB0!j&D hjjڒ@ 1LҀh,- zCf:Jt|kDjva4iÁTKf^8vZ '3<2EN{|Z^G0#p4@,1kAJfU;xp:B<UEq7 .tT-;JE9Hِd;6r8EQHAb4pm9LL[RRMgRJ(O2y7Uc$So5e/8030{2N޼.GT-:JKL.ڜMv+TZΠ ý;M,@m>'#%?f hg{Ra 9ėu`(z)`U3V4ZmLs|Oq3 j`ʼng.cNOCnN Q;m^9hUؘ?w]IVp0u4#(?QӬzSUT_8NbΜ,Y7NcJ!tKҝnHW{uCa?xmmЃm-- (DRho=tS%<ߐgo\.g$lsjCjs~AQ𯭰Q`"a-"%0PBw juܝn0+o_KxtU*},5$r.*W 3~=6)2hC#/4K.~%20\nw"c;mIH}u &xYB=3q:nq;.3w;.6~CꝜuH JDw=t^֦=d:_tزn;L; ]vEj].|zFJk]vBceğeğe~$ޗdG$^OMhngpYj/ݒ%{~>mb C/AYJ#E UBWcL©챏Ip"rW|Y(O:'Ky'SR5IY,_N" 9i,N4d5h7<Vy0@Y{}虤"rJׂ圖&$t3V؞ D5&k9S%)`oMۅFlfdMDVLՖ# ս=T|^my;[-ކC^8IkPz--x&WG&3L%,S|/*@FX2s2En)?pZثVQi zՇU8!fVK':ٕ͢4<|$ yKM 8Cg|ޥ~g}7wH$3$~Z@ ٩+LLUOlLGgP6#t#DaVZdeubQ72I'KHu>6Nnf>$t'^Hb>җ&Ń%=қH9EڕsgGnzk,g wG&Qx2> t1" 6@ =}?zcb ?S,5(O$j> FXv2o:#ГzQO?m^!Я7@3@]w: u4$l7Dd~e˚+((+4&PKrZda0S?c<*oWß i7"`% x(KebEl=\Db $?0A E9IfFQgCL$JDRS1 ؔ҅!}9m}fCYub*&T刌eY,2DSd!"%ҩ\.R-Y)zwCZ}JTAԭ.aAYv6n?%m)}3t_ٯň(`+#Sw+c#@j' v db~lQ-H2Os.p@SNpRmA3)~uHtJ_I[?)b32Nl>߇)k@BVT$}eaCW/cB k]o_LXlT- 1>z 0}OҼU8 YE8b5x`3HS:_CŇzҤ?^Ih-))mUSBcNV}Gw@4uHy^O?⍒ZV:U<+ȸ}po-A=}3tuy6xװBɁf@@YVogj(>^oPIGB;Z rYtdvbO 5UF+n(MXbN)vYȺ}8L(<\fY#+5%= K"]NJ̠D6^+Ocw 2@\{G/J>_1c^ 9)N=n!,ZщޓD6Vnmwo_Bhw5Qx8.BrѦ|~iXЁٸk07_DtRy69=] t08c~ cielv=ɾF}kl_qڒVeU&XK#9c/j`Z²dR3c9[VcW~3Z͈0H:iW) 5IPzӝf)O'Ptr7)%ee"oT1~N5A$>wȴQaȝ6/bXV3Htjy"#W;AO46/W3&#5="p$JDkY6_n08KYUmM5gt]h_K4[^^a\ڏmT9-tn2/ڟ*dlpٛ^ˠ* ?iI?a!Sy.h*)hGCrx|*')#&WV +ABTw7{$.Q1-0R"N5uKxͬεJr0΄_[ 1 W*Hp:;5V夦Yٯ|o?PE1G`f|gqJO0+x6 y'=Ŋrj ^{oӊ+ؤ?Mf?Š4|YтHԱ]nG4߼+d;VV- } TPMQ'CbrK='YxlQMT$|jkP{1d$BOfgb+%]jE' 8B aJoc)q FfA@7)CIuF~ ~|:K[EKudobї1i짹b;`!4n|(\抮D;_a[YzdR' Wwkw q<{}3\?{BΘQ* 6g$4"}O-۵_AX(K:]laɆ kz ~+0֖of1 (#!2>QrF/@ V.$l^ y)֖ lq|(8,d$gp4A o?[t­Bc-A J< D,XW|{Dhh6^{ZC=1.^1]siJt{xq۫K;B??7Lx{++"_E-{+(-bFgwȡ,yq0I4^zi"wwyNTrDpDQEt+W\o.zjuM#f d&u2a3l:], ,+rTN&F 9u-|E"lbSOAݻL7CS2qCЂ݌7"Q ,p)7~l!iYʙW/gDN K r[9U} D2\+F# lG ݇ ;IhnO|W{s$r(4oyBj74ݤ5KTk%^rKv_@$ۅhB8LhbeNAӳ[.s:3|\M8<MFܞ1lc?e^֔gZ? /w?nyYJ.M;xh Pٝ3x 0RReW ~]1+46IvΫsQoth{ z- %; d 6B2[ W`)gϜ֌ LK[`'YyDgd)Qk]Zr>]&KUҺJJ,_v@*k&שxv2u?hMG+ydems(sh=Z FKjl)7>8 ]} &8O(-)KdvVan%Є$p ɐL(%7QɫH`JbRQZE'&XAcIQN@hB23FJy=b6dAhݺ?ڱ VĢ Zp)B#[آy[C^Ϣcr= keҝ -B3!Y _!jDGZQڈVer P UK剁@l4}S115hڇI2N^{@,=$mJ%ь43O; !h06_o0-bMm}Cbz_З[m/>i[凛)[cؑDwd(ز%(Lŋ (KgS@717>SI{|cȒRA^1VAܭIt~V@(l⸋sX~ a,|NuOde1sqܤ}|!u3!6rgP~D崥@x|(6n$CsnD"ҙAk_tu}PL8Gb"9N)w3J|[vI9Knd^mJT@ܗdzŔ B.2EY/ߴK}1rl8L; Шi5+8!†:~QkZ,.}XfYb<.. dڥL'$-Trd'հT<񍛔C  U ^xRAR|}jm4OGD۲ \#MS͌6x`-Z#Z7&5앛S"M";)-2DmH&ިUդNajkdz{7YKTd ﱚD~uYmņ7qMd\ >IY_5d-oQ_^gfD YfGX߽>vJdfaʒz_]Wv|gBmk%h=^Zۢ'@VvjHIzbc+bQWe=ėCYc|y<`}sfϷݗG4 ;嗉~͏Fވ 0oX~K>5J}?@Ql`'^FXU_?L<id(t]FkշqɆ+0[uy&.CE^,20uv9J.z*7g4e;8$Su%la0+Dߦ;(:#2)“mƞhSmBS?8qBYBjqv]ݶظn &oYs+Jv+| h).Q.Kx ]@ 7bG)Aze sE+k~w*It= v ;X+iQ =c){&lY>U[B&.a Y0/Eh]^|%IfҺp`5T8Cj׷Z.jzY_| 鬟EޝnUɧ2$[\ Lp+JHPnD珶-c7w<S嘤07\68c;u X zHצώLӒIJ9͎dR3w'rɹTk8v]ȽH]{7_C߬b,$z w)Dv^e9+ۗHߧs0_)AKJ0E~eN7,KaFYD]Ȟ nnIblwSDG] #TONpa+/.te_t咐t+kue/ݒ~|7-tW+A: =^TEԘtW4ؔ5Tf ZR8ޅR5?IocI7 C*o@ R-fCdgβr}gr*,DЭur_; ۬7Jwi ?ʋ;嬣梪;tƧKH~t{x㵇KqGOpbZih s57Q*hé5oA~C{le״)ߦM# ~$2MYr f^!؇ze2 gZ3)LQ~-Pjk|{]xZg*W+0!nYش UJƠ2k=[E}o}ka[o8> mJ޾I@d A/[dz𾟳} 7k=$֊Y6 q\A]6.n Fxcn#U&Z*L Y[ߠܫX:?7k\{!4bӇG $U|9pEժ'2KOOLԏAc%V7u ejYPȽx[-:7 FoSэfß7fH7/FS>9 Ë^dD3T#zsNS4IxIͮ,y6䙆]ⅴaW+^]b6XEͼ,:T4ewUC|U?lcaoxܴZ;hWLvQ K.&iٻHtK#3Rݖ ͫY\W늴+5~ 䎄;`6U PR¯ /6b^>Z~0v@Vx|lp)Ku a2p'==|p߽•N^:9 LmϹI0]:jDY~I_$) ptG *JOKگp 5 NCd[VX ML{˭TԼ8xS<$[KcC]I~'D?b*|c~- 95¡503# K,ĘMK!&^` [O\[&$׏hKXyCM46ؤ$WC 2UnLF#EC+*xxT ?xlŃYxLHs]`[NԮ9Q;h.ABu5^Dm Kn3H"#` SuwTRP=T:P'FPڱSfoiFT;ȇ2 iIJDeI@͘YQ'KOgu/)mz*vsO/5@/[zs& ~mp?Us#?n\]ICA_5>7@ f`7{vs6+Jf+νbJh/qI&Ĉz%*%}#>r?}x=Y?}w%{[͝E;QRM%Y.mCnoWv%.o?&T~|WK,prb= oWIsoȧӢlMi%hکҙw?.ww%wXƳ %{"T U[, >{^Ƌc.,>^t^˺XĆҠxۆ?=!鵚"^kVJHXˌR{0f/º8C";rٿPc"Գe7D/zvkEWi4 M`2~j|}W0"6Yu NdZbd Qpe g9|B .WM:ױ[ I'm)2Ā* ^9V)9oB«}!6l(u2lR|*m~O {u[N`2A ĦBzA~B}^d̘~l!ORw *|v:KBuXWpt:J"Ϯ0n^ˆK 1JApF6ț<.? R%_HW+_0b ƺ(r݅ m.*r-NeK V]wKwU .QyɧBf*Y%vQ^3# 'IOfM5Kccyu1Rcl}9E1Dń-E'=P^"8f)XK</m>S݄yev;(Kg *08Ԩr>Z/R/4M\R,i|(FS)i OnĞ9u^ƥ5kM9kz2~K} |`އ߉z=|n'SϰH=%lz98[ix0ݘUmNA,ZΜrXs xxiMÔp ), +tIX]w&ʐv' 5("LF|̻g %;d;+36qYhv@װZͮa[o!ts2tL?=bB$y.SZ_6'- jr{Ծ!!Fw5E'E/\k(P2o A}mqݭFd[t$86Ѭ|fĵ)nä,&P@B|OO:@^y<s؟岆e*m1F:ٖ9t3þ28Іa^ի2t51:L su |xN=qjؖw,OI[6s6.y]@`9>ϰ~J\6ꯗxIBV@Qa呢z)HCVRV=E阍U,6PbuJk7auf'|I8mEwFԠc5WNշsUt~գH` &Q]Z͋HUsgXZ'\)4>U^0FzccE*=aheS(/]lۦ+s']j|ȗ/G/ _E_)&(#-BkH } '*W!x-$+Q氽Cuxˮ#LQj|hjڭ~j#/Ŝ\Gg|BW,"ݨЄxckzAzƁ%]2M+|-D/Q a<腇UK7$bop1[ k<51iv?[ӵ^-r@JixvVWiJ &mT]ld$uhaNc"Ocs=~xR~ir~+4נUΎY/ n\od$/ٮK{m_ ;P3C-O]1sm> >j.<\R!*%l*)yJ" 1V.3Lo`3韫OƟ|oz?TKI3HwLВ$S>|tvwS|1AeKE⫑3Gb;QE[ 7OӃKѫib& lbè|+W0ݼ潛{2RpxGE6!<. % pdXD4c=X/v7; 8E㿌 d'2'q< 6{e4q* Ν&^L""S<EȴMO׏GƵ=za*!Olzqq(#f#&?l) +iw(K*oIw'Oq z]p%%bq C/dҢP5P&|1'虋#J5ZSjuGëGmϣ*?!Zl%TE{=ӕ8]݃L|*7i4/7>7V NU.!r!Ù#TAL^i4)Mxgw%Q+bD{ R;F1L1}4BDf'c$ƖqQ2m6WmVB֊[5kvmGkL5X{=m+BxTeHuؒV<Oo諿X1d;vZ[o?rL.Q_~n k`ޟ h\_=9B֌]TE닱&ͧȚĸ(xw}&l\dD#`X>z6 K\_l([ccHY)&p嬉c43^K6g<@^->s, g,HHg4XEp#1%puTJ \o'䩂xoSj5*3&^wY}Kҁ2uw2 -tn 4;[dkKJ{R{$ k1A~7,}CL:F{@F"cq% u~j7ʆ$K,C[%̅h#NзS 7͠|WH-%t(uCݭ8<ٱ;?eoJ4Oa\*T@Ckˮ=/H7N^n`9?wZM , jډ.t5=9SŊ`JBl:dja#\BacѰ*.\hl01BƨQH8U@Xd$jO@vk/yDѯ'$\{w$c|"7GJͻSDcz<T;B/mkVG۳)]Yn8%9|ӌLZ,+s>Dc0q8'i VށLVԺ2a%HSb{/ޣ{Ow'V 'n0$_8YWOLNQt)OZJ ֡r).9tu0;ln;U1N!'<l3aĪmM-6Ne|Іxim=ݠMNQN3mnb4Σ ;T[  4sO75>0e߶bdfheQ&Y8ph^r>G]H^3I-PORuM3D%\S+c)t@'%$V[KpI[K\%]%Iһq+QÊ+wiWVF3YyXi+g-/!&>RA90 `nU6aasC-U\ԃooR0Q_Q°R<7=]I$J!J'i 隺IyY9+[b2g1+“Q7T8_1Z5U3Q&U:M "کx :=.iTn?HyHx4I:%nX* AB+ U|IGjf"FhΑ.'Bx%{Dr5Ze?Xg=FPB dʍ] ;t>@s|$i/P&EO'hJ ulgN]o& :^@Rn f, <4YcjYiW1RsC{۳2Q sZA\omFMN)=K lwl@h8]r}8{%wk~qϘRLZ4j--iJ+&`*5;!qGOGϑa/cCM{l>?ql+oGNW&y IKBR(XBAHxRdRALE~ R-y @ h|ڑϴEYל=?5 ]~6\w?/~qC4FrDc1ׂzvMA5(ʩv>io9H,BC1J NnlFjo'-*ǜR &%g^MM~||6v[^g ?uaN jϧr ڥ LAKw$+-P$7*6o>3E'~"3a t{92gh9}Cp ճ[WEd"BXLA&NϮR7Z*/ d{z|Hƭov-MqJIs¯;ҙ z1 iT4̝&uuD/p2F۷'U|7OYMqrxtTkQɤcEn-X"%jgHpnV%w[dɽh Kn\gMCМ!`l^@lP7Qf" 74 >`n18GX׃BxL6&; DdhmM@7;N\GE#pWq\-Jan A圙Le~ԺX~k~]0Wfid"{#l^W`DH9|\'FmE\V@ʒ=sd~FK[?&Ʀx AEH;inIENo\ */ƞNZzwc*wQD&#,W+!rPLP:~0qR\M/Zzi'􄘝a+jBeon ˠ)AX&3J4{ Ec'AlLugIfNB0;Nm?\~߁HWW xk 6iDw>Th&#/LxM7Ὃ.ń7&fC`uo CQt)eR eit${6S95!ܫa fqbsMޑl0'g쉠P~7@4VC:=$ZӃP$c slӓ `stFk"է8L .SSBG'K`yi L*<վ"aџ!sYK躸Du`bջ;[^J~ngճzw;=5%T 'uG{hXUiҕxc#G:${{If09D*g M7CK,U1P_ձ^.I/RkDҜKT_5 nPB Ǹ iVH{(-au%T iH_5yZF55I'3~,A`xñ8bfa^?B ;e,BOzZDo[v{I3(^񭞖 ڦ$懬fT'#: 6WZv͢n0MXRDgK7H-tTx,U7/Ո&+ۣO_W0:vsZ4MPZ=j*A]ܗZy&rڑB9[IE4[9I[UBs֪Gm$Ҹ4MLwOi^UE튥|)8ğV PStE JvH9S%Z3O5=OMدC' sz\>X[>u{fGǸQa؞qωIvIrtI>&w;bLsM[-fe׬k)-$]&.gKVSd|`ܾ@-\G̕!B% J=7d~W !U;|;1ۻOcݨ=¹6E_Dn=z2ϭOMY&dj)b'Ov(F+0M>b+q{kg3P,`5ңM;AK ?gxoODF||/?TT5t.X'ѽlt}X-8e 3j!j'gEc"ƿ~Fl3&ڋG_gmts+CUU7G=0AN3l:$#l)xY=r$l[nl3Dh$=`j:8WNJ܁_\ZРpu<1\;K${ّ$%,1Q9BȎ{G vaѹTtP;۹"&5tɌ="?KvZ~>B,C37grGbj:B<>-4V,AWZB$EpF :sH:O,gӺ]fSOr3 \5?\"tE[q'.[g•GMUpDKQN׸RA/f5^dqth'zaŗ3f v2Cb8ROw*'vK1XQRL# NQ,X09G=:1¯i&r4} LI+*8{篮3ΟCRΟg2stsGopC?88žCR[_s7~?1֌P~CXnao6\+cI dHDyx942v/$$(Dyb ^O e'? *t?wb0>>hFG4^γ/tmbބjckJ/oi6/M˭ؑ"WHE4{/h7t}O/M sIytwTQ%YEgL7M2٧+,WC/,9܃Uf2N04ylh~Rk41RgX ^QQ wc:J@=х?K/$ƺ+a3CNtlY\|#C+2ЏC)/YhL[԰en~] d>jIЉ:6aezBUPnm}.MY(%h/FFH x,8E8aJZEb ]"C2f_6ox*0OTCFH]: .) 5 ؔfGf.]I)yQ$9{~1H'PSYs{lb)Cr9|OEMΈeiz6{C 枟zY) 9p,z+M[VN:GkpRS?gP,3YQ„(C!Epu(41?$-ga7:A"Con)"@Y$w%|`Ɉ?ab"0[gSb3V͡,'2*&Uuc37Ȃ+g Z]H޵ ޣrQ_y? 7 f̄qC-l[&TfX'-qק~zH/,=[,g>d2}3&nöX*oZ~AX2ѥV%rV:f-bh~ gi9>`؞P9 !!lrgѬ -ݾܖ7ڀ'.L`7V4qY2ǓFBL1P'~GA‹ߊ%79<Ҝ\xTn}vܢP4(:} CԾy\Y,4dz C0 ZstFc'bnbK/|3b4$e7 <^uб*$Žs@kO~ב4y]kVTZۛǠ[~Vê[0jFk.DyDkH3W$N0+ʼni)pFПZw`Cy:lComMH f X ԿaV d4aWLI $]W:!1g  #Op<򵹔B(דmu@W]u3s]~==?3ccm*Gk-DwXM!-ed ,A?_ ~9="9clC R@eBv-O!oDnvnS7qbG˛f+jRx~$1 \ yS1C?gii:]8\V2Fi^N/r_dͅ}&9M} Z 1/F^rܛ+WT-_b6c+x-+h+,%fvT&Êu v ݎK=c^L?eCf1I}E#Q5 bZFeALv3}u%ª@YRjR-X-OoZR#Q7ʰ!!mx|T?oD(/=-u %gٯ~nU[-Y+qm_V6$pVh^ǵE7MHBH\RuҤ.+jQ ^ V&)v :z3=f OC)+hh@ 7kW\p< O %*' 'CCyǠ֜_,T,Qk̈́Z#VXͮg %ؑ/uAuxmtH!ݧ3:yw"[_D_1Lǒ蟷7KB2Q v!NL.zi?"~(G"̍P \,I+VRI3 :2&;o6&S4:xjrrarbnɣQ{A|~Od;nld;3 S2?ŤKVAt MWY]3F]ߊ{)} ͈/d zH =YHɚC:>0?nJ͏6=?owSzJ.6=g\[ܟX˩Tf2z Fe0k ")"->(B^ӲCGJy!Jz;)i4K:%2.) ?V)[TYeR]RAI ƆJlausd$#;ũw;HBR桄@堭Br|>!JkLܰb̭`Ar~o!'2V:ތ Zr3:޵sv^h{䜽;́[  nF];G̻Un:g-x{ijHUZ4քL%Dfd[-XQ]pm۳*mkQOͰ{:ja#@%1U^K,_ ͿeVݺ%aΏ!=/V37TA[ &kɤ ĝl wU0rݡ;WB2Q2W fM9r+67_('tEoQ"8n\@QjN"s8~7@]z7Jk@7\f>7\=׌)=[q̕B}˰q:2 c+X%}jC:@6}6?4:}Ak 51G&z4XyT/TSKyP٠^f<8/ֈ:T%SV65,tvzK[ŗ9.d߿^Z4 p̒x{($q\4MnYVT-*2Jet\5KKrL8#I 1cK2Ց R%.5$*A !ƻ4@9C(hc Gw*+G}Ԗ$"ďlʑVbeYs[:I!kuNjL^^&^q{R/=Y)<1_;?@~\܉ Qydtu#Xo7D{i8{gHOfϜ̉ n*{ FaX)61C\@nmBZySkB>7qX| -d{ѝꅩTô}&x3 V(B–t#Lzļ}:k cx=^={^^)NV! 6I2;>6 A% z4%Q]%ׁlF_ɱ難RYˠ 8tOxc'|/܉yݴV5 W˩t-qf9$MLQ;ICŽ kX=$(5gh8QWth|+hoG+0,COJ@ncb 0=N]bL_aFŠ#?=?_+aSI8G7FK}IikU tR`E%_Lfah*{aDBSܪ"FXkľ-\?E,z 0dx ljft\: TݏN^ $0 xޖw"{UVkj#їjusk?`%KLxv=a;oW󫋕U׏;fޘGIh"u-QsKR轳4vK4^BG?hv*ݎxoJҮ}^*ov^~{tpMG<.'%MsUee$h9 d$4'#)E Jҩ֓zWID/F\i*`|PUG㜒ª݋a9w,(_/sŗi3ލ6|$N4?x }pMJ ;\RI퉅 XbS&b`{:/H1a{Ns.uZNw8 ~".Q"`?jTql6|\ILcUK0itImeùw%kEMO,IsŬ rFrH,4vrH|Q@(X6ݴR-$ZVRY^EE-ss%Ox9 {2EwfMU1lrd5q&q-4lg#F]'vUg}>j_m}kliKV1fؒy[gfq3A6I53twLap΁ R;R5gsoJ 4gigf}כ? mM|kObj飽%(av 2<}C+cMќt>s_HPYtp0*hh-rKK'䢟.B"ʇ:V%Б֭Y| oRp_gEXƙ hIlM?x/R@,+PobPU6|Vd #D뽔l ӷmw`v.U {Ⓟ:޻DǶ֎@4L}zDGH־SdBݫӫYݳ9*=8Kg zI;K-yƲhByIFӞv8dx:ͨT"d3_:GsV_kv">"N̖(ϓWIG^7zV ?ݛHbd_#ޢ\ɮ /9o O!bJ]OP. ShJxYttaT4 yH|nDP[Gran-1`_:藺_LS;ՌF+Cgkrcgmc&/uo=DhV'DE; R٩ KEةR RU '8nPGx,%=`=3k!ǾSti.M?A''S/ t!vk&Y_q7#JQZE;RizOj`V怿J *Q釯#m(k6l(n~?ڳTрd)ŒP|8(Lؽfjtvmȣ @9 TPr/!6N .a anNc'~4 j  ẍ́)"w9#؄ǡݬPf 엠H. Ԉ.8%^kY-?(~\gi. ᯥ0~Q>!z >IJ {?KGY˶D۱g}.[\!_}f^菐<ޓ*;;CZЅfQ39leII8@]QlʶDg\ ȃ~u=,E5d?QkL.'EUD ʟ궜 BHT:~WOT16tkx]"1n21f$ׯJ8ƭbů8zZƞV5!Ek|`cOx~p-ބwk{#@}ѧi ["-ʂff=!]5 B8S[xAO6O".>M~?.F+gm;?~PѦ/2?2PŲs S3} e|o]|cT1?Y{4|GsjRX(1}ɥs{3618q lM;>Y68mvD:C: qXl钰uٺ_ø(=v.ĉs82VLXSZ$3eYERM:39Y@yJr$t;2L~tS;v7le{ȯRxR;UG*S_^|//%?@ǾVFBz(Ѩ6G=1N}T$.J^aVt78tHyv2.yOhͦ }e AnN)F87Njc~'eT &èڟށQ:UMڅynV܋J;M nlkۖt?K{Q)u/joW?)/-No^Z'w9UZG<5k~ Ŏ"\6eˋ2V`EmAX=b]7rj Ɗ>Cϥ| B147SkAl \hwAE=C\㐠Rܦ@O@,%%xrdXHs yBjb'rѵX P{IAO\I?Yov߹cc$MɄD;V$Xj iux(60ܭ*ۢ|_xsx8[}'72i%| {組#@:(@FTL"0W@gL7 O/eG"6B#73!@ UJS/M7fW)) C-P=8 ,oR!AA0 !?ˑR=vI4Q8'HO0ٙ [(-rrQ@jpBn.֌q!7]ȍ|Jj~xÐy0iK qS4SaBg"i4Efht>LCLbNB\8g$#~>_pcpҭܳq箼DPnn#z86+ټ9Q+8wo;^-;W");"G\m;?7g.ͯ2 S Yu7[om&Sk}y<&mT%\UQq8ۜcb NM} d#$Լ2|pz׽,¥< Emۉc.ߊr6nSz!nSnpDe9wM9!Vi&F\M]>c*]tr!|DTEHMNB.؃f-sxCތgH| Sqxü#^=(3j;Rcbg,v\MO2FՇKmw?W*ߓwf̙j31 ʘ3-._FjdΪ=D ITpSyW;mVALi wy:ESQo.u)_+{W~Dus.DbK{/&JP![=-PXɷ8?/8~C37 ч )1=Um_9Dr]jGϩ~ [) xެ7ᝐLR/In;,\]A݁fAeQ(aNh |l;tqs9Y/e.}) ^uf(>U~ zQ7kkNo8<MU:9ʄ>j_Lh%Pz[ϝkE`.&NtNnTbD쒡W<1;"rQ=T '-Mb:8^-M&e=j[N#2^j#HыKKɋup9,ϭ9(DT@%69G荤9U%SE:oK# uQl!A!AȶE 9L]˧% q_tUR*D9VҮi6#ZQ@H:HYxA߯#e8 n69_< ƯcCfzCb%;S:cvW3nvƑjg\a k/_)2|h'`W>TJx&%Bb)#uHUYh]OqU` {&/;R~gF'64/wWdZ'jL1铧" l^]A&Bӻa1>-N݋MYSOTn-UI !3r~ۅBR(UŔ,0 $Zspt=4|h;$=8C:_/8I!ve"'> Q66-e_*{0be=$s|Em 蘿uZmYPl;DTqX (^ Q%ˍ$AϒYw,DBNU2Y"eqȊ䴴ڹ>-gxvDqjn1sHcG+/(qh`tz.rxGu`Ա;,Bk-d MHwsE+ɤE_] D_03QM, "/" }quۄ|ГT"@Rg6Y{Y8tfn^^%ථ)`1ҫn:ႉGM] 3qw$菊Q$tUi4Pr".Rɖ^/)'az`;N18M}#OE^CB#Z@kpNJ"ȊgR|fl*ahuYNIR2 P9a]0ԯ,U̒nT1͘ Ѓu#K "RyYS?{Qb!`M5@ ]ZF$DtTVya\b?k3q|]l﹐PS0X(QʪX/krX,_q +Hȗ^c-@ɬS\L=HQ79FυW2̙uZOӑJ5vד DT%/|^g/6Y敠Ĭ䝚N`-O+jxw.t"yr+oy֡Vl@O~Q]?hiI^V o3>}/xzٔhb#(r+ 󬰟cY4(H4qhU o{3[4th/>{NtU2Zr]XD A o&!H 0d;qwhFh/% , X%аv3?@*IFP,pm5b1(KRSe<e}Z=?k v&S /^cm7{``_ypgKOVh|Kuh?/<"3rXunDHJ]Ҙ{$CDT}eMTm%S7VP=Q_rݔB[+z*rY9ha:}lwDoXC8>\sӋGsLÅ( eNbͮpE2giJ,tc6g ?gs,֗DF>UcGx_w1Ibt]"rȆNSrw8n*@:i#9o駎|E߽\ #g>#_#LY d9}: QGws'wsi[}ba:]&%#]0W_-;Wod')l겜z+Wshp]4C-d K} %˧{%{R?~]sg@3rC~AC83ޟf5$TzPTYl?v yeqIg*OYkbJ6<ڦ,Gï:ŹWMoqgP2'l.&o%TgIy=mGJ{jSOؚM3JW[K_ pL;s -f?e;C}` J|8/i>M1C>a?d):O%G1fWpK VJv7FICLl3*}O,es(b/Î9z5Hc݉C{xw=VCu{zhJm) yê]s`da]eo wv ~gAMHzډ:pG0ҺF7WᢜzY*2_m',//^$;?V$H >S~q_VһwqQTSgYKPuX:,/r8p xT1%x!>I njU5avqKYp&ΐIf&Hn:.q_@U@31,X/6pUBpY;Άi9ɯGN@o@2+XCasGP,E{=?@ZghDe' %GEq..5M@P WYA&Cň"z2ZO<ɲrW/[J,BB|FPeuOဥC=?C&fo2P_&Yaq2'e`<@br\kU";T\u'[*c2q{5y~׸_׾sJߐ9pH?;u>hjD}ՏZ1TUЊVOXW6~UF9&9h4ïhRªngv ^+D=pd OAC)'IG )+PmcU/S2Lľwe͞õ^Iݏ|c>U{ UrE>=Z}MC(8@h&B# e>#T&tA% ]8>TB. 6SJ.GK|Gϕs]gBh63%^FгIfJ"X0Ա}xboj#+c;X_G yJ E"DI5t^ۈYIpcM*I^MDNSX޿.BP~2AB |zvϣn\u BwGG'Qwg0h?dQ_܈dfӮ'!9ǥ"0JŶsaY>VX(=A~$Gd1 q2~t}aHtRwl(Q![+-ʜQ(\O CG قUT:lZiƨ4w{sĀZ9;#NI°>Y{R[T5xnUz+1El}kwFZQ8鋦83n|fQSRƝ3 0j6;37*11Љ8N q7űEhPq,H8q2m e-{"giS,|&ٞ%ϢdMDEt ]&L<&8bDA8]UE>5:dX%5Ҧ:ơݙ6I Zݴ"#mZC70_U.܃\+^<ZJ)Z@a,eRj$7ao$r6mqtd{1{ߢ꾂+r7zӋ7ME7pJgyڱj\F35hl%,9w% DR-,a>+J$Td3< ohHRU|]jQ8?aE/"YԙU)jy0*pO~E.!,<=/=TNO]Țø ;ږ1x /cXX.lXw5Z9hʕK9cg,NJ%2%8Z6~CI MxJ.BI"x …xs&%{.nmDs6';{sUSirfÛ(Z_5eFW<̞eQMmq?i?*vj `#tT`Ǽ[&Bd%|mP޴(t|흥${(DIWyq'2F!dwH+Ѩeu2G/YNǹpF4o矁,M p>JcA?Ԭ٥He-r.rRdϱ}bٍ3BL%|j_9FS䯯ه%Av*]q1"!3{2̎;(AX kvS1b V<Tnnb >J&ӞmAfmwp&O ^Aebah@\Α.qsl ;؀;)OV &j3݈U!M| -@fP`6^k[x"Hng mu;r<e.;r{'OY֙n';wz*߰B}^_vqw$ !-C Q.I5YWzkAdrfYN {<{+`>q9R4VFKЩlLAߚN@ҏ>g]yo>f0\%GI7 MbNk;R.ϩ(? x&8O[>3̦-:!i_4U['+D!?"FPwCXP^=@.hAP?}r p[BGU ptq07D2r6:ܨvTi-؆.rQlMdR>CP辏Q6(1YϪ3+s4aтoוH`զA#ix9#~g$Y.?<(8AbDEYב֦ȾZ Q861ItJJ75 %_1r_ɏO%J)of N̝2R  l3[>h%&dH2ݴT+Mu0iԋNM6Wa ߢm:ᨒ[Z<  ym>qB`vXlw5 (뜂Ġw'R<SH 7Z,BKy#hU- b3dB6VھR5̅Hqr韕~utbʃ Rߎ7޿tR#&#Rl!FYP-MB)¿bs}Nw;b=s K>o=b# W,@& o, 2_`W*מ֒f3jQEL[Zŋgn1 v ]c͏zKiO驞x`~RM >e{7fUli\ڼ, GMQ-?]Tx,HTݪxx]O҄RI-QHB9S[Ym4 %*D΃(%l6l'i܂=8K Q!{A " {xgHTBtâEU 6V ǫ <47\D6MFtSvpTG.\Yi@#wix&ȖlyQ⨎ 4$ wUb?]'}mG}eH8Ᏺ? b G=>Ys{Q`xqxqx < ?x*O`k:=ī4lk&ƶ\b[ۺ)Gl ƶm3#~Ð%8> KCs`9pv9|Zr&9bP U\j`;qуKzpЃow2\;3\"SW;JGeۭs0אtzkV*!ʎZ!Chfp&0Lol+=Q @(4Or((&cN ad''pj^_Ⱦůb}ˑVn\ztDH"{QiO ʿo nHV0Yd|ÓrCeM-A~ ^]]97|©8A}NQd7(t5-_&EvVzU0@ Qi4_fh'yio7>OZZ!tktyiV~­Á̞ ?y vI-Dvm ol1Ʈdȗgs6y‰60N$[Om|h䅍~|Aˁ,š& V*k~JV_#!Ls BNcC:߸7}7>A` 2@)ʌZ:RM} c~ PTib_~5ń(,&|DzpJ̈?k`o ^cDhQöeV Q \yƆGrМXYvk~ӆnw;=7]{9($0Csٕ9t }Y>G˸gyR9?q|8%m|zHf>796QJ}kե8꼓.GQ'謓bT]BL@ GHFZn@C][ cdӴ-nkigW[m$I'Q#^/nܪuQg D *#^gH0Rp 5Nz =T6X:Pl= o:+|>]БT;0L0i3;.HvdhdLo/[;IR # CVҒ $ΖՐdãBBE^)FA D+jbTv] F4-6Z[Ĭy6lTRQVV"XCHx@jVgJ J%9wfvvk(G}{{y| ~ӝM) 蓴2f|k*A1j&jf @Rn-<)ga@$B:?6>JSbgYQC>6_ шmGB#C?E¼RH^0ι#"% I- "@9S )Jz~pfc.]1y'~hu:~؛zfuΪ~/3B'8Sktof0MCM!mY ) L EGdcvCgnᝡ{gHV3$%/j¥c~m_ }/N2.-u<  ic g S=ºUg K~팡S1HJ׷d?ե.f݆Iijy!Ū%7 \]h> 0`PCτaiVRUBJѡISsgLل?͢mogg3+>Ws*'IFp* WeNN5Lv(5ǮL i8 9B\+ TǓLA Ikm| ɮW%VhZN[Y?_r#} ^gWVA}Ʃ"3G -\4ZGw9#ʴm(uK*|j/9PxYU뚍a*-61h!fl:+Z]鷰μ9Oc QTKa433ѺB 1oceucO$eUe+OۃS-RH7[ ;7RD*ԑ0q֫g ;Z^ד;.n0N .N [L\“s,a`!{tͬEwLբ{-čEj&W8t^ Gw4Q|PƠn\mCn"t1'ڜcRxܘph2#'M/&(5j =D[V( Cs:,*$sl7@5ş,ld'>}xoe}NBӅ!Q(HNduneR`|a~dg-OT(!4`|싽{\y W D g073f<7"7xȓW|nrg󦿥6 b+(_p+~QඑNw7w T?B1E|_k}VlZgG?{c.fMKr~7% 1lxҒ"O&={0U2U\$cI.ƵiigߋkkoY`:86G6mmp]]Ϣz-;oZ.kyr0z%ŏ ac8J_ 4U+ ׇc|j4iY-4|rXX%?<_ET%R0^*Dcl>xՅ6dee~n%BA'heI/?çd :RtcT/[g.}<۪IUn}У:|Bn%j2ϓJܧoynMT_܇ʣTQ2".2G h!3݃Na7 fWa%st87)c8 z`&lQȎH+ G|.Oz_WqsRERgn`؎AbNBz/?e (NL "gٛ#j#{snA71ʄ"G|GS\hwLPupW`HXtծʍpguy?D,RWQ.Tԍ3 99Ȣs!f5 +02VGpM"WmwZcӹk 1$8IMN"2l DE!vr ( b *~,j,S.pA*jDfV~sAXa/&m-nEbU: wyiv_ bck:Y:iXlSW[EsWkٙ;!MR&d/=C+A{i (O9 3G P/ŷFU#134;;r&h#8SI-VFYK<W! vb96& V6B@l831ȳ+ r `BrM\G8UrXRMZ]Gx*ɨmN XPAy!~;yt&,\?;'v݇k7A>MxW3 Ip%-W)ӷ|J."Ϗ 菡9R8+a>Oh+/ J d֌0* Gi5GiQ%aAz␿mmW5I\[ pބd,j{/ cwfOkA'\hvc C?t6wOxb\`]_1(+e05]o-#X$\1)=O.p ߄FS! _͡(l/l۬~TR!BizTҺEX^o_W6O^_kʗOW D/k{Rbnbc{ӌc9s`$r$=hAk;b׷)d*ipPx> /K aLH/h+隼WOcT#ΈS3;`:{uix!u Yxiak5_&7쮟qjj/]_]vז>>;{o寘 -ړt2XskƷM1&i N &ak-U6s(7`_/Ñ؟\tu!-ظ!d>sOb{9(]gnG(Ϙ~r}{|K-u//~7{ы[#a?5t^0h͙lN }Tawza*L5r7؄y?D ΓZJ*,Bs?jQG!$8qIeh1WԣbD OR>6JQ4Ѥ]6z{p/'f"l#i_3Ԇ9n1z迾jph>78_o*祽*|48/偂 x`j fC}V - LeCniPI-з,>iEN? U%E~lߖm!Oz@< ~آ\KY&rK)XSઔ< M%n@J2݅]J`ݓHn`ˆrW+@r8O`Yqz%C!I YWM==zwc<7\^rٹT ;8@znj䱈;q9B SEܸ gs5#bu4HyA@Hbk~?4SvV$Jo3ŷ6VŁ ڐ ~&,M`.;f7,n L,'28p%V$5J]X#3d=ŏu}k%l}mkRU=lXH4V ΰpLq&FEPV&WiP D |M*˭!hѥ4q3ٓj7xz7sLQD3)k?bKBLwa^6mj(_I΁o(^p`/_K8V :,W|l—86'K{/2LNHYo5$.BݼUQ xfn\[?阾uWȺ6d;]֞11Mj&T3CP2C*]f+QQ4D-˝Dbך"5, iCyGi;9)-f hNZ$p6̨d$⓽b̗h^Σ&Ƴ0b |DSjY3\q+0/ɡ2UMA> >iTIWfnlo(XLRX}7*ca.fIX}!fqa E\ =b12n<9-8HJ$!Zv &斋.' 9Lo%ډ 㫂Q'P+dWiqm3cIr6'U[8/ #Uܪa/,-gigy;3]ðbbL+d0+Ӝ!qb5p* ׈R7J UUMljrl&WI=*)^M80{+;F VZ~i.em[8D %dX0U5?#Qz2ȸK6QΝ`sKqeKSU\I{予'Ӡ3@1tKyNa)QwWiQw}ijR2HZwd] I}IW~q d"h /P=RStvc;.K(hֆ}(Vwm3OU|mZy/T`>CY?ʳi{̗bP6@| ڗW.Uody I;d<+nZH?074ZkZ7$Jv ϘFoV].9!(ö}͒5njّt4h8QcV67~=f_B͛׆XGH淾o<^1cM0Y-.rq &Hvƪūp-;#q:]$F=&PqV쾾~UI035SC_5!~< ( /^8.,cAR3S|)4ЫeI4aCˎwEg&"gʮ-nwFh+Ⱥm=ehК'[E ()XJ2cZBsu.uQDּwc}/-(_FhN@ַ=YoϯowXIf{fɞTT-OMڳWn曖zopvfFE_W%'[jjLTKZoemmަ&Ai}a*sN!JD?MWzp!Eу-XK10 ')ɖwط$-*x  ?o`vD_c"Tb)>o6;ÛFx,Ë*) IU{ 1V,Q&-6Vg& H.^S56$X'v{Cc0K'YVɊ7D Zp:`vj 4va<_ `(BӂGPOD}W:Lg0k^̴>Nvn:]uZ].w]=^gvR&3x*REcEMt KzUT $UHny@F|-hj*4#f'И;*RZEeLcDE_N`L$-^m6HA\9QHӮ*J@ @➲ʯ!$oZ1ߚ6ɯhTZ?}3VK-6l?fOM,Yrl"@H]Cf?oK [7y`@48\ FL6ܯb`'$P \$@> F66ѪLYZ[vhyWC$&U W+:*x{K!nW;B [VE0JhyA,X\EkVk)ۨ/mFER;B-g`!$uoP=/^ hC`V^(T2Jʾj<;5`wS-1 -j=J["ׇ%>6pp&/&LzDt'l"xo @^6DC&0DP g39ؒI~j/z.;E;@ ׎5MīÕV8G6 _!$){֫4f6yθA%߶XLWـ#,Raֻ #ivV[ZzӘUPo胡뗜nף {uQ$M4pב#>=q \hseH4{q.;'fyBM<%S̾D_%ڷF~nLڐ59#A2_p꣥N<2Eo;o *+p9RSv@f+?! ƙpM[L|W=-^/x_~o\ڦ":]O'tk!׵uc7Pw&Z3Zۙk_j6p ^n,Ip)}sVķ=-"[A}ZsU,i]䦯1)c/&0BؓIX0Ǔ =h;*c&L̩'ue_S ejp'GKЖw"ÏqJfWYTp7km1CnN4d!xѾ&K+x)^H%)?qEt.GZG)&Ll^A񸮠iJK0=pW:ݚ$S)({. cm!#Щ/u*id\G5JgByd&_QΟN6MV%|"~}{QQxib_:V%u ( 2ƭMk͓pֳ^nZ ] fѧ!hXe==x> r7S|DO_8,oe~+{Ө:^MHoBmp;χ]sv1F#3{jIͮ6^rWU>;݃´Xoߠy*zQxrX[Yi؇R1Sð.]C(V;:̧#w^ ?Zg.[˶ Lfd5H8]mpwgoPɲ O%S0C4k Gդ";ª;TpD $2L2P UG˕/[C;33sqS&sJKvBRw 2Ҽ%`yމNJs[ ,{AN+7 Q"kU _ҁtE8;@ߟZ.6UF/R]g/?bz{3U6m"'vs`Qq$1M&m] ->XpuIrmu_ˉu,:At# VՉhcvr(bT4ob'p*w&lpF}kX*_FJ1` 9"C:d]KK[ |(*Sto_zeiSI/ ŪGah`7T)fʰXׇ/G{W EWt~|;{,kwIiuyֺ] p_g.!@2$D+TC /ȳ#9%45ps?~hx}ܐU9#< F?Ļoo?-s}=CvxN OSm xQ`+(_4pЎ  %NK-59_ڗO_aQIr@nr EIEkE>>@ͅe< h jƏfVͣ%u->L`}>u.u }g^^n"/*VPwm(W yc`9CaXz. sR}cJJxJ%˿#a }!pI.~x*.>I8qp6t8L*%ċ2%G}qzJ(aX!2Rn>Hᱯ{[E}2 fnxHXR ŕjrOp;H(k+A2 ucD%Su"ln]a*x"8c5u(]ǼܑsED|ύ̗ȄૣيOJh9(l.Щ1m&qqsp|*x  %ףl^\);Gm:_1WMQ5 Ԣo,D$M(Wĵr_ 1HDkI'sccRVx7PS<YJ={r Јuko s*S*;WE\ Ց_:|?.3*i5=Q O'6Ų\axc԰ˬPx^#"NQqpDO7(?I*k8Y&=ԭ -wjn69ML oMb59ONT_dvbW袖vնŵ# ŋZZ|`sVeF7^Ӯ̓ },R>P QB_UOz fBAJ5 ()7 ?  r.YwP8wd΢!z[HkA*>*kR O]7_/"8טsJ5^4q;A<=O!">e>c^0W( 핿ĪCMƧP Qv2vk=nY ]i$rY7; >xQ$D@|ܥBa:ᗕL%)5?w*D-{++ͪXeM !;2]Ti|ҩ3nAc!YM1*DDy71]Qmf7V_"]!dӌ{"My DIwE8 pO $BaWI{$]Wӱ: lz퟼] \UUE4ZL,K*1 Z rJt%d{hIi&oǶ1~W(ؠ}7g\)7c'~3L͘i w㕉.aK #ߘPcZۈi8cd [\І_|lCt~7,BSZ㓲i|&&ŸɎG1'f&ֿNTX>±by4,+YC)Ls[n$UHvDWJf . R:osg s.0x8MZhN/s-&yڗ>~GZɮ$v2G+Sr޻9Zu L;l S^NYyNoy;~-h7uT= ]d[ʺ/x`lrQ8pRsl''! R>d? m0V .S$yvI<{nc[CwHH(I|NPQFr{(xs%,84bA7Qg0=J}؄';㍋7+E؄ͼ\crj>BN>{goT]A5#B0k^ه뱜{)1&ecJ7!B_?&3O&Y䭹r5[{G2 ttx,_lqrjGH bDNM]"T3‚1ʚ+JLPCrDzߍt3:l6_ z+=pe\DMUYH *glKOΪ<9 ;!%xP*r4԰kÂ<*W)}U~S'Yz-@P=i[V9z#ad[V7R(>8VlSZўA㏴lDr:k;~~q%71ꤔɓ5<)F+-tWf\+6Z ٣}XoYKb+ viIP}ʋUAf༵h$˦ l*&@5 :/LGΊ䎴2|>|OmI:yŭܲм2n6Gwj>ˈO],Pֵ ko&nFa_co.Wi&V_ t-)|vF$P&ʰsITtu'bodu1B_}-=`׍-\.4Nh4HX(CjHN]?!λ=' O_)'U ~~J(lƦ[f`܎hֻ"*OQr{PrLJ[|8!Fo|)+=VՆ/3ԿHH7[` o>Y_ԗ9 r]ћnAuB&sxP#Ԓ#%yח>¸OuVm^X'tO)>'VwR~`B5ODr)79: ҆ )}dt ̢%a\MB^3CNXZ9xn\?AaXw<%x,$ZeX՛:YXʰC>TאۏfW\:"pkP^%7+Suqde $-wvFT;F%_J.(qģ,5=8uc~/`&+71fqzr2J/MpVRQ?BO]0iGcV~X:n_Bi+LI37R|vB+=Tfce>024rVC7Z5&v {gjG|Ƿ7iUj3g>SB&se L}̀>EK,r=A/q{uw=l92a`' {wO6\VqL#aax<*oiJ>h,o@&= ,L9Ϣޟ- 4^ ]o.:QCXqՌqI(o& j[8 ֓&*["n$%"$.AOusȇG HCU\yx%FM~5VE\Yۏw3mзm+``?J=" XCKF"u>>/)sTBF5VrՁD]YExQ.GBЄ;DNş]0]*uti/֐܆UU.~&] tD;] tUtMz~i[0: kmagA>̀'B&K206y*Ə0A.-2JC9w#w߃20/$F1A<#y&<`FӍwm K*,<%%eN+`(W!<$jqj00GSBT%OpzwxF+7dZ`U E5oR̕-&lalO|U~ sy!Y3}Kl.`dfo5huwDSJ )B$բiuyJ3y.>i\2]a[Ğڣ@$'|U)kۂ>|8zƿ@O$UKN`W v9 ,[xE Nנ}MaHY]Չm[-̇&tOnŢ3 @NӬ8+Y}6?=g:1wYgQ]U%. ;jV͂/!xk^Ak/t0O9d1[^tAaz6d&⟞r/}p]! ~t zwUD1;Y7s$fgod[LpPq(>fbT.CgZNQ9D+TQC_z3UM}!If_Zx ?c'y@%`@{ .+PP/w^N.R7WnGwۧ'03"Z!B\A?Q6GD X7z*DB._ t\~L ?nLdBZyc]& BOot", ŀu bGo_A]cH)Ĵ`#YŇvy`sveQ@u$Le`4_l<I oq2i_n#[sCc' dhK]P&`^.`c6,$Qbq0 Y-qɬ&  VDSh; !#cNoi?/Aj̟Ovstx솅O6de~?gu  ?CA[~`k:췝wd9aOW=W^y4j'|u'|u'xrV=_mhjRu*W|v6_E4U^~+c|~8Lck3B1v?ږ:~5a FǓo`cD+gBDY~FFӶݸTE<ψ4^ Bxf3rd`IgCq׹'gġt/hh8qP%Π4\@5GRP6#%fH Hzx-=o]rZJ _ ^z|{.B+oDPc}yкU4bdM@}eUw(3zF/MooҾnYCPl;gҡ Y8E:L;Km ~"~9sONxre|PQ@᝜ }0K`h%Aam' O\>t V@Ye/ \2dw5ku0>uf̌>;=SMG#D. EG%ͻ@GF#@gyHQѸVGv[d6:,melZpfyltEvşb1!V̨rN@)2tL$l;?VT$6I~}dKwVLk(3TG aߞ!$bǝqX<> lˇo;e{4|(JcM)wܦ!8bS~8ip CŪk~<ʫƚ&lO{:4ǿ+<`kPQg>Lyi4$RIЩU 6)mP$_W+ji.6*J0Wi;( 1e[j ;XX҉:k `iGṰ \v :=B%=IVQ1JPf8 $q$$&rd2Hl/$xa]JL.eEQ oD]nd-*8Į=cQq]?Aƶ=qhimai_ahZZק0:s?8%N Ok7OiւhJ *-vi#hIz}D nA7>O٥,@ʃ=bTWUN.ء (m^q߃sT}^xw`;c@~~A0 uG.vƥנ Gj{@m~{}D JGǨr.Y(EAqCT5EI:jט(Iy\RIK)_q| 1&h( A-g̻$sbn.eKhf`cdN%CGR'ˤ{BtMy{YX;L7']_uwtе2 ~jR;xRH>k;:mR;ڎaPe?]' O ]5HM AEm5ŋ+z뒿2]g߰|}W@y77 -Q? 4' bZKmѼvJG٩YԭVI/ 'ypx0ۼ>sRy9y.8$m@ 1RSq "@!|')BX7.f2w1 zcm; ~پ$}˛!@Laߟ*a;A}`!;2RtH8m0C6;𦝢inZ(pNA,S9ǜewaqy[bXlq5kTNs1(Cs7G3M#m,=(^*&3J9zx ?P]~0%| ]H=7'Ğ]-\L~/pᒇJF2/W64ٶpʨa,ȳV՟o*O tz0̬r0C#u=\Al6o4I5/4ėqL'$ƅj:ߗM'_)gM'{\Y *yl<ơ$3ۂq,cQt{w=1!aFnl7 % x><:uֱs=[5^Y+!1or< 6t>vn od{QRXY ʻź-xZ34>:`0nWԟۢ3B#ڴdۂ\xoHt)aFh3UՑȢ@18xOLYAڟ!*3#kS>#,$z ]F;yfN0M`SpDF5BG΃f@΍e:rځ5NrJ BΦ[5P 3r^S9yș.ɼ 9t~'iV( V,:Ҍ\XGȡdL2"gur^ECj g90rDN~0roaMhyT0KP,ġh`'B`gی;}. M93=ll|.?#⍍'C~f;Q"$ QtF\>;ݨ_v=%0վRj.fCơd9[u}/N5aa}l1E~*z!jz5i.Vk>7#݋p`p5P _N} EDsl.j[O5QCEM.QcVq[4WDo6h6??ʹW`;m.OE<?6eyOB\ڝ'}mtW?bM'm)^?'DxTvFHf7*n2d@4^*M Ni_-NigS7D 5y¨hlT6B{فXƵbbV@*Ɔydf2qm䂱;ڶidpv 1ځ1!@i1a@T+y[\(;1@^j$JB/deqPnݏ~ڶ_ȉh~a|D[ϞQF{ X_=ex?&Uoiˑ:.[?:պQutjx_Fd~NzII&hpiY?6'= 7yћ4׏lCqȎ=m=;xlwHG˷{d۩wuY>0cctrxǪb[l{<5"#0>SBU|@tύ8Pv<7?/oQ3|ʯB}ef"/8/T@-/yJz$*o4Xy[օOkW \ۈoyu9CF9gf1=]|'SK, T[82Dqo }Dw,B"&_1o<(7a'!"cwEw[/bӍoT(pZ+g4l⸞Vd̲SX ee=mCo]V.w'5g\ѬD)Qq Q؋ 9PrcɄEj*c:ˢb>QGp\rL=ĶQgw~VәA6 xG]Qt.$jt^o°܇%f런of{QxݵG}{f=^X>z飑J 9zA]:[$_Oas_-c)%O9%8 lcbrZ򲿖eDv0 SMƙ|l _P}owAW׷+z^߅*kwN 5A̩;՜?es꯰ϩ_:r_~%/WoԻѶj-ƶgn?3[k+m_xЂǜ+NZյxfAk|Un^XUz*<"B(eMrW+ t׭f"ɫYbZq-B ݽ ]cCX~rh2cw.2>nyÎ,o"!oXi_0׷fHO <}'f+ʝ֞] !ܾOhvSvqF <#aE(E(JxЮb c_ *ޣ:(Ba23* c-Ц uD0[5'GM8ѩ(v]'Wo$o,B4c£KK}!{8.@S )J?=9@]X)^`c}<." 6 ŕ.fL< $NjYVHq+rueRzj\ŋ2I % ^8tup<'}VP'S-W$ٱ+Dtk1p/ҍ@({SPˀ3yUi*fT6(i7g,9tISC [Npܼ4^'\#l ,ʂFwu"rv(a,-0UBY_hZhq P*MPR=3bE?Cw5EC3hɓ՛8nfPwNnگb),`AG T]BY`$q|`NL^vG[xeM>UZ"Ӈixk#B:23[T`:߆Ł= |5>IDw>su6Rd@?Y! MV:'kBWHM1,n@Ω L1*k Q'"҄Θp라#{T}gLEBb4>KcJ)Ԕ R j{vvom{/^-x%t$0P:c3!JES4L؂2vF@!SE%8#Q+4Y?O: 3lN:y_6ڇ?瀶gA(a~_hQшog=b#OCߜ g6Y~=ˏ:*ħ/l /X,5qt4p uحᇶ凶hG?^_w¾DQ `#(0R̀hf/]Ή3ǴnX,ҰQH[\Za `>q/Äf=@ld%#yG@AWR5Dkϒ+yRp':"ͥ ^J]H{UxhPm:K|~PDϠj.qࠐħ:EKRb&Ȫt'IkjQ൐B!Ҽ s2R6lNGS334 5}f.1QpߐxFA5d*KlM(!w\(J|ln@a9t*=rLc*~$_D/8}P+Ǐs4J#KU2Jd}vid@[wU*^h{r\ቖ+q7)WB`({(d!1C*D}z*+jo56f[g^ x2Ya <*5]{}{Ǵ<}<{lVpB({CB,hn2ӯiUo| U+~\T"*OT|^Qw ZŨ؀@[# =u,@xT\ug{Ćp'~{( mw3I:yP~wԟ[K: W{f*QnR9 m'~5hmìUMw/׈)&8 Ү|"y#$(O;8g8 {j&no#-.t!}B["sI}H Vþ¿Y.J}^vij|7qVˆ"/Lr->%ؤ8H8V!"d~(.Zptڋc=MDil0Xaw }"V-UK[geKw٧)ڟ^=ʼIԥ)QU}@>cwWN45OwΚ aπu3 )<< ~}]9ߊ^s@CTzb5Fz=/,ԝJ .'YC,}?|$Z'fk,E9<1xgFacSxR"?Ɯhj}1'>&иFg*L=icF⯝>6RQOUUǟ;f'(On͢uZ wZ󣍺1"udy[Yu [L"EO94BiRZM ^=9-aq4+kq;j}(26&f12 7H}?Ȇ fQdͱTg(.5mexN".v=Қ%10Tv'e!q pb(LKE1 ʢl%aHcdDVg !:UMLN:'<%|B׶Vz3, jѢMB)1Z%J&S%O“yhV'VPIx^|\һ O$%6^v8ސ-eqNcmqg=BUJW&HZYb쒳\c?|>ʯGYWEZ$KnBe:u: <ɻZLV1B`#w9a]it 1Fol&f+ZB~7.t=YBhȕv27#!b٣yI45C.~܀V귶s4÷4 EQwt=]=UmS.X֟D=Gv=<[{ZzŽp"I>-&p~u '7Ӣ h Llp!zk8ym|>Af5BHT?ZT?RTJ{`}8'c mo?fPkod@ \W g`OFIq_q htY(##.}tE79GSMP+F(g0Zh LQM,lR^V:Fl@`(3hEDgvX2\a>@rɯPNOeN;b_ >+Cby͟usi#9QZ=OÏa)y!SjƩPb͐;!, &N"1,V@Zfk681iP  z+ሏތrK  ›O.͛ChJ(G;4gnLǾNRGH&7gR{?ǔ=_vKS=ך+UoAk-,6=\0)>܈"zKFzwmpLT$IA,%Mm0 ʎ'o%fv7xK4"x c:`⳻vb>?;gH H#}<1N|m¶=|q6Nl*@t4>^Lkwr&PyCd\g[|H&g;֞HykQſt`ϺjZim@",^)3 jE]&s!H?SÔA!O@9z>^ds2w_Ŋ뱒tW!D+qcVi\ß2'[)w68GpSt88*ة}u{΁{ pH;B 0tp`hn`R(?h}cg}Ia v1K.=hFʢupIHw~S#-׸"h)0 k/*3Tv2Ac #t+vzqJ3Y匄`+ &Sue%+rEHޙT@hj֗Y,A.˺[elԲE˦ZM-k5fңd:kՊdl)tO}0?p\GͶIwum?k1._mZi@+Wv&O@y^ Nȟ<:u'.{݌>q[[-vrozGڻ[]mݚ_0][;;4?!cM~o5y(/5?Q+)+ܒqxjp7+Oo%XP>#]J!'2⚅+p8 W~Ǐ>;H.e*(w)L.#K-R0D 5$o t Me&o>J pWᯅw p]R >{ Ov4WmӟjH@jWYD1CF_tlKպ/'98(QX~4P~ٗ*)s?A}-m?Uگm}V^A #p)c`10tա݁uN5w`62AZ4 w~-=|4]?:,Н*|m|T*̈́b%.iB#-;ua1$͗0ҢhH:=idGm@}~M#C]+C5s80gDa֏ Ty˞pT~k18YX=_X%(O~{Ux3Uo:91j$a-Ea2g/DAKÉȷ~0?U?hTP&RWPuQPkٌWWW_I q =GkU8T1(fkmwqɪ+u=p7êř Wl_'ْ@uZ2S\@ҋs@rxj]tcY}CrXb l [o]-_?t>["s]KD۾>gP_TD|}D>Og>#q`w(ǘJlDsN>ҳ&K0q@ V]'㇑" [#=تPvKԤLt]ܬ*qH!R22ҿL$LJ|櫦y> ~1]|}:O/| V&ʮSM~O1DGY'ژn:сbO9<`q|coDX߿'۾Aq13N1o}2 yb e3קl"WH9(è^4F;̕%&e_ SI%o=]+iSh ~V3&9?=3CO['}O˕k]!g6픳z0<*A{ n}GexYϜI*4/͙׶J|$Bu3 ; N`ʅi 0 !'G{*\`&`;< 3=0 < ׹" . 7+~XyT1ώAC/Y? ϧYu.ɖ2ac'SүRdK^G N}uWkNMNDJ?eo%Xd,*,WB䤆ܤtE+oqʟ#sPT; s&}ӜH~8:LGsm2k'HawnP6^ $Ј[rC߾ɕo,N"Wd)®zBӶg˿2Zћ R! 7{7{9L{PFz/&}a)>Fӌ \W+3` 'a]d"Jv릻]8NK O%BbL ;T;ms)ϳVe-3mxe\ p.̕tǂ £ ~y$*/Mgʳ|&䙕PlT˧*SY[ #T!M[#3K5]?%.v_StIgfUDD [5uaH3Rͣ Mp`s<|9aI@% KyW_!~`D93aYDGA 1b*_K{'jJj/EBgT ""Z5hKaa#8x"g&oll'6 Lf[StN l;pi毧{o090X*ڕv{eTdLd'5 ]EYe˪)_55Y]z_'[SE̞KlV]$>Ө,h`r3JH4jf1h8y'V(6l)*rd0G?W5O%uTUs:*!\,p* kQ(Nl ȭqQ_}gϱC_\}?2w%,2(˱{SDzʭ>磔@ޙjsޡ洣!p!# `qsg5u|e"SIZRC7cR)5Rv=WNç3GvG[}y "\H0.b>)e,9VeUYt`0 gÝ%?P?] xE\$A` $hDD&&`*C%DH2Fá,^^׃ x ߫L.GUuz(kDxm#MQ{aQ'~፷>H͇dXzk$B2vpY{;B&}F%_U4%8̒Y(.ŽC)vpOj clfMf2pf =1Ln{؜d[~%gptVpOc0d&Z4TDAL!LҽMIMlxa ]XnaPJ*3;\0W3hܱ/y.4Aof6<11_<#]xɈp299!4ǩij(.4nYf>ex֌:2` m6FI>7  qHV|KEy%E?vwI%'=jFgsހ{ʛuoĊ7=1ְIoGu<{9uᕔ}C8 UY"^;ܛJz֮ua(*eDp|IAX1i87{?j|^-s #nqGפ{40Eۿk\wQeK8GcYo8 dq*6#l5 n ֒E1Nh"g/Nd g'LM@>҉<%`Q^:)W(O`Co)wSV}Dǻ?XKz,<&w:boۈW]'%Rޒ'8'5c q[h"K`I 3q@o7o;(ՙ(³qƍPX&4Qx|u#sF*OK)#-;y-Zj9+%m*_k8ZW\cx恵:CN>''Wɨ̔\e_|) /)p$BrF˘+Å'Vb T5xNY^:s3N*Ş6DǗ,B%7߰i^c}@L}³s1﹔MXv>9:xx!E =i}\25Q)!Q T<̺NcJ6[^9+І#$sHVyْoa[*H'+m9d쬱3bAkz.N%Q%PaB~K*=Mo]r MؤIm"Ee~VB*>=J!ڟh읍9vcv/Z}R'/ͅܫ|<ƱP} M8Jg04NOP1Mӓ>_kfzPrd]~'nl3P͒}c |9ڎp{W_[τÖ* ;{,Ev ֍8ŷ5e# ?v NIU/L/h6?eR+滘@(7GgD e'bpE@bDoEn}ɍ?~n%58;Ax/T x Ye,i`C30OQC mBlC-їXt +PeF d ,xޟJpO}eggTtˬD9N30BӒ7SLwx?T732,$-|]R`u-?WXGu"o濋:?\0joQBϋ&AIbJާ|\~ҳ9֡7l) RpZ^u5pn՗n%7y O޼7Ov%* i%naBf(ﭤg1I fur1?EGFS.:w*vRKcuPZ%H+ ]#- D(Az.z{&˫!rL %b @|W4p)Z&.UZJĥ+˽۹T 5 &8MLw_ 'TZzp}gީ,/@1R{#˫] ;-?RdfLBZE':Eo]8ZZpEɷ?+(dzjwE9ml$Du;>2jU޴C¢}5+IJ˕T`H%I4jubn~N ڡl,86ѣWh+CQ+VV}1Dk~nGba{["DԠnʞ&y<g t^6D&J>dž.$>Z շas%< #inwa vYغ ?­2lz { 'z6$Ihg:(?:Cҟj 3y!;~,yHlimHa{lx }kO(mA+_SZJmO#Oܠ婔WdyJK`Aw[}AM4+cҷ S{3x(  x@{H\RP l!2AtAh򇮉B98k ArIK Y|uC,fˇ0> {pK-!`tKѝSfݮ[Z~Yq{Zsx./k1`to_Tic_~kx)2ǝÚϑ:s 6{C-S--@a6ouv&8>@kL-roW 8:; K8- D]"O!ߓ4 X"ECEhӯP@"tO8{>6v\EڑgHpQ7nDsx79*7Ob^;v'AC/(`_X]h]?xMU F+kFeو Lj]ЌxG2w&7O 5nŬ/]KJ/;Zmy`(H*@ 'SH¯VrPvŘ1d{S;{:y /5xF6 ;A/# U qq~s\QW Μ{J߮ܮ$K8kU {ABBnO7-Hp4jO(To( ɛ[jWmFB˔ZDUєhպ$|p~8o>M(kߚ X``ur'7gA]qWGnJQSlD5bϦH4{5!=p dox}}98:|^BMK' ΏoJA-,~(1=8z8j|*LvW]op.|[IuFc!%!Q"҄5~a[I%pVέ4U7UyVe7>EYszW,wr1x7(H=K]<tvMc>] \ZJF/ƻ} e%TX(QF.fP9FP-͉͝,g<~"S@.dׂ6썎nqz* `~$L Q4pNeuLAFwS_2_  _L Ĵag[.z!B.Y Oeeл5fۦݷSiR г{)˸{W@:1"w wAB܆HopDyօ/L&xvnBERevin׋vqݣs"ߵl8cs=d#=bE8>³rm_m Qی4z:6O.>O).].1>z?{sɼ @\ pS,1Z)WR"(^w vCys,y +#qe9b}e]P3YS\g"{U1u㎔h%.qEI' TW,!1WTa9mU3'1~9/SD#6$nせMtfrD|E|j.4ՕM 5j&6ٶ{@-BVroU3 IL,pE,*K:jҫ96l{hٺ0j6(!4#aګpLYH{ b5AY_ҽqzkDžI6!,N tm;Y6X43`XuaçǪGEi1Q XGVh( JJO˔Ѷ)FI%(ݦ4QP0KvP#S-r:a,?$B)?n&uC:c3cԚO Yr;p'z^ɷFrG=ç1]QI~v9ZدNk,{?>.x<^ 2y_\?cmV@֚_?Z_Öo]w1\DZ:S>5]Q3%*6!YL5Wnæ$}582t9)MTӚ:dATY*ýB} uʠ 74ʪE%ieg$(-PRJB/b5`m5_AH"9qV=n0w-F2SΓI 7`Lł^\uWĿ\|,"(EyP|[8w5{ ~B N݌A=* ìAad^pNo#$'?:-'b.&FR="HFD#4GG!TϗQIV{9ɋz--:-u@K#r6yHCE6W1ǚ:<κ.{'c {\qlh A]ݷ^jIݏ+o(]ᤂG~ W6 6]w8g, ~=Q(|6^0FE(yF[[@vY=`^{U̇z(j`VV.=N-])SҸ,[S#595d_7FzwV;aUvȉb CDkӘA'1y1>08jjm7[A}N"N)8M(|QNIS4^mfJL-he?{28jkLJP2U}#M]x.z-~0% O1I? x20UJp>PODw8o@Sz߶A;TpCb`"z|$%t^lთ`D|%G͠DUtmMNZR21ބ2' =*Y#GnE22"CԻ_ l T@Ir ]8#SluY 9Q?aOmßD#j!m1j\XXV%i†3r_Gr7 EtOVa .2l!6vdIatİJh b9.J"*TXcQAEOT>`*bK,'NyV.t2R"d>N=ɚ!hM`i[!o c5z~KHɝw[@2hXgc#t\r~*,/ւxޮcpBk .P2?8e8zKh8#K/ -[j*Xj{'X3П/ :[f:Rr*qB\>v1a)e2jm/z RU?TyQ7r͖;굶L;ewjPYL@5 1ӭ,Q{{6Bsə+ =hٙ^g`ĝؓa|TL2ݷ;ɸձ^VGaJ$`'ҽ╳Gcm t 1F3{-E]'`ߣG 1~F˃NlQaF~8zK`Hi:|P㱈%f=]g> ={ 9y APX0}Ӌ+0p.R*qcZ]"b߱Bm ?? ?86_7?0~0TqM%{AwuA_NB XUXeXUc(8i{mT llx売v9 a8"/qQ1\ﰣ㡉?GD5c&g`$e0 `Cs f@@O~Xbnqr.?sI&kތ%0{Ö$f/bI/{s!fW 0{ݰXkًX5^$&ӵ݋ E1{gp\9CU b~NGHQyt[n],;#("$/$?SU&{2bc1xُPp1Q-y$ym i;q<_J7Y1r1ݫT|.ہxUN]A -i!׽^ -m y7(eۖ9m]mۍCvb< uh]:hv//%F>*9Ct`~v )1c(Q G"Z{h\w u@X䜸Zu0!C>YT9^{hGz?3rz: c])ڤЄk엪qLz˟;ɧtDWit#sM&Lbd(.'p^KT\j\ʆ6nln}(wEA@t& `\HQ`W.{PU))GYzQ`& =:.͎HɞB r5gVx+KGe:q9)a7/o$/Xϗ _Q]:ZjSz*.Z%:WEiRNVFp{ GLin8`C~P HܾmJ&IBNuaEBлc6Nc֬7Pqkp=r#BRPiR-b#&,~3fDEל_sÇ .Aך-<*F&K1*6wPքkWDRcf4SG9J_lx9E̿Z$t?@Odw{'I/ĂH>fFcIXM>UgXgRJsL=K"p^,gos'|Q?+\WhVl$n{…Oܟ~$o>IwO) K/I9Rr.($-1'EHvރUQg1΃h?ȆY~lκF,?6g0V ,?6 OƆ:Xg0.0ayhxCyACYC塩!xJ,0.WQvY>꿋DGkx|t2!!9X>rG5c g\[F>*H>X>2˙:ԏ4ΎC.4A>iwW(nSF)xDSx=L Po % U0̫.ec7]&r>EÛDޝ OH fbtJdKMO 2[["'mm'S{IVOnvDBB}xR8] w6bEd^{cirV:m,.6>A#% QDfƆC[hVi~f,i6Rϰ;k$ ɎMXf~7٥8p8מ=vTX zb7"_#޿~T8TrkO{gDBqgG,3~fVpRJDŽMIy2@ xuD0B00>xuVElLؓL,ߖ6rr>A&_͸'Ac9\iO~Ob AVL,E |2=E3_{}8TaW^0홊v?<+HA8<[dgXU<=]sU\WU*~~|*m@IG^|rEn5d!d2wZ(,PT~TTnTnVYPyK*lj=[˙3Wr2a %Q^mNWO^K }#jms_ ye _n-KTUHWxp!ţK>mD_}Z߬i1Y~iFi7mmO[=Dh>mciw*gv=cO{i>s ά|9U{3_E!_+[1 a_QhG#MoH;VxH+0ﻹYVVڒ?L?=#.F?GFCRM!CGjч$>fЏC_ՇtUYi>Z2bh0?|g8Sᣰ臡~jNGO 5G=C|T4Ԑ: GLS>!SᣇG|@[9/̏^LJY=Y9/K(٫3Q_z@toFOUyo_kos84KAs/}q9&}vcqlhtl|4QkfƞQ`C؞Q<@3?ӐشFsB{ݢy3>{x>w"'_K#Agf`y>/y.c$E oz$F6wH!qO]?b~1v#3D?bqr_D76%%I]BLG fk4L)A{)]TJ[`c16cpu]icΘ˻mz4h& 3y^c^D{@[dJF<7isÝe?\,υ5ynxjƢrVhq )mJRmx 6mB"rׂ szXp/#~p!8)<$BlqR}Ho>߳7fG `'ӠP1؉ Ni`v'ډ:Aډ_18N|4k'.Na}xN@;ts;9_O~n??znR&L\?8svKi9Ab@pȱOH}g78IkLFlNL;5)^R;Ժ۪N)ߴsӷIB/L|E?z~lj?ݯj?:i'߁ rMH)smgu0cHu jFW { Z境nF6-|c^#W̘ބ=N] +ʹ')Rv 峗|:N0()k)^I'q ]r<ȝ\Msio |e@t9^"'aWE5F 2d\eh)!9'[.lqzX$pdkQHv)8V;dw:J !0S Muy1(QLwes;̸[;F7_n$ 'zDvi r$o$h-bYzי_ 9Uou!Rfr%L,Q*qx+qJ2EindSso[o]{&wgGΰ&mb`۵vKdK^Nh|?m$1H$Eeʂ,9% 5̓9zf1̯(Ieyj+ PAMQ,z߾i6r$}S|Ѵo}N?߾j5~o뛇*F唤$(iCo* o%*79=1pYV5Cr52ȁȫRUqY"h|6Y._fqS>GN!bDM|vCmNIaI[Okz2ѳH4ÎY0&o̅q{eg$F{jCN(53 7~acwﲆ"+UdRRk _^B9;UFtR3rHA2A10H=xKKҤmc½4^ufaK Ao%_v/[sXuч[*k%hs6]q*Z^lӍ"dK_T ކ/O#t'oO#m65>g˲w|=:;챾akܺ:|']r|)9;tw[QV n6wCpZY |>WN0wR#|o'7qP)1w' ~ו97dw]y~]y/6кd]zueʉ{+S+?]W皯+?g0R֕_74|m2~i<~_{B?5_!_Mwfw 8~s&wgڧwv>h>~2Rx= <b<\ WەO듮~൮<\ppet &W~p5?õ!4 yf&zvLpyy6Ty]k7Laz4lolQ?S\ol.~|c^R|c|,Dkƾz7Q_k}oky|c]k}m`;VwV|c|o澱}2ÆNXtᱽ۝ xlS%!N~xlP' ]Ɍu4:jyVec:؋܎<6cXZGs5^s1|T|ſƿ- \/m }}4mto?2o;;ǿƿ҈~hfQJ>oG]>:(D>>^Gn7ۛѰZ>͌7+3)|4s#>z9٭#֫t9&JG^:̌b_OFldoAp~ٯH7WM7rVEJQM' ^P${-wwƙ {h9%^iG_iH({t ;7vLYm j8| I*uYY虪!9pc  l_ A(n#Y2V[41ZGzQȣh@t `i&,)-|(X@]5ۯ X/em2BUuUw]Z@ii9[*PEtՄ\m9$MhKOf͛7o̼y͙g~39: ݂1P}a;FqyT; [}aՏ; ?ð`HwOg Q= yw^sF} 1ߨ ; ua7/Ge,~%/o?W* 6oK^,I}S>Ӡiվ} <&v/c8_[/sվ!fz.)Gn=="7 4{GկBqdh_P;?z vNM=?1roB=?rM.OrjߩX?ZӞ[H <%=Kמobڳ;Rړ`kOQ*kϳ ='=sbQp~:XHo= qY6O=bsGA3fOgvDI>xW?$?7߳gg͇bau_*qvGow~-;8~ޮ}sp${apd7/ny(澊9WQp>wK7QyzR`|*OlSYg 8^m'0#vt<#(pmZnWt)+ͽiJ842Qwӻlۚv0ᚈ ԭ7ʟs9cs@ks Լnn?mzw?hPyZ~a19OgDO6o~Z)$ߐكKNG~o8߷ud%e +o)0Q`PU(AJ&_N|4{]),cc][C)%!p5Mr3|7fogvuQ'/MfUxhRߒ=x|_/)s7t7g/zU _t_yQob^쇿L|/;|O_oН_u~h]|_hUs|=x|=_Ӵ[c:W_@}puZ}>|]>|mQusu*k׿Ruɣ|[=ZRwOE"7Y1yLĀ#|#Al]>#Th+y<7< r1[P'd2?;7mb3@-b̵o2_+7EY}`Gܰ3xۧ۟=?'I'uxbF3Ub`"g@&4Ku5j2H<:| >?9',뗀Xun.i%w𒿈)Y$~a4@gy7O 3 rHVU:`/V}@8O80 rr ܤV⭔ =u,wmD`.= Tlb؝@*y+ˀ6^(B sw % ZSX:|!MEmzM\R*?" K!ȝ ,6\[npmiV.^F6b oŗZe ŹI=?Sޓp>PL;RREQ]iǡ9mX(d'(p(32"PNaP&G]Ez?x;kMkdrC`ɝ>i=(g3or=6'ZrFW[j~^wmdŷ_+L1.{׬_*DUBr|`-Fu$h*zyvbonAUwVlݦu3eQx^MjNή5]Nu] OPm?'(6'k{ ވOrb=H3ԃ~Eû'pvtHb(~ӎIq%C#v鸘I;"06vcdR\:31PBIu&(0>rjlcc"\=Q(G&r(;wAYX(?$\jrQQ(o.( 8b (Op(6DR%PcL&(Wq(D C9 ʿ|%0((X2:[Oc6w],~o,„"H>t*Y069 Ĩ" -e@ ]ch^NNr30tt8bsSK< qm>ԕT;6Pwk'2]e 0P(8;5c x<ɅHXH0\ڶx^wdC_˭uv.Ir>8 )QHx;{J(_x7w͂MlYj*ᷴ9YZ=Fe}lݫRQj%ɘDAI6,T=DvikQ9 å h!Cs%meX\RYV\W͖,ڙqux%=(~m2'c7c䇡{, JBmd-:O٩_b#yf4z VaucTceEMFV0[I+"|hCؑ'`:79cU=%Pghl7e\Z?"?ϚyNŢ%;R<&"3?xJxұO.F>9ER剨0+AAۿ1FZ;?tT$0^+;Ya0q2i<{gvBfO<4{e"&t ia IdS$qwjna.:;d{ e&VS2iCr9EJ인ˎ]vCh: 7VS=-`X9MhիuYi<8V,^6Jkc;x,Q8%6(HumF]B]fK=щ;﷛$]Aފ'Uى<}\/0}|Kcܝxg5$t6aޚ|hUh tHV T>THx<5Y?0(?l@`jgJinig&e2LJbs\Dv3a 3 SL.yPT@@!є`p,y-ɉVoM!%@ $Z#h}SfN `pP5n.ʳP7.nrAysnЙ|r#BN,rl0%9]@ߩE\o]h>͊p/8Tg7W;G\]2P2U"2PU--0-͵zƼ&l6I[_߬RQ ʄ;753hص!:.#fk 婙o Xixe ;#Ӌ-ukG/b ,g&bi^I8c~I-U>~uS35S({FTs)X*毵۴`D.yS4qg#@'- P1?1Mjw.a0W M|+Heߒx$oA.-ރ!C. /K:jݙR2F(7tJhɳ~T\E?0ri'FHsPa>ȇdY+{7?W/IHYQd>pnXbޮj[J N}º!-;˛jQ\yf% َ}ggK>y9Cb @ nG}^Ȋ}(@'z5ϑ'o$&=L#=_`߰oа|u}-{#qnp>0ǒS+OE:ԕ ʲi0Z棂X@;w1FzC-M|A9tQHi5Z/O/Opd_`OKD/ܢUuwdo<o>z9ކR7~Zp-boIo^*}GFx'†p<BP;hQȑY22ٔ ۈx$?lw'DY`Ah@H~KHQLZX,`ܽ$SE"U( ~CBB JtB$.-5+Jy , n6jx>V|mM!|3>!`;RFT*G߰/9 t8z{ENL/&A}]21^B" s/ l[JT)XaAAt)rGQşaO?ZdEx~j\'OL~:-4ubB9s"HGշ3}1-S噈X :cT&Odjמ?q}(J`s%e\Ua\mwRm=6.Dm&f !zg -u SlNd#n͟vsq~\y)=SF|'heY}K*-,da o lE1!JZcJkAghQ[DEM%m:E*_&j]r]\ =%ORPd}R|+A M>ɇ$y|5<5%6gZ:uf5TLXĸhw7kDys81I9&v}ǮztTS(7_CT^-z)[Ԙwϗ7qUwT!Eb$6tD|Lx mn Hr& Ti‡^Q&ۄD|b`a UcZ~p"L꛿0# ؇M s}A(N9ܼ0Ԭ8d0 Fev̰ǝxTXDGŠg-܊ ݣ q݃h daŊ:ڕRXdhZ8NњC 82h11cƛYpvu+uE@byB\-ny?o>hn.Ia(v&)-}VwJVYo{I{JqMVj,מ$+Bz65PTŁ%', b{E*ȭ紨 e=mv* 9p'4qHZNJH`Ҁf6CdٙAw^?TkS3xsp,@8ʕOck}\3 jQ{cpڃ,}u!rP>Lװh&L42hE|3,c w*o弴 Fe蹾uXٱZMvmŝ{*l-*şV(6-V c巘IFJ}MD#A* 6G96,/E 2)aw\tF4^%6~us{ RP7Yڕt'⩬C& m>^BQ͛y?ӡ@PGXxpLXjXPDG\t;O::Jl榒$ApeRavvl\XW(-^+_ tY)JE[k7Ϸtvy~E}nDl-`lsoŕV/FΑ|QVKw,}/}(֭}c#K /gچ]U8X븜SP:ve8/$|؈#h3B] ?-ק[`M৯lc r7Ț{Kl K`#(\džP@ 8 f@Ts{Myp}o~gI~d"]5QA\+"XO0eM1` ?da`I"F)߸" (g옵)Ց? d!?E7m.C}د*a=rE̍y3cV&;Hb$0jt3.D^\ôu]xz!Yyģ?ɨ&AwQ 9rm@KyY^ 'G/C1`+8ce'Ztm;:JWv zj>V|50jPT^}%TD֏.nX!-]6Gv(~<௥:~$U{[mƍ 6Qoxɼ6zn/C"ދv\k3-eͽЙF*ɄΈIO;$1,*@ И}ŷtBNM=?Ldx>OBYe`c h~F%;ShjzD8\@& ?MnٖF0Auc:'Nܦty3d m޽I}Ҙ>X 'e若'Wu 8qڊӜ|YoANnA诩%* 5SR_ڊ~hо:3J݌j~(~#I=P?%ܭc}4+ؑ+,ϩ𿏶% @l#] ɤQ_dF(nQz/{,=\ydd@u/5Mt{>#~X0|ؖhGaX4eQX\ANaUau81"XT6>_H.uא6€ECXEoyy3I;OLI,(JaC%@#5}8J Dv<3oE i_fV[ʽP.Jw8v2--_dW:z^uo+!g‡/VDPW r^/0g!Mvu,Uőv[U[SO#IJ L82O&"<[E8X._p^! H}г 9ɘ1ٷ? KYħtn]*J#W:9hqG?ى"2u4bVD;[ػv`}Y 8ݝ Ywש1`GBjZ$?udׅcOp'ȅ<<3w3jCYkRӉxGR]NL= Gq~?!\^%T grQ uOFܿZt-⏳̍-dP<I.!ր*g>9Lg82~C^2L*=BQmU2-bOz0_~Ŀ ?x3>.cvxMW~F5֯Oh|OZ:fVIVS կSkb񽖾˩ﮧ*#I$I<+C]7/ K#QV.Ƶ]}[mqcgzwV';ߩz1znQzogiB_'/Y!0&)6r^ pY#FGK]bXG]ZcM1FWqj |C&v K&^a+9` Qlt] q?([_Y8Wl]2NCXp3u g,EzM9t70ci%3y\Int$/a);JjsxA6;0FEwzɵdȳVãke:S^&΃>Jj93@v乘Uo qWQ,S:DTXs)#g1o(tlk,4/2 tϒՏe5) $'v *cqbCDӤ{\{c /Ubs; ZmtX.ZpZ1\$~@fjlN`"-?  Ǣ1.Q2q(h>Ǭͤ)7m&Zm`8̺ϣ?,I,Kom:")ٍ}?g/+]陽{K*h4Ґy{g NX~K`/#xcPS@X>SJ ˹y,R~>Ek! 5/b0]|1䣯$LjHE iD1 jM!=ccn@7pNp:P~174UhTp¯ yr+ϽԠS/H)+gg#Zٰ/t8t$q$U/,ɒZ9޶;wF"WdǑ-kwW6;S*wZ-`Nn7,E8Y ,lcv Q)vJP}c8?;0+_Y]<>$Bhx9BڔeSxB3gCOs AQt8>n)fNjۧ%Gb֝p;YZ8?8S~؋Uehx_vm3-a1L\F\jTQ'u` K`k N3CUHc eE&h>ɟgmm = 9:CgT.gB#yHځuL` v'B;z=Q~KlE4 ,AiM¿_X *cjN Ȁr&ٸlQt,CoRá^!.QP'^d+0m`CІh1YtbM`\jƍ"sZf7:6b5=p:2Z gs &AlMEYCE%v!囀g GSm$m\kTTW ^/= vj fclfLC9괠NPTBZrNšB.y"YTwOPsD;p'IRq'jve`wȮ{"}qYu=>-f_eծ5ḞAJ_+*VqTN "s?&((,/+]CZwm\d>'%aD*,99jGr(~-'.N̓Pi6WޑҙXhKfS#HP"! ۿp'N7Sޝq*λ3Yzެ΁š2~cLE¦"90a".6AѧnaXK% qր,A Tޔ1 Q!ʏ0W)ܸh Ѝ0s5|G1/VddJ'ogJﰕv v ol(1>y"[x1AmX6zֱqdKN3*lzZ9!<|c7( G|R~DOvp!P_Xh,QHS0 ke V1[kiSHBA*6YE3a2lM lgL)H?,:ZN7A]w4qĸQ_dTH[AhM\+Iy;RxVwYkEigܝ"RJe,WVEz\ݙq x72)*T$kedz†o]s[q0b,]n4u}nkZ]R' Ԙ DJU @7vmBRTH5Q.GΕL @s?[ :#Mm03Ki[* ɛL>&%fa.q!vO]ަq٩Ie GgtEO' Lѽk50B|"ЬXHw>nyav$ND[;O)tCxrT:mZi=nVF+"VD GxAKʎ*D`Jq1Ou3{fC?FG#P U ]E5U:@Xw5i8QCpE $GL-'M9D>)Nh 2$UňIӢ ?R&@c$'>}{?$ƿC.Gcʿ}v,f0]a0LGvCT2>y5P5jP;ВO,h_U<+k]+Q{QEi߫ v B|MO^9Lw_G؏bg__|VѯӖs\Rt7ڔ&װH^ntcu0NsqFo霦I.5ˎ\|o/~{_Y6񒆲N{::s7Rj`E4r>kZ/ոFB6ފěpkEnx(B)}h:- DNAV^ V@Nt *ul7R^0n)(B]&fs!SI@6Ϙ6Sю_- h96Rpv$og-$~InetVhdޟASc Iy KS*bVJir<"C%2>XF!@!ˮAe B)Zg_P+22Jo_Ĕ,3ҔxmʆVvRC\ɊAaUHյ[ 0`#B=247>e}>u6k5kk$jr3;;̍&2"odS,/ltYɦB){_neAM|i( ͵O_h.R\cb}I.#>H*5 JhjFA1dyl. xF4T g@Gb&m R#;ʿE'A4ܸx-1>񾗻#Nu' 3 n1 Iy}NE,)yĸ!ʘX\C_̡:o=&k{rGo1` cav_!09Ȇ춏Z֕/I]j@=2Tqs_nNwB5lL`c`7\diI;8ms!l,䈊clLh(3jg0$=90$4$*g5ޅ!!c>$Go=1=z8ӜV}I.;|m@5:M55LxيGxHNrc=tE#LZ,'L̰{Sq*oD_thxC{H.j)>81i3CC&> *J_,usHI|WF  gC~fx^g쀢;ٶtP퐴Py\〿3oZo6nAUh8t$Ѽ?['7j<db$s{uA9ԡֺFPH%_'ڙFO,TS$=Aw?V'8iBm2Ͱ0.=%l) g=M;Ґ,1̐W%]viJ]▰U{  v"ˮa%C>sB26\#]>vRZ^b,́J)ܶ^wW%7q؆a]N:xKe`A@;6G6@>Cnت 0p7- ].I enjsӐV lXذ҅ե`@\)4,\X9.R`TM &kٳaÌ؍fٖavf1ª=u_-`#OȌt K;tiﳑcIa{ݹExfRSY:3t;600mr ƌEluhd?ad;<M T Ӏ}:ϜK@PF$le1}#)QƭVƇV6l=Z sx fm8 I5bG_,\ye1ukC]q _ퟳl߂w. qPsgH ӓ{JxcT%z׺@aʁýȁcG]̇r?yaAp8,$ XA双ًzE`㰣%]x.A`Yp xG}xO)ߗ%uq{oZw߹_~ӟaz C21Ǩ|@Z$x׸D{I 7k),xU_~S[J&Q>ڝcCHjDfCT[H#,P; @lq4I02-",5Pvr`G2yj?N8_c g`7y-\BW9-ũ"=Ĉs]0܁%i֪~ }hZ80>tR 3{c|"<1 Dh7VK_'#i \sin`Y_mf qxF{'Nw7ү^)% q(hro3hiJN$1-U  I-E"=-=mԔr}:keE0J  On#}DugD +62roQO=B-X1pѭUy&A{-DGsM1xgx0CA:ځ#^Q3eH`_S~cMC-bdmn P IV-FwH -(a5!&0+v5[< 'jilmjiS AR)E*VmV[Zj5jgi &!33w~ܹ?|9sf;3sxNBuvb %#gv`jF^7+tp ["޴Nܙpo.!|ju^g8 /=kܯuqAԹ Yt(ƹWhCm7$Y`b(m1/S(8{Q]s]S`" E@`<7A!NܣxJ+3& B3c mzr>BN(Gwq{590맱#8[3 t_KmkS+o %}HM*6I\>%Om!_H)N@R EZE(GJ5%}AW]g' h rǓe͂ ՔaHlwFAO \ Ż,<UE@G^p|\TU~i!uL.|qxXGa޾$&tDhYe} vOm*?Iddv)m&T_Ұ`}@r㎺]~'ovPx^6/o` ? s@wcv"a#0lFA< Ubҽn2Q!Q@=02L()erk P)B΋B)5b!? _xBDfJ$0S!JS91S#E3%Q)/#Ofʆ@Yb\?UzP鍫^Ts!0w-xNﳋUaɣgˈY:0y{}TNh_;Ѐo{ЩoFŝu9͜КO:cxIO9M/7.w4z)%xqIC~vFIpF.iVKl5uICSZHuIv.2GAdH IAvDN{0,ن&QƼK"=kPd`*83sE&),9e!qQMhzte33)jYX}t?4m- 8[!3T"9q#B*o&U,ՆN^F%N!A'"]?Dk<9<nZTЧPFTƔ?FɎH ƅֲBh$]_c"̇f&maBM*i #P%xQ!݁fJGf(7婯$khœCfL$|2**dPCI6y6*r&A(fa^Z^ۉ]Mř(frD(w}L2E#Jyu'"W.9(]& ~'0Po)(9aWsjg}nȂǠ{AG_Jf>,_4 ƂR·q2M&QHJ!=Yu)LMK An)Vو %}]=l$ҙjfOS5Pf*YT?3j Lq3&Pn0ax+\b͘XgcEfBDLGkTM3sW0TQ{VbUWq;Xթ /MΣK9H.])4Z; F:WŁ=J[$wrQSqLd֢BQW rba]dbSD-Ǚ(D7QN,t ^生ǵ I&R$ډ(\y/[0֥@Qv͛qWOJ5R>@?OD;ȣb^*SXߒ)`ROP#mẀ5 ^`z cb'[\_YG}:MO()R`H`c~ Dž]N$SJ\ДǾl\``}DnZy%|ZXx$E[3?IwcGķ~5TU!`0.{HܯD` )!f" $ra-QE?\, /t@gx#ivffAdCw1] z#Mh#="w/XQ;:ͳh8R j6HC杪Y;,4.|;WGT^;]أm7%FK)*|XCr HdĤ֊D[clTHb /8(C,hmLIpIW@lT- ` 巂ũb( WEz~~OGVO%HWV [3ixf/ kܸ {!kItBϔ=AF`ĻL<ɺVT3%KF/o@g度^7afK#r.PiwPnak@hK_Ad]w;`gxh h mp.!U}ӭXk\zG]XM875TV]E*b)O2wIwSnOM,u# y I1;R%" >tG: ao @5HoX@w1xXhUȀ遯2=0C ,2`M 7eVZ[=zMRJս͔Tƻ ,XNɜ:TD~n7ԟNGF-U!AiOi?/ug^6@uD?k#YГr<"c) XF1` ȫ7DscYQI:+ZLUp糞D HQUVܚxAZ^EEq󂨅w^MW2dXk+R6L`7(GÃ܉rK뤥߯@o?C4ظ^xyM82֫O̿T+Z,Hx!Y-ȋWWNfIK YFՃ1n- Gn(NSjR `OnBnZxQTivg"ߧiLݱlY|aN#NM jl.d(=p1(=*NQ`Z)` LF~Qy?S8ÚPQ\䛜hО'rAw֊;Və)Ւf/xWfe}Bg;NSƁ(߷}J]OVgwێH9ͅ4iF,wwcK3%Q3 (E7&uIUgueS|;̌/iuYXD%}a3?vyfq=kHwi6Vہoojɀ{Ɗ%vBhvI,r3ұ;lI>A[L ܋ ZEy f}z^1=L?fw26Ou@!hl*VŀʩK(L> Dőҩf9']4LT]h.J<geZ; X] fz`Qg lkySEρXrr x'_iKmSōeUf秊Jqh ^߫+yRT'#hҟHIIyMүXҗgI‘xZ@k,fE@Г 料DsgDW g+vԒxcEwz5y`Oќ(^D@(Myg{؃=7_/Pʲe_p!OJ:TR]OL*[  w@w_!L͘4Yb>=D& )=m, wVTOKj}.)8vGTy*2:Nj24\Ij-Qm6Y<-c+J͔>l:9U~MlK:)wC}9H?0ifB 4˃(?)3|ڇNq]'1󉙒(=g7!fJhq49vማ8PҦֹ0A#^d!ojw;IPlߴ4[p\ +Z,BX%<&<2cTZcSŞ Q}yx"chs3~#.1!15Z&4fAZuD6[tzPAB Jv"{3Ѭ匙lj2Q֙)xY쯚CJj{MAmڙ)pdK/KRěhdyۊ헨P} loWr@s׃i#`T/Oaem;4hmG آ"1<ـ"8mӜs |JP۝fc~ u"4<߄ A~}W܎-^ Dgot|by S7=Ra 7Gz{Qvk4ʰ9'Yx?ǩ,a{ƴަ$81=x8Fo0`ŀ Q7?6-Ck­L=,w{E{Y1,qy,hȼ i;ܧ-FXCm98w1b~& u$2.o@e|.U+d+ɨіe'm(O2ҩ-_&г-w"s(2!N>Vc<ѩ*P(jXZNL,a3p~W ( g6Pub.7] eN]i|p=)Qc]v=mtc?qxBnUvAiHm]g3?P19c|C[CH?ԥY`YCml0D;8mVlY6d}j/Yj~>%^.[RC4"pR*Y D9??olQ0|OS%'nw@ `w m vQ TWlBuX-b+fX'av~+S{[ HOIF84*['1= ~5ngHs-Gayy`c8>؇PjOX}Aѧ&0:8w`HN݌'ق&/O9?U)붙(忟~EaLT h 欇jH},k# Ns1κe2Bp]K0NsҖPh D(LD7TAtPB حyEb+W4Pʚb;hE.áp%t&*bUZnlRTkyĪb5z*sd4 yx;2?O>0EEos{#-MG^hKiN9zq -TOl ؠla<_R{rqʛ`/Py XM5TНPB7RP#}2=;5 y# bdoM&+I㺻&SG?N_kZMI xioSСb"=>.^`5(pgcUc,l6 U dPc]>:褱_od)c7=^I A,P'&ib 1jfٖ.΃UʤQE3AG}*nWYwխ:̯ʀcfc,>/ztͤ(|(!@mї1PuNAE*$N켩`OSjEE(P%R6NO}mMیMTL]k&i.Viqx1ápͻVLld*䴠_9hZy(TpT LcޚD)x8J'݄WwoVNփ^@C $*??p$U[4Ю(ܶKbNX*d*t ] 9P,ٳ2_͜*SLj1(8Gg5Q[Q'}'Y+C0]qz9iƀvm`0,7O2gR\w(nA}-9-S7Y x\h!])GmT-9>w~Sמ&@Q[k.`=pv2șHB0C%jyk#2XBoxLu[HP|M,14:iP3Ǎ bpVE\޽ksRƒn{IMb_?$1[a2r J~bp!$%ku0?0/|o[ifJ~u3#_6 (Foa5J3/vNo Cr}#7ʃrs3+=!uM=p00-K9 HaJq2"t딃/ZS:(!>^#XBbE{n+J<~>ǽ4:N񂜬S!4>H"-z_F2,dS~l> ]fP}0 00ҍ;@5j\_VЬhe]P{, O}dw#3vѷjVtnzE_MMSmzPOtKP_P`S=K@tn:_ڶT?(vњ7X )ucn?wlY;\6q5l61DmW]SR2%lInK*)  }S'ί̶*C1,`3Þh |;"vwi:w@Az&3u]Ppzݜ.X.U.uμD,E5>nJǟAu+F&C?Ch;t@ kq~q+n6O]cz)I"I<nm/ |8x3n} %oʏ0бbt}xLV4+(z(F}p/f=+#|D'sD(^b|B<^!lS\drfq1sPN,ߴ-{{Њqpjvu*r4꬈*V@CPJi@Nl\j€QB,/jC} PN πz' XؖTVO%Z=VVO7;hg}?1z T̀ x^=:FoޮF]F^9D~&ewOVowu)had|ԋAcm]ª^/=pgd=_8.2`hXhG8*D;b# 0<=p.pX遙xn;&[ 5v1ֹD^#[zB&[rpxۋF^Io LY@+l'm.djoDx᝴GuUfb/ TǀL@w%w1n]nAOTE+f*;i(S28'x^ah旽#+LbS-6yLrFU4{v3Z"ܹk90+̉Rƴx7C˝Y:l\i TPLH|XT7VTguxLa6C$9yo%O!.3e*e7OuE3!S|[7U|귂Vtx˸^~`Fpn'u E!@{n(1a?]}PNL (s!bz +q1v9qn*09!s{-n9<>.e(ק36bC(|TA~H.3&qj$ so:P@KrMyTvUzՌE)jNY6Q5CfM ߚU|x1G‘B~@,. ^s JM"W"C]r\щ/mٔwqvw䢋MN{0 4SVDŶL sh m;aC]2;|&ũ5wLWQM'l+4Dt;=lJE wD!9"#kc Jb)fꊑK߉r)k!6P# c֝88`*jyiEMC-mqBk01K]P (|+H?B W&xD/42@ʪ+x~ aOwaċꎟKRWՍ P\b7b_ucRrVw0P]&l ^YG9.)vY^t:HڊV ʀFcEW[KgڅWmѪ4Xن98X-6%ްzʇWsO 4rM0ĉW}^R7v溵fKѡ)ޥ:ԛUYzr=Yѥwwu۳}m4/ߧ[kGnNYziZ#|i0qn8L9f׿.O1;><\ )QQj!-И>_9܄@ãi#g?xPzrB^}\W//(GRM+];Ê⺁V l,IWnL%{I%&db',иsDzKe^p6 U>fp? n#!xnaSsn9*d#@c6%MB/A;dhǀq<н6Uaz.rAu<() PRKV6qP ŀ8̀-՗K V5QݶPkVqOߢ0C ^7*>[oXO^8ē  )xnCq ɻjz[Zm߽)B>#LBC"d+y^؅9sz6cKmlޑ{uL!Zd ̕!|$^嵚r'{>;_kbo+z5V؈SB䃋G^&MDS;QîDAŸN;8 Qk95,k$QK?5|/װ&M5X܅90yڳ  /`p퀠o}b8J/Lm~W`}+㙋8ټ}5V5nbКZux|䬖xc}㾽:R"; . 8T{\3`Y<:]OzNW1:GzcQu/?c[*=&@ vW?Ӊc2to-:!X8q|;Ǩj7 tuid~Ibڮ4[? ?=.?왿{g!9N J)6S%djiREAy?va{RR]u"m,>?^{/$#'W1P>y^.([0Rw3!ق S%eihI\ g'hѐ(i"wR9l׼j,~L^ë}eJl2mXɽO8J>L{}i)MswTѼ4 Ylu'G'AۋWP^< &r_ĭS ox)R'"2,zZ%[iG75bķLGZ2cڣ?cWXI7B lW\NA x2*/L{,0d &Pxż_:Sƽ R(V9eVR̻̼W ߃_ʠ-Y7ȓ9y:;CZ9uEE<%_CU%1a |}PY4 JNCP;.2ŗ{E9ioxI8Rb|q{)bV'!ȊUJˏ\W>4MC!':d kuh& 8[ `czs--p.uA-|(m vi;T 2( kEXC blU->CA>QNpYep0hzPe9?(qN*x$礗QBƺGJ*!6XzǁfƔJyyOvt>Z%%)u4<Eˍ`kEY⯝Ə#ByK֏IT=.-Fre)++:N.n@8>[^Na }ZldRljolinaRn$ɋ7  T~-18Lh';$9.k (rKۨ'|eku _ |/jo@;7[F;P|F&m.sI~Pd_?#y$GRkdkmֿa`$y 83W,˴ c0V>A" e]<,^&T"8NEe3*=zz[/uJ)79/ț7?\#"իKdyvm %H@;Cމ7s.% =2,Ci.~V2>TPmW9x|B@<^wk*A jWA6v6HHۃ {+9%;@o1:@m3Ŋ}qmE2Fc ޷z"°v K[k Sj]yh)DQT{5%;Vl>(s+2s8ra6>g6/Dqw d$f(V[QP*(A@\I/)URRKHW|λBHcS8]A8y/QnnrTSݤ>9?*?*O@ 'Ҿ)ڈAXtW͔~ȗ)uK5 7&)X83?Pa|L @ot0{Mc"a~4STݟ#.'Rf˗K[JEԚӬF$E~ ~|~ćvG{T#9վ7b{Mѕx}ť!_8#1nkHJ%&\8w = i uӋSԭqu76 1VNZs1w'5ly}/T mxw)gB);U0 ccħZ >,b.Ѳ#Noy_˭XM[-(bIߓ\e 3ФI:+/uҹ,HR7}̀1 zGmj|wRa;m r!p}w>5(w4x@Y]C*"dvł&?l#smڋ zإ}0aG2%7=[Ǫ2vԖPk=u;[ N{;ZtJ g0>=0kOn2c. oyEe уKԽyؐe߯@' 8k۫@q@QegRZF2V=ʀ|>aɃ|遯C9vMTA.]F r r)\zZǒW['کVJBHCMÃ~1q "hR ܘCXR@,jy{3%*֣M w~TS9"3=T&`I'xI2r4E!S_1j[" %;umaϴ8[9To>zX5DHFj] 6= m]MA*Q_oe,|#izP:jW?.Gdh?R!3$ GK Z&ܧ~Gy YZ}bpᎃ1+Dq1T (/;)/3JަSZT lnϺ(um`k+:Nog 8G聃<`|F8P|N<8!P&m:ʘ.2o.E-'! |w%Hx+-Ey%.gbqy!5/_OEz $Go4.m) ObxP¸L QP#mo¸>߲+UoW _$_⛙^q(Nb1%ssՄNs5hv ?ҁ=O}b#+Hcg聑 :t @u@-p@CJ1|\h/uDmYgRcx{55^M0oCʀ- ֘Bio؅tCsZpp>댋_O{W{q;m=߆fy+ٸڤdz+ٸ0=p"n+ꁵjz^Y|M jnVBicZ3.ж(K"l]%jUj:uzF0܇sx(,ܙ-3!r_`rZ)fS$Pa\k }QX WaD?.m{kJ/H.;=)QA]v@-'ERv ɒIľɰ"]?KmzOAZ$kf_Ksv\ UoRqyͦRzf6~gzP@Ъ=Xem-П7Nzv0-pf hWev5111en2\0Sb&Z:_/T1ӑB$fBDCc>4n)ToD t/`fJfe` XZ-}*ҸBB)n50: 5-*;bZfifETmڪтDMzɼynvs[{nݾO/cE+_@0W;}I}KD"78dYj;94sXvYvb8/V^5;`(6x+޹~Sa|["GqK1&<䑆DDٲGS5[|3~bܜKo;Nf|k~-QܸSEV,vBJQT0x[,=W7.p1GYh=M lgg5= ~F}Yϭ4>3C rl>|3c3df#gZ9m!p,Pn+,sm im(ga3lLZ%ٿ9!×o8#g$gF_YYv2d'YQpF-h`#gV9ɺ)ǘzSo\̺_#.ϟF(-`BF%KKb"5Z&؛^p$x41,ZtrcQɟc#!J #?61?@,^P}Sig#OJμߠo|ӌ*o#ɾ$Nje1kr'{"+d3(oØw\=ش>sk7繗9:H(8SO{ݞd[l StW~$Gs7,,7*&J~_溧OK'r=Jͫg.p ^5h>-u&sqMkK7_uϾb}:2s}Qm / mOmX# a:c^5 W}S߫G\h;Mjݿv;ũ" #[W:.\HXC!c}ho=|;l7vS'[eFncz֋I=~fbp 12~_Pr.i~f15D1~3aێ,1By֛Onٹ_Ï3uO8O>14LtqkGu Ƶ=r<~VILں!um78&16 1MN]xbBQ&rg|?cOr7 #qM韱mSdk?5sn}+1Cß%>ޟAck9n1IL,\GVdqP-@ێKbv^!8s{8'Bmt:d>xIy\l\u|K\MȮs#]xޗ>oDr9mk#H~bJ~@ï[$^+yAPhl|#K#,LG?,ssyQi;(M-o!s ?b Ro+or"Kޮ!ƷȪ'}0>Ǐ2\ փ;vm='ᠷ'߸Fv{L"KB3lew6ӹ?@;%x QMI/Lw1`s^GwͮzvVI;s%Nm3X1F oڙ,;b1DLSu1lz7֟O,4XOvAύǩIKH=Gv փwsWw>x>g}rwl>}}'%l_%l_l_vbZJ}bICw5??G|\/q /sGyq\|^?jKs~D<煯c`Gw8'nD4BΡeKZG%&n1σs\ELsc`۽ML۩7|ԣԫ:w=h;_d;Y$ab'f:P~sqA|/ w}இ+O1bo4gohǟ}v'g+H >I} \u?8$&abhq|j뎷0j5gV\P|yg, SgYAWlѶvǚsP(n} >^+;DԖGޅ'_Sa?ow?UhדR!!z'v?';/`s<^sWy $/1o@cO4!__V\YGr_&1ILD|9<׺.yVa~m?ЮU}bx7vm@5K=I]xb%.~_f EI#f!F.kv K@Ql^.+pG淋x9q4=.gc=ɴRJ}bfG/<߸8z7kd3=Dϟ_R~m#_<ǥǹs\lS䫥#RzT&ŭW篍,%P2Z2KN$1HLG/x_ MO{6Xa&>.#u>)Qz2KN1s-y̽bnFLx(U<.W~S/s/Ҹb9qֹt,^jvCysw=b繟[1A-wT?D rdrwzy~Qx1I ZX7ouӋz41@ ͎Ag)u>򴪟^:zz R/s_ny>o;z ;|zW>$$lտ~iz.7>s^s 3N3&ʿS/{cfIM} xS>]vb~~8{#r#c9~gzhC:1Ly,1BySrms|ڛ/v&>ei>OPh1E Ϲ}mfkپki6GxOR>RV;1D>1j`=FSn_keO<>0[g j_P}H]sz8G̩'r͜z̩۵yv Vz]=ׇn=D aRFۄ3bʮ^-=b8 ⋐ܕ<";y?!fr8<쒴uKyL a}y(ԳGEb\axg9Yw.e{l=oc6oc63tYgq&vT}lvo=#66,o>;V8]1Jo5O~w|%fJRnK {Oގ%:,3+ mX]O.&AbIylE~̏_~=y/O͎OAK1`;0:Xv],FQʣ'䑺{:xЇ(: tGqao+g7k9v,y;|0|^2Kn=~'"&1lƖ1suYfC݃a SC~wB7Vxۏşzy`UaO\:x}~V3W= 72b`6NkQ4K/,j?ThwFameC H91!G/3jU[h0N ֐j;:=uol*^sLǂxWt̛w#2 _+(/Hs%Fuu/qC Uw~OͰh.K 9nMqTG_" ߥT+ _ 8|7O4<3ciʳ <%EOf#q7o q')@4}6fb~O{b>=S`?76][W|&;6|xxo~z7VRe1M\Uǹ}UAB>ǡI(ʽIĄ],3q UK! 7$i3(+u;9?o|&q'T}=ے'YA}'p#6."^o;]|^K|%_r=%$f<&1LLl(?sF6T36>@|QaK_7ߴF@$2Ŀ7/E3VW=&Ԍ"Z"ĩKM8=:Dδur<ުdk8zAE?FL#FD//O%a{w'kS$1N ,~|&1Cyp3/ڋ}{[/ٓubz;:ރ=8CG5OЗO}A4Gr?t_vKu;_Tp$1Ez;{ޞFilş?NƧP8#5Xfgqnr_G"3;yn%ob7NToz}$5l;ɗ,Qq־9-bP?K/-y:/t[ΏBK ?H.v'y#DYギ;omg"C o^~{7%7{C/bhBLPb=N}uP;>2gCz& Gusǭպ8Nsϫ]:͎K4,xǥe~PW/n܂o!1N|*?BGݯR}x__'ZY[~bg_w:{/ImaѴc=Nto]mי o|]ߵ80pWg?) FYߣD |`nwVw=sqq[?LJ;rK\D<%%ُ()OP%>oak1įe'!rcd{GxzH 1Ex 1! Os?S4=Gaj]bXNlO,&Vm9i9q_~Gs;_'/'^H88888x I~5Y?nĽ<%>H} >`5=7cl'^ME<؋ؑQELGR~㌟O0$ei W(yeuHnCGOA Nc1~>u~uaF\_NM4. J#p4 DԿ:WV}jǵeҪ#q930,&d&z4(8:FZNȩ|sȠH "8XRdIa"v).RGIWIKqz&T8MwPdQZTc>S/"xBo&t~׃z0p37E9 f,}R4VZQ(s`1sSz(b-7!TsA5$ 9%[EVjMD (4=7-:OQUiF,أ,"X,W|[? f*4*X<C¼zkvb-,ւe-[֫8,:-P>w9M urV=z*_^t! yN>-65ķ]؂ll @ T߀VV𽉭7-jVs|hB8?D?F(?ԮH,P CaٙExHlB"!l=H\sz^@0[Cr^c _J-dQL(hIh(Av⨪lH0l'&d((2(=Њ"(=@ RHh(b(uZ@TP= a?G"KPu`GẐlPgl6T Ev h +r&-v  1>y.ooVJ!'6ZoGG5[ @*Ӑ-l!,-ld [bCŐ-l dK [RȖBH-E+R,2 (2Њ"x'd9ZQww%n}߇ݠ,~ Bo~_@/ лzĐ *_Ð= oB(; | ݰ n=2^ECeУ0; sU1ӋEEEEEEzGnźH˃tmOW,Q ;|R :8 4 Sw*dA4lHQπř E: ga, @ ~h c A6ʃ! vase(\J!BEav 6P y ҟyf+Q B{fjخjźdbz0ۆź8«K:ꚻ@fen.+|(ѯtd]O%t>],YWe;DARкN&c ,vMsi4͚Knzۺضfeu zMtg]Y֕ul|xA@ 2Ȯ闰u%XCR j(WCᎅXl`kK-PDPjaQh:F!% :^h6d3y̓񰈆PFM m..+C򑺖. Gґ"pT"1t+#uH]RAuyC]P2U cP[X^ ZLEt>]OӅt>]O0!UeA"=BCTZG(HojXz= `~~x~_w*Ve.Ƨ+zvPQ!CBql{BzAl:yXdus.-,dC*'@ ,0(T@'JX? 8z:lO ؞Za8fYB0./P_c@ub Am} ߁w2@uuF87B&4Hp!c&nl"~ Eu 譅71qHEt%']vI\t%] JׁEt(]J҅t]:F P^z< 'a!xr,iM)=XPya<1x,a {H5tʧt]G3CV.\ 衈V@E*kh@j0K5zt|C'H{B'H{'TzBE[{!^D,C`9l] z.".lCpJ]pлzayDy0 [0m,dYޅ]ޅ]ރ=ރ=ȶA mm}އLck;Zud; ӭډ֝h݅-w7G }}@=l/d{!ӭ})(b[(RR`/z Ht ,t  fPY{HKt]c#Z;¢# Rd:9]`*Avh=Q} lh菂(r4LT{*ʐ^nAu<{B yLV4I:SЊ"i~.OT( fٳQ=@O Уi{MtYu* ~"P`MtNGu:uq=ōhz;nGu@w5&lR_kz5&_,[eo9wa\B5Cv7: 4H!BM> G+J}}PʿDu-A&k&yM#95^l3d[`fo hxl'ld ӭ 3^T?l95Af}AVYJ͹5뺦h[)t]4BU`#5s 뚠@iMV5-ٚ-[S]kkMG8#0{,C)x{*/hEk ׼嚬\3krM5+|ԚZ3QkjA 5ؚ[3ckZl͉ 5{ּҚTZ3NkiE5;՚Z3Zki 5{nּ͚ Z34kf 5^|ʚY38ke[ Hy5)f>tɚ+Y,kaM}y5IftWjaMūyj5IfմVj6ZMyyh5ɬfxų`yJ̱6VsjX%S5&cLfUsjBVꪩ5&oLRs?jG);E[< zR W&@l0f(ꎚTӝ XЏ2` dWCE dԴ3Fle)Q_Z̎Rsi>ͮ5/&̂Hsjj) 5Ϣ&Y ~EshA͒) 5&s FRJkH-)4_& oMsi94o&ӌq.Ns͆)4O& ZNKsZi*ͦt&bfLsib1*t&L^Kswi.Q9 Z=R=.Or _MBvABP4g&-àYدq]c/埰ܔb*mC"$ڵ"1e4Xcq/ >Va'X}ZU*-vLks_[_29Yc۪οs9p/SG޽7ĺs(I/=+*1j3)&8noU{` 9@is^YǀsM|psm :6}~([I9kj觵'É}{^s֗x:FXRCorʹoy(_W=sˑϧ }>{\ ^yz~)~w%ͭxraX[ITL8I~?] ZcVS_gu-w Rct/RY<[}t]Ì2ǏrYkmCJxs쇦l2y qڭU([q[_HKpxM5-rFn?܂k[qh(.%$$R?gۓ{\_ı~3["=R68c }xG~W@Ev; s:oq?{Pz,OlE[[xc:zNRLP}όh#]RPI^QJװea1;Y^3/OL8eC$<ސ^W<cNeSF~T sė^?1ړ40j2}.Yo7s-mmd7ӠrмH]c~}zk !1kg*Wa>R_W!aYtrލ|ru3%C{ySFLY̿\JluZVwxG:(y"`[ajh.?(G̢()NUXGkBm]ށS㷖|'ZG/s"yNE|Aਯ_[h:yl;rU[?oи ɥEv[➙!?=߭s-4W\t9ِQO0M ӵ;]i .}96~b=zkqNMsVk\{*_~'}.=37Kϱ>}٦}y;ʹ lpdK2WopžӓLn[:ztKfb9ѯjK}5N}LnbgEާ-;OgpO%D7op܏n꜓&Ki7AP)7W;D\i}U/Ck(]^bMXRN cˊlRvG=ظd}02vێ5yEєEݢ:TG4]G-oE976_v}r_^]g!-M)+c8eű6o"OX}iU^o(8 L3JUPMU}I׈X*~mOiv$yTV,'ضC2ǫaÃupA &xveوw5S74.z1:<{wo.it0rLؿˀ~%2AI]O^,zYnXͪ꽌OF`c.A? n̿ {}1VxiYǧXug)Ծ[<{G1k%;uc4ד\b,=[Px #dZE*fu$xk Ϗ+8E/N|m^Jڱ'|C1d}5߾?6ebkruՔƂ OSҰTqezkƂ_>@˧CXk٤0+A iʸG(MN* *=ې_=⚔rP$-,$KkXoOP.< g?|+1a И ĩdQ^•gi׶+-BI3ds3Pi3]ӂXB>s72j)~ȇܶs[^u I]^mOwL`̰/-ު/x W2;=;nB2 ?>bA=K_LIB߿lc/>nH2[{g_'i_nylt.wl+ı^x"'nEdz,hw賃rF[v|봼O\9+>sp=m kQ|˵^X6IrG!j~nZzHT*}hxw%5+9rә(OAwS6ͅTSznK'7𩳏[NΔy k(Jw%ȻQ{2.AK9K;8:9;+s<޷༹eyk]vfē5*pNKgIbyq@),lx!P|K30/QUU,KMϲ˿qM;`jzVe+#~oXJZiMHz U.*E(;CKZ_>l~}S;bZ#Õ#$ ? ע ipFId,im9J=кěk܈3`w翦^7xWHoH:S6[t9v1tԞnCSyݢW4-X( 4xTh}Xn"X٘~AYǘ5eMCO-Pd9ș[g;=jTsM;A/_A%oy0((;Z{Abةs|_Am,v>|&( HP?W6+cؒ)RsY1' 63xR mTBWþ; 3J;,QGؗ:!@Q6M7{r(qLEFmctU~檯/*&Ukj\{Zď!,83LV\ӠW֑&mRiVVFNe (4zOv0 ۨ=1c4pQE΀/L3*ZiCj}ٯm>}Ox$!?|)"ZEakC1h8#Dȯ(`违簡vBG<H!/5='% cuh[C~}21\̋\o^e2r =* L-yW@TePS3C.i~sbj\TSR+6MOzǴWտe_e%?np ??(Ճ(K:NIW Bnh:\%Y+~)xaj^צA__1> ISH(;(G_1,mM9mڢ^|cҲaSY7#Z7{=t-U:1m|:t6F͏]gKJ)ug)OZ_”X*n)ͳCτ)G"`g"Öo0u>`|BL"5m|G.S[ ClmxDz- diʾw9Yw.ҧ\Պ-kt΅ 4ڗ|3}q]7vG1|a߷YOs3Ek=-|v&͟Jvۉ5a`+DtY;&61/ByA5!S 혩ɫ#^S>0أ\I_n'T*ΩUТ(]"޽p/m_6kk0SPJ)ڜUT `x'B#kE-T)=t[?`k/vP=\ sгaNLpgp?Օ=75Բ{wmwbFVrWGOAoCѮÉsoA&sBF(J/feM8`WI!t`72-*EK*cC9uUu[K{.5;ArzAm<:P&dr5V m՜^aw2dQxșwrR8X }(N1+t,Ŀ!$4ߏ>kMZ>'-.$^,Ի6b rf"xr8?Zᷓi5)IA6(j@;sߢe \r] `o{8!Rb}.!^pT9%8JF?N+iq>cԧ_ĴXBGGw~\e*yZ)SHnf!+V=)2;Ou)׫ujOGel^{DO C+Es1Xl"̀Mh#U:Lނ<}hf<,$jw]P .Cƶ G17r[K%W.#K mV_{j ظBč12f ~bGT}~k副hMrۚz0؍ZӘp&~,3P$%N ~YV~rcd?Y?>߶?\Zcޝg'9igxtt.{k屝ΣTY%]!]f5xYoLo¹}#E#F!Vv=),vz^O6zD.֌rB3DNY{#SiI,ؕ$B[۽-\OL?r?xm[pOɡ˯sW~EGY&?2vۭKpfJEߺKWIyNt?u)^.K>#3~FjZo0iAϯ7i ـgյb6~еD%s4Nw^?~P{ u~$cܸ>}{Lv|R+8_곴 rG1=W7FF~&kn Jc8>~ ײjV^l lн{Aln^$`!G1,<'pGN8Gm3p9!7ӛ ,z+ =7z+lw[2^l3óH-XZfL7v}}oTp}{k 2t(ـON#l1?۾E|D/k+zϟH eYxpp-;Wvm`Z-'n󧢻y{kOmχpO~Hz~MԑߨC[%qI<CH ׼/ˉv<TOMZuei|C|.\&?1+XԷی:f;?qѼ?Iޥv[o^U%##,RNR5k/&}6wZN~}!`^ioƠqZSNj_zѐ[:9ɆG%!bDN&zlpE!h#/ G۷7 &|/v5+66]zr7GGΣ{jO[k[+/u}^o_(GWբ-bwI|)nĔ%S9z i |Pރk'nծ*_#pt r H?8_*[xg,׎xoׅUDI۩t;]KRHin0u-Jvlz IpNպ9 X=>;ۭ҈c۩VF4psqRbk tдɚ)$"oQaMqޭ>~M=P+o^adUG_33Y1PhS,ׄMJ)p'i7{Q^k'x׺1-(9c [{EOU-pN/±_՝^z{}ޒ=v1.EmI$ >6mǠ;T;? UI:pЪ89We,5Pf9[ܣ \`x|۰`^TڧLOqWGcwMx̩{P,B9 =Į\U-7zC*:UneϰVVgݾ19?䇟}:*ҙ+~j8^(jIE6Б=9| 99m(rR6y,ȷq`wyoRNʒ0'\ J@'݄zPi2}I w1NO(EXDi9YrVຼrK[9\]TC%W4T Q7x|M !lǰBD=bW-_pCh7kt$~`n ݢMQO$ tvX0s~S6olk<ȼ׷&{N52͉dOÊD=d[j{DWG,%ztvd\/2$tq-lm`_9*g̴np~bW%ؒ stX-RLj);PQXv ;KF ኰR^]UV/F9#%Ɖڷlaךp4q 3΅S@pGM]GGss\8k-OҶ2 zգCRY>F[H_q/>t^\_\_6,}r?}kr/ /vݷ^, ζtȹK,j>M?G{n^e}TBv1_mdh)eeU3BN-ӣc't^:Yפ8Oeg gi̸RHiY*G(?v >n޵Xu J_Q߷p8\ůq~blr}rVmWjB]yjܱb####K*;./+,F n~y^œ:ٕgux~(7w?]1W]y\q673JH1(o(]u%Sbj`nxܕϕ6Ms*dJ x@vn1R?R?#7h&0 oy>z͋-<;7ŕ>m:k:o]*!8?u맦%ƹX[co8}f>hs MK~>짃+1m^q0*muJ|Z/!,UN_hG.1JIBJb] ,Rl{çRGḰʖLNK'cۑBt?ųq1O!(򁚎pm5)hykF M;mλzmf4qg =ZrЧa+HKzC^S,i3G.mR/isZ < ]U I7Q?~3m5li$G)-ߢKi h@Cn"-7Z{Q9Z+a,0e*QЮHV^>Pܶ3NIu"E3Kkuw&bVbyPS~=-7l/#mTc!|h7T+Gbc}9:Lj[l=&TC‚7<mzUޥƇB{ﭷn hߑjYGwO3X?+ 0|RYY?bwmH)y]_k=FF—bw=Y٦uŹ |<X5pZ+wQUYQuX !"Bh"M4L&d`2f&@"ʂ"(XEwY "Mi"*( Xֵb]}%͝y/o}yw˹sϵ)OF *1C̄*@{Du!kv}i0V;~w#|bէJu $-m_uy%Ujevu.W[d h>[G5y^N?^fUlJs~TieT1e-?B.HHwWtv*8#kUAP Ͼah)\Sd[ yy@|pS&Ӗ2m)螵4HKzYgW?lْf- }d.dH9=*շՋcް" %\:["{+e{%=~ꟛL6h5\3 HC,_xgGW{ua4فH &$ǜ6;csXUzsbJH1 ]1V'O\eOQ%+ꗉq;A}cMS+?i}]ɓ;6c|mX7Xyy6벩rqIvXvॼ]-yF-1kԲJ92!Jsq6siuALՖXhYILUaU=y4{?*ʘ9ކ?U *$fځ" 8pw~8R kUVm\rIzƕW]sͬY;ghx3IR+(wY- dyU&Z55~zXq 5~?ڄ ٨QmST+##n<߈\yzq;o s؂N0#&\kG {3[mSp--,9 G0ԗk#A-ic6@GV4/jI IV'bYWKv_)hk]1[.GȈއyܿ0t1wU#M+5@zm/]vi}PS\S̽i[Oe|yP'fD9Z2OjMk8g"IDz.Z)0Dr(XA;("G'=v*YZ+ឍқd4/[DU 5b=w:r6TYȥ'`ȑР1.V f~WSYdϯBֳ6Bn)h(/bŃaQBb{iVmXbDx"3twQΧ鮴4u)C<.,z{r݁Π?a ơz|~sy>wntytӋ.EPA_/susV˒gX94r.;R @cI&EQ'5L=Ne>+7W1"|G a{݁š<40_ (<1(vq*p_9e_9\N~cZvxBgn9eDyHV$\`E"|!$ha_gș.H]{BQ  y pT##·㩮"tT#k~V7#>຅YcAԾ~c?U(1>WTSH.`&(zFU9]ff<ѰY)B/L']!`C^1(Nî ς0)aM LC,~/SA󹤓J-7kkH=On]|.0;KY ƝovV5]6/»`M)?}%{:Bw.5ӧJggʲ!4X{(ݩ^<#,["Nr%B(|`";*E^+{+Scм0 ,g tH CQ~$JMuz1k9\^НHo_ZwsVY\*އ47ԩ|8b*@Oq e|"I@/LiնH wJ+0.(=K-}Q;]_E&(=h=?,ؑbOkQl!4FꈔEy^YT-8J6:a7.IU'@xο z8Vu}a s@~ "t z$ (O)p=9s Qf+K&U%=H] s¬j+λ3s̉Sue%ŔF~Tw_Y2D[+ky_k<iGjK g+6JD뭧S[j%K.~[yWzzxw_b拕ct;Cxcj/%=&)*lA~,}n& ≅t[#%_";l1u %K=T}({KS,jV]5຦-I]v̯v7}{j& ZhкuA@@ZhxxDD$$ddІ A6m o["&ʮ4 Sm p 8ǣ| |'> O=D'> Ix$'j[V@)pp4ҴV/%pkOۀ3.`7q9<("#Q#'gZЍ ÁQ@.vb ^^'уId@&p90(syVb;"2*P+=> syv`<x xGJ@/C+\` <^^j'=d!]0:`(8$x ^"ϝ\J\Ft!z=) "` X<<l;}5 % .'d!都k\&vo7 #^<F;R^`% [}AO@֐^~G@/ \ ^?g"Yi:a,7k@).qx8J|| Bݒ4Á ` x _?ǁvq8 ǀoHt0l;׀R-m@\<)Н 8M-`)xX~`5Wa1`-xXl#vFX9ATkQx"H݈D1Jd+qD6\HxB PL$kSV`9q8NhjsqhiZ)p #$"YlI`#Nv[;A(  pQ0Zl`.+ yI14 =|$ڳG!mN*-|yՠ+{ ceQȤ7~Koƪn&}'ݲSn ׽ !m|[5ݿ>Lπ5"a\Yqd?U\sE_sEԅp>2yaӥ]'>^k,+KHghDZ-rIY)|Φ](B Bm%u!]"]Cq%PҶG/!; y=<{@% PDN͍֪_;ʇ6SPTHߡ3o}Y_ނog0ʃTN8PwDex\x"jI{Xځr#A9;ˤ5dfL` iȵmc\3e,۔8=KU"re-H:aju%wnksX4ΪޙM5k\oI???;aU%f.2܆j$qqVst?tUXe؛w{hZφZۺȞ;k}_&tԝu5y`HlGF{^._,e rM(:s%eAT*m WȈ!Q)āz9j.u[񉴡@-E \4Um)O!gRv=Ң4˴Ӭ] 鄴PG-J1K !W,<ٺ[.%hՀ?z,rZ#u`#uqi!Rg6ZKl26ܵWv?qMm>kǑ3۬ no*dGceYz'F|aKyߋlDt["d\nw4"wF{xK/'mW/BXslکYkޥŧQKP%BC/H%^-YV]^Mtk=q Ф;q-̟I Ҕr fFvd4)Ue]SZ1oqڟGwMOW8rIn{!f8:6r-9o_ʰA=͘P0E= /i%O9&ޒT^Vi/SgLypÆIZ{Ql0jG:r)]eSݲ-ek-˵Rry? ӂ2VQ4g{^es-~J7bH?O _q|7҇\^ |O>w^{=g8Kwl^?zŲ^oж+7Ni .I_i7_r|{KzZoZ[o.o<)mXvaOxǵFtyNt] ZkO6ߟ?T_yyVgk0wF?`;M~y rù۾ۙo'6|CzHۺzȠ}w/ƃ?[>倯c+ݜnmݾ8N 83p)qYݲq78^pC[Z]tݓkpf$?u¶My阷_+郍uzPoio䢃uq(xjcRaf${O/mVKx|eY}6:7|Sv\5&/OtϞ{?MMm3mʠG?}o:r>Y;.}ݻw͑a_O|cp =/D',? )gF^~s#|׮dM/=/7v`IJiI3j钋R=q'/;iط<朵]nW}Փ[{zvjڱ?X{tn1oޖlG&}z.{W>ʋui65x|Exk N9}gmo$}k}.΋&gxpǠIo=4G2uȵ[ʧ߻'|zbCZom[멗ҖO^שj{vLFT! k%p.xl~js^3@ ~  Sx@E7| .8i>xxpˀ+K @1= ^s{@w`0 8 18 jH }K@;hz j4r }Y@/G4t~4n R@jhW }Z@П5ި4 mЉO =S@1O@/M:M@4 k%w kWzާzD@{j N@Ohu244hd)@ tu@p:0 :pax8X E9sFdM@ p8A'p?M*x|Ac< _X5\|Ge|q. Gޜ;~D .S ;9S$_q}3hZsshb'5]n+Ϫa7Қ9PǑm,?퇶"V9c4#ofQ,4#EZfcNZ4"WBhw,y)uU6.4Wd-M@y\|A1\d9 Z,H+Ov4~e|nݺ˛3*y#]fKJ/Mm>e+x #LWaEX܂Vp g\2l r`uW??KG>t쥭*< v6J3&-#Zi YzVQV'sŌ'Wu?j=MXpѴaFacuaB߆-8P&y^3;BS W4L n|WD\Id+s$O5<,̒KgrT>g{zî9#W?9_Z[#==ڤS 1(51e7%۫]z#60Ewx3)3g:ZdA]? 9`8^i_2|${"hO}B~aୠ¾ԟ!]LԶ. TI "o"_Zkeֈ`_L="RijՏ{'EhO z)=b\іFe;grwE7BeaB}'a )ۓ՟ @yX޲ 3G-{!Oϥ7OS+{=dKg Cn N$)l*!s9Y\O+9*ǦT!M$rHX-Ftث }[UY~ůQeŏ]xo8_]Y쯊Sӱ>UdUsX9KrA|H1}" |o eg̖椥]ȻX"ROѕ.ӳQ~G-O,S턄,'] itgVw; xPk?$Vx#h卮ĕԜCØ-Ϻ~HTW3/-?Ge9SNj{gy ' \ vQaόo[#"̅ bʵ/ͳAc7rT&uͣJoP~C**/f ekVͰ9+,F?aHuwڶ^[C╞UU(0y1 1 A +Ks-\05srY`Qy~0Gݝ#j#7E.iQGi6ïu{!/wGxc1/Ru;|Yz0 Wz %MU]F1$JSGsˢ}Fo{{SL#3^í'ܧ4Bg}{!$7bp=_ևz6~/hԿ~ 1Y7^[{Gc:~^K*&cop=U2Jj9_9K$ʑ?D"!Hm =lJ,Yj8 *e 1,;0| GrEjFE+^:}/o𧛺t޳?Md3ᩃn7V[؏ i}i=w/Ncc_?l#RpIJQ+y+1^,#ϵ/P@j φ{FwC~DaFg]oO9FS(:v,~8EGpUǠ[|I'q0c<3%?^H8Qݗ-XheXO[ X&<vj) G 3Bf=n[!3w8F)LW*peOYT(Wp&p",?Wem[8.(?핽);vGty'}CLe1; Ж 9}.#XR%w(n8~2 Vx3+eO O.{.{钸.{rq~=|._=xÉZ@>8 9犚'W &Yv /}(^wzBKr %)8ydwE\ 92)ѯ?d?ef1<3 TDfޟEiG2 g򹗴 o}MG_Gfi{~O\?M:7Dxҳvƿ Mi|>5?tG|4bHƿO%_ay>E|( W0.>b4!bҡ|SL i;~T-"Cڋ?0qgm_Bڅ4i+e3@T m"|[K.ŤLMz!?5f*Ww,|x_IOr79I;o//siT$mw5]SLz1o}Y^?3iL"iK_H:4l~_Gړ3?%|eễtV~}V qj/Zh?hWX,-jYYhYo[,j?fˢע?lohfEڢТ_jehfEEEEТڢ _-ZwZ,MnݢʢϢ?bhOs"to u/@EJg;VFxAE xq/X9B>'}m?USῐI=/#OO?S ;Y'>XŰa_>D^DY]QQ.DYإ:2'aQE}i2HxSi((H7K$Z[!"/yFȝc.,isDߢo,郛h}F85㦇=9hϻVkQtDLɚ"#{Uu!/;EU8/S^"<5 Oqfܗ{0o 3M|"26H,PG auICey5—2D<|6d>9#{d?\Mr o<l򭙧N%*5/a̩J~o:V͵Nq|&zC>/c͞#i M>{&2miQfVpY} 3[zXN-=d|5v"x+U#}?'ڨגlc䯚/Krd,mJ.B_P+ezȦrloL{|>k,9VY5{! 3/| ,/͂o]IoIlm0__O2,vN }2"/˂t*T|@U||NJ|W}ˤ{Eű= 5[N1 1Bo _hZ Oa|Kȷ9Q-דc^O!ݟ=EnMQٽLgk*lK>)WjoOO-^__si& D|#h'g/E>{X_ca89,VoOE%_1/˯rZ_x-d_{E'cuyYrz:vIIQ.NRǷ$Sh:ooM,g*L9peC~ &)go,-feK|j,e( _c_/N/oZJ̗鞘'-vˆ{?[g ^m'Gd?~cGS|rGsMY(| hc|L|gs$4SяhNt"=.:̗$ڻ#݋]E>dwUd\#=ye}]((H||0Цog0&h3Q_e7/c4#PK|π"3C5*=}aA z'}|h<ֲOf|dh/Fu=4XEʙ3h}|r{nG\|u-f?T[X~lYOܬߒgެߡLMcM >!/KEm"9E>Pkb}yB\/;vu|~B{r=6Ħ{{Y-}V t+]`o}a{B>s?{{M7hoM-!VP||ij}0+б/Ϲ}e W)lVK[t({ #PqH~mQC|qƂφ-ER=xWM_G+v}u]'K_\BL|E/G ur ^;*yz;/m _gt/D=yGdMQo|qkؽxGݦ^j~\>:srzcv_gbmj\/՞5";jG yixX;z}>}lKegZqll,~66666666666 ;3oۻW`:s+_NgBWN+Wdj^=)ԏƺU}*=oEWрVL.jp|a { *rQn{?q=\?'BO)«tsK+s￸duNdMv~7\r7up||_ٞ]9yuruA~՛tMݬY۵Bs%)Ee\E­:.ڷ/'pfӊnӽ_H5߮rVp}JQ][ ReإUwI Kwd/;z=+igz|[_0MfpY 8O~tew=rSz=xػ e;u b|ڼ[GΥl~K%.F\";?1.J\5i䉫@ 8Ov4Xϰc)1#i4g\/x8OfFP{ߘ/ ot>cw~}<&t_}ï wp%jVH28/*^ƈK;k=F dLQc:N]yr}#/F;^Vp%<)Υ'Sn{O^Iwx~;mr<ɹ*ēe烍1^kG|x?*W5#{Oop%-cF%{SSoAzB\oK\u_pAW&%.:jw\ dFdBQaQ&|ryMzM'U暯+9%zU׮Ns~_NηWpc_ël[/롹 ėrE/L@xo'7>ܿ^ύsM\|-->/{_nR|{33BdzYyG39{F~ni^DZy:>w?O}w~FNp [WqY+~ dOJiHxGIH1gڞ/@O+.k]c'^rہ\Q}Q tyt)Ƈ~}ܐ{G6>1>gNxJktWЎ~) Scr|cXGϐ?W^‹ȍ|zZ\G>. p8c g[ot$nU(z~G{ =7^NyU[ݾķuз>7_M|㎯?9\nC -~e|~?&g*F|8Fz!qyꛃU⯺Sri%UѮ)E.3*9qaX#Frę:0[@i7? w? 쓿ΠzГ2/'^R{O2_WwݟW8*?xaJgn[߳ ;_w,4_|!N:k\^3B8CaׅtiNvx b=%?u<-W"n(ޣ*}^J.RJ"p<~5ZX"ZX!8EjsvWU.Ģ:.κGiҺ~NQhJV)cܾ~闒#"t9+M-HplAZ(@]Qn_X%s'.qc\k,7ws<;qqW[v!m\)􌴏9U=?rI=8\=&G^z$;S'lr\跖׷XX?n;%trxsڡ~sxr1ݧ=?Fpx,[7.bEheѽ_/C/9p?o/,V?voBxT=ۿ 71} r;C\zn/y KA/*/N] 7 vAzhϯk_.pyye U׏BsRQyyuϭ&\s[p]9mͭj&_zB=`g8eN> Хs!sprt3_.1_ejlr5uqp̿i6&fةc|cuBLm5렞 9Y$8bVj#?f%cgEg6LJ3 3-cL:bcFqp1יqº r43Sjx Qa8<C_n1|p"x&/_~dBo tpqӢJN۫4aoϙZNڔ>P8ǖtn#f7t<SSâhzrc<=.oL[)<`''Wtpcdo?X1_-\h'CO+ bXui>҆=;zLq?g@sŽcYHB{ :2qje\gZrp%j;e\{?wX"bĥs#|ªScWW7(K+VV_Gn[ޯ r{N{wK eIh[#c{y6;d?LΏܡ<] >tW?7X<7iׁ-waOR# v84Kq9uU޴aF& ËX_8DZWku QxyHDŽwnv}eq_Sw·+Im1Ex?}.I]\}@BvgY|El>9;8O\xәut\LH=;v#kgJgk!ٽt8_.Ot WjB/ ZUmEN׷]`Ss{%p!//A1˺UUwyIxDz7=/a/UB>I 'w1?^^AW84\r qtƾzVVpa]2}m_*{k/%/cK 2Ur٪܎W\J<Ύ^iRxCWvrY^BH_VWջ::jK_V:'C2r*&[Vc:1J.C_NTE c tއ7MOf \ιBm'I{zEj@H7qIH[ Cfl!i= s!kAڞ*qHs>(/Ws& }/ / .q#=W%WyD'|Ao^+׆W?!#?:o9HOse-_߃ƃqS6ZƒUAs|`0jCڸqyHޑyۆ^οj*܇GӿoWWQ^t53I%o }}zBqe\J^ZoQpstC}ryN~;r^6qܨಶ~y ƈ+8s>?_s(*qC)<;Mϟ곆xSOvgKy}t7)񴱯i<.?+:==]eWt%JXu_QPɵ_펥}3{//rXwK:;fE<""oB=z^- ~_5_wɏ];4#%\m}K\}3V[v .o*[pa_)wԅW|S~7uLM]}k?e?b^ߗwd_Lan>5ޮE_79>y_=7lo~fcc_tWvpA [;ԣvW-3nzQܳRDOf>1ɟs.&p|QSr%WTr9p EXO7EQ/CJ QB!Ҽ2oD?ꃁ=ƻu{x}.8[2~wؕr{{x?ڵxK7vpVr;82quHk'.:=w{\"i'B\%8H>.F\~Z {@%J\^gZ!pU=e]J4"2O~_M#q~k{ujG8;Z?zKHۿ'{;dLѯo{y]nVJη==7AOKK>n}%cYKޟW0%Bη1S8x#.'ێ|g/@Ƥ{)0BN痿 _s?"X_eƸzL1...iu77}|o ?? eh`~iwpkCZ4؉\Aׂ+@Zם'pQGxckBZ\orpep:2= i' )k:n/+%"Q"7+?7fe]93.;8qdW.A#q;T/tKZS8%qןꥃC\srG$.zQnTk@Zy&I#}\Jb߅c .ҶҚίzW?8 ]:+`pq:qpj^rC~$KnUmA@u;ʁb]8QH.WNјJoe|pqK $՜ D"uF8Zo,g~#Omtռ3O o:{Fx^h_~ ?{nuu9?BsN}OFI+*W:7bETUu^5WƮWl2}LV%;+3ο.?#VMQivWqtR%nos+ETƕRrcSktՕᕕ\&+/qexAe<+VCxnbE]<+ޯK 7}IGD\wyWSr%\^A%YNՔ\Qɥ\t9]yl7ÖՕ21FT~de#{w2et~Q%\oiW%nh<qExɥ#*;hi}2IIH*~GIwyI9KqqgRv;CHH3K1m}'u%\uo燴7~ۃ%t_UpM%We71=5pXipq]j/6n1gH\?>"18t? zԄΙ /7?>~SϭCiZ7lrǧ:D3[{}tgaƳGLdY=Amg,%Ygf̌xqߌ9>E/\zF菪ħ $ _#0#SAJݟCJ-`u6p+8^B\#3_mӺAƞ.e9qzp6ϧL 4.Ku: )Gڃx9CVs>[7>"Cēxᤍr _j cl πK)%iEv~&=]‹oۏGl79>>l΁&N:hCɕwҍR;;^|w\b 7~;_MwWeD\!?/Gkcx ɍrsV;|R_U83^j싹T.WW^}yysn=ppʋGu`G<r&42er|^f_n5g_B}:8s^&ہ!mr>H~+\ՈkCZe"%\0e*>CK*AH yW92LjBг1y{ο.8Wy<>]f^unÈL!cfFp8׿>-w_\Eor&B9ΆϛLK\or|\WPԟdHF>{y;sVdVٟv ow .s\*(oܾܺ4놽G[r0FxW y)K.xхr|+@,ܨ:J (qd?E\ňK ''z>y}ټݾ'yw8G\!Wѝ㐻Go"vODu^n~Ż~uZ9'n4v힁ԃ/?M7#*8n =%MShHvϣ"zԔ<~-M?B+Ι~?(o3|У/ؼ0.g/*>0ױg==&y<ܴ䞉8ɧ#{Lb x7_-.~ߒ75>')c^u7^d¶*u_$|^=H+rxq^}ۍ/{oey;B/ >WD5}}CJ{=GHџ߳\rr..n+]*ϐ1}dF9q#.ݼ! ƧQWyAZ".~ \Jqطw,g~o;T\-k}K[ݹBxɌIYߌ+ ~sA{QZ#c=ޔ{_6b?k5<>{ߧo n|;{{6@7а}(ϓO^}#5w)_PWjG<|%>(~{ ${ݧtnu qCx|kг ,Ⰳ|Nv/*s]!]=Yp:HW?loSÏSO+t` }AEYHOn_O_#J~V֯:_\\1_/wO\GxgOw~*?<<=Ja<==Ҿcȉ ҺU׃ϗ+@&Gp +h쓃._QG`!C(eLܐ_tr*~}7. z{/֮>⌿&$ 0"ŠQFA'C#.$ FD6WDHxEz[Ԩ5*mcv=ѢFlgy}<^G{۽· {c*z-?v7:w_ ===?{[z9w}Z4z48QOKf}lǫ!3@[Q7{Vw>CzMhz ks1e`4\/z@9_EO<eK=OV`4RU@/hgGyzud[ Au.Q;p*j8 XȶrL4Q4ܗQX xj3!|=#z}s%7 R4^_zUdtb5v#@϶]? `? Rvl㹒ˁQt1j5M5ǧ!g߳;q3 "^-bz}I3гgo@.פljp7 G]M HbQ95v{gyEIjx#)SC 9z3Izc %Cr}gb/y,m@F}2Y}Z܍s룍#FpVOs]Ou3{=WwNkqNzf2y-b ,7J.Z<͓} Z(s r|%3arp7h  !lс>60!Cg90Kќl3~Um~NrТ{u\2`4rSzQu^~js}z[[m;Wa??i4o[t}z+vz&_n~ݏ Zԫ^a ^.-lʢpKz!۹,೤c\@c#-(Yt{k‚kzВG{͵[kƯ4^vr@z?kϨƽ$rsqSVfz -z.}<}ߪ߃9WHP Ы^#0^z1:H kz)<:s~=}iFO <`AozA/dwN6ǧՐm&s-z'L{e&~zsTnAka ѶnqNЮ^?*0ۃ"ȹR|T{jG dT3@}5%y[gA6_m:2,g=nfBcy@6. =>po*g7m|<<Ɏ}Ţ_s%x+3l_J x7kn_g(n[5d[nw4syZ *;~iz]9` k;[;5:[^оby eznl0 [Ge#d›G| {?j"~8+l7sЋ^d">"׼83͝m^bG3r{jjX]`0C| EMT3zMz/˅^|)e:c騊}^>>X)J=Ox_ %%O?!9/ȶ}=ǙLZAӷ>6>g==.vWzǙzǿ>K3}+ѾQtoqӣN~֟Tw#OVNV#{`ּdehYBsc狒sz7s u~)Ń^Ȣ6/2 {`x"]z1k8 `4b3~Lov&x7.nzh-\V_<| ,+KB/>V޼2;Sr0衽C/Š}f{ek|u=azڿ0pybE.| 5WC|Ы:vhzk^UڿUڿUڿUڿJo_.JWz{_k?[{Q/tz1WsWeπqO^rfxг*(sCczeȵn?9bf;vo4ۺmY7xk6EonzQ_^0^>Jn=[\덯΃k/Dn@{>W>?EWիf}_i37{+||n[>os&oܸ[>s<q5QvoAO/SP/Cq ]Į/^xb[pK~Z+>;~:of_P|zX;_hރ^0Ow=_vbSZ l[r+%]m[{7vI>#R:CE_C/޷u酩W9ˏ֮=v ]^m]v ]^p{@mn|W}ov[n^/QQc[nvqhgϜ/t@>;ykC[5M/ע=s~Y 9_h[q}zsۼכȢ~fE~K z *=:ȝu;[w`u8'pgW?)|LGd[>/l4U{tZplnFLрϚ];̝5waAnM[|,rR/K.[7sI HN\ZUWjuOU+~wNY~N* N2 'ne*-Xtr'P{(˵!ʭ ǯt%.C@)yyy3R:-p tTnkO [v ܔc 6ݴ^5fmٹVef:bUBnrH?ԁ7g͚5eA?4A'̇,aVUe9)BSv#K=T2>o>¯N^ʭnn-782ۡ:' ʭn m)^fYKOt9MY:!a6[ZӉ[w5so-ӭBUk[t3!/^=AS3-hPɯK:ʌn:=UwUINҔ`\Bp4depFn[ 7 d:_u$E·;E r~y~GþhNY' IwUChxeTgd%9YSSTNI ǥ+\ s:'I##CGK|WfN;=ݯގ1ckбWQOKc>R@!;0%#3tbS<99HҚ3%;3&IvnGQ~t9E7_p+꡻qᶛn+&(u8U7Ft{v 7\ݏeG/=s )gWLTNLWm@?m 75FK]4ӀI ,Ps2NPwxnxnQ>PP PMD[to/p?/p/ޔi|$Pwi|V.RAq+_kRsrrT@8S>r>$y3L,mӔ;qJ,rlcGtctɷ<>7vf@@I^T.P "_ T{~U^+ʧ\m@@#@fyթ(3 nI 'x6(,ERV3PE| d7|^7,2>sdS0B;43J? ?*K \ܚ{`#\$%+ߐ7Vȷb<{-̷)# SN!ײjTEɷ|Dv t%o**ߏq@mA*)|,o*ߦ9U-+rF-ӝ`_.t3obɟc&̿R*+|ó{wLIOi ̚%=ª0%/q1>:,gj?[}rf&yuc@ʈ)'d\rzE@y}"gf]ܻ?la~ TE@ŹKO*U?N *'tT~S_3V@TW_Tp?;K;=x;U|4f+gl5i^[;dCNXdџ%^*˗0 ;Nj8O|:ePJx |?@UCNzt)Pa*o~k.\T+*/6U oS*'̅Ɣ7`f#⤼N]"e~UD6x q6dρ)D1U~&9U8r9N lO`>qRu#RCUo9,%xf"?ұul);*ީ%[J8x PŻ :P;`SQ7|/0| H\ Tz|_U9ϕUym&_TkV@y!ȓaԠD̹Nr⊝zT ñf{d)/>WYfy-)cy)y߇@oݝvw>lw|&ʇ>ȇ_$LfNT߭LWPkɈIE:G'*m><{5TҶHq1DSi[LL!:ľvCf_j37sgp TaV. 8O*pLq?:n0IB> ^ Tͧ!,[ -8ulqW|7ɫg!Y._Yz\ :m/y"3_gt8K9  Tܷ}S|MTx%7UU>~IsՒ'#<7$C %VׄgP䁣e^tHe+kby$?]z+_OK30k>s-Cҗ\_EiN |g6kYW:FrWplhjZ$% %E[G x 9dޣiI.?0`pӀzG<V rxn|P< 싧 Tҽ5G]\7*Ҝ e: '#%܊ipNz2ICi!+TrjPnJʳ9 GxOW LER# YW<乘<5=xJ/+(<5B{tgs0^5JXcoB>| ~~g9ꑇn^ג'}򝉷׵K9]9ׯJqMy,O۔%ڹM΅^}e!{Ō!3բw@,~ɋ\r4_|Ȁ*w\E@q`u:+m[e~[/O0 ?~54v [70aIX_MuΑ6A?yTYݜH%_*eWswr,Mq> (Dy&0sv} T@su}CO?Yx]Eޅ.޽MI,E.ހ.a˅-=oǗyo"oyOu=n!qf=}tK5@hߪ/X{xW#r!;hZO`|jJc+yrstd0xn1l<򭔷tSy/s~׀>Jw4PWzv'Uv8"_nJ _v: kܙN*eWy3Pg?~"p?$/0ξGpMYo*a +c/81ҿ7~rwH{z^Kw~%H le۸!|>SRi(_s:8..`ܦO;>L4Һ짚]2IUmz8'/,s2 Ƣ\s$IfۏCWy b .+[xcSo]Sʑ !)Z&oy 溦Zxt|XCއ-m&T%o#ylmPxSj BuWg-. _#܏x_dC9h x}x'&^%%hݍ|.mĭva7};6Wؿa]jl..7w&{~Yxc,qśRx}r 7|-' /yd=XOhOL K83_c_J/=UD oB &v."c^dg"TsMzQ+dߎ= Op>Gv-C7c;o3 砊ui^C9WOr})') ux{JTj=|(Z椆SB>w|j뱞e`f[743Il'0Q¶~y~7 @Lv vWiOΔ @>?aTpg̽i.hBy.0:`* ^cfTv|'0t^k? ǺAkݠ:; e<vŕjM@ć#?ϐ`+F-e[8E:q>P@ySѲY^OX^<F}5^,OX'Ƌ/a bˌzSJPq =SZ?r8gD"(ס ucKO KE~NeOY(Bn-o߉³Wín{5Wfns u~X{>GߓH[{7f3=<WzYm=|EqG==P{jwW*YiK]i4@ˇa6 㰑XG,{g/BйyrFeN%M7KExrD{FW}?Wg\쮗౎ Oy]5 %n׿'wm:;w1Цמ z;yozy{Ӻ@xB3mbnzR}>hPRINӲ qy`Wdv#B%maN_yiR gU'{JO峁ezO> 1E:OL<`G5^f"g8k)oKi̍FL=bJNǐHvn+x= ||e mRstxgTqg9yO&Z!7q.'q[!cǜxr8q,ji`W,~;z5EJ0ȶ,raeX_doOOUW]Da0<1<K3>½e]!'~2> Lc+w 824qJG`X!qʱqR5Iqg'3ϐ)"-SL!oz㰞^w净!)?*Wuex#iPJ烪= @sj/G}I 8=-[>Lcz!zhl<>0d.d9ݧ9%1ukgN]o'.l,i@} Tz7_~ ~%û%}yqq=ǒG^S❔9%\hجVJzC%iY΢az<e>G {Q3p瀲~9C h&bT 05qł.2(|TW82%3GFϷUx\/P 0>**fKrE~ |~9i@%fz{8z?mn4վ T@^e~OmY QKLPu" TJ:R<سIm5wSUH.vi6崉 P(;PxMG+69lcqH]6Uϑ/ wy7,l74 羃Oy} 繇#}5s*pO-!LÐ*in(y.43~}yޥa<&̽f+ᧂ?a}wCYП/OE{F)PbPT{?U N濙~9PϏ Dg(LLE?A{-3)ME7Pχg0C~?r L:<}nGI@Nk)+z~dl =*圠?鮃7'㎖c!\@cʿ5̜)qѮT$F|'WCXS6VqM:nq7̒x tT)g#n5^asFќǩsRtzLO׹*!RĆ[xG;V¿~%>iGe܂ 'kf|֫b?*}_:kUﵨKŭ8_z߶XK64|Q9ܻߔK%GwҥvGMx޹P 3b!'!@މR^N9Ԟy;ȿ=P>}S_c :GZ3}e% l{߶3|#.Szk~+u]9[@Dt ;rGǙs7Pۅ_PI}첫aIEpoD;wR7 _{wĹ~9ٕ;q[H_0>>4֟e TrU@`?mo|b:z\\W5>cZ?J5ǩ_?7Ʃ<>%unζjoyTP3*s,?ķ9ni},c_V:*c}2g7ɶga<@i\\1 |췁~s7U>%۫5~{)@NR޸F]֓俎?ceT<*^pGݪk4ٷZa3}-Z']W;D>޻k>2wF뽭9}x{4Ÿ!~Uo5/]#*j{ `2p-PM0:pȒ]ϻL_ t'gZ(m^µr T|'mK:E̟5%n{D=~0OĶezՓv|/ʋk)(tچ ܎'υ/w=Eo`"Q<߇ZV@mG|@dK>l4gcplcdx6_*O/c;AqGQ/ *m|PW60H;[KTK?(mg { ]Kӻpj!}Jʍ@!ApޣRߡ^\E-ro9뿐xԶ@S m} طxGj/O^s'j)'~N3-:-ftk\BiK<=@Gn"`aZ_?PN ׽ >onýz;W*܏z|%~R"@^[h@mW,|5 >-zuOsNq{3&߁)2WG3POh*e}#g}9M*~gԼc^~鎋i @ czE2uE_5|9Oc?pOS%4{߁ ' 䆱PK>gu_9PaHxz=S-RnW/<:E{2~ʿ[ܛ@q6pg.Uo<TT`v|'Y/^?P@}6ݵ&krO{~#ڽ 1Om8e o)P&*'(LDg&|~R!OhO*%5@{坭 _gH73 +x'~yE(>? qVsEsǁH#Eu? @Gڄ7ڢP/u;{|3"zk(T|*7ځAw,P;@\'~SzS乔WUy^vtϙoAffxUxہ*|"5s Xk0v7yk2o_d{_H.dU@m~e$zW6k@ WxaMqlwqYa4~-Po%P^A(@}$ˁ꣟aS/wP_ T.3t{[~n|/P-~>/KoBz9Jo\Fk$I޵qݗC@GՐws Sh+~s+;rxX=灵x?c0lC޻@otGqq6#?c}3XQ䛵M{Dy^7xqiGZ4gtY#qF㾹.k) {-~1ݶZ7s/$_v"ɯ<{AN;6A'_|'eZ󞻩!חsm;rɼu}%Я%>|vvH_T\K^S` 𧔓i?0κ_4 e6ra`ݲkKZߍ o9t|P\Uz|cs:tg$^J=׹+iW@{2{kW?{|c.{7J8 Ⱥbw!)7r;+~I9Q$K@o2Xi1? O=` qBvjK_cy_ynNq4l*ǀqJ B9W=@]r}/6x±w0MPr,;{lSK-vI;wNNA,A52t OB e^A@K>NJ@}e(?ޙ@}7净zK~4ƌQBxg}ay (zH1_A"Ts) T%P}no"s.G}Z@qI%OeM鷄~!2z@}-$w>`e'v>٫G|揕j;>-UyyJGw~q2U'/hT^Ƴ~U'x'<ҿ(P g~΍ǼdXVB_o:}8tO?@:ew~H~psYt5mrӁM㖼fsV-' Oܗ'yw= ^7w,wEuo +޼6yf|&Mmnp>BZ6x,ox4yns-ϘqWX x-׺x'wA;[͵K5 Yxp]ɾceG7^Ŏv$S ;h/ 8c TiG-`рznTLJ9P@% 1ݨ[z:39^1x[-ϛ[I޷-1 .>{ V[xsO!0x=x>Jow -$B o7h"oy7Zx.^w. ^727K?[xv^[nq/(cB3ʇ3F;oðWսy|,Bde؇<p]ccN 2'ނ4}l`JPp#^mpLε݅F1P TN8K[ }|_k{{9|f[2׽; {ǵzr9l^N5#}~~)ojF՝7ci\|g+w ,5a$@}|[jJ|;Xܱ_yQ?kŮrq0SaȻe~ϕ/x T.җ+?ˣgup#(-@mwL17ՓρÀg`"p6g2==`c⊣}Mc|mGga]}yFCl^PB]#@ PsE@?%KrwP9@Zx"ϛyh_m~ `"bNm2dQRͶ?//^@2oxd4`:,"?~_ku 1>{׽Ƚ8~1{u7igvߺZJI4J̵"$I1IT*P*OnCaҟ~γg_~^}9ysT">er /80mz8ðeyNgs^oP lW",Mj$1礎sR]Z}s> i'ī?qqoKyIPeٚ4~@^ ư] A5j'r(0F`\ q)tw굡ujotYvU6YCNsL zڿvuωO8nmVkiJmQ>KFk]^9a.\Qw,/~Q_lL١zogC{ls^oM{I8XJyZ?@_E8M7sL>t 䀓\3&EƽFֵ4e]5oL9ۆλ;8Uwh<Z㫁 5/d #;šy{xwF N{cOv0uIM?@מ{VqD~q {+ϥnV=A3 Nriuvj,MSuh]9YzFmP'C;_iuoSiSޏC{K;:-=c?l.݉Bu'QK݀K.c[M$.]غk2?дzQw~. iC +UįE{^UU_k?_-~]-vH@qd 9o#_GO{.{+䯄Rv Uߐn%h#o4:ENqf 0 4bЌDkA`$ڭAcYWG޹W, vvkØCQ)%ܱ%[p0 <1 `,Hl2"$'OMdx 0 V`(ox{}`w]{S'0 tO`0 Fs@ޅ`,&? 5YE`*8 Lt7@ Fs<'޴d?Y`ꗡNg 39:t8E`0 |bhGE[kiS^kNj窚vcwx~8͇ [иZAqw'hh& 4I`G s[(?~_Ќx躾k?S)꫕tJpEu޽'m3zp 76׋NXB/6TwPwչ4@9#>ug3řℙ7/-]O-c@ux^Gu]\yޯԋ x\T7==ƿ20<^Y.ݓuOsR7C7K["Tvu|1/?5{`V\DM(h} V0 =GWv&sl@W:SǺk=ttéK:{ХWU=u\WG?cfŸ̉bhe`pv[=}f|Նҽ5eҒE]JOjYi/j_Oݥ.](]Sw#uk]ϱCK}~x?[%~ln+5Mk{K:>1ߺèuKݺt74g}s4*a8Y5kV^ͳ`(-C˫0@[{9s؛F)ؤ~s_;ԉد<&vʸkM l2Y8O[õt {A.{+-Gz Ќ% `$ f` ^JW}0m@&m> WS`hQbZ9R+st;pP~St1NkifnP}Y_jOiմME`ڳ;NYxwоw(zж-=E_uq.~A{Sˍzp,߯wr-w>8fN;x'&wTmxhk.aV^bͅ2v]_0-:PgmH;дc;x,~U(z  .~yȿ;GkOL$Qal 4~C@ ʑg@hKRs587oqT= =ʣ<׸ .=Bu_qR.Šgp!  ڮ~&dc^M;k<˦c\uWzQؤ9A9~00+p ]6̾ p;ZȌg'Lx]yg%FAq7G~Qo^W d7fҬw%~ T$P~3_jZ.nclq#uRxqn]!I>#?.h1@?2zz"܈^sx </W7GS:Ϊ14]ceN? ; st04̅xh]_YeЌsN{.ei[J8839O[xe93Ұg맳JG4}<>*I|^64;5 Ȇ}34g}iIHt,.Z½} 6ÓQw 5_UwmAk4gc5168 zݡgv9TZn_?a2S94@3]mY݀nUE϶$~V<_u4A3v'3??(ƪ<*5U}Ua,iwE'l6u\si9Gz|Owua/wl Ϛ'? i_Y7e8 k-zr܌*ÜRlq4 hvF i F(#`x#s;K`d$0C&d, Q/,6ȵ`?S)`*;i d+Z670 дUS0RF 7i,0K:LWAUD/ 0\FH?[e0 fU\C`k l#if@I YдŜOu2y샥fSp|ƼqƭA?xsVm|oW'tQVrRS?Ro3?eb'ãQ9ӂMˌԮC%L0c/հ`8:~_1K4aPީs .Eݶi"yYHO_ךc?8_.kxkq$Tq hwi|f=zW8QZ&!aܕuE]s.행;Tz-@]%<i^shs9m;0v0o}p̺N`w^o?Ќ v!?zuEm!W&60<;hʶuBG0c+&/8,@qwkY} V{7_[I^[/`[0flGpe;9Nvt~o|wa෴V=@ʺ_9Z_[|0 &{KxE0`=F`c p7((a| IKA c(+7j^TY/s"/r`xRh|f1Pnc'ćgcӸ>A8{kOf=kFE'/ OiMvfWwc0< z Ah |{O*uُV߷#Vd5x!ת^ xl &~J#N~ ݪ~~(7&Ay 46/{xЬ `;:=WD{Chl+2LxNܸFT肗9W~%ͼ.f{TY5Z}i<:_Bu$c8fͳ[%WKg״M} ޕs?t#u(jk>k^^gH :J#V`߄r&gL%ulz Cub~9҆{k D.e\ÍG^O4}@  ̏ΘW}@u( +3% G;a2ŞqgVm$p?}`ZV=oLj>xkhp'x7ag ?g<Vў@S5({Lu>=? n侂P-+UqJ̺+nNeڍM;/^ Bm()V7k_,~G~\]e߰4z'[]AS YW@&5`˷=0Ǧ;Y75.i;=cE; 7}}:﷿u.`^ _v 0 A3al#M/^~?؎J8@(Qn0LAu1X04G엫h< Oo,:_Oh ~jS^߆𹖮Oڶ y\pf^he?j>pG? wϪFbR=v8?' :u͸|CyC?fVګA= 5}_Y6i+rG9=~;''bAøbcWiZ4ƘW8>>/~(?}}ON0 _h+}CX/쇵{7Ek_-Wjh|fm0ugKXmx1_<GI>[wழzGݘ,^+@;v%'l:uPy>$VxgܿԑGjQps o]y/qӽ9a)˂G@%h4A3 W}گ9뷃mhC+㋸6=e]4nMCA3yp2NmW_ldqa֟Qv/CQ桻إ{uRw[:xhڝS@7 m!?8Cz~yOy_ 934bA 4WyC vĺ3go@Sv =*NN(g?CQ-T죊1yIR*u3G` p|6ň{_K!wk#[4,At2G`X19wh6_A ?\>mV=Ҭ}ۈ=N(nc5iO| >Ȯ'Tz9kǩΤ5v}:nCwKwuwP/.]XՍXdF.u<:|/sM@ =ODw=hXZYz}խK~P5.dkyH׮|D-+=W#z2MyȎ7u|_YK7:oTwӹ-=~C ~֥;=Ңƥ=`:/HoNgjy付!LOɝvHC!wbw\Cn_0*=ĉ~< LpaPiJrF9i~HTǔGdzĵ~ꯥNݱW<:ͣs}}k5CVv?3lj>Jݩ֥Nb(si&ڮM_fytת3h#ړ=l[]zڽ6KԺ3>ϙZο9שk^Z^/4sڬS{-hVkcFO!- _uͿ[QǁTڋiquu#Sz&n/޻Y޻FI<:d]o|G3~4ѮA<+Is@Sfޟ_>zCA_ ʙh 7]Ү:Aw= 9 į_}t @2➦(ёhoh(1_cvwDM;e`Hc;{.3}3?ˈ:#F4-{}treUWW9moElZ'fhY MٿѰpss˪Ev8p\ hQ@J8[yH׳{ [Ь'ݖ|BA]m}ܔ95ui+c*a5{=aΓ#d.b/J ǁug`̹K!GQ0 U0wp:=qۛu,|.ݯfrRzu< v{E^i@]\yKWuSuHatl]n} K}CwH{ tժ;Q;c]Sh++4A)Kϸ՞ \FY9j;4|@9۳ZBzhcs 05fW_ਫay@q2h#V5> ~5>Ͻ2;Q1ދ惜O_ʱ i=js~rLl'iӰ+N_.x.MS}D?|'@Gk!uVgO-Ǵq?=gw6P=nwxY?K}J5owhrd(aq5FJX_Fk@SOA tچtشAׁ#W}Jp]W@mM?7`( ߩЙD>ωx-d>k^m,c$],V-,4Qy3 5H[˩w@q>/^JX@쀓%Xa iz]j{swWNDkNtmch.H4X'1&.ˬ~qoj] AhƃA߮Ev8gђ^i_QN뽉Xwmx6RZzNɖNVZw? zBk5sAMv;MR< N=R=FsSa;p{ZS)=)E?x}Jf9 [Fg1 `,'3| ._8|c>Ĩ&uGg%h_n6cmg[o}G;Ƽ q9>uА=k_w~N7+mwէԙYچڠ7Ś=h_:Gzχs5|׻=C20.#(k?uH \O('yC.%{4a}08.cMgpy ]88Źm)7]58xXF6Bm](ىڠMYS`OH{{Z1)\|JPQ|I(8O^uJƥh_s~ 8TYkYCaaɇa>(z''uz},ۚ3._CX ix;@{Pð#ġ+Aq7pG ykYyVP5vuZy3/6g_Yn1mJҤ0~-qՁyV~44]v~PA3ώv8{?}[z>i'yi|c~ns?PO ?_ӯDgYS.dO+ zV{g=3}s5o;0Cc}t{Aup"G;OgOk|y Iv>i B?nۣZ}ǎGk]aaxsW8 t(h#`_S +tB~HCܼ˛cF~7'77w}7:0k8~}BƮEk7C&a4iqŠ=O1IA%ΑX8yGk9z\&JNҲm 4&'{\M72|g7>CԀ3[,uxh&4Ԩv()| ډb^/rF]}osQn\~n }MKIw<~rC\D)ohgu-ߍQN?X7la0 5(G2ԯi~?fx?(i_þ]m3PLuw,^)G'i!;CN u)sb Փr9I>а ݟL4Gh+hvI)!\cA1 >j.><' ʯASo|P~Giq3C۩7|ދOSf}CC7zDs(zhosi6 =\4Ϲޯ6T^h5w<,MM:Ӷ#mЌ>Zf~h^UʳN3^c!5|'B2(3#%t6L^towOӱi]ᠸ_ uPh' rGi9&do"hд~uÑkz=z], ZL{t#h{sNWRA j9 B>*["~=l^֥z}o hɿ}|hPǨX4|M)70:A^Lwo^>q[b8k1R;cN'=ji .(Tp֭ޗE<>z>Sa?r,(HjN>5s󢥬kx0]3z_@܇Xir/{F&ݢdNYrc=M/{'˱xxn3hڒB4?3_n!NBp!w;zD$;k9e/Ebx< ѹ:7vk!dx. ;jDzi7Hz N xp: X2мSiknL-=|)^x˔z:ρsku.K֔-fӽ7?<zv&(BuK;ci\]t$(??O1h潁`dx릤8Pa oEg%_Wx69s4?^x<=[^G'ק:OQA}ҹir<74oGYbuU~sX=4(qt.^I~y|ߌW;j{ǭ7{~?o)~&x4-НIu/nnK7CwKwu&99.]Cw@eԝtwzrK}إKKCwKoC]5.J!mzVOV{7ryٝTCԥ1uP[bnnӪ;-]h}ۻ]Gï{ɰ8}fs|P]}$X;_wXk]v }>Ƃf?FP􁏁c7RA cD0| LcT'4{@ (Pqv,;F9vGN{\%D׋4ۙfy7lIGp^M BP4 |;F {tKAљ< < ZL.ܻ^!sY?3H&(p(uīB}^ߤgެ7x<njWWUʠ zAoi'\9~z9 a巰_ ϣ|h3}Qݗ\a\Tc\uLś.F_"B|_ݦg}(9!6A>5yVݥ< MOIvlx{7\e]4^d.׹]qfe9oݦl[ȡG)g:ܦvyn CvÐwe\ySeՏ:'i?h0> ;:< %C+O,lnid!vn=edOޯ]#ɗvzzL^g oo\\.g44 ϐaxBӅ75wNH77_Yqq4'm٧ MyG,-YhccZ\Jyw][&g^prn핦=gs>,~kWw7 pa6ɟЯ|e_'gvKǣo%et~l o j}v% ~[C:+xS5Q3 7u~G?vE?G0olE@s0GAkӮ3CQz^y:Ws#tMa 4݇uh֘icz;>NUl=a6`) Z k!ӞVFѐp\=?}qb!JLc4&.abO߲a:_z6 h^˗B/{xbV-74@ټYOϠ Eg° 4_hqZ?@c~;?{M;=O\s.~7~Σ'.:O- -G`M/C=VY,',]7,ܸOiSvB⼼nڧc wӣ#sDϓ-?Ii_T^9x̟saWZ;.f}jߧVZ}jO;=va NZX羰KarxA7ZÖX ak\m~-'ns0_jQƟzhMkA?t hC;=,e+.іl7Z:'ڿɘTz_Zsu`h} `XKBǛ<]+_yExڞMq e2,aN[_ovuc %4Za! Z `ؗ}aޞ ΅ l?Xɛ?] M1OtEp `1 ǁrghS{xqgC}aS C>4|F?}l<=BsId]g$̇ceO&  C0 `dRj@7TbG҉4=A7}]Tk^)_biv鯐Ngo,|~3Zϗmab`6^[;vZ[}ltDt&]3;4+uc]{/=܃0'l.8wVGY 3 56xl¹J#Γm:J?Wg\uMٗJ[:2s8>k] -0}B p:_5z3` <,,= [wbܺݾ&"LRy<smkY*VJp|x\Wzńowz:a0 3idenut|B4~?4eQm^7ռ̓n[!|NS=AʟS(ft[m| K'aWV пfhLFt qk~| f~bʿ=Jy^KNlm a]> c<qtAc7X|G°~,e 0n+ +>}GcxSyo\4ad|, %Bh~П,k`/4w?4| 3j)Kuc=h^^jd͎vcnԯC\774ؘ皖?wYg{><Sv[Q?96Iͭ[q39W^^ }]'L.nOzg5fL:*95׳ӱ 4P/i-kHGΕ$4 4*}/kf<{״Ih C?al ]4:K^Ct>JyG'8sbcU0-3GdBdH;g]h+34{a#];wp=ԉ!>֙fNLX ~z+D|hݤ|XuGju&nxEg54a~4m_(m^uw#I6|*JL?+aO,V {|*|lt<ܔ^9W Mh٧@ӻ)5J_o_d7w zK*r*6s uA[*jWz}9W9p)܎C?vg?:ui]{퍋rCn`Dy?-7XcK70\:L3*n/e]&UP_?ð7?YZſ:0oz=K/Im1ɮmߣ}\}F_oP\4mM"SVY+3GJWpA=\sp4Cz˰2\}wXs, 0 ^ Ƹ?Zyp+;1061aq~ĵmqw,4S]M>6}fTm=s`XNvRurNalܾK a7ϣ,әNHLs- aa*2o4qtPoBs0Z0W+өJ(* ^;C'%o8`hIvh}kX-ln_xJ{q0ԤֻzktZwI'✦gtBg຿[?NDwA1qҝ,sc҉OPT'X>H'q=W_ 7~O%~[*S<=u.9qeqY=/x!i$# T.U?0,~.zxV]<2n&xkɃ/_,N%f3`[aIYRX%q2 KT 48av/Bo`qh vO0}g2l X 'j˿*2%G@7,| % ,{JY_ ktt^| sd?xf+iXz-|_h<_FںW26 >'Bop3b%ێNcQ,h Wߨ0hnl}{޾-}d^ش}{R}yufKmi'o aXʓv5)|nU^Gm\˱f>iq}C4={z"Ǟltn84Z~_~D~Fyڴ_Bz|_wgLF=7Jg0|?6Kəpoy~b*Wz 0O)a*xGTaK}SbǞ?hbϯЎ[9݊1/"{LҁZ?Ҵ q\cgˮ«ͬLل88Mݏܖz ӮNZrkf53jZ?rkomTsT%joy^@:@T۹oˤߋl]NTHyŶHO8n/c+k:-5zFe}X{TXû2~.C*Twλ"÷n} U֓|§b㹏/Owoڑ`ߧBO13y{ ֡~h:YIV|ا4 NhEEN_鏯W*i󺩹2mM(oEQK@ X0?Cb6^Rʺ_`?aXDvqoY,Ofk29S5^yO:ȿ?y0-xl'ןƇr|QT*REsSS?x?VzZcGA҉c}q7qLt'Kwטt" t*;:AwAe>\!.t_i^XtLe6 iQճ ^ 3q_){kiM h]hK܏WuvN=M,K`Ц(h ׯMUK0o,BTƛio0~J#j=OY8{ G&s=*u.Uj3O#ybz 1#Ep~3:^e:B2T̈Uiujt `oa Z\Ev%oPd>d/=ͭ/0p4ض>ӿ,oWhՇ鏻INhOWcUag]x_#?Xg/t~ Mg4~OaS3rkxwlc%+4?wtL1m{?dUfkLfm;Ӻؼ[.]Ig[do3hCӽy0;{OV_CsMgOhqhCy͍֊^v_:wt^1v/ip(550g/>p﯊Rv~yd[{; jBKs>yB' u=<~Z|>Z|sw? ko;h-+hǷv_s4x ,.5įWh/Aq{龅~ 8hOz G}~Χ0]ow{:-~Z.{ U7)KeCr -Ū+~qy;h(h4UvE R)0td& =ȏ/| =Cx 0WV9;o.Nxĥ'|g!ؑ4֝[^Twt;uKНӝ;*{tJ 1ݡ OtHp}=AwhLGnQݯtJM%m>qcn*Ⲅce~1]Dt;|=Aze\W:->J﹙MuǣknmnF<|Uw֙[݉2#m5+lwL/XV5V|u%0c0|#, Ⱥ)gFw? OeP}C:]:=p 8q :ZCu&+M Ҡ/9BK^zlav-Q7vيPsu_@ iu_捎xWA GBBy MΧ0)GBs`x~z^6[b; {"܎~fht?:WQu\pm2Fy0aAG;; zsxRr_Ea/dK{*Ձ+gD _qq2>3l:~w{;Lv~>[Cq26hüܜcP<&07,J6JVz^W]zÄdՊXwLODZ0E0ftK]tuKP<yFtINV>< f9/E~a[>~չw<fǩ i7!4MxΈM}yi.x?0?77*5&[zz/z=ףLOicZ;]hSڜPgSٝgx .W-2WN|QIdӛۧ^P[}NZU3/t7L}.t_t"6$v{Tw:CŽ_҉ה;>{һf^ʘ ?cK5l\W:U.ba-ѵv;o~ߍv,Xiʡr{zM>os0}__)GV#>B'/?^ߛmإot\ -| @+VthtL^o~W@kS<ㅚeooxO>f-,[ C8fB MǗV*EǗ)Z7Vi4-甿+xx~v,c aKRcqۭ=n]}\h^wh~u 7F l1 Cpb>ZԘ|<}U<]^MV_q0o8R . ֛6Kgt  sO`7Cט`e;nGBӽS-{Ϡov)X O{=O^.R^0>n?}r:˪rcmm㡹d7M/ v[z}mbͅ}r{h~ Bh/B]nGՃݠ;flhh5֥y_qox}sNto{;:֭;~M;,j?ᕷmfga螜|M#BUrb[׳}@juk >v%y{x8?}<5 y}^gOXaد[a ,+` Zl*rf -DOl++JCZ3lY=vt[<avcgEf wu/I0E:@P{? '̏cW?w@*0os8zb#oh:jwѺ+shn 0~K;?;^G}4돊̕zt+99xW06;nj֗x{0Ct/i^A ; GBӹ63 㗺U0MQ/@Y C8>N~rBs 0_Ox;թM q|V?M; 6>0=ra=Wk8vO/y4 d?_s}f7IއoJg7jiXh|)}C>O,gJ&8+MKqNw`$O2>Ǟ|x쵲j?>+`x`o~?~@_4K}׸`O~Oש|k'DY&1 OJLW:vu%tsvE:~wc-ڛI'IX{t|t tGIwWjoJ'O:{t{S{SИnA?ڛjoJM%Ό~!߸1]D&;`G3Dt9]OcE~c:;5;2Aދ #ct%{t b boJf~ӕN?t-}/+RO/'|x-,Igjw! [1֫~ꛫ#YԞ>Z^J3!Gs~ta"\kexWgPiuUuY5[Loݭ_kϵG+-@Ӝ R{434i}*>jY-~vc*Kמp::#`臀L_WihҔ aoo(Cq!'ǝ6Mon ߟ`hOLS٠;a&sM 0|,\v&?>P~C9@v<" W9r켇S|tQW hP8/휴`7l{d:+tv Kh:yHoW%=V+KzoT*˂z/:teg`>X6- yAga9`]C}:hwa| ARvJaN)j"c4-Do}X wEs{caXGa识O8vhּC|8;rK'ߖӝ&^ӕN|^SLt\;R>K''k}WOOH{bmם.n-GSnb7'M}0;Yvt1UsQݻ;NuSO;ZNs>{m\/)\J~Qʏ=-` 1(M/,WB}y\yW{$;S7}=4ZnlS_n}o9öuP?u{ns]#O{fM]>οmqC n[v֚5ӰݱwE[;J4E;w*;4áO.=؆o+wO|ve ¼Y/an=,c=/)op=Ӯz]m9ToYxIoA`ahNC; LdM>ZGBS:Za ÷߯ӏk?T˸0cV[~fn/h~v?L'cN^D}]d}uj2ڡCRB~=ŷ`/RVP9e[XcihoY3F{QuWݎWޞr=cWGQ$/X3/O'ҿ&/*l{aktq˭Ii}'OKCԎz^_~<`Űdl: }=qZ*Gsae}d_~׫}-WÍp̈k=yZ'?֗:ZzKõKd;l~s 6hw߭pS.9-7ͿAs̅Y]*WG7Я"~*;N`hnl_ȍkL9YY~]._ô뻆Rh~~gC~}oRn`_Dn<>;op8Meʓ vkWbc^>l NzΗleMgOmKrkIn)U3l[a9 oK?þ<wC?Ll+3"M9֯ۍS0ׂa$4ty>TCxN MrٯB' F{0C G ?^ecSS^q;DGqP{5:7&b'f)o~~>,a 45 XAH5]X ehއ-D /,5=hOf|y>qغw^Gc'v;hs*rXDϺ+>Ŏ2U4NhoBaS=}{CŻB;k{ټMnX+>Rg6vY~ꚦ,ӲBṡ3e-L0ԙef|uyi)g-ʕC?+ ׵o=uʹgxz鲯>"m=Ly~ݷfa硞t/,<<==xm ; 3.yP=8߳X /%הz%`CWX~NX _l+Zumtpw:W7yw`7v{PfV* }uo |-ymWQ0[ aD//Ep쫠)= ᇰN=ˉgaXWJrb:4{l Vp/a5D_hv=l /Z- 0\~v`'Oag sr6n>v'-a;{U7lvmwq~6\vE<€ljG8jBNy,4<a)>>‹ЋڛBUzo4k; [:3Xk'ĹٚNhX'Y]]v\vW9R?~7lo2񲯇ὰ|C ;k`xv_+> G]{? m=`A.X 5u~ =rW:8[<aoQQjUU}HnggnZ^t3WEnX=`7-4LF|xyдw﻽iMjUys>[ښ:y9ovxIt*\k `{BvXgYlW]}ӿԷ,`6F|RPߨp+tܸ\l ߀;.qŖbF!Toya ;[5q0}~'Dŵ9q0? UϜsyy634=<0IHgILHBW ݄$I#Q% aG{o{z|OGI0}顜B9)lcZ笛ovȗڟ89mzc&gWo"m@Wf( ] a 3 aCеKkgCI`$Ƶ`<% oj3gJҊt 7~u2@%Bgڔs]R[M`:='BiKcakzωݴ,`O諒tMR(54dY] #{zӬNok:Bqy0a?Iwr@}~FܷL~ i$4TdBOiefw[z|Za ߳ЍC՗Q-??O 8NZ{7W?S3xڗKᇪOяj['}Xz*>U4TuPQ?Cn|si:} &WXt}ՓM㵄As:OBJiP3=|zށn=i_\EO7z8_q[kPٳ?;9t댎iv.vGCq480 ?W@W_i}x07(`z͏}_Pv}7|O25~9# mS}$i/D;frYp(sG؅/M ?/G?m49UdsT(n _<~w럛[^?ǧO+P\X۷^? X_JeP\֭ⅈ]k `}6=\Zd_ZJꏷxۡeн 3ߛL#7jKכJޗ%&m)닡88k?7pAqA$:wΧ;n7CwLD=}%ٟiP|l3C{\RoT{ { 뜛E̓iCڞn׫gXNa[_ۄR3CqӠ_ŸӺ)zZ{Cq_O;Sm iggfox^ o$0ܗWA]Ke]s09XCq+ku3E_{ݏkK+uhg{t{a\c zhg~!R53vq>_ˑ*qgǙ]E$fl_:@}$9(G_L&}3Lι18G`牃Ti'eP'W ~nzFܭ_v^__Yǎ;v}~Mջnz [;:@LoG}zMOݘ*IX?ٙ |A8sZS/i!vr!Vﰾv♢Pϓ8~w:/8n_E:}V-;i6n>Tv&e'k=a2S~G}-33fס:6%uv؏yc|Id]B[O~pkt0_5#(ܷk;x!tfo(<ރμuʻk]#d/6wrqaiz#UCl%ܽ>jr[/Z+aptK[ /̀U0`%v}̂ ̆>b(rW9p̅ `*O}k[DC&JB%;ӣm33踋L`i7#K =;է鷺<ϾslH: ]C,켳4CFᦳ@¢G+cBl}u3IK[~ö3n9(w(\r;lBl=[/xR*9_64ڦ~-ネjK7U.o:[{}NӁ&0Gy>I{F3~_:tQP砄qd0S~-_Y3^3Y٧S|PtQv.\Ꮓ3 '1)^U0 ΂1xO8|:1ocwOyϰϰ}~-+GY6qBϨaig6m M{CelJ}.t:K&&~_ W^_p_lzR>`çwnz/5=Vmƞ]co0Q?P&=\H/RWk:e|@Y*y1ηN˃2-&stKk*VzCu=/9Lq250 ~Γ5R9/ʓ޷¶vzMot: ?ڗvm\Aӑ=GLgAq3a\]Xavr [R(S(&ܨznXz5[}nC)0 6鴇8 77k;<JGa >o0·i'WEO;dX|zz΂jK<I{V^uoλwF(n}Y*a8 AwWu:vk(ayp_ڞ]=1sl< %0 _69/尾Evy(n3\6ho>O#l\+golop5]pٞ-g(ᯅn={̷ *Wjv+=uUJر?P\QB>k?~>%/\_W@wO+(T En 0X{9={=zo=|=TŪ@?@aPAv£M__b}niO%Q5g<*_zgzkWK;L'mɧ)/~FK7ʃnng51PŸ _Mqz~G@ӞMv*iXA|}wo&L3~> VmP*(an\ FvyVr]c\녢kP\Y8;Vn"lg @R_ ݹ.&{u+T^ lg ev ;Jsk/M1?0}o/נY2μ?X^?y\ccmA;MXF8"_@qkozJ00j=k4ޱЭ(KCr/.^SΧӉ$zv-8JVW칃Ba5=OݶƏl\_ jTOO(C|kt%Xax)[`~˼@qC J0 t? ?8/y׬Լz\F0 On `:|ga 4ujHlM7ƿN󶣋* =:@W2^\+;.\,{2?\a&$=hǏPd|.L`:YeDW=#IC|D;*CB˷3+PuI;jO+{Z{|eH-FWQ(OcؽQch{v^N <3㥢]>;0֛-+_qi;\cs{OYTO4G@7mq[l۲UTBaQH3? t0O2,7@aZ(wS쟞-Vi?a:JJ˗^m{:֗lKYc>/cڎ(acq͉ KYm6Jjb%gmcsC~6A0NΎ2L/uLP\Ca#\P(zFxV'#LA#=c߅%>GPЭ߅QgFb OXgK Xg]:[CRGv~Lq/ SNضe[s.uI6l/16}Vzr=*͆oSur VJʙfC$[ǻҲ~! 0n1gmY.Wx$KdB.LXƺ|`_6y2:ѫSo c/훗eyQ+:]ϰvɽ /5 c)]<-^PI ¼|-0O5yÇ`~%^ ( Ypɫ[?`r 5^;(Da.|\7reȃɣ`>%r(J:_ I?"ԄuDskjlڮ=fԹ`-a)rDڽJ1k"6UF0~arDg/(DcZ;2ߦbmdy]y%_KamD6F9vT 0>Ww^͆R.l k?~B=,YԾ@ps[dh6JaG(rSΰ1xlC50 pְFdcl̬lOr4x2tv#`N0y=m01ئ0 D߇I0΀&`yS}N+,+T "%p lkM^UZ4x066M`NPS865BՒq8 VYnmỰn.۶V=;[int x[-1Ca K$](cOߏӭ- v%Qؼ{g3 S;h~/`/'UVH<}6?z痴?g&gBk1jL71[wgzZa!_d_Xd36pfw0սǽyc`&|f>> s90jrFgca>=n N76-\ >nWqNG~HKU1UߝЍBq?=x(0|ޚg쉿O֥ð‡}cF#~OMO/(z|]0 otoafz+?d}g胁GPA9Z']6VarwO18,|ϴY>',|!KYLc1d,jNtWka$YN{6=@.(n,rAlWyFZɴ&0vg֩}?c^1nvI2t~5i;fXWE?u!~=yC@gOr̅fTiP]OOlk& w?;k:"'+xϰ4*yRJOC-`teW\[cXdcޑq#ݹН qfTz쏔z4)1kg] eЭW.=לn簣Q?L.Ye>sL:lG$D6|yOu|}vP(nt3`=~3Vgm>7]>KABqB?2.=X?_O9lhgQ#fK BqkG3P&\ `52R3 EeT?N~Э?o4S`胙p!̂la50Kvu0CJMmg8U!O:juczgt.Әe6&nOgZA:C߯aN- P\Htj"r[ob ם]  ЭKXxLB .x򲥞?=/selYGgk Qr(rкm|{kaΆ:; v=HO5zR=Cq@==YUO x5++"0UG%E k_պƨJ~L=6}'Z3h>"onߠ.z8|e73΁3bl>P>lU@m;?8ﲠz3]0Хj~Wq{󟚿^Pn J_-|Ye󕞯~oT/^//z+ZJ>]8^zJ'3=z^z5=P>[-P͐cJBLםu{}>0QIwʇtxɷ\h06U@CO{ o&τ!irǫ5@Aq7 x7st` f탟:fsQmB7e0XdK :g_Mׇ,(ckUEPdr'zlUՑa=Kt'iCqu_8s|gik{_Lo۴1RoE'+C"Fmmgk:~*½4t_ãUq-&lHa|}m5ul#;h>zݚ~\c3y mi~ރn}=3yt/3WZM~kғGg],h c ԈswDu,p>4tLFo[]Cv%LX]0wmp6c Yo\%WiqP6h b6i'Mpw@qFu֡\\/ƶX]/fNOW;t;RϷ1kv}HA8_gٺZw."Ym=;#Y #duɶ\ڹA5ޣP\m [hrA|'VW]:ß#<'O6h/֐.by: F= +Tw|%c]^_!=vjr-w=SL>q}'AqVh]c- j 6T;, {for -ωOjy.n?xZß]/ (k&}fOeߗ'< P\ t/OT4@q@[ EO(Y,o뫢=:0[˭{A~gY,Wjot{gX^R}7z_)Wo-\5F&eV4>4&`-/kwyEPqwHtsKCܣ̠tL_kxfϾݗˡ[Ɉδݝ_}`w:Z8 ۜ*_7U߽P ?( âuY)%uCL0piZޚfՔe_gܧ/n>+u6dz$cHPt.9 ^{mܩ}%N(a~u dޮ)cE6%mYOk+ѿB~&Ǚ f!}ܴV3F6%7ogfE^t ouۥCq{hS;v7]eSCSκa{eU_=?ulۯX;Óp~)qU?\<}TsTz+A71l<(u\ß ŝ0@՞{ʳO{tE?!(niptu\^2ږqڑAki3]dϴo{&h환"M'X%uPtl4`~ 3mϋ}-?;9_iv|҉6|Z^~@zUs 5YzΠ~?Џ*X\7+RF鿼i4l?SN}gN{/{zxUUU;קsc +Q}͠Oj%4}Uj|;ŧoZכۨOO8McxG8(ntvav:@P©}]ߧI{?&ϻngsQ7H;wP6ڷ!ɴ^U9` x?O\܂s[!QGI_=U]6O1TBխƨIwk`ߏr<uKxcr/3?;Lsct&|s |(n:k9 e/l C ^.K鑚6P flvMV ;s5ٖroC_p0# 4K39< Wa'O|qz5F1h=^ pL@q;ًtK4=\NFU}GzIcXk! Âvr2iL;J˥v][] qڳڦ` &Ѝ/KKMn5b5H랖nk]>Vlݗț i#{m]i?\g}=D4ߥC~r? EPw9U;MÍ"'NSaE2Td޾HǴ~Ao45)9#/l | { a S}o8\!}gǝhTgP\6ޛxo.9|[q ,L.ƻY:"خwn!8nbu뫝ku(L߃[G # ok|/Z^>/COLm\^'M=sq/a$B)lճeQ|36kKq?k$LjO[_ZIz0<&_%M&l;D  m,[[w[eߢ-"ضf[cc1۽Y CF [^uk(.|u0VdY_v$>[s&g'lv-]g-Z(jk`rǞr5P}whWD-Z]oKtuwܩz>i*LP+tWLwLw=9;GOIfBΆq}t{;{'-a:clB45|QakQk?IՇX&.yΐ\KǝTe^=?)k{}7}\}t"y W@|LO%zo`z/17];9@VMwy>o5;ͧWTIzތ"jwOo" /ÿms]WxezY|}gOo>#مgv's0|:;&ݺՅ* dm޵mޒh~;GUqCEؒ,s)aټ cPZ0wn4!mw k01p[X9p#$ja9=Q+;F'OzzQMw2=6Y;TIO5ߛ2J_:ϓ5OyʫCӿz}kzʊ<&CQл̧7^z/5E~f|7Py.)b5q$1;[:`ʹW9KDK4o(fZcOY(z.?t`<~`Gy>j{-Nۧ7 ww?a_:ϻ7@m>M|2$@vջ@ECY,6o?s@:#;rs޴д=~7Q+NSk)+,i[K_T=a? 4t.9MOPnHxfIPB 8>XZ^F }+;TORWCT΄p,aBw?2ʷ%1\2VyǹlVۄ>g#ySQ܇7iPw0 5"%_lyet;=W3{w=O>s\{/?^ΥKB&Z‰Z *?Li߬}˷߸\ʲ9e,;vJ+!Z2т{QuM/Ag/r<މۈh>ax/j}?^[տt=o+,m|O< !Ljf|˚ԳζГ烯3l=>z7 urP­줽 [MQ5/6k7t0l,_?:+4Y9ctf#]hmfk(ꖒ:{4zB&_h5X8Y|+z-L98cؾj;k^goq5h'̃nCk΃⮄x'tMԮ E߿X($(zfC ܮa*>ֶjüTP3l1&Z40e+k)cMVW'Fg'XOu_$C.!z|>~P䫠erٯ6^,O˜;v5̀e}rB{'nD/ĎD:U_=Iwoo.߂n't9tvs~k"{6M6K+HN8=j_@;?{4О3_0#o0ʵ y7{ S^tX3Əo@qDv:@(ry,ڗ~P3܃x`!LRTǙoM>.;ڙQP0~grܐ$`]ΐ]L:ԁBgF`6Hlum!`8/}9 =F#Pt cc(;3W lX_vC'x ?O>m#|sJ=pF㿬K`6\ -?p'̳x1z1,2l#7yv7p/\S UXpʾ[;h>?9zc%Ζ( É0//Hh"`ݼt y(ɧ,8W`Wy, W8 6 `3yf[ uC֮`cx&lJ5x.Xe W` (ƉPGx >9ʝӡ3%08<=v< 9>ary] <LUhy–W@{;l199;a[(rn_u&.AKu }6>OZݣq|wvsiw LU†Z1&m"^|/IvD&kӯ1 M+ۭ8HP?='˅u:|[+әί8{K<F)$3l޾mWV؁vpt!j']W!zz۩[;:fM~)/Qxneh/פWē#kɚHCt߿z9 q\cCN2_mDmn%` 촿 \؁v* Q'>d+bn:4e~ zZP{0 k&?W?<\?|@[^#^^N8-G@[#J##7]dЌS+"}j:SPƒ½=}Xh>7MԵyhЎ:HILj'SFg74!9Zt~h3l뺇y٤\CF;0?WuƉÝ:Җ]26n0M|Uo|lxx}a;9I;{>A]tԿd!}}E[ݱ=HOom6 Mx f R-Ճ~?Jӏٷ%5ޝЄe` ⵙYs y~Z.7ބCB߾6DwQ@TݠSBt 0:D?~`ꗜ(]9y!E E?M߀nެ_ -wu+Dwɢۢ":z&ilc|H>_D :|*l;v>E/ϔS[dI.c{}2&U!燎~FRK^6gV][sTAh⭃v> -n|е;ABjπ9htBg|žG&Nss`_gY|hОy7cM1_~? 3|ᑆzM{e>ҵm_ _gi4KS4i{ap<:aK{@\Y~;B Io|FzkliMO+c#\`6߁5S+Ζm;/BP8N_$9Є{tXV~\vw^\EW@{GsEw24v.Vh~l=3Aw<>;2}rv~ZeđH aG}vXEZBЃ@c0v\%0Qjg4B9*h0 =[̧5Zqqe5}&պMDfq3O $29{ؕЄ}6@ZN+r"w [l/WUwhI[l?~" WpgP;h]Qem+-<9>VpWd>;Yi{a]3Sfb;C)f֛k3-o)eZW45}NAtbh袌>g"(z =8%0 ov>%$hY0plOOSgsyy7-ix,}b3o?k%m˲>k's$G@N&.hҶQGBso^kr]?h{]/ ׂ/ zM 4qQC\90۝C/Nu:on7w;wI8=7n[$@ S)+s7'}:}T{uއ Ƕ&Avnn/nV^ǿKQrz2kN<˜k4qЮcE0 Q4z;`6L.A0s ̃mۜi_c޿yvҵ^Q׿+QFeU(t%L^aџ^@ʡ0 'ܤIWQa #/cpGׇ*)?i^Wr\} =TϿ2 |FaE?há/;~藭h;ߺJ:m y.'w~=RC:/{3{Şq_ MȻ_u\ǹmKkȗ-=3iO"[57̳Ӽ6ԝ&,x9e=8)1-f{%19B0mr;Y&˘]!>lu4|I]^& Z&r/+XHGks39By瀝?Eil>#?|۲Nsgx_C֛>XNtk_Oڛgjz M>s%n%Oaz\]Ѓ1}TЃ)wWi s9]-'ɷ?gv|;giB}$ӡ7]A3}~A];g!l߮zpڷAQރxn8gcyQxdښq83ەI(jVyI7FS0תj<$+CcSh%h9_'+G\xz>/c [~EG*3F0_T{kxhy8s=k9 ~?>G/x_D9+W'XWj?r t)3*'Ao> 5ȳg@wGyGФۣs%yuZ9؁̼Y~Bϻ;Q|=x=4:{h4Bʑ|^Kc\WE37m}vj۠ݐ9.i<)cE`_ į"%}O^c,E<#|):cmweO!;{ßIoCRu6]D[x"I>gۯ@>`l_7hD#T|?wAsʳU ?ɓg94a)=XYeяXҿ*\cr2]=:q-GݲC?Sݟn@:ߺ%u~khCˮqpu isyiЃ׋r$SyRsѰKo?ƱOq*q-<4./ŽT%|0Wi5y㺜c8:xW=Mx k_{y翶*z䃴c/ EfHDž]"O =-hOv:lMM숶a6u'6lmK̑>F'd/AlGGv%~'0`^hX@{CT;Kwa˭kUW5Efr|N}!TM-{G.n:D6"=֒_ܵ8,-鮄lĺ"4 "KSu\mM霟E)UuQ_n/ Am#m^ M8zu`4?`16ְ=+L%;|٧UҫulOD;+Dlc~,6W4d=~A] ̖TxѤ#BYkh9HΩ)M[6h(WџRNh9yv2!j?ǫ !nBt 辫ת!m *c+C?-DWK D]t\-!U=5Dw| U!;3D(-Eiu֕o [rjGK{mrlOeIiŽ83aDŽ-}`dHsllk9)I[.~R/gBW^h„=r0_Iwh/`6,o/Ja.<p̃s` }m?Uop-6Hw)X}u"~;s(l nJ) tћ2ir)0/p[[hl8a97RmρHX'"xٰ&~~@]ev6)~_gH#k:u4ѡD-1􆲎=m2۱mqnœv\}DGAcG:JC=Lhwʗqc(|㦶ƩwF$9_#!ׄ]/uV~"O; {L%G与_^):a*ٿ{~_Ca>j&gT;ǦXic;Ǹ\h%ğKφ׏'r7[ y^r]ݖE6Eǩ ƶ>"c0Ex.v #-RG6_fϢY]rޙyl yP_t&BZ5J>yuٞҧiNQ81x4! vnj`hߡ퇇180_ md̈¨cczk98/F:?8췯Anv L-RH.?:N=>+SW{ꞥw},DڀJ_irrU@Kaa.:NԄ*vuKzD:N;o{=4:-b[5hMjϠHSNg;!]} ';i,vz=;ni,L-Qx0 `|t{07T`z*MdiT?*cTR5JwNiwl{VS;;ބA#|GC MaPunht> hM>(vSw`~?}iz5297ic frzhK(\h?X~saݽɪ>c7}:Yki}Wu*omY_Bp[&^㶽W)pǰ>aԜ00??TοaR¸S0q0!?+jK2gِ˷V`{맢um:(=ap 4Z;a5F3)x24/v.1O-ۻ@(O j0o`.{W5aTןTD $u^*>JadwоJ6{p㯄׶QBF('vc> 9hz_&l;^σ05,:r>SQ 5;P! p̩R>AVvc9|g;t̳(ڼx] oKvl鋒8,_z}`9n%_(tIx44ۃj_|wicWVjzLhqG~/ߓj3}qCyH ]<+sl@>㘰FWЃ'!ۧAۮ m=DOG^zdvNE@Ư#we~5;}ߩ|D\_PQ؉18PӒ;^h4N$39Y7ngF*{!ۂgsU{#](ܟ;7F19~Њ~9WW!HD)hcE7P1uD{7(-Ʃr] cpìf6.5`zVC}dK#ڞsg:Kpxou>]\FRߙyz75>|sŒɗHgA{MSsh;lX8,3u:}™eZrn7\Gaݶ_t}GB }6rLzU6$Ƚ?W=J:7]RW]0Wdz߼h+%]b:sY߄G`Y9[D.mٺwB^|Ȝ,l^VuGx _z#u5r>@sZ)n' ߭;7I+X (펱Jܦ)AvSoordeasz 31yQФ-L߫}>Ly0T y[<~wr_h&|sCO|=)xuc{}ͱ%ܡ_q̕}3q6=u0m]pyvv3-5DŽ m7vޛseAоcOH>ZgRHVnA{2s'ǟe?>\ϗ|qtW ^巺MJլq\qCЄbsdٮ%>}C Mod"Ү9}& ehB3k&Kx?]z_ބ!劎;.'Ds7W[HS!Ct/ 'n*%;-D̀nEVA])`\EitSd<"?4!q<{C۞ S8ςp.5LƉ~ }{>W򱸉tWgg{o'AaVcvүln46hY=$xh%SA[yT8}^}﫭9!z:DGD縐 w} STw^& D̀<=Gu#]l￷cRnB m? 3ED mUir?H xMo# ~d"Ki^Ɗ?o/6NvpM=HʺD4H+l& FOe0MD>-S&xV<' 0\w"4:t`wm%+ߎ 9UЄUЃo헆1x@>oJτJݨwteN2yzQctCUΜw;@sp>|O'SCNg?=^-}4!e98cKhB|o$O')Y5ީ$o:]畹WD#,}߄QOؚ{m%=\>$7ZdЄ^;0> s^|U@15} ke?ߦ楑uk8M}-!B%^yֹ̳1?)m<;}o:chUrOAnLv R>8}__"('BOhng6+tqbОOEu]yuK[sǭ7,Y6~/9rC07DvYѾGu`uq\;;Bu7!!Pݢ;:[={R!3u}Vu+!!㪻-DHBmp1,sЄj\Cc[ u\u<ۖ\+5Wx-"IHDnr[׶ nϓ B}72/U6_oKy3'Q(KLy׿j'lR[Ӣ5΋dva]43Im%Mn]Yi}Jk=#SFE:MEJEEJ1ߖMǺ$ۨCE:no#}λ.Ἑ/Z^aLטcZk}cg|ݿ:9^eb wCM6^0fB[Yp 4&47=xlq}amAu<~oKt~ΠVtv<ꯃ&08hҜl =&HOG,rʥʹ\vޢrzҧ=RЃӠՑǯ?~%}51Y.*C O T\$`YM朏rD(htA;R0^.Q} Liж\ 07io`JGR%KeRާԹL[e@TgOI}kPIďM>c/='\?ĞM|ꎽ2 !XD믬ik ۲aZF34ᔶϛaMá9y0`Sk?k%~w8%!?>NPuW 1{aV:L:ytÏ6gԁ!5O)yx\ca.{ =[sEIa v;̆a. C2s(ד)Wg~&tߋC!M?+^k^Q`%Ѓ\p9Ltf//tczhV-_ F}`[0>0ۭ<^P4;rl{AνDrm#Q3&(<+`>M~obbq f'5f ƇGZr&\nq8C)%Ajd Ϫ24žt{1\;3 x $#~pw:428,A'.s,ݩĽG-qY*k>^i|/͏ƭҸwP=Ĥ|oIv~ô ֹoU9zlٌA;Qǩhl_Fm oP]e-PP?~n|]~B>uci~2nҿ%y('ۋ7Q&6;6hΕ[ 묺ݯ?T 64A Lw&a%퇤Y}w]@Z){ZӢQn8hpۡq:34oo(34KSv:D6j MqrzMidsI2Kct}hz׷?]|hZ`΁1(M+m2eȋϡ%ؠ/di8{cm =\ hCV;9 GCh0 _Scޑ#4G=V?x5a?Jⷂ1g}41hBx~l-Hà? ׇXSJU]௻0_wa~ps?O, :F(;ҵ 9wςэςuyW\S76 faL iL޲']#aOV}„G |hc'hD)` $Є0 ߅v Mxi=JS~W#.aR%޾Єʩ)vKM90j-: MX-8&;C?M*JDGZD>c%kuY8Vk 85k&i:,fm?ոbGg#yqqx ;u8'@|g_EXe5u'yT3mYqav<[+`r Mqj;"g;m{ E-o]trR NSӴU{U@}":MsNYmzگcTw|&᧺em0apH-::ުw+Mx?ˢ]% =ƍuu;E__=F/=\: =%²ڹ0$|^ 3_:F6_ϫ4d;,ww"v[OCC/\>350Yt??uema&͡M3pcn/0c}r& S!j]Wv`<=PNi3 }l7lLzhXФkqλvN8*񎄶fâr=M8М "fOo/&̄&^{as86@}$7H C !c3h9 /wFm23Aez,Uz#~YF[R7I>;B;^f`Um]\\̃C=Ça~UCz,r g-)4a Ѓ;!qrw y>Oy1s^FaѭRa &-0 (̽Mt)(O_7Ys|6Km` s뢰WZb|/]yp Ф{ &&;$^9Xh\h˭(־mS \O_(Bϻ~%+Ѓwy4SYڏN:cMH,B70[iEo9l_2yW=z-Aryt&ԠsbIj~T{ {8o&+e>ʈ~= s=?lʟׁ֮_?r">*eUIݤ趒1e=*EFs^[sϛ eW\}'yʔ9{(Od!9r{A۷ ֫a> k0~sO)a02gk2s`ğ:h^ o1'TzATٰE]|0qnG8GBnءNjLOљhtvŒqE]J#g%]B'=u yO~~PϮ:Dɮ~`w;=xgCU][RꞮT.Ds@w꾮W >%T$Dwu6[Tw~^[GtOU2lGWud^Y3l4!h\'ޟ>q\;VuaԤY&C`h_YA7D/=8|&'0 O0 O_4L򱣓K♐7@?pa~ٳr0n(CS6>J?}y^}oHp -c v}s@v4r90τ x%L` >fw\Xyeʜo~ 0}sd܊suwҗ} -m5_!v+ho^r9&E9m c+<|x,0 S`!\~gϫ<(*& $厍ѣ󒤛qd,1akZJRܛze7>8[i66k/xOZXIix[?}-xjO' cF_&lIx Lj_F0 3 V;a _G ש]lj2RKyuvmIe-e{U^+=h( m4zkIxՐ(z? XυЃAއ1(ev2~[h/|$ K{;K?Z30hq^~W} lg ޽k{jok{lJg8:7k{j~TBH҇ߋ WAz)dCO|$B@$WO}sOc}ׄOOu/i1VM&jĿWjo&}򽜦3S=z[~O0{Gidnf|/1}0:Ct{{})!/_пPTJhLJ={9D]/ E^uV?RwBtqWWt!CDZu{ =6'Fuq!s!ST%ս$D::u\y/&}'܌`=;C=&ԓ>ZSL|a q0Ix7 4h7}yo~DžQXcfaIzl?ڶh4~ʧ֧١}SVQr,_Itlx*\U i>@|'E0ILӶI=bhU+q.SM^ ({a~ `'0 /F>h@қ;s':)ǗcZ0#+㺾t u0$Jhە5BgmSVW3f]j@H~Vgr q(`=֟8ۧǼ0_ L` z~rhqd.Ƿsz&.v477*4ˠm'9p4a4w.)5\9W['ꎁ~T6C0 ^{gK>V@c˓r<|?yЃO(| f}>#yohW"0Xxה훇g%cCWV9rBw=r>Bs7BA18HT\ghM.o mhfA:|w4sL@΅z09oѪ!c޻ t{Gn$gbv){JDP6}ݽi-M$:]?3yz#!z.QBH:i_i!wФm)G94vwد̏ߝx hNh2z@{0_Uk%;BzB@aS)/j5׺0㻶_+i_Oz?:۲E} DwY@wV-l#\FOtWCfW¦'$^=x$` ΅qq0 U0jΕ0>}X'9u7vnhJw֪b<Y':%nv .ѝ=@uWݩ!t{T]tBCcEW>?fe7C7=3`zFOWa>`U2IK~^}6B=Z 3%C@zp2ljүGs{c׳RwQ5Sf@w~VtTu{!4َQǸF?|w]0 +tÿ\ }NUs$L5 5 ٩Kz&о~tv.uvEtryV{{r~lyH/((*jfjQYRkzpQ,322#"ӖU+H]b ]SV,,52m;3½\?}9|39sf̙rϱw6Jk o0}{|5B&9ؔýPv8T.엗C1{fbo;[]m60I[y.~\_m_a-t_b|J҉Wjz_JIwL5].{{\ߓX}?&a2uh}?ޟdiýߑ3p`:~"P㵦N]'0ll`[| _{YKrg{Ͻ,o05hȫYqqfЍN?B|tǠec$<B}=i-T˛oL{0u=+;m/k7n2\HYXp- <#ƛ|W6 )/c.vOp pOL0 YСqþȘybU;nH~{/m{)-Җ|Klxk?H\&WA5͐p ^@w%_-7QGه:5wn{VF]^;mxT0' jZ g{V_#L>2'wjv|yWĈ3~^#AZM~_&!ɦ|S` $\ #:n1) =Pwp PV3?:/P9!00ty0A8l*)fP/%!9=|W]t["_ķ2oM깟:Ggy}I)U{Y;9{Jߘj=nP8-Mm7) F ;Ïφ=Fx`_u tgW0|?i%Ov*?.|qZ~׉~.cOYǰfTO%ڦSa[xĿ}س؏~x6zof )k-uqǩYQAIwL7ᇡ>脟Uo]7/ lh^} _KCj9V0m-j+KojJjy笠Фg$ oII҇p?Ѱ= ЮIxw _g|yjbۥ&!-Ť]B5-lh[``^7@5A׶lC;O~w߻}y Ik?/wc~/*G@'ӿm4B|88u]H tCwB} :_[r/8Є?$ Kr ,7N:3<VS7-QF7=S O" ~a)PMAc>|cr h[ >n3i<*| zHu{ bֵj x}0>%G#yP#a{8 ЮIx7@~6p. ;`<$k?:aS$\ Ça0\ʟ`e-5g)ץ~Kx̷?#á v8z?+1{%|P)6G_>k}NA}T7ߩrn0T s7~]Y<¾>~S~h?~C|_)G/~Z?N0;vG耍 /Xi΃GOU{=gzo߯d& Zn~jku?~>~u.9!?~>q2~z/P=Es|Oފl݃m? 8ɰߙ~װ}+y(wz}/nݴSSSPMdʩ;tPM7CG51I%l7tR57ּ7$/oi# y9xWsab\)﹑wlINΆX%3{ E*yH߱|Ie#6h.,`7IP:Xs7 TS:.:ۡ?1I=TS8t.NB5ϵ8=;>vhh t|?*~I{?G:_3{O9/alٴnP~$l  aO8 }_:[{yS.~Nc _C;=v*x9S‹a{" ;]pZ3[;" o)??N c̀l /pt: p#l;m3ڕ? AZmr~rP_$}vU8P_vO [_(<(.z ?v0h i脩Ηp)p+ v=wJzUcN>_5cA{d6yMq%SmL~AJ#~Oti2UU jcwr9Y^M/_ '2͂6=P_ϔ>['+f5dE{;?B5-sc .{6~hf `@+(i?|PMOA^qhBHqҏJcf 7/jzJhI0~$|zB?=qPMoKx {tn,eŏV'ů3*k~UμSwC>306Owx/~Z?Ou(lh3ConG伀H~n{Q~>ꣽE4<*i sa|`[x\{3cu}X]8>tЦٷã޿L5&[㦿_OuKx9YBY~r4_7ηCrG_s#py*$ٹi?3~2}0;g}ِfw[HwgVNv~dM . -XB&v%u<ohّw'Ur{vzk%@I[ザiuaŇggoXSF1mgž&{AgCK+GwebeVc' +1vN7ɫ+#ꠞanoI ko$i_."^bo@&4T3}-*:: PpS*M;[0BŤUOo|B|/%q?iÃVdw3d`huIRvT֫oۺ `!nA-eC&ea>#Hs.wH67,|@8<]HIIמyWaqc_{gi]\ =ЦE??>mw.V^󣙟(W0?g~"̯d~V=i3˨i0U8OBO$pp%kcBTX!|MGx6zyom9UYr)fOHbw;c`fv؄+6''&-ob^N~ZYUJƦPHg+ͦ>BÝfqUl efqĥW)γ=Ԫ8٪lnN;4{ZVך 5l|-ӅCC_}&%l'Rn_K , ㅑnI7|>.v.d~Qia1t2R*aVx@)?!$0,l.(+ |Z@X"\%~FKlK»ޑnPR+l#t apЀ ;I['ZXX*C#$#~ yR}a0Y8Vxp0JIr OKmCYX- 坲) !\.Nv5 KdG8U,!  ,n֝)W %vGfSvVJFZNNkVxpa1&6,Ur{o>b=IXE9/ $g RCl#s ԬESC3+K?ja'YCũA9cl11.b^4m ;oHWJ2rg)Wtݹr݉i,R% S]R g)FfIz>2;-'WL~fK <(Z7Ugũmv$f&my1VgYȥ]U-ejmUuWl]|NV IHqc״֖sԒj+yR/vW2}эq% K>1L/GJ)g)3 fɌgC&Ğf'Wwѻ}[:s])cJtqp2Df󬻝9sK"1jӞ^u,g3'39B7}iZ(uR\y{;CwS/\)9K SnvF{?)E)iBdzyI+I9[&<D<$;ٚmbbnJsٝrي"w. 1f+7rzsgLgZ:" ZSQ8\a 馢oLcbAUTgZJ=ޕ݋XT,o;sM7j7g&ezobUKc/Zej~$}j]pJ{9Ƴg&rYÖ3q73nqNNsNr\|uVCujgݱKAz >2:.2t|&d-9rŏOg_J!vv^Znv:؀+HǺWKIZr+loojϖ,>G외Es6SZ3\+lfRZA pFk-w'qVczhD:Eys¬lOFVR gKRLT:@aɐ~ M[ԛ-26l&8<^4 4uBd1CsI<1^bV jfi9t AT?#-g9L?6E_rvlrwRb_YJ4W82܄EK.}a$L؄,S㝿H4^ᓿbQ ݬ\ltt!Mݬ3YnX36ʵFaa7L|5Jtڝ_UpWy>|֧wz9et"t2>៱:t#:5axhV;:1s-3z7`Cpw ۈ>Cf? 江9R2¯ pAoͣ:Lmo CJe׈u~} :Ŭm=rT#7Li7!9J,e`BI> fyqL}yze"YtWEtr`9Vzt=Cwe߁KDWO~>x6aQj6u07|/o >գWþxEGXSxBixr%7uG~ύx[> V7Om+ XE< sk/_ bfƾ(f C`8JX&p>A+Aok':ބEp!V^ 7ca%/N9pU6»+W샰˔:NjSB,ty}Q>U" ,icKEoSh%0 MLpVA|= zzGQXO8[wa֝O/:`5Xa\ ;fP S¨/^CSoDW/E7j^d#03>Uf)#UXaћ)*zu зúƍ-|3J|=l Kk-?lVY7"3҆aaw0]&Ik !jC=I)a;,}~PGJH"=:^}J= cf؀ea>ÉX轴gL;iG `LCn+{X|5G&>ނ aŽ~r0JI˰_]M,?a0xx쿿far|?5e"4n)n}>7Ap1VLRϭ`/ .zؖ+Q 7a׾bѕgzJB͌+`%C| &QnOt] 5f]x eKHx?p+u ySVOD/v I!oZ J[R5x[LxcI/˰Y X6&g3<0(,j2,Fya`ڎNYK)C>NcY˨\u$xmn`;^zt~eFGXщ0h7lSl֣b]0N4mqz3^o#x|U΄ɿT Wgʤ)vсmr] 7a .m?p+~0a } PF:tWXբGhc$~/<~%01EͲ!ч+O]=0jC4 b%oc wWe1ˮ>kxs&M|[βr0u^S~K#vDGVRUn}-\fC_b+hpωDGW¾6W. ^4 SwY] [gX? ɕs5)U6} Weֵ}N~#}*\:۵/BKMoHdۉηlSԍl/: D9O[ަ=SX z9?^"mʶ|ZM_B p6SpO|x`;CUJ[svO40d';g >wo?ݻbn[{νFYы;t{>pu>ᑃ6+>~pΧAχaz< BL slB7_Rk9å^'AOGi?ؗW(t<l s= fYt#LeI0)NR.h/6++q:EG‚XգA,J`pˮ+ 3݊zӝvl|Sn1^`#[X7SiKW]E@U>nGzt9\nevv},}:ح #<]M`X{4UOC R4ap$د-Y3iauaB9.ۭdt8܍]@>ѽ,u0?m{^fI`jl_9.F~ћa>LcҔ'EW%MY6Up s.\q{7v8]9p'VB>8l>2w^N|#VOz_a|XY5<%H档` .Rѫ{X8oX, b5 xl0bυM8[Dt*|Et zyCWޔ g]D [ς^oJ7.'vAνJÇI_& _]KFt4yc]hZxHSw(;iT,=Xl#,B0{,}4@ X;?s-X-z;l3nղ_ÅNn~Z3z26eDK`Gi{2&{Fx_ 1ku /L}540] 'OxE2 : nI6߼eH~_>0v J<ڭuX#^n?w 0, o𠋾}&M#NYpp})z(\7?;䲽ugb̷[#1LWh"򼋲3)wtce.?:wa7+>PwӆЙ[ ~f{/O<“X{u7:ݚGAWÉv}V o7$L ` AG(:E ѕNt=H #EGTnX&ֈ SLH(:.k`P(:EWւ܂{2amIS?xn-EᏒ gbjBj{i؋r|ày(:V'LB`Dx2IttKzS.n*񤤇1Ntz c1Ntz )Ic3K}@wQpJiY6 ގeyLߧD[a} 2jmek`3XP>k'ϐ~kthёpJa*.ϼ`t%|E'??^)a޳Vg։xz]{Cˢk`&᭯حIЇ*'*}5~v }Z\M_G|WBea}> p(V3:z7E<+!4mE?'0}~# ?Їཛs8spÀ-i~lypfρ+_Flypv-uc4M9=?=^?KL`}m O)I&zX#iΏۘv!g,{֛2 oc?c{уᬯ?!X~F9VI=: ׋L9l(|wg)gt,$nbz0<%~Aido 0}O~#ʲ%p)pzx)~0LW_a]Nx": ^WoX#:'F{j1j@/ocSeU`8 ?g†+FxQ 1LYp5V^G3& X4عl#L;3 pDX7xxםi\x9Kߗ gr|~;=o}v^T,jءgЀo.  #[}/?P8cN8|Tz.w%^|>~Kqe֤:#i,%֕DJ\*U,ǧ.fsʛp,ko÷7; ZG2|>f=Z3RGk{ʼFhw\O\q>.yky+-f/߰v5M rJn= >&ў Jt ˖CWo;i=z|]s[q{Vkgu#p}>~x%a;X:n|ü`'qp֫[M ,) fmxƝO6v2wxF$%/`\y'}3=}qwۧg0^33?gMAd񊟔mq*'$zo=1CExЩMic:X-{ v~Jpq*ڮ +h}wY۸MxY@i),a;񰬬` Ht۰[vXxo{!x5>xv YħF gkkAV[t*/ ܣ0+(} ))u RtY~'c`4^VTZwW}e8]}/jWﬠrcty8p KNpS{bW %Zx^G0\'OYy>ƓcD??sq7+ZblW3%ތs`PJ|~.<$z?W&Mx{kWhܷ2y>_;S|Lu51&kq,kq¡Yz x;,2. >x3nI<( NS81z|5|x?n΅ƥ>o,b3},::+Z,V>/űCq1W NvD"a굇4,>M}9a6LY qtX>S$UnO'3ބ["xG]G8 Xqy 2>w?;:sVsc'&^ //o>Ny)VIk!|IQpϿ7^Cdk3Η6?czq J#SaLpח?* S났`v1%g,ՅQy>:ƱjO5m_/đR| 5k8s/ʊ~c4.:gi:e㌳Dg2 Ϸs.7[Ǥ<4+Eb%ayCȰ|q,+DXv^<~xqyr[ރ\aJ>ߔ{W[ G7|}q8ֺUx'x6p}&wL^//QuN>r &f{`rVpVq͎Wa:s=HD`Ԭ]k3o [v }$_KȊ޿(ožw2#wG}~_~U,/\xGX>S'gy;~puuܧ<=7yxeRx~bqJJ$gxrX)EeIakb~c\Ox/Uy|+_EszS$S] ARމ5^^6pSƙ Ox3 oiO_Z90ﹰsmm&' c/$gK6s/Z?|1.y)+\b9~Y?cEg#<5u@ub[3 'KKlZ<"!5Eh7cw=e|_ Z7c~<W|/}#ec6ǣ?} G)?~׹x^d9=۴Ky WK̏9_$^/HBߐ '޾1gpKH2^a/;oTur= 7ƍH 5Gpȷ߼H /bԨӉ;< {HcCVO ނ?~1<3C9nb)f{jl;ϱx1vJg#|ApL ;kpB`oƍA0^ s|1w͸(/;_Zy+\-S;fzdB%r]wm]x`hN`|k 3;] wFJ4GxAFGvWc8vWd88;zN}GGuR JK?}5e|v³JR|PxkR7cA2c1&q⟳:Eʃji5o\+7e/qՄ=%=ŚqSr{QMe+!A3o OX?T;w>XR'>_?#B<;jx#~x;32. n+ճ[OǼ*s R~~%WYjq{#o^7Hy,~FxNi_ T`)3Ryk+Yy 'HxϥbVZf4*~m.v/j nW.[+2&b\a}$wyxEU噋g$zώ9kG^b4fގ/x=Lk ?H=ľ;^URqTil$}MvСN o>qb\xv6Ssӱz}ŸpB|xǍ^;gbxaF>gN΍ߜ|'wdI:}V:>ռLt)ȧ^}(aҩ|~?=.I[k Ioĩw7^e^`E?񂻍MWH&p=|:{6'.pMv,ܫ!;^+geGϟ)\/cxW|^f&eS\eOKyX}l5k=;GkG=|3s.+Ƨ$|>m2uY>9T{>끗Ⓥ#o߽hNߕކ^J*NH| ,,/%z_os^z 4`֫LxI+oğ%|6|9ykKN8Cvf͟asmFf0عכUw3iy'a9ۚ'/O9üSx/w\o=6LYyʛqT|k>(o]6pqx/G7cvx'^txǯKpvs7r|qlv_wy99A3oªܜn<9A -a]s\M:y֎9m;Z}= K?e{wMJwNH|toħ%O51{_Qjl󀜠qc+?_GVSe9A8ٟƓq4/9*){} &/–r}⭸IH9G3'K[g_u_wy97C윯)6Ğ›3 Ww\;ظ՘ya~6pD=bw phUprGr*pLvnw-'7[rszފ :x^)ᵟgo r9~.KqY⭸kפz0{㽱Ay# kx'X~658SWEy+1_I$TApιA'߈zO=rԞ1/UǞ)~_+7]i q>΋|[h&>\J:D}sq0#c=JX?o2#=$MeRށ}J^~qqD{1OLp\ ,զ~7 nf^32wǔ=!6_987HFAcWXX_a}bt|x-‚d]%N=œ7H4>sܱX}[X[6Ygci8Z*>uƭgF߃*Z:x >4<*x9kccs!Sy-挌˻b;[|(K=W͹cDgG֭ƧӔ/kva31u47kx)-<ޚzJ6Xv)U\>W^T-6ވ]l,3eR} 7m7X|&t5`?C9?!Ix$ބ#oǿ?TܠDCqhmr\?s%ކC$g%ވ_'ށ{{M[?4_t. nMسk^P7!/hxDNWJڵc/b{ߙ\#m< z}͇mg^A Yyo*kYrzq^yѺ)S^Rx=\=< h+L礁/ƟoCw^k^n ['ގ4 -ὸ Ga z5;=cŭy$  0-Ѽ|O|&~!ѳMK GJq}q?kmLbxkK S{gKIW _S^Kَ7Wa΁Oz>ov>\ٲ7?51ʋkk9ⲿ8.o y'^Z|#>cQ[q^r­[O $ay Uڬ“lp&\/>'5pTixnH Nۡk/:%4>/%g>x٩qj9V?-C!x5~.KӁ-/c{{Nm/ބx0>\xf^PgIJxZ:[;tŗ1vEjqQ. V\]{w[?8sUW/k*kjsTl;ݶm(#8'&2Ӂ}&x$ބ>&qTixnHlK>9  >[My<^xׯ+%*go_$j'2 >x3^3:|I׶b:x\).gA]%0'+?zn7Jsgv%;$'n II>w͍'^O&ބ_%ށG^&o īqVuد 2. v>?hk~GX<= KXeEy-?X% (4 1x=n{d<ꏱpNM[KQ{U ٱxO꥟G{.'7AQ~0IҼ%?)e`QZ}d~H[Ŏ3x^SZ::ş4qy!~$iކIV>FQ:TiW^:/(UY7))^_H+ok> jXqD\#3R6<֌nfށ郭^8$?z\_94RīЯP8! \iy~$Ss0,lM9;%.|f ~rZT~>oܽ?8.skp !W*HOs5.tZrO%ɉ1&s $|m3(a>{^IXT 螎e⮳b/W㓉7&ͭ0ӄgx [3O >طzƳ)?xFBoʼn? pli|1fܒxK)u=qƅbƍiE^糭mŸKUx⸼oxX)^1Vj15cŻo³^.^bx,CGx뤙o iYi kcuZ'-k~qһ9wDcRg^矑HѽQ>Z^mHL{LiWވ>1iOˏm"d m>op}S^wG+%z_ݿ&^3os•Ҧ6ŋO _p=>MM&q׷AQR_Ra?qaiĞ> hmס&.>\.y SQDDj:6.pgtSpuL g iĬU%/yઓ W{-ϼߐk!*jx11 םQ8 Yx:'g;=xgj %pF#~,3xV`~qX}ў3& +.O5siAС*ډQ (o y_癛gW3$F|A*&|5OSu+o?n/][}2%o2_xc?/¢a$^/ƂhiP>`&c_|N1&S~qsA7[oknwx0 ۴x.F[qm8xz0Rc7u*񝻴y3/ng8o].|3XsoWH0sVWxf i nyuNXAp{ayJb\.y:xҸ&{1x=8Z)>bdQlzƼMXݺǥ7, nL|>'.2Gb xbwxǷ^w:ܳ8\'a[ d3ֽx绗z nL_/8V+IgZֻƱ썂` /1oY<Թ˺Ž;wUunVa e]>}>0JuZCǝ>_HsMxSpM=$0k\| Qrb+;}욹\"=޸ӧuqDqUձbXy5'5Emƙ7g\_/tU ?vJ[C¤q!d%dhQ,HKX h%̯k{ϯ=gs㫒=NKr|rDO& ~r'_m~*ɝ|t.InukTV_~oL MS^Nj~"Qg97k{#|?i7?ؠoc%BDme -NIf ~iЮb{f<g5ȗȌ?2Yr'hT.fzkAn-39*$7sY*x\2Q$޹OfhT>_FV.#qVa:|R6aC3eQ*n>3L;}Gߏ;w޲ʧtU^&2ã9#cqn'3tŃ2C mR~`?)נaN|Kqf>\+/k -|ր\_^N[y!4Ӟ+_s>*?f7Ę !js th:OEY7,&ک|u5~>>~qa(+cGğS 3WjtOe1r8|gp֒sP=[;9$%7q'3Oғ ̰XiSo6^,~r#wu(gV/7f'g[޼r;w'fs,ߍ3O!*_ܤʧq͇3pMȵT!5_8f;9<B$WpMxva1䭦s_*xSc3U}|S3ӛC9c“Q)O,/n[\*B\ϣ`Awgt;x Z.u}G&~g6˭}Ay+ŗ=/ʫ)F޲quшO!IO!e܌arCxsF:<܏Pq;P's*P`Y0 IW_sy9ŧ%Ey&s2{W_6//#r|x|2^o yf-rh6ׯU;.vWk4ab:f| \ X0Ar-CT'cjIׯo+o37߃fyĹ/_":fO{߼fxZSy;x JM$ݦ|2-yL_~ }Ø._XWKmS< P,WIy#iOs(UfN ߁@KVk.]\!z&dq i偫EE}kWn^-~/;r=>˞+&w/<+dy}z[o_w x?BiV8(++4C޳yB܏Dgtޭu5y]~h|ݲ5|h 7E.G4V܅ 蔧fEY#?Ə_!wV+xH}Sy#~]J" U0<`pҚ#6ui+o[r?>Tͼru>RGO/yA䃴Y.欃A͇d6SPc!㑇e6B4ܫs)#i2igK_y}I,Orߏ}6qloͿV 4!<oHr)Ya3 ԯא9[Orߟ^N.:-+Tzl1v>=i Z<>s}gPnը;3몴s],^&߿B1n<m"*|Sڰo񘫳yl󎯘nuU^_/#yLKwa T>g9rJ~F󑯽aZǗ-̅Q|#rdY_zuֆ~k]{Snοfx s/Kz}QE^³7/W?|3V| Ӳ$y&7?f-dB^{\?_~r^~X}\9SڊgGN[sͩ7ֺS|x+UDuZtUz*q Gb˼s:U<9:ux$:܉I)Kթ3snzQ8e|Kxy9gtR(kgN畫K4|]1,mio5w| >t9/?8DmpEmE[wu+/=ηf5?§T? rc~=gmQk[_lUC<.1r_> P"*}PD^f/Bj[{p}A.ᨗyqc7#?I#NAT2ݶa\5ujz1Z7o ˽yuMXۮ =~慏y /yu.wG8f,}kGu!9KDmnow.(Tnw8yuzns\.huLOϼ$sn:r}6S/rD|ɳ7"cg{_%\.I^LnnQ=J|B|[LOlpnzlWG9Z?ܖva{.xɃx fjvU/A<E<xTG~\4njCa~Xſ̶]#H|p9JN}t|~JnMmr{ۣ=R޷XCU9gy祈ao~Shy9(WL^vq:t&>m˞"WO5!*o᝗s0Gk0ZD~-bD-\VC>Y^|| AHqn +{3!<3oS5ߦwoGMשunQv/po`{?m.{\[wCx&١VGvr߲Yv:=u̓e^V!c\—&yigx-[f}wvxs}wR;/qPN>:;Cx6rlD ~m/n*ikWdyA>W}&Sj*r>f?&nOrsϱ.p.'w:NDBW-;h|#W/ \{:$WqSZT:N'g 5roc&=wC~>{s5Çmp>YAa NԾ(q>EO(Tgr⹔*qAKnC%?*CՇiG;Q͝(T_O S6SIO6r _7(<NP#ʽ+_Gk햪ϭ[?|m8ʽ"%5Hm]Jc(/P_/ȅ9N~tnydxz$w[Ǹh4;L宪te.G7&Wcϱat:rOB.xE7։:ͼQy'gK>k? 6ɝ|Axaȫkه#Op|9ŕÊ&; ~,11gt|8:PrG;)w5yħA7r-?a6*zync> 8fkD{xܸ[yQj5|-M({v $)ӓ\x=s6_ϣu.(_^gޯ)!&nSI+MBDckPwf|"6;3̗\o 븇#S)>ӸV˝5+>#5\qTgc\żls!ts# ? 6ɝ\D:$;In8Fm \n mO)<QqmyZ;0n"RggG!yasD{\Ɲr7y =/Ê0]&د^"; @z'$yؗg1Uڕx$}g''9#%|ka&s _Zm75g#_ɓ^R;yM)hS5yqk=V娓y#q*܊sֹ]>A\c*OFV'e] :˜;ώy7~uK8Wx.wm;WWzLJ8'q)Փ+/ݠ _ah 5Wڣx9~oǹrBU0Et ";'trBc}˜4r;:wN(o.xܜ D밌G'A:ͼ r9|0}[c=e/Wtį8{*}OrjO=q}ŵO?-'UŷZ?{qi蒫xwi3W!n35RV^7W߇p"ZNy=G{&CxsY.3*x^xM;Q\«汝|y]S&|nwɿRVOGdc'_` ›\d-);╗ܸ\;Pkz^vǪՆ:k!%In眫[&OrQ|wa\=9%pp;CEnM'An.C5GKC̣\/ܨGݤ Sɡ^($;InSf{U?l=)^5/yPiN WJש;Ѡ?@9ڣw޿Ѽ%|+1Mr'|X=豼睜U?m9&4GokxG._r|ǿusxU^~u7<#<1gwԑyk~swE\-5&zSnj6%@~ F Iyݟ@y3@TYsoeuZy]R>u|DG"^{<;M>ɡCKx\k$$92 t. \ſBg:Dk0Vʋx9vQPހ^~Nc*/.4a#>>/Cvu򍹖K2=aP+/e͝Λwx96rߌ\$ZkR^_SVy$J{mxS/Dn~7M$ڐ?sPy}C:PN-WNt.HꤸQy#?i*L>G*43d⿡L7{ Kxi6ӏ=NmSD mnۥ9B:e|;JOSJy'g8ǹ z y|+7]Ra/ؘst; X#>=ꤼ g5G*d|žP(s(ڢ\D5Xn^{Q,:^v;]_"y A|cMh|M俒n#] cTX$Kk1_xPq*7C8TX/W* L.9 Ϋ8$}̾])K|qC稔9!ttb|&HY#$`66'k܏oG^ gνy/|7ԟ۔a8\ZW8:<=*b> c"73[y3e;h\y)ڎˍ!8+sH="Ǿʫ1ܿQ #*_=*Rp:_sgBp/ss;Q <]3 ùp : J]?oBי^kS<+7k227r^*sl^wt;tkψy\e*\ѹ*j_G6CŹgν1m C($7˵B|<_+ܫgb(~ἋԑhJ0𝨑_/w}$"4HT~ ]-ʪ#s=Dޟ@87NDv!z砵57|Ŀ!*qS*(W$y?u{s:|*_xQk-7ިt,H- \T'hWF/wb JރE>ǣ3Tj]#j\SYN'¿ؑQkrÅ|;qx۵s~ht_<usQ)?˟Y^Q~Mf{pɧxN#ơp-?fE Uz޶;(-7\O ˶wCP?-_sE9t&DNr??s rJnL? zYu}<{Rgr5Ht=јs9Bpňk|TX(>d xr1OSasT9wͰ9Q #yf:rNbp*OQQp_y$Ct3ƨYhwP%ya?܆ԡy qkU"(88T,O(7x"#pɍ蔟QzD^xm|X7p\^8+P.ϓ$q|^x@?r.B,/˧Rw`|SP}(<9/є "+}5mgYcϤa(8\ ͳQ;uhoy<$ϘzJQțW.Q I~|Z8/ jϻ ʓ$&y=o@ ;hzTX k/裼A|(y"*yqy+[@p9v^O$y5o59wQIOڼh~4cƒL cF:7!;?*y>E>TqWW#1/|=޲-y?_>-|*ϋ=5 ܌V9yy(r]2煿߱Ǿk{9/萏 Q])ya*f9$/KW'?B⼰7ͼw&P}P+?oCFidX( /'F>6M^h.~tގKQ\InI^=}$ƣ<Orϸۇc>}ͨ5h^ٗy> u!< |;J$KW+JtǢ=_rt}?_r>^?|/29>^<OP.$􋗡BB )'@|_f~~Ov*cB7k#^ۜv[6|26v7*䋹- +rg~i{ ]LMh'S( Iu+w(߈D+!|6ODӼE~?AA߭Q-oR*Q74Okɳy n܅y>(=Ws>0'۔Wh:>|j/6B||(Wv?J_SG:߹7$צ|YKQ&y3寸 $us?2Wx4_ WuX Qs;o?Y=@7bs5LDg 2yj_ˡoĜ5~ &^9zo xIIk,ose}¿,ȣf%ȯs{r6ot:f4ʏnC +9K$\=KP'w_o<վ<2/$og*($=)G\΋?xǿӹ'jǸ5ɟ$okdDysyRIn{H.Ws#J}c󦛤gYIӓe|M)qfwCysZwJwvEI++g> {WZ_Eo3RDtuNx!:651Μ8˽x0Y(Q-?!mv:G%xĞ9/g'Ո{a0 )~%s!3솲'$ $w%PumZ%&F)B"%&die"͘fCڴk!EDJ%H{FZ߾}y{~{Y{9dqqjqxSP@MGA+`MN'`"v@)xN;k*58ϵ8 @5'sA_~ u&{E%! b! a)hS"])sVYqd kqɉ#huy Щl//(` %tl`KieA.k`IeH{s堭׀AwFUo@*W 8 z00G[#jPAaM]"hO5jI4{9:jXD x@ I.Túo0xD q$0k}>pF.wA?ф|6@*@đsX֎GvRaf)@+#:H . an]qD kh;@r`Mu=Հ>_ `sˠPWAc-v0w> 8@`U8_OAmi1m  | @,im fao# jK  |7>C(g@*hvxLfz@7Tܷa`9#0M  _{u 13 X0h*0 z?t0V> g 󏄁u95f#NAo  py%kAӁbPefC[P"(l@5haSqDPsFnB(iq)H}cpǘ3g\ l @@~.c`~!5P s8 `~%r@"p4@+lr? =RSGYlg=8 IVb|[<w:38 (| >>IG=0H9xe4n~PW8r ׁsx Zx.  Wgg |C~  ,j a@:9io`F(o=zУ0!O7ƴ8b(&kNx1}٘F]Acژn9pNP <q0Hï6b\ c<0=lc;_cl?3XocCx 0ٸ1S8CႼbOLG~W~3ï hv ` <_oR?,d'&s@@bE&;ZXpb <|&`4_.o~PDqVRWf,!$!d>p:Z pb JF{X9 Z n)xÁЦKy폱@,@#K1d52JƓvd'ُL Dr*9C&Rr9\Mn => P( ERsŅI(DJ<%JIPRNTS(vJ2HA0yjyh><.%3/G̋KKK#1J*ZzU*MPը(O5Q]T?*JStjLePK j5JmPT&@I045Jiv4'͏FiDZ*-C#RZ9VMki=> t ]ts݅IDz<=JOt^NWvz>HG1jh>><.%3/ȌOOO'3K+[{LZZ/0/+p),+   R r ҂򂊂ꂆւ!cH30 53v 'ÏA`DF*# 3RF9Qh`2=> a 0ŘL S2LsӅcDf<3Lg0LYά`V3vf9D  1jh!мЮХгЯPH,/L,L-L/)$2 K +  [ {  """"LZZ/2/+r),+"RҋrEҢ򢊢ꢆ֢"%cI0,5³Yv,'ˏE`YDV*+"RV9Uj`Y=> )(PŘbb_l^lWRYWL(&'ť ŭ=}Ń[-Ɩfcjlg.lO&ىTv:;Mf3إrvne{}A6R"P"V"])Q+AK%%v%.%%~%bI|IbIjIzIN QRZR^RQR]PZ^SW2Xہq;0nv8nہq;0nہq;0nvg͏_wKہ#\v`Z_^mz0d2Ix$+dn.nn =*s0pqI_IHM"^~ EX T# !M" ʡ38!BSB"#`,#Q1!p":sGBAאbiIMQ#,bXc/5Fpch̿%icyqĥ]A&!<$.Q…I\\1W:SZ,ϋfzJ"gGΨE+Yf}mbyt 1K4f^Ȋ@$:s:$i`QyNҨdkG%=IJ+$sN睏dkBL qn@TΊ/ \K "WDBʠBzPKQ8 \\<>ʝ2gqqqEP_; ߒ:Z'Mg~^2X[ehb@!5.ogR̒Ng<,^4 gu#/5jɥW7>=q烴v~&N.{uy=mn2 \ЋnLd2Zy ؏zԮ%zӽF.( 8g'䯧"yϖwb Rْٯ5M2; l_KM&.<$?&c*0jP kqvO׌XYbihy\? fX9oEּz6GR2'tɸO/uVlBxmXN;gWpR 6$}}ߐvۺش]GJ*AVV\ddCS wBtLvo xqDz5W}m.'U%:(u15+FΦdiu ?ٝ;2?Q{+knֆrƒ*= mLyӥOs7ibĖBx f~mI9EyySxF#Fqsbxܤ5al62L6:ISy' !0CeձH~{%>h<r^IC]>205ْlb۲jsLШsΊ١6wV Yc A_\b9TlJE }&wy[,Gjhck]rgLucD<]~t0}Ի9O-6\{8Q*^uGg݌IyWd iFfGk= iQ+Wz+VᓷgUܭ\zBtJw& -,uZSL$h޻oOV gZ-pCW $}e>Wo5Tu9W_$lBDtï]%R=vyAn,C7|+U8h@a`²zAr"[$$2Ѧa[%T͋;27؜gg\:؄V!}3"n(]bŁ9\$u֞盹#B5RfZf'yc6N >.\VrP-V7Jd2uW˥ߋD@5-6owC쨑KXJ0;_&' BRyZ|Ɗ 논Xթ#Y?\p&lÄ5Kxf`u&jE,6wkDp36Zdk*/ na)|w|D,|w~;}sD̟mq!q?;xI\oمś^םM;G 1"\ݶ//&&z&;L8SлBu|5>l1"9EOaU)_zv%~aH W,K3Ae"&;Kd-=q;<@w aHK?m0(x$SݽE@PR6`.߹&;~fTy8JF;s;~ /Aic&.?h专J*^1&<.dh$Ҿf:$Փ 7]=x b#qA]h cnZ,S_o/2SdʣKꤩi!Ǣ8=Ep:F( &rs nҒnIu6~n|=*x DbDbUPϧʺÃ1nkWY7Զc݌6ߢt Y㿂q "D塣}" 3B/v?, {aa(L'b_ Jqz8:Ѿ.u9)-^uUj5L0SscLN<ԯ(?E(^mlGUQW0?V&b Y: D>kkoW=~mޱ5NEvh](|~<1%ꄪ?_"kGϿ?CFwk4}F-36 ic]v /^S"yYCmǕϸi~ݓD?xU0R݄ {޲8c"ޓ/Z*sc Nw.}SFt>8y6a)_v-u&Nr߃b_[Yk3Rb?۷?9U5FoÉ_QW ?4/@^\7Nˈ0iY[Fk 2:|`$!7n;/l '-dMM}W_|ͅ=w-Pv\IpƝvhyy]S7ΝީPXy&~;lª6jЭϛoziO9yH \ɑo”ohܯkQzK+Ӳ eJ(X47ҵ7[qv,3 bT PEJ_ o`ٸwI]_o#5~kbqX=CNG>gw6R1e': AbϛBbĚB)yZo.',\7U+o1]&[NPbZtaJ_&7ˉ-Nx#senE*$olWy{ڦ6g&Ϝ|jU2C)*<9Jf-.|7X:uoxg #rfq8*`?&ݺV Ҹ.`38Sqg~. N_,cȑT.Ai ѿh޺פy/#0J_R+}5zPkBU3L8u`ȜDc8&BҾ >$n.Ѻ.AWbV_/Fp E\H`N!`].J# etԊ&5*>U.2H8}#CmK5m`oD?9q\q򏎁-#~C3FE5 pXch :[G jBcp^`G>R99jݵX5T}, p.|G'P0O"fϦyeO3#jER:pAf֬5s䓵:Od)kaAK7x>2!nJ#!FbXldgɕ>VFVI3.(E 4:-YeHEIk[Y+ҒmONcMۢ%$bz{w>]{a.W3HZD}q-Vk]:7\ޝy:m^/䂮/ _" yk/=:n沢Kec|(obO>m֯{2Ma7ciQzCbW,P˯<:uE4㻋'bѤz4M:;^9hR"mcCީ~`q}b;z)XGQc{H^_|yNjgNJEwh_zi G>9}ٔ.#6oN ]!+Riֿs|hxzt?9xvF9{(j2W~o~5bMb ͡bg?KMi!}n >]=o}mz}k>heWg} mпuO璯ZkKNlʪ]5Yѡuf'zJ[˞OahUgďJ,*zڅQgҺrn1.TiH}O|BU&Z`zq  z~pxFMXqv 8kHKBˏ> "f޹ZWzgc׮>d(Mnh()՘j@OPf֢M l0ƘkGf<곱 ꌳ- >ѿO^Zx`ϱ)-0&[MmvqmNVWuTc~֏dELK D ]ٌg G1_ڡ1ǬY/ Xļdr|K,ҞAOZ{'wu?YHy7M9hYҵ!!;gם]RX:X\ ,Uml"rdz]!6&bkʪEC64*cVD7=|; I5]p7 \xcch{ؾ[nqX@ >! #li=x(SzbVlbZڬRvf!nEJ%_޿Ⴢֈ7.ᚐ|ik[BЊBƝw/m6JѶ*y*/MJ۾OMǖIr(G;?~}wO: Oj~\b)+vx{Dlg[eiz+Kr*̝um-[4$E[M~ _޲KN415)nvWiY|>zR /1u=uWTeVXE|pMhjs!k5+C߬z{U%$%Ifosz d }N@q{ UԧbU޻Q{ cC]!"Wh%)o$}4gۤf 'umY-xY)^3 t>U|wy}z\r C oM*_i!/ʋ[D,!M::Fsg .+@sa` !x^ۈ.nQ\+9+cd wP*ab~/rqQEO6,Ɍiscz&e];yo]BIqC]ZhK6$qLBC?zCvFMތ?{BZ=R~M1{vbRݍO`D imfAE)?y/y%Hoad7%9&{7b==T`C* qSio`DkxW;ft+'9a,w Ufz|ɉ9葠3+h9˕Wm!6*z g`;>9}G+R92z5_}WrvfѶ Oy >~U<)4vzk K&;&ц^!z䌌wiYkNړ N(bwuirnY{mґgӌg-/Ϩ`ϭ^p0Vd΀/iG/LxN9[aZy5e u]f旛 7jD{/$-Ay*oPw9_Rx4GΧo1 whyk{_=V~ծ]uh"O^[s*(6|^ YUf+p5x[UVfOuG{3[9w)*|rSBv,wXizx]&7DɥHwۜʶ٧Ny:N-:At-Zqdu26AlL5>uNHzB}]b|,KDjWD`PKUWMg߫(dwindows10-signing/signtool.exe]{xTH򺋲%ʪkc1Ā.ܕ 0DlQ#"&e-Xi-*XRk% $BVo\-6l3#r=9sf̙3gIWI&IJR$~w6; /4Yeoi[fͼY7ɚ5['fr9wbadݬفrb |? Ϧ~>x1y=O[Mܜ91?y\ñ#IInXBGwi|Ӭ~~ߑEcצ3\IEH5Ul ,KvKQ4N%U#\i&uBm&A՛LŐH߀by5?gy供c. ?{$={ךPgLq QLʜH5 22TWb<5sGx̟w2aN͙w n02D)~^KQlZ67q^ hq& O+ӱ|gFvTރ2Pڋ^D,EelJCip)3WMKU'߿ R+Ny-Gn?j2cȌGQ֯dSRCjz=%>;trzj=l Dg."Xǰw9tO%WM{yI:Iv.};R#UR30e/2̶'t|1WDXyw'GI{)ڜS7 xc~NI Gg)YQ-բL}<_}eT$dT%u4,9 l%y'WBV%Ti7}E UԚQB=̥~ͳgyԿ wB߰lEڤ@{V"^b+B}WA| F"gXZ~dVb\iIQ}aH&=M[h)u콁^u \kނJ)GyZE='/+5]ɮSv{j~tIIjiDcOנ&*6=%I)$*Hʨ2_Qޝ7^hF2Um&$i+&ҡS B\2ЩE.SH @̦%OzR0*W[zb$b|vjk۞C QBy\m#& 4Ǒf|[Jݡ[LY7͔\ +%\Xuc}7_VmKYwQڨ&jiVzmCU](hj0+V;v \gsu'l7u=SJ Dþp+ ZњM0 |5`)Yyạ寀km=,#ת)!I yKCZ4*LこC&Ӌ6o-!63ݦMJNj,̋nD{i$]yl 9IHHH }aO-'[,* c|:TV~~RE_ QDv1OQwFmLC /'/p:uC]j!@[6?@ǥbȷh8Vgώھy$E!LJzGl8-TտХ~6DRjS"e,Eww7(,4f^:)عIQg7jveCJ|MFl5{(]{LD5 im_}(3ѻU.QQìs_ӾI7>ϫ.pz]70=6Q,^hN?7Z[:2@kaEEuYVw $RMJ<JZ6y=Pg+-Fo8Bbw_j-L%#$c3o0IL1\ҐAQ᭄vT28+E}[)x,qiUGPJ\iYק*^qaH $LJhB%Bxf♩48CzB:sR,Sy(1'@דu :ѹQ%ԓ?(Ъ&[}=%B`YwJOKGyۢ$PǻXQ1W׌f}(_a$eqoQP;3tm\6AsH({n.`A)* .@S 侖DTʱfoA|ϓH*h26<$G>埥JޟQ hx1Aվ DLHSQH&\3 k[$wJB Qq<]qω=7և-SG5Ƌd~F"}T0<A rg.F3w|; A󈛣sNa^2ebAወ4N'rĭ^D"¼Ϳ$2SWޮɄskzܧJ|[eo4zsYJǵI{as~ K׆yכ͚Svt">Ş"^%IvDxxAx;j+~Iw>GPbP"o:E(I+&J_~*Emh7)5iZc)k8F?1JJ = 9&NIq TB8rĄ[ж0 aE~G9g{:Lk M^M 7@m4ٕh\Λ{C$m4AikQB0^}ؾɋT5}=kcC~KSFm_=ء\:4bhި+ztdhbPe{t6z Sj֓fݔ)6I߭gC865z+ kP*2ۃy@!LTۭJ (cBSKIu2{S8zԖݡ! "}H3ظ.H44"',,:9+Lo?B)r;.xq_N 6=0p I0ٚxO|핢 \1j%廕KJN|! tmj~J6kDk ~<҉iMn@ /ֱ"JI}KF; fD"*Sbp'6CE th%1 Lc(K.c DPNLHeήlFmHܻl?G)8ӂ>*i#d,9:'+hs]{t&o,flh9Xnmھ~S5@W= y%y Z,|x9yMѦg^Dms1bm2ΧgM˳F{E Ƒl=BKd?OSnof,n=/hO^&Cҥ*! Hmf 2`^ fha͓QZ5nJ^H} j2%hҾ_:¤#Mh] X.uL7Cۨ_ѭnJ&CDqb sH%ë8˘ٛP,-~T"W>-BF%`MOQZOY@+ tqVLO Qx#%YSl!I962xl _~ / n_:)bd p7;R= kZWڈ, ;6kW|9Cbmy$ul?IsèsɍFrl$w\HF%ֳXub:4҄CCV]v{2 ڡz o E}n?Q2uk#^|xך ^ o_au>:ʧzv*$>Zp)A/].~NO*.Z:P54V˯cuC|.ȁ\d= d*&bMcyS|Ԗh̰f q%)j;L?2]ww7 yZhԥs/Lgj/M+>EVz0Ppe}reT%i"sn[P%DPV#M15!KAژ6i;JA"y S hHC} S&rV[ {QB#6{/9V,s~c&D!^frs(Da-m]y 7Gm>~Gأ\8Ƀ_1*90LJQ{W}t@/Ԟ/ͨF>}4k7p o"U| & V ,EqRLmwH4]1zn `S̀QTIT&/F/FhB xj`YS<0;8 6škˆ@ v?cyMN@+ܕW %${()DbTxXU4ʳX`4fj:O F/TBCm=}aulD7 NF @TۨSm/4g'Y{Mڌ?'_3S]OZMvJzb"FKY +.9*ȯyhwaAz>es֌'}0Ζ˄fY{IfK)4Dh~έө (ͨuXcw咽^FRU#pVyn՛Shje{3ڣ  RQ.Nԇ1ګs..4)uuxBoAs~)g plzLC1lĄ!bj/sJzV D591pqRhh\5V]^cB )ARg SZL *_d (6_/0+󽩼uԳ8z FwԨN~\R󋅤>0UHd|]-}%>k4kF#fwڦ\Gꞯ|䒄XbY+̈$ds .khE2skL,/w#8 A6;[iI\C{ŋ@}3$'x0B6e{bv&*8 z^HR[1K}k+t@ EŁT@A5c)_ O?=C{'u?a@cB3Pa =:%YAzLqić  _/ĶەB,<#iӜ2bkM<@RAڈInpZOY V=+Og< Tc5z \%wxiۑS(n0ھ,>l{1mش/< ^.Ų1ʲioF昷mpu@ W ~ԁop~x FV>5 ѦW {;jCv~ u-(y`% ez_Ʃ R=ŒSmIVN](RC+*96q^m!{ gl'g-׋ ]MD{svnf ȾEdgC\#r+r93EVegl ,=[y" g({.=RwJ޻Ej@:ޚ'VhA]]껑ٽS^pCC"VG.&#O,X   yryWA&b쮜S_ŪV;:I,8 ͼORNTXQ9tU2 B#X#3&l]a"ҲjώE+%8nÉ۾ԍ :JщS5{Pơk lX -梟NDV_v>>u H)=2|iEdž[yT"®Xq-^ D¹Q}^%=o+GtSIГ}$KtWB=+ Z(joZJ,$&Cb*c!1]xG j28gYUJjhs0s:f.Fguai=.n Y +oGBa3C. PyP94jWvd(Z+ْwFzlxɃA=NDƼjģ`VJN{!Wi b69c疾`VaM,L;)3%o\-u("sJE4@)ͮ+M1<)xOǐwC E; j d&)]\X@I?+ꨶ3FMYu\ vEt&WT|`-V&yk8o*2j*ai?GRptAz5|߯.V_w"*V7Rжl%|*4vBK>[ .ϻ3]$х0fJ.bdOmŶJ $RCZi h)Zj}4ob* +'dw`|SL2M|]M)(iB-D-'ˢY:\"byA %y K&$.UsEO+#B8 ķAu?1Y,nn8X8Ģ4⫭#8S0B"LT)uED"kV1M(t.BX *h&W\D-:M}Q]盙1={[ޱx D~`jݽ샬e$ęE&"S NNQ]Ε]iJs4hYi^hL )J#}ggڊ3OCF 4.}y:!91$Sʌ\~y*eγwBuK>#\L2}3y"ocy&*gӊG C>ycR2]\ 5Yg)܄%z7aZ_II:-~ߍ QV9>({w"/Үǯ0PP:EX3Xl'gӁ~)@P2Ӛ,\PvYlm {,1dlE)80 qi.utE| b0;hA|D-l4SRCӛ$.ްb1AX(|߂1mGQ$S%<҈>p!#}:&bݑ=7E81ChAm b+7jQi uN ~E["uBp DUwQ䗛9d7ނ<_vh灓c+>YGFh*8pHbTY7{ [~F />6ESӸeD̅ϐaIM(R@݉-g87 k@/q0iߣX6hSqȫElx>uL M^S[ 䍅epuQ'//-c+\+_}ԿʄPG̝DV4( W"R`7]:^AWЧZ8= T;+1Ҋ=V+N2= L4Lyu- qKV.2 gSK+!4Iv79bؾs8^ηrt>F\NR% 8b;jr +> tm@|AaY9u/M'|ן oNoMw嵭(TB O186*f$^oq՗/38xC.j oatw-6(6F՛C>Ja!u(;/ [Pz:Ơdž+&ODp;'nGZUWB?º pRvd-bC(e`苁YFwBYŀHцVm![75$2Jbؘ͎Mqldk$^,>18F虄zT"mHF0p+ť0} wVqխ&I=n(=( \~+ر3;x°R&/0u6o5EPWN)㱾oX]7~ 27Rye0078F݈>$59vA?O}j7waEm?.i/-%#%)Al6Vrٞm,UC7%'.cԛЈ-(;$䉞B]|:@ GSU tfՐopA둨ۗ<3S\֪t9F,ף{WcҔ8X̵}k$N ^L&\_~^^x%D+V1gjbjj0p.@R-+9TW=_3qD?Wн'{nwsʂA(".J.h Q$H(N64 geo*&ڠ$qn{yRfF~!=Uw-1'i/ر0/E̚s Jb5M`¥ hyGK0O"bkdR^ɉKAq-ާU}t5dS4zwmtv+ttێډriر;v: "v&b|!:J;l֝Y|5W>L 4)qp\ {7EV3b$H>b!wӟU"]="`DŽ%*Xx8pT3Y-C3dLѰCBV|#C$O'$dwc MwDzWet6ExeL;zQ<[`YɿN ڋ)d;`mz0HɃAV K)z#eX$"tZl$Ȳ+h=Ю8Oϼ(&b6@RM .tp8$`a!J65H &IMؐZ֙p" 4eNOn/ vBn8N.7JܐUKXq?)˄ d yqaW dU-USݷ΋ċgĊb..K됰"zkh蕓7tay'6G?1k'"00鶐I+дػiGETLo{- IcH~'YB%7k|0# ZJ'oDz-7|c|>::⦟zbc j?‡@5{UTJ[4!Ÿ0 @@J>ٷ8mgM̻] q!gBĂx^ MU5| |/9g3 4BKz=F?v{_m=jojٺ"*ԃV+6KiC7Ƌ::tmڄ%ЇZ-ǫ[юO''q8Ej Ytd~~N+܎;k0w iйkd n;/}vRT3?#$q'SZ;ι0 ƵI\sW .5Ĺԧ;sJRkip);EpOu.ZO'SRKMKFq}4&O{bE Z}5.3\63.B\z C[S M;|u;q0$W wS[mJMĵыbIܙ\&\qhؼ8q7N>%uN#AbnAn:zI8Mt6vz&OKﱯ!hJWk6{|WU6U]UF;tg7bn?1jb>KB#uge=F‰#ms o7zi.Ìֻ} Ggo F :|wwFl-&^Ls+]33(Уb8>" _x%'p!o_z*+kpQX 4ۜ.|1LSw3x>JK0N؜1<;[ aA0RER]QL؋8þZrރdROH;bz0tzMcg)F9َWTV MHĥ\UgO$g_{Ҿk68uKǜ 9_ l7vڏ` cUyRşo󈖊Oi' -\a<&J HvGFjAfebt{4uM,+~Ptk+ԣ08ށt4|;'r9*qH9D74J+ h!aI h ]E<\jځz~/SgKT$Hr$7 w@щ ڝ>Oawʞ]ķ>xH=oQ;/7M7$|r/(Ǎ3:ڱȞ=U[mMF[D ц)wCnsk(+pT#rO_V>@͖7nYv_"vmlUQ:sV)'w\fĥfq܊xP$:(1SO<'fJOl-RcI1/|ZDn;ST^ +V%Lw\xm| sRgkHV^N^| O( :9ʊc ~5od۟be)p4ED *:'j3 =KNb>B*' }BvjvQp/Zx{'bny$u^xlӝON&twkdQ- ŊwQsgtG#_r;遞&v|eؕ*5I>LqZad(5kgP"*dѬFIdDf&1nօnՋر׊+tmAKT% ծ$'oqh?$`e%]&i\$i#v3cۑ>ǩ`RwMxӁg65 |Ӽ)9翘f]vWVonqs)|ך$R 8 7ߎٺڐ#te׋4.>X`JCoRyi0G{U6Fg =3O)/~<0#OOȚCHb>,AA/#Ju haSCuuDu<ӫtm4zTYFE_|<~uϲ.u‰v5 \yݶ1&4ONR(bр ļ P6ȶ/k"JI~09ޢs,W;Œǒ,K|3ՃɆ30ƻƻl۬2t6hujD̦h{qOD,Q%ws!yͥo~83Gq]zEؗqqӛJC B3;-< ]nu:P(8N&ePY( ǹC׳,)S {xTWVXƺ"zaFBwT:DiFM|22D&:NZTf\`.)^@gj |~؋UuFQC$DkUg,G#;ŜUlDэTq7^x+$ѭ+$y ?ʛהL8]SZ"oZKR&4z#)Vȋ🁙Q.#z;[0MS.-tg9E$ g:dV{bۍG yl+S; :L%2إG\GO3lmcǻH~|dE9V:;u:;oص sQp7(pIs;ޟ;8H/]z߂ X&4+:es¬vܤǍFNUT)=% }"uj }•m<t=4Σ YHR12 ~{+/ŋ? Or[[s!C8.) q.byGJPJ'.p 6=xGd%b~&-;;{V.1$_q s=*I67/8 0 8DҀCևV Ivsy{ʙı~̕I:2FCآ2Upe)W!,=k[XB ٵ'rշ3/8^G^DQ|d>=Ձ+ i3`ZHcnd)Y|.=>gCö4=9SyUIT`;aPlj['n1Nyy}OQV6(sv$M:T#\~z]#3%G V%$&W Y 5>{Y zLp' wZYvAְkǞkTwC;x G#nHr6M&aW }'w("5DVXA2BI *{,B! "3f(Xu.1#iDˆ?(NFxݗ`J"nL.8 Æ)@W g,ZŢkus/xu]' ʻ/c3)=k1@8^= )jK#i\`6ȐS&@@*g/ )DZuvw7iSu|ge(dLBew[T)(J )w5CbҿK;W:=/Oj띖h/~lD(fd~i0:%?1s5P@&;u4l=d]I{x+4|)|TI@H̔SVN1[d//Bʈ/RuMA f @jG<W)h"87#-|a0cgF[A-"WO;h~_$ci̗?K!{C$,\t=j^gV;`^4o ?X9_ LuюmCnuqJ݆CO`'2tU:P;;q} Mn(%Cxp)fvUt1*Z6fXy&p"飫{!? K6O&ސwv>I8dYK-3.+.s&' Od'~q&1>?. <Cbuw;$J%1Sfuvx99;k,tT}-'澀&HU!dXÔ;#j:hmWiޙ-ʵ:g/-5akXZ"i?C9.~%ߋ ы._+6Ŗ#\ڕG흣FPk$-?Qv2O T4r/yT<ەcS[K5H/W8 aqêx  DZ+4} X dG:rx(0k888F8Ocdž*76 M:5Own GYK:ۺ[ZQnplig8YΑRV.}l9?Qrx[w}7?S22X9a]csGNK. |'=rAt羁X{l<6J%zO=xRšD/3e^D)l*S`ىG!CY$mgRBA8/L#ɞrLAm ߁I`p/;SqۮO觊| >79;-|.V[սswΏ5$&3"«[]_~M\*1cG[צĦkUU$Œ9zF½\ .'s/cYߨ"6ur/폫=|L_?Q}x9ܧn$Խe8~PZ!@YJ@(vF> {(|3$jI}'Ⱥ޼)$#iLj-+X-*Tzc]E/0Tѱ@>*耖&lYzOYْqXl\TQ}+>Z`~ Q*^지gWoCR9QkJݶ!?~i+hVw03i6_ T!2{O;qqU2Y2(zDP/%ODu@hO&ɦ?LD~6!y @!LL:4Oc.Ӡi}tq˗)\/9v`~-j%7޹T3f߳K0Jx+.b|k~ WVIII]ϓbVV J7'x21tWmZeX~ccYnLXԱFŒcizW ťck~|}?ԎK-Rt{䲦Tlqt}VRbdphGpVľyS7s7])sc)_6iy'#B9؉ߍ^z(34EFbaj#o.Cw+?7:8n/,y`%h ׇLZoכh.Ȯ<16܌W9eRݣʻ57/pT6Ӷ7$_+:6y>ӿbP?\ )۱wt,_/G=/;,ZPuЇzq\&zd hRf;ku($2 W˝OjGW㙵xgLwѾ[ВGоG7ݶh`;Ke>yO3̢dJgI܈wvl]y[=>FD;0EH-6ohceS%-$RD4N2P5{d:RxZ/O0:TK ܥ'rbr1qL3l2Rr&} -A3EW$_L$Y@mz*?VVt-U7EqJ1Z5PmyyI;z=){mr%Pr*cX@8EL/U-%YP_!V>^ }(!Eoy? }p + qds&GNaED(Aۀ)Cq)AAGRmuB(a\5)De k]zJV?椭k8M))fx# 뱄 U\ uOTOZi0G;H|M*TnfNU_M3`DJ.v{xe(=Q+=VFZzQmPdursNK0^qKh΅o@,^V;Ԑh6vp[x/U=H3=ZM&7!$ӿ ;f]: }lk"d;ˌHTaDAKE!=.(*<,'Ybd֔}#K2~b*0)TLi$ӫLm~H M25qw*ONma:m#qƤGgT熲;,Gs؊dٛRq2G6Ȧpyy;;9DA ? kۺ64P_{g^w$SdeZZ'PorhyP3\¸ yvb_hw96 Fx>ʖ* 3)+ߧ{i>EV $zQ$CD,+USpuDu'{LaK;ß մ#"-v d~ wGWrMA0F_6xSx\n((E_qC]Epl[ѰZjQ04ZR%Vtb6n gVE>.(BF<6G36,(] Qn''6&`gۮ}ǛMUׄ=z}MLeWQ 1`mYϘ[N}[;^r/.. ћ.Oy-sNO4?nąךo%klVs[o;o0)Lf錤LjTMf7v{hD [inB%_$C9x+#BܑLTOgw|'G6Q { kZ= KrfVձ΀)Ml) yX:t/J+0cxktzH@f8|(2ք/B7Cz#ݼQeB~'se|0?Ýp7 (МL~䇘̺Q.V`_&QELT\_ ܷo t aq1eOw4.d7yjg0#SQSzV$K4Q}`Uv3J xYpR"{:o&h n=Nf'u.&jg=ɚrT5xH7*g7C~.A﫻 {0X14 v0#`w(i\F@jÁ8FIRD4VqT ~l &mA0,s{ƼvQRU-g+dNUqfR >Ĩ*19&>;[fbQWe;H ]$pTt1$\Ltz>Sϊ>'9 &vχ%}C4n9Hc,eL'_e~Љ2tA_Y7L=+4}Z:}`[*=kJTʶ~Gًˣ{9H7<߸=^.^N'r$L w"iжV; ,eн+Ett*>/#Hz**MޖE%뷴%*M<t B(<#RR`=^6pXܧ;1C@K {_pּMǕޱ% %)t)Ud]#1 1OyM? \`{0nh&)]Utx8$/M,C J+L6Zc&T1 *> =x>N^§\t,ݱw6Нs8u"./{w8)?EW 9\!+e8rRYeBre|I,Eox /5fL}9\@sԿ9M4/s6R?oEFg~K.Tc߈/߸i.C]fmnll4t68:g ֛$ԁlQ zp,Q.&,]#\͡OGQYɺ2&G`Qs<]/ȃ `\DZ,b6S(aW^fŏGeP|6FtTgMKLٷڻ*+<2cRdh&pctr$d_o\;.p5b VCB8\n JpӏT(GnmkX@#<{$vl)[ιyEt"Jt54cr1uy)ܨ tA˜e`/ j~@_`hHV%-v~70Qd+-c$O15,YLRo z̉R=RD~G)4@-+V7 *SP$|c$𼋯`BUkqãβ?l5ٰT}ƕ1p6=ϣ3w十KlSt|mlX.v՟V޿`W]gHGJ:ǩ>(Ծhj_ZhjGPrfq1}ƩbptS1Jrԧ-'Z?Nb?tq':|/qvl+qqW޹ub8Y;c&޹.I΄$wg2O3S6ԯm:8#.{3t~KOtS_ũPBh#6N?S~g8˸LF[]Het/} sHZ ,!쪑z {2DRc75֪~c r5_\CN҆"A$нG;*hab.1K *1̤28"/zyDͱv.|d3 {f}Ьݪ݁znpR,XasN-ۈ47,O.{(l.M: ؕy_+XM;P52 neVk:lDM7&NJx$*!0+3E361`n VG;.b*s/4;={b%vC/qsG cM.nB/!4 a ~(!}n6M5wa-{Ԝ{9֘&=* 9Qs6q؜f=w0rf9_✏?=)Qo4Ux_m @L`W!>F9s^9}Z}DH&9.N;?}n?Qw)A0n7HlA}|ć> 7@<}.Όy c=TWq MbG{heшVCъ,~z*ȏ r"^ #89uMHuκX, 4Ze8 N[d+\XnRrQ)wU$$,!FTfY0l,\C-pv|f Δey+K /.Hϣ3k\_mUr ,kAr9=?Gr+g|;ŌAHP)>\Y?3F7+|>r|G gGȰ[|ߗAF0Ҡʫk#Do,4q_"zlI uVJX~|iR襸Ҭރ):YCd"d݄s E%_ ԭ'aF~Z'=.lA>?Imgfu}>cXr?~j'ϼtAaɟLg rO`yP^Zj98;; },}B%8`p) 2fݢMl Hf{%\Ao%bBj ?OpM(\daU"Zź^RBʊFCi!@L,Å9ٺ`rO ق!ev87qQ2=0:SyqXO}jhMNR"/ʅO=#p\M8.̭D{I0^ENp4~z.^Bڙa9nۏF7UǦ?.LZ -g~ՄР3~^rSFZw l,i)Ds ci2plxxU ZmBx42fK@iuoYZC^p7n@~r^xȂ_BC}S7|Ѕ>O di l3^PI:fQۛFW E-OýD?o2 ؚWnc} tfB=箤?ҟ~'֣AGVT駲6&ݠbm?zi=CO7Sz1C}Z3A'4hM"h }VZ zCieР}_@'j;4hO*D" Ѡ?Р)W@34h:E@Vڗ֢V JK} V'h}C>A >f DK7E ZA# B֠K֠Yy4QdmުA-*tAЉt$hh5Ap!K=| վtć qXҘ3_\o!l:8tBFH1"Mzz 6sJn!=0-),7t TvM%'@$BbeRG-1дI[ŲؓX ʹX [bv xVMDP)UxDPR7v7c!?aCR wj'j%gtWr%ZI!{cKrfVr۟nJ'Ւm݉1%+ J? :v3lv3l`'=}c 2(| 1Jc.a%Y IU`näb 1 ̜eУ_B0((cnE5J ^ u=Ѯ\&2>Gvey/aFp'ն̮|z٥̱Sل`HPlĺ۱"a9 ^8_F'!E٤ePY/))Q xDu0a];9"lKpDJz݁&׎$-[|`_ 1B 2ΘفcsǼU5 jv.F3ɼW f2J­z\[2,4=JҵVL%T*hNԃ|!q] bZ^ff"4DL*k?~2k1>s2f49j3%Mfp=Ƙ+Jn \؂Oͨ>F\`TKL4hK"+\ ]3jjnWmUw/UoƌswF3#f{k 1QѰ^EW0+뷇U.UDΛ%|8KJ D(PEE5ñWHuI8̏q/=:֫|VTO ^;y;\?mf], i!'̲둩 Dǟ > ٹ}$š|V"#MJpZRN^);瑎4W5b1D" L6 $K*ϡ*U|!ZEV !·@ٜD}CTϳk3躣F~S&I!jTt-v"H΢w񑓒Xv5êa?S0$V')WN]D=0FiEWeo髒_-@|Xws™l}c-ƉbyTo2D]q?1<X?6YŠXڣb.2 FX{Jѣ)o#3/C?M[}cdej!Pd&7hz=;1P?#B$u ?ByufQSq`;rV|Ύ>dZNdfB' \任++hN!wQSvGIMHY-@~[Rt2-Ugᑢy𣵇aǭ8=‰)8ZDМ 7Q)7߉QB{vְ]Uln&4kNP[CoD:F6*NsWUug27H"F %,J`Dgx3De"HfʪhmնV[* HPԊ Vq@*$ ιLP|˼{9_XtIWd(]VuvpzV>֚RV|'U,f3ܒb|juts`'^R?̀u\4c0`R5i V=82AګK* 8MP}Roxi_J ΢UC>^\DQK4k*G2އe lՌO{ż/B6Ն3ԟRϴPd2 }JEҮjkڣ/։a x5B1Q1:4~&x~YV1tYc3?ϰ(Ux'~>mY8 T0qnVJ$ !+WYzY~}+1-HFֱdi1י.%FIL.G%vVq5LZe! WC D[hKdtI_=LpOPZt^?e /Ǚډ,B+I T.5{pt\HV(JrKRqC;ٖmyS" fZ,f{^g1hO}-<3CG עd+*[ÐP'89AZ)>4s8'AsGgs:a?_"s/'8N7ڢr_:{KK[gc"mޜ( !e7B==ihk1cU `/c!7Q ?,ٔ'fb)\h(d3m\ghL"Wn_oV5c|fCE-I/(sq1ΤyH[q Ƀ$t6}~H008|YWT)>{?, &# C⿡7dz!}4dKq,rmV-xQu.//@in:!!]nMⷞ6wR C0[tw[~hsf2pze ˠsABf*/4v>6)|3b2/ .ʊ+CǧDVM6+%8Q9?2;8}26k-f:]&h$񥘷 "5(4s|!poB翳NeCm:%{K愶B^s #N&Ar(",,Ne݅D+I'_g]/d'Zˤ*QK(XCI CKҖ㒎Nj[iܨZ`Y/ݱ^}axkD-IP)*z3OV&Ւ4f I .(Hݸ#IzX2u.¯GBկ=}3 6mzN=K dhD!ĉZIi+#-x?B7 nޜ&HHcEn  G\!x| 4 G|oKcFo Y^^|B"SjԩS,s}9DS?G% H˟ڡHmuNjT}ۨJmmض{ÆMZo88Y[;~bw Sqj!T( ^+!>LkEr|Kk`6i :Aقũ-df@/ et_&$<Q!T¢tvq?R-='T.H' )Pg>R [aobH Y/7'R"C& | 9L?]- CllLqTg1EUKL4* %D6T8b CQ > B*_C@q;Q^CF_00< (D.&Ed9UD4=Nwz|J} ?dȀ)Hf}\PHOă9^ȃK``pSyd!/o5np&vz?sf ~&z̝Iׯdn~uАRBY;A:Wc`Dt ^LZҎ;tw߉p ݆!F!M0ieU6]wܡ3{!F\q94Y鼨k͠M 1gk5!U<Ϡ L Z{"1?t&~&m5q.+d2.c74C/8 Rh ;n ?t56@3>Loao`u_ K5-;f`gsE:ȘދFax%L_~|(eOF[d$GHb)}̺x')9 ɜ7lq( Waiy byȖ^7pp0بiqS[8DImH!ײ&ĚT)ԯrRז?/%\' nH$8'"+F-S(uпlb?䬡LpiMI/LެK}DlF@Ep!z@1G1Ss*}j 3D70=q ʹ@}c69=2Sl}aeL9umJ '1:8H ~39y;_A^6&!znB"Z&I~TZ7?*_<+kBe䬂6z|ކ[NQHv4FȉOs$G/,ipS9 AcnxX<zԈFo(ӿo 44.܂鈴-dy[Uwo >م_s_klhNsb#n+?,=hnDV[E*Ne[gz&5 pvOyC]TGvk! n>{AO]=1 Jx>5!c)r"LE,G rdw hg[WmG<<=Gt8=t' ! ׁu^n @Yv6Bz4!вxBD~x0o,NT 2y0+ϯarF < XRfQhk~|#v;e?곶ɑ_ЁYWj ثkS};jώ`tt;&lPWT0\erg+vkh|g9XЁ, (blV2N3fRxf- SJwIosKEI?rH%g9Poar3En9]^aagN7 nx&t5VS9),5ԓݸx~I.;Cv`S<{3@e1ܩsS{f^w1hTԨ6b=G!AzN*7K>ƽs#'JTmڙȚ]0"|l> C)G,EPZxa&ڗGn>I.7PLΦ`ώьJ͟2Dl T~%Aګ7qQZu ~1G=-@CGK/\) 8Nv_9j5㵯__Ǟ6*Uw(ŕY^Jkgաjs5<L@% ?v8D.ܠyU:p8U0[:ÞD?껯ǻ}Ӻs`uMO֝;iݹ϶ܴɺR'⫿#g rd VZ|{ůbF2=3L|]M6}A/YGOW ,䷐ݵ~`Bim">@v,aO L'@LiV˜ guJa| ( A[T88߁Ŷd YaOmL #F60KI 3͘a [@>?swsɁs^HAJAĔ8B)! -]!x[77F+A:/vPDʂ&FdHG\)Bi~q-ꏘ) kWi!!]5,a0?ɕ]kx ;8@yLnSpƽ|Jl?3*fѹM6׍TQw u֪.AhF1tđs;Ձ.bFg6ڹs()}mbF .~PmIu>n5IN!0S8o0u0JV`_`eTwY+ ڹoY׷^;YVɽ ~ }duivo]O]&m(gP0lx]-Eܗə6Z-~#ZQ&|]l"7N+њm s8%f|}8.نT6q)|ڲ^A3c4&1v5KGJh9z#so~ћґuD^XO֙IA;<5fݤtNx*oqk[g ̦m;ZNlm6qc0z xe7csi9| p6*Lm¢߼'!`R0S?}mB+< Ҕ)3#r2%;Qs;BA2RHtqd&N#]⋸ƇI6-4inl}?Om}Y\оHjFKIsCd 8w \Xkk,=x}Io ^|>^|9V7Tu%bWl0 t-ݤ_K<ł% .#sl5ᓙC~,Mf22mrQ =y>Y`.*+ﲢ+^ ;F/)8ťؠfp`OVze8bscG<Ѭ(R@;Xѹ#Ȣ9$ށh NImXެגǯ̹%EU KidckhElUj;P9acGއ Nچ20tFapO *}XUKMmďNdLp:mKYt:۱- *Npc^ısсcTLNPpl ;!zJrCDΚIu>bK`;'OOM>SeᱳC{!)~nౘHW|9BfZ,-sWo Z#{!52aFQrOv]L-%ھF?t;6R9$tt~s{9OgCW/ #EXdq8}vhH.*) /{S/BmdDH˹s9GqK{9"c>+4b_ݍ9R7pG7&He0/t)Z~;Zۂ̔t+ísqhc\ |{ 8n֥'zic/|r'>#ɌT;m.@]E@ 5S=UkvU%l DeZ:C2w^؝5V^WWm`G^B6{cRWlq;)i^O9 Ч;43q0]75ttrR%86Ʒvе'wd o}(O6([]g㷽D].p}3W7lo7هgYn54|W9 3MXKf ¶u.=R̺X(&= 4EPgׯϫ4=hO͵~@Uvv፝1It''A]$҃pBxLG'[,~e$;M_t[/Ujkdz]_lepe7 FuX 1Ev$1PAy'xsrC)Z/Amo[0318_ZI&J./t|xVV]l5`#v?>E ´hܱlrZׁ]Z[['V.@x7. \1>&Cm<y ]AQBK&ۨ?݅toҚk^]о" Hضd(^ 7Px5PhF]GܒZdCXH+v6lTV}y'W[i&t-va(DŽOh9{6bL˼'chB# *>.D[4ƫ29{&)cf'S I88N '/+t,q/i)v; Hի6L(-|_)85HףȎ{^ώ;.(:"@l> MkFTNS3(3EyD] v(}K<̆ -;zXL5_ D{2T6"Gq3RLw}zSmr@kf@i[M2'hT2fiUKŝx6EE=\dZt TAqʦċh2!(1fˊb49f{i(CLtcf xP S[t ۰OސrTؘ*𩱤(=9/| .~0K (:(M[1",$& Afh\R G&}clň#xhu.͡{&!y̘PGr^ӮܛhܛN,v/~(NY;ɘw4wp)x)Qyu8p|4::ڷ3iuQr4K*EO>F@k-hZa_noKC,{15@JړLQ bQZ|a_lå)Gl{:ۖk&ST1::ԃʼcpR~ )Bϳ5/h Bi]ཚe.[ bߔc ߔԛL 鼪u 'jv8&b1qٌ :}xSDv74(on^rf+QNP MR FҼ19C -[y4NLleH\ ?V7o4Lr?0$A] \ RK.YU 1Y/0'<nqQ[UG*pC(`e`P)Ϝ|RL˲5teop@ ΄NtN + ĐPCQ|HNފ~٘PM ^Z0r cd%#_q HX'M3qTmGK{'$L(Z'dԍtqO[G۷W\)l)geO|-:SBټ 1&uOC =Q-u, ~je6[Ue7+Y],"Jsw[٘nSRc@\e^䕴,d]Dح&:Ϗ`&H`0;ROE.[g k& K)Z ijבvJ@w#_Q- b: Pq!-O&EQӡG wSRkLc T%\MTA.?{:>E˷r,$gyYaԨ'Qyd1T6C4MS6vI 4sNu懣27T=[;Jr|xYԼ`#m{079c2;ʖ?Wwb4X9[ִ;M+c'n[Qp#9Y(%1KTuEio..ͧgkKV6>l em9+T79\g! firZܩzjЬ-ܬtx Ez5v:#MZq_pW)@ϗR_ѽbZN%Z.qkN$ݙhVjH +3z [&MAos@9Ot~mx/kQ'C=kxuYBSCzJ:*a&j*XJ(DbʞZuETu;(⹢DxMMQvoÀ}|*; <YdF-$Ck}Hsi_}n6!w Dmufӣ*ZϚ:rBLPGTS>7δ ڹlYn!ef4e% ]P n6忍; RJ/Xe,e֦22(J0sɏ b(K\샢)ޣfVcWŢ$_>fs:h&I^`SLoط=Ob?̛fgNh}4 ?Z^iC΂=v31S>0S6pTLj}s­e]Dx 6jDxq(IŗX",rt6#SPWm9R9;~=Cs5.vZ i0غY#Sf e tjI6ۀ0?73f~?J/oI]XAgͽ:UyO9 H(ExL4)MHQO)B3kMcEMձCɎC.ނq|JMʡilQ%;)b"E\EXDD 6Iosmᕶn4 Mee9@?};=`ƝuN "ϫ 0{]H"7創-qG垔#Q,6nS1wfMcdZ sP[9vi {%R|~J(`0zAd<ow?jwε+]T߽^ QiYuF;yJ[r_ l铊Axa.iƿlo.'1nF| "mѮWc +fec}IiW'!ܺwYi1af6Ե  0 &lHcpvHonBESIqr'f3^af4߉w>3<ć(D]$s'dXA9šoXΞ Co}#s gpup=9O"#LBy{< e Go|6G9uqXCrg8Q˅qOxQv| 5l~Mfަw\k; *}]MW0#sjqq[&*G3wyiY C`L;LX0.Zlڽ?B0Y7Շ3 a(|v~Q_ F}4[-NGݻ[^\Cg]bbW|V~gWgtu!]a~͙,\( 5j%*Mgw{qZYV#.K#% قp#4,Bžی{3GdqtG#mb,x KO67x.g]jIP2fhdU܍=+΃yڹހi\隭!fF&WEVLMlġO:%8 R"*R7*1BQK_N%]]dP`A`N_AQRE݈8e`~0paH9 'y QFVb1Y^C,3t p{&yg$7fIRӔ3KM Fb{0| nj@ yKq~ &{|ίsl:p"U8$@t<,kYdwIz)G ~winILCNpi$uP/јSLTF95][z&:GDQTR[lr=9r q*"{1¾E:P4{o 0fSP )/7` xK;.o26KJoO(5gYPU t]Plb?}H|GPV "/lg@$`3wDz2\![9LBt8/Vz>t\bϔ&N}$~‰QU]ey#~ "CeLK] 7xSesch2bN}$$K#)%(GAhe#4n#~<;'>i=?{~t{W%gwue~|)G},ޑ=Q3#G7:?nO? Fo7{0 m<Lsk|!h#TU'2 )(w%~bmH&@#Q[ ѻ\?׫/?.`9Ai? ;H> u9Z$`oL-/({C<Jlz cI6Dl}Зwu>DKֺ ?zS% k'{٣|ٹExTcb0Z`HdI2FK`˚1Qz_kfGq+_~5Gί|CgRlx1/V&Vp ’_Gv2Nbw6ژh^?~mo06 毥*YXW%է[דFQ/:EÇA8*xd٧ؚ<0FH#Ľаx3` ++1QFY06B OE&|JR=MIæHۡbEt<+5 \-yaIJ>+TfAg7V&Ժ\O,h`*^|+\狦敶dG}Y1>Hg%9/M:8;/QK#`oal+JsM6~,8!G\~C+ _>FfY71:j_O|]@x@':ߗͨk+/:  !r?5mnp0Z 4mqyI)]m $@Z]*/| M nhz\~|]I d !K wE}Pzh\ݼ WViXrJu;${: S'jQhZV#'gO :XZvQ[x~+eeM=tDRR @ 3]I໴<3.Z7 N2nn\n\B,Դp~% ⅝.M0q4&ٮ [6")xI[H5{ɇ'0;ly3 T/Zm&@YSV5%S!Ǻ taԗGZ:!M ~'߈Hr75t5ٚ<- Jqo8 mH%3+ɅsYW;ى,F6/Gqi0 1$86)ɾQ  >M6 GOoQxޜ4gX9+4K8.91@Pl9!?PblTB;j؈?ı?[4~$I%X%7&zF)׽ƟSA%~sbXpQ̏P k"I= 0t#c]CPOGH٪[4#:"j@Ҿ˽[,p^,ZހҪ<qϣ>06!f~Wjs 鳩΋.;&̓N*K%;*\ ;S.awPG-hMhtE!7pt"}yko°>5ˮ0ͣ`L4441g*s#.#ʆ9 ‡H:M1"i}vnK-PWK4u8w>p{<5r|e[{Ӊ-cn߿sW}Y[W7>6KA > sMPJު"9 %#mVź-җVu?jYӈ)xۺ Jbk@tYQwպ; _}c43˿KgX~_UKȶ`y}toM׷pZK ,b4ۥwY+B?*[У8%3CSiv6Z.D 9{ixj' gSp IgP蜖/?Tib{Rh}l."W /ZwmJy}JwalipkW^ֳ{5A,~ڞ  @rvg-6W]+jpKR5=Sf -dCXzd% rB|\O\W;|'~ K"Y :m9L SF惤 RQFD?l,ȮHCk4@QZjTIAt|)2%maU%#maCM>\zdoq_a @7\9 e] &ugv$"~??lG KOD$-Ϯl[ڏCkѧXU> xaD(G˂/6 G!m`HY$d%Y$q$uXL5Bcǫҵ|*B*J~4@F4;FW J"z6ӕX 0zo66Õ- oi>9ZS'8hJmF,4DZJیGtsĭ{~P6Wқ[m-1鳁'~ns8 }w#"o~ NCuc( F]A6O"1c %)]]$9q4 F:?,F<2M86"4|/&5ҤFCG5r5z7S3\kN!oַ0U2S>ǰ>P'|Cw8cf M \EԂuL?Ilq2U J{ėuIڠ%Ѯ86-g R-ܗly|V}KUfdS8Wxrg\b‚h˅{}aB7`+OȞ ^H} Njsj,Viy;ugO] HnO3D-oA)~vnz@/VnGzx%8;`еt-] +^fF*^v\OJC /-+pbE]+' hF+Nz2arQ4n'<~ތHgt4f!VIE I?(! Cas%~zfPmOX$C-}Fۂ`雅{9g氊HV4b&2$ȍk,r'co 7?Y+-`oȜJ/[p;da;o#n 6 _kŰR2t W^uH E ʞd΄83Lzz l?D8(ݯF({Y5wӽ9(#w3,y0ͫD<-F7|S6Ьǝ˷cs)(Xdތ~ˈG:xG-FBkTC3=a(q* IQ8_Cȍt *X {}L{7$qjerjC.OFJx|*p*^֋l ;nrk\]^>뇺@C?iTxXjS3d"AdFd^Nr?E7bo=.Geu 5seg,e6w-'CWdq+1@oCU\.t^<ю&pFH}XD?x$AL4zrL,k#'ah[- @{Dk^bkD{sC3MKϕLIL{O~WݖxaB}Bh-;†MnXxM>|Xl1u=.Ҟ{i ;HJ ajl aVҤNo1PWs^bїޚkֳ1ks tD;$hxjgs-ue+k*[6k +^MΜ7œ:7Lԧk*KTN\i!m:I/9mk)2fW01Њar؂*z³cRw^n>B1qwL 6! 8џB ZJY(2̘D=5(bZHn7UƇ}뻿#Y̢Ǽ&epkcTg&Z9ZմGIpҶ^{N@~R,h#VM<6,dyV׌H5 0gWǘN -,[8g ڎ|X)}n^gfU8"g }*sEy 1^CPY9ip AepױXA54u 21,Y^85Yg՞sh =3mѓv/α>pԌjXo&y{ ;l+R0IQY4WP沋}ٓ3<(Jw؝P#JWsv~H᡼9oTSFF;`dZ7C'1cRboސW9͊'XC+<|B89DŶf''t h`d{_ʏE!~r)$lx6BʄHDSBk21|w;hW7W3j ֞;$8}h_<ژ^ű 4!J8xvnӐ:W`ՋOY)c6N)F[6b#C:~K랹}S*1-6#U ml׆.] e&+WΝ_rE 1GYX!E**5n v;p2&V}r1ECݖ;j8F9o LjG/.?vXR`_.18Nt2>q 8"m3NxҹdD: 1^{ ul?bO'{v\7}B@v s/׺.VD xWAJߢқ8PZ#;8 jWkø >*wUǖbUkĮڀ-? |;?׽+^ʘG΢Rb HQqU\vܨz ~&Ka&k" e~e`OX/BPA+$P؉3/07~C=4T>aUS&Q;rC;h46#v{ģխd5{+"6SF>!q1y?oy0F3ʚ^"f;g ,=N6}q?Dy ]]#Ɯ!Y3 yPv~Qv[߈ONGp<8duXsc%ZBkFkM%ˎ<}ρjvY*`Fae}Tk2nyK ?M@F;j0Gsx!Nc&rI"yӮ U'ak)i1$'@ԲHV5 ?Ƣcfs-7Mlu&[S<[p&n)veZK$Ok6Ɵ g5K5Y'"Kx 6%k ;-p^R-rrp}GUt80:j][ ԖZ > =^72.uی.,] K@{V0ugk$&0>L%qBԶ%x}}M=/_(O{n`ܲGpsQGD3bò|, ,"=7O ^^cnˌ&YX./K3!C>z_"n%h|u}`ͥ[Z#zN7yY$*.*͡?x<˥pMÑb4=g tDpPeLkDFK1lkkHŢנoռĉ0| ǮpBdRsQ*|t|xc|XX$P>0\?Akvhz'AEqsc]8 /uc'yq)-Z~_ZcBzKN~]o<~V]hUc(^#F=^_Q[dIvgf!L#:x/ QdK#nO2[9vstyUP{4ki94bZ,w''f26Mnv,YXBd?t R}e "rK]Ry,/^5R`L9%dh,UXO6={o4EAni5:2+@MULM͕qZKzTI cg: >[!=0*zN.⟗yxf"5.̄z&"AQ'O;/p b\YE3ǫ)Z5W}{L})"/cG:WTE2_Us]*+413kL6fSFcmVqAOI %йcgѝ4ּw9fC0R8ֲKv^_fVd*ˤG3b=k4zj";yr9TC̟ERШ:T}NWL1&pgE ,s!G\lcHjB\Zi8Gl |ii87F9Doa82u8Ŋ̢*]YB;IfB^Sw$|_ |;J&0f{FVGMnpWso>G 3A5/On D9Q4ٵrI%& 6~ )YC9X)%+}">iÇMxphDj+C$ӄ2 DW`*H ioLT!q"zyn吼O&JEgAlߜ@a:7Ha u7/OoTdU5jC& \Z0-Pnw ;mt4 7U7+3%6#^l9v%9Tʝ]ͅuT8xV{ƽVtX t4߻wK~}}lxp BL8'`Bcn]J !DzԱ:幏bN6]3@_Ƅ?~ dq7ZH\3 M`Fm&/4G@\Y,N!^^ɉwU2н)4 ~37|g3qWy6DĊYO-H eU9[sĂC̜22rgHu s$lni..3;4h=Lcl; _(I Jt r ' rla 9^]lZ\ͪh'dȈ#Jy#;"ȕ\&EaafTedDgYR Dj`Fkc5lz XV, -l  gDP+&چ3zE5+,HVZ[-ڎw/lg6G e9+oM]Q)ĆЏERGlr:y8 ,g֗Lav>[B~|gT@\'k0Zn`%h ]L%uf/X--*E *I:jP s`OB\-2otHȯbeWxX`័?Rgl#տL$;5 J{uMr%)jVR{'Ӓ-V~ Cl`_tgx@WP<2$ƃ`Le7A\!q,H|ٵ6zOBm|.ْ$z&PfDE8Q~&oPɾ*i-ܷk f7?fT+.o7 Zq2wTVƿ QIO(t GM/uU?j2EzOoA]oǮ0^ 9Z=R%6_83lESl8Wmڍ 7*vr|5@6}ŲKl}[8g>>ayCg -L3}],͗\/\0\,j-Etզ̴ yV %8 We"< t6D;Z\˞ ?jށ1W0d t㝗x<Tu{ g[Vk/j<fך>ClMHgo #i3d%Fm?qW$E!ToIMXX(XMKG"ԩ}pk'zLʻ={]=V.d&8_r5ޅ}P/Ӗތ129g|M 9VC#:uNPlЉ:+atn#:Sr)vcUF;0 #:Ä]UHy3NZ,ag uZ-&3c#$`p4,TΧ'94)2-A@^leyU˼e^^|hs{Gct{ ؃J@fs@4\(kiL".wӀݰm2s [CsoqlՏ6_+_m,ٷ 2-Cb;}~&Ͻ FYM -&瓍&瓵']ڝ|Ҫ$'ڪy쯾$>gV@>6Фϵ vdݿ۽zca٣ΟVCCUyEYM|o;+$ vvIs 8!O ͯ2T=9eqΫhEdΖJ M YE@69JTОylFlU-YYߖ.kJ_'O>Ŋ$ C04.q3 Mtȳ^D?]̿ l-Ҭ4[;JIa^G{O>}+bɿbaq}Eq<^\SĪڭZT3LDC+S{oO.ĨkY#6c4. ?C;wC5^"PzϥSf:?(o'5Q߶Щ["RY{]ԵЌ\xKQ+x$+~~_g4ʶQW Q%3\p`|ߋ}m}f5Ib=2]O5tEwa9.̓[5/Yu~DB둔/|WK3E͜U!owQͼ-՞kWv I U8Afy4{2o,TvR^Hzq7x#,R(HtPkb;œ䧐X|##ΠRPcfU +C#8&˷todǨ7]9Mp&p,qU%ZNhlh,ACWs34kg7sڧ\y͜1,Q59c|,ᏧcE>J(y糼A09C;YXv8v6I^ucU54=_hHz`hCe#&|ʋ#BS%457v@#$l y4*`}GMyae,ID)tÒa-;[KߖQ0ܐHgZ ێHSჿh~?.H`L"j*xf55i["6%DzqTC㭁 ~DyI*_ ۦY0 h@8-~HJ {96\zCIGV9/ ,p_(BA.(ZJp|$3j~#KiGXYVL z#46ͣ4 rT6Xq(~;υ&ȊEhv P'l= _+ҏۡ-mȴDH ?zCyJZ^y-52oȬ|+8zjx퀹@~2)2jه\)ֲ1JpX@{ dE6;["D=*'98WgJ ,eHI`VJ&d8VS$0IKɕ tK`N| \"$pVI`H`J> LK9_W"c$0_s%pΕ , \"* tHp` b'co#M0$0_$0GJL $}p|?[ےRRI2:}+ + &?)HW$p<D̢8e=m4qaou+.$nn_t+nulA,x̘ljm- d%.ְ^oX:iӭPU11'S8X.쉰u8$IBuVR_/Pև > k"eyCB{b V8AD`i%g -Zɨ =BPKtEDPKu":A<`Q<`tTQIPFPQ ʞJȸKXQ0u^Ý 8~{%b,N1W|1<uOxMfׇ8J%|2H?yec4 jtC`x4І+դңT{p_z'FNtA4:@5GH*(l#A=m!-A[ TER@:Dvv;Kw$h3A[ A9w E z AXG At+AMз " !J$R A_}mhԒ? jA{ J!s"TVԗtt5Aԏ z*n`CcO#M&^ v&f#(6 t5A J&hA4mO4=C :&^'Av(AMPAE&!#l_>&Azg Rz)-&ha28L\Lb!nq)Y((/D( Ijob}GvmpAJJNX 8Q3d\y ;z]n05;FmV`}.X9t Lx`ʭ_x"Z˷=2sN7լPXg(աg #^{MauriUGV6 pBLhǞw#[3NL_I]u)\!/Gg몲 R(4Gq'a<t%jcTCLV L_-P];)v#p5M+LLd?cC)VAJhCWM ]n&4|tsg"bI~)q+5D3Ÿ±uV^ )&)kX;H$a4Ȼ?l79T#oSϵ󞕜Ym[bئx(UCSk7lgB1koXO"%~7Sp%P;t @gfƒrYfbZ4s\0gyxb;=>ПXMSGc(Ӂ=sxL;Լp<unI=~CI.7n(X6m5$TDUJ%Kwkؤ(Ix+6OT\ᄁ/X ?G6.sTCuZvVqp_/EIX%I9䖦?ct<$ߖfۗL )9%ه4IXqO`t[][y[#H'jZO>/=kiN-bt-Q".%!D쥠IX>Jڊ&.&H:2`SOe~X[ <-K1&h`J#K Y̅tyNx"dMM!a} 5U8-9i\/[)[4;e˩: a0k6B'LEeL2Ytbv)];LLJWHS jT:$w[(E93>&uo[iw#TPc̙#?-WFS49zS@[o.+٫ 9]\^2'nH8gRA$̞aEo@{78xh엳:4[}?qè".>k~sdwh޸cZxN~n[3DVuo/W~븕 fjPؒچ;u7/ʭN=;4+*-5ݰy(UJ:SSE|Ǒׁ5N z"[u')G/wW!gf O10Blfbk鏛yBkHRo/M-MO !PhIa $rrދ?syFJF3QbIg02ata!}آ@泟Ig WheQi[&X<1oÛbʌt]6sWIV\-gj=f.G??ʑ_y9 w|OgX ? 0αˮ`5k{4cԬש/ćcⱧӪ9anC:HUF;vpd:M7~[M̯)u7Zt{ӟuNi7XiwDab+g]/3:0hhZɿm5hThс'oF72w| 4jR6T(¼sHDb;~x2{Oh5Vh;6LQ6o^] nގBρ^uR{}!h#7am>r5mQ)~wP%-Ιn&!q 5G70+ AҖiOcuk9n؎LC\WiQW0됚=[11Hߓ1k& ?>N7,|tUӹk5o{6BCMs/?!$U5Q8~Xէ6ș1\"فXV\%utɡmC_baF.K=„ BL7Hi<ӑ1!nߣ^:ѭ hf$\/n,^5#@)| oFjYb#zos&)7 WͶaͷD gM3^Y[˪=Ȓ2a<v9g.6 _:BX]pCX9%9|÷HF~=oYFLHݍWR˱ h #(oznZ W9=S?ˤO3aVN+XupDY3}L5,ALYo֮* giib@Hju5 M T,ֽ.8q%"[!T(:6: Ђ *ŵ̫AYĒ9セ&,||4{{{cS24~6&]Do &m?ѿ̫ߵjEM!~A8uD *JB n\KZ%**@H@J Y,"hib\}kg߇ɜ|[վ`tޱX`$eՓ{UZ9csY5Q B;c0R&zPo]Af|yxGjv7 u}&xо܉c>|2e$Cfnf3scpKsY\ԔUWYé;hf` ?>a@o$]Z4{_F]2! =tw Q3h6;Ǐ6|HYq;4{=ҋ{Yr%φ}bۅfT8/:)B(G \b^w@x ?*Zm$XG=q#'=-¤~Ej_e-#<!-~0*K!w{? JSQ Ds-pQ#׆˘zW(sH_|q??b Z}݂71~*J_A}DhI] Sqîe`c9_9ʠ-7C73GFjqF]b2@6_|E)efw>Yq?g%|Hp;xsRZ(}0V΢v(r ^e?%sNGg0U֊9mEu(v2JMסWua2 ׀U &5nvp# )\ϧXު)=L멞ԉ+MO;w22cgN&} OSP(C/5?ħqahb0*p@6|I} 6~2l6l6M$M3IXvl&d24$TU6mfmz&݂Җ J,jX+ڗ.V*(ӽl5]('&GB/F@Ӆ6+9͜ I-4J43s؟b3(eg!-i ƹEbV(H:qs-e! }x8 (oHm&`mӷMUrVAOyMȅ;LP`;\<&idN3 d2=:<yK`*- yal#QY dOi e56߂|:Q6 aSԄm;/^A$DWNğ0c}UBZvy]}HYW:4ǡJ l/_xc" g^RhR6AteL~@қosPV%usҚiSt\D&沵n{O v* )_ckD(> H־~ucFZu\, LNԯ7&>טv n@.:ЈcÚ͑^cc_uϿ:?BB+>: =GЂ,(p's؅px*,80dg6L01tV+dՔ(+;8ZzƁgihۑg,(Dڰt_4>OCk=5<xNJ9J GdE茆BpXF@"I(UHiїׯ/їsM ' _qs+2-d,2ϸ Zsʹܾ ][ Bյ:W (m2g]DjYcrZS+ʰ[]vU5R$QO [J4cN39fs(V<%ҚpP|ehњFX*ٻQ"3nxqɧ^A%bKq H'@ >oU~&UCRA_+衶x #I5v\5NB2zsN'DXZuy.NH.L7糐wa-# ԻIR`\H 'sbd;Wg[ 01/l (`Zdat] (ZTbǻO|h?}ʏB$V JFySo57:dmƈ=;AOT谜g${x]Ua e/1NlBuрö4JiΠc(׳֡(yX #1X+XU^_zP-P + uqz {Q r $D1eS9d{+"-aJyX.SS 7`4.cb:uAX[4=g$g|z20OVu8^L)w4n+I/ 9R~>o܏G} Z42yYe0dsP9U\@^d DQY‰@c%Ŏ/*rw/>klbӯq=ҚG>ŧUsEdJ3؎W+)7HY# 72/I ì\z̹O槞d*|1bJb2gJ|Pauמ%Yŝ61ΐ?f~GmR[&;G|$>" '7-|6Q//6.fZ"'ekZb'˅WD- 7&u8v. V2ñBJt8X~I#f(wFdVY*+H93^2F4& jM}PWYJ|>5R/sow>~$C+SwlBKxLOXfrJbU223C>o'nn1Onݓ4}Wϟ" 4H#[}2%J #xM*^ZN g3zdw2Z *+ĮF cv̙ sG=+aڧO:< hSnVi3SA!-v&bO܈:.s ~KF9qXKo'<kk(K)~zR?~-5dTYM]cVA/e|Jy0D/^Kvyc!(ƒ6>*Fy$!gY9PG^Փg+Y}Ԣ /ȪIb=h+ZL8X@zzQ6jroG1>j{13J+K~ib^4dA0z+ӳWQ'[M.\*$+ԁ\ u؁p"tG^GĚ-^Vڕ^ ^M QC'χ!]UL&Al`Ү+Ţ]XL~ }-b`mu pf㓎C͈z,kR!)P1jz@ O@| LJ1h .:' liK=8M^$,WIUGNX {рB<MEo ~4)1:~XL)u\gy/:J渵jlIE93}#u@ڳTK@R60gS_ڽO."M:Tv " CЄ* ,~e+1#/5wl,T`ENc)Ȁ@Y)}-0@%9B>}ApK 9">Kj b?@.f p[Gܨd Z kuk㌺Q<6^d.e웯/p/dNf4}{ڿ S_:v!D O&)P? ؿF u 4}$41e+n' PEKSJ1 .<. VpQ4CKjZx }̓YuU- ֡2*=gXMvBcۼg(g0BYxn^,Loz:J71Fsyf63U`fI % G;I!e뭑qyC|mXтtdrQh^ yDs:x;K#Շvv2B&ڹ渿}gK˭:ڠuCƗzm90Z/ gX|[%[2cvt꡻? r eĮ4H֙LcmE8T""ٍ/ъuF$MZi:y:v"7Czp4p]ƣ@_̑|jyw*TsٮRM̗}+!E LL K,qX#T^ ] JKf^1hrşiD];U\MK}mbpR|[Rm^.8RxۡҖz~I߄o@K2$cu_D+z$3K^JQ TaY&3C%BGN><-/B6: =ȡp63)Τp[p,vq 7z$3+}JML3s4Coç-#4.Ed.Q_nVcl}@"ݢ%9W[U}xPl< 'ݫ|uعتeZf%Fn WL~1) C1.Q{P98f8'h۲+By$2HUwbF.zG ]qӮ$ұh|ϢlηFe;ކlȉVT9L̅ Bg%44QMC(a7#M4I"vqtXL *^>a  >+O!/Q%y[V?H %)G3{ϊ:W]p9GCȊ~"xos"8 p911 rס-۷:6 g7冯hm`d[7\wz5\琂>'e,6U8|H$qU+/뽨iHCYІ/jǃ}osF'k_&SeܤP|+6v8te^9_0(ɬ[TZ }@d}~'$7ۜd&(yo7y9W]#$߹?do/g&25A{ n΅d*\|'#|y'|W!W_ mq!~߹pA{F_\ɀ-͡\<R+toqH9ߕ|k~ù4*l7< atoACϨQRW 2%{`JV ^ws>ܹM~͢ ȤIKE, :u$|r!.ݙX⍘~hgxMۚcG4v-_ibRf?)ٔr!R>{TRSPdGAKE)EKNy>gc4+܁inSK鉝;:w* 1trtg 1=>[N'50C(/řs~- *t=NӗiBTx/z/cSE@g'IgIl! z#ݪ (P6k=TN!*>:7 m4|xch/#~/3}q' ,tYӔIXg=_i&ߘdxcdaYDvo;Ǵo 뇞jA7RęI?ڑvSrdH5uB,gt‹Xw; +9W9DzM  hY]"G3pC&yIkS֩@~䧵*WiUPAa_~1bg9*d7Թsԋ3fG1f ߢ)i=zCJvOuu%eF=5);֔e<7mDLt t2B0m"ٷ4jb-K:K&Erm!VGZ]`|rQZ!`3ϒyܑC14'}wUHL]x<ȬXIx`R/K<ヰڦ suȚ \BB| k4#.rE{Yr'o!&vFvxlpԜͻt2UJЋ{밉lF>',>:Ե{lgz\K9J )o͸,^@x{kFK? b8HSGAa >D ធO0OYݾhX{WSvQM4R Ҩ4ЫTTT6[Ͻef~gO)mw00kۭyG510)*ǡjNQZ  IA Q;5T_Lf ^l =JK\|=g:xgDI(nrb\Zn.ѾNq%҇ ԇ WVPlv~lpڭ2FWڇA,C8e$ 㑜̀P=@ITN6ѵb )Կuk}SR!|ӼaDkVIf(1oiyn|ͺ27Q3r tGq ȷéf ׿i1Hūi)u܉4 Sj⹓S#0)’r!RR\*)gh7c0D271Bz1GlEzn;zj ,LVqjQo.ɦê],vݡ?vREoYSl^oMm=1М}*>^ϾL˾@j%@=Zn'ٿe?%˱Okx"|<}uI3UKh{^tpn8 #B9hp =Xaz!c}+qGb!mil4CfFi@d,k9#zG2=QA U1uݣ&Ug=M<WN68h{y^ p-NEQ)СZ|wD3P!CkR]FO$)OHz1?8M.CsWpAM*o@":63y{9{#Z;qXp'r'l^BwBBfwwp :ftp\׺wy k.["ی}K##T*CA*LF5ZL}3ʦ 8=`O]@ C_4b;ImΧv@~xh}-[1P t?]D!u3 VvcQ=0cdRغ)&+aR>X.ȟe%u|GH+W~# *;Ʉ臲,iV&銂3X oH9`EVK:zOAGkLA?~}0tF%]L33鑨ל>s23G#G+,I`os:?Yr̥MTm;R~dKSb..?"̦EpXhի_3`QX \IYq* <ͤ [ Aǟ؆ >_&C}z^ޥ%62Lm5@l>VHN#6nGu[1lhkqd)ŷI k67,nEP_|9mܗ1mUN>]BxD/U-9TE13K!8ddhdw~`C] P`G H(dk@y y9՚FoMS:hc!,ؽՒ`>IJ+ l(V<ک+"wkrM3\me,hcO[]R5PS܏->x?h)@AKDBe` va1~Fj kXtF?s^{(r/8f0%Ĺӻ-0X~qAfbaF7Ll`b^keaD~ w8œ\p0ZVۻN菎(^wp6 !-] c^18 yF \=L SJ5;,q6|y,1Ԙh*(ҹA/zɤR "ם"U TF.!YCwQH k>]9:Mlq8tOMBA<))kdOs9Y~T.E ~[+vك7|ʆkR?4AAEv2c"M.JXuMcoƺNx!`>Ea*)PERzM?5ɕRqڕÂt<,`³{uZp !1 G6_^|XC>S S*\{n*JO10 {UtPєIאJ#lev퉄 ;67|F_;3v.ުoIoڍ"vxFŨaY6L;w!R%䃁Mʞ Ȏ鏛?'ҟ~w3mڋ<62wb9蠠 Do+O٠v䝘)u*}Zm{ys=GX2gG,6BiRU#l|IDܠ[dK Z(lS6^e>eȝI EQ (1Sm(Ytkv^Y.҈,M3D`X)Ia 7#۪^5IQYX*6_2}::'J|y.sq 5>ZI Y\T,ߟ#>.BD?"}&"۱CJs NhyʸR`>^6-w«#OY=r.;A*in!Y}+B'.:|KCRV Dt]4jq6#֫Fkc[K6`GGUբ*&פ:i/;f\W\Hs &ܮwwtoi90ܫ^ol>N:fѣnT{+tQ?n4Wܛ>Zu,Ѫ{CVW#)N#uo>!fAf{ +Lh1]5Wz,ֻ~9`6⎿kD#6˘x(Rr[/Yl*é{ {Uj3\n(~ *AalptpaK;.O:]%NF6zHYuH%AI6!M=]m@QFз 78n.=n _Zw?M uƹT_ O>i˝4J ;D[SrtptȓHn!-$V0P^ܧM^M>h.ֽ둉bQ."Nb!X]CVros'Kosg\ʼnQ`'ee?Kr9}t_8H]0HC.qMN{XAO<G8#@ĽPazs̳CSv: >}%|S~CwiK*|Ayʐ5\=FL$jK$*i2(QN<ކ<$* E ߉oh:]H0$^ חRlTwN>C̸]_`c>\>u/jl/PTy14iG}$d #$U1äm%Id)q4osM6'B$k1 zȌ=O GF;B%ƀb֢&L`xh]N e\U]1l, CHwơ_XSծG ϔ=HL9SFZ8D:4L]D`jTӫ4w(>n$pԵu]|V{(}Lv;"h0v ktd90JX0u`qPחiu}>4 *>FEE8DrW.h:t}}x0Ri1tiIdyc#l}7\/# 0J7jx8x  kH iiyْi!H`Ci`UE C|Lq ڢkr NOH7L.8MA/}~)0| (>+Nv@.L.-SWb@%^ 7:;C81]gS@@?W=6*xQQ@_>s^d1ĮΤW ;V\xϱCBH{A gu ~лŚ 68KNč'>v$,ZuҠRt*QZ"{r?;p&ä;L*Ň5NaQ|8WN$s N}'ʃec93p_`똽txIfiil4!vhY7|='d?"*B H(G5F $]̡B*PB|P>.O5;2<6狏Z 颌%OC"$'vf+\9+xq@LxuEV?14cl\<&s)H;;ܜr/CXSrJ&Mbi^,+2:8#\oV}oEz i'Nzo㽍]Щ΋0f- R QS 8S`$ՁwzzsІhiw7+M::0áQHHA1|FrV~;M!S)ۜLJ #I81%i'Vˆ+M>$6Ԗ ?y ^(ټP.Co~:ddu?|dt0i2uD}4@E!lv,Vo}F'݇uxՓ,|Np&n c`At.MXU DS4@,ݗKtvۧ3nqv%Qg|7r] *JX4]`HXPEobAp /#Z#B@aoۗ`~dߛy3\|wx*?BԕXtb" gnHZXO7Wn&( t~~]^md'榖Lo8 2D?2yXUuGpK꘯lI,'AyV;7a6q 5_:,$s[Ꮂ  aSL(E]O+bbH uO^n^C(yMpbmSb,2XX8 L)мɐ-8b+[7*ǩ hTf$kk< ?`/_;lF` GlhYǙ@?gBcV<"ؓ{H}䩾cc(.'LI/ C^,Fؕڛ dgŒ8"Xa8&Ib* UkrqJӦ"D$e6(|M2b%2b1 IC]k0@S7kEr-WtŹx s »#td=Y%bʛm}Z<]ZGY.,=ЊF6L%0!FT⚬XNWߘU%Cab$ϻ>(7Z^ { `ڛRd"xey, &0.!O/O9u4nL/cwni8b}|3å GIwJ~f4ɀooV ?J?*G(VI=y_XH1,OId^EYEpWћ HudΫ2t9S0) CX->-7ܸX 3s0ǐdbIv|"SI{ xJDaDKYwd}B:%^³;}S~|A-᥉D[{0tYt7nP+bxWcҞRE 4Zk~%>/k6? \uqg3UX Œ,ɑhI:P5`V |IeFOO(a|6,Vۧ9"E!&YO !*:{ȏ7wR6캐rRT=?~ ֶ.w d*q14(&[A {44/ZMJuh_(Fl\ί/b "g{RE5*bh~y1(Jm`&gQ"!KO[Vv0Pm]DJaVPs *V _ *̩1#zj6w(|(1]m-o;L1QAwO nT;h`X(flP:Sx3!٣쑁XYq+ltFǯ2vFUWtU't'3ҍ}llSO,7h?͜W9Nfw2[sḏl rPdn'^~vy2۲ɬxbuG?KNt5-?9L bddՋ[tnL<==]\h<sR(-$Q}Bo^hXVX0ceft*R04ɳE)^|MlŽ\#6(qoHyQ`]o[w,zT-D2#s]Hr.&\ɸ~r'~P%,5ؽ{ ADTbB)iqlt7Ep.t/E t \AP^H[d0Q VY&iP3XqM3T:I /`4QϣmB9MeApژlGŠa2:| f[8g/E}u{+deC vp ag?wAYNNPTTuQF' h YM^F5:T O#4Oj4VW#4 s蚑]o 4𛎪xlxU2"l;%[d#d1hqD {,ˀ`qvA.w Јq 8H.JaMeBTb;piuqON]ND~x>ڔOL).FȀ?zűⴂz>]`UlR 1)h3'3n8]#wŔs, "~cx{kFf`D!SyEZN=?+Ъ%7Rc)cf =c*%uIbO#KKlصvKr;VIl-b-R>͑,!.uN)M::4ssN oe#^SAh::L[>Og;T5;F, hJ*934YйBz_FuI[8fqI/P#crh;rBcqwp'_}cuH^ c^C?{F̃M@4$F:ߣ!AJP+  yBvr8ɭJw!/fMeQ(EFKz ']0~t;O3۟BXF>vCWSx@?F$7J,*+% ߝ`/ܺ }#:[~ dqKf- e>% ϋFA z@,x@)a)x%ϳfkiЖhPk||ZkB,:吓4i zt]+9ho_Qg0-/zUġΝX7 Ri\r--G/-.('},>1Zhl7%YRpQp тiڬ>>~eL-~%h5֗f֗khŲF-򬵰YjQ"*|DUQ{5Ptګku>ĸ)& X`h( wb?9KQ{`Vq3oT$,$!fښ%].DA8? T:Rs qѾ3*; lq-$E4KuHFB(]vJ5?%RZJ=*W,o|) 6f<t]0`]iY;Ǡ0,C -0RoY ,#~P4B*Gݻq#"njhBRgc7DB1uO!R|IXdɐ`=9>ZM8'vN_h>Y%8{QWq8Q6I/k9})d%=ŦSBHZN?RSlj<-lp'6;1+J\ͳo={5Z- _´8ј=Z,t[/Z|bmU6w IʧcL+EPX"{L$pɈ3ӻ4U1r")af}^XNz/OcVryNi1OZ+_Z NEϊ|;ls!"REN/ _C-VE~bdo79z$lȩV.杙>)S 6LUKv׀QvAED!< n۫П3R^w=@%#t?FA5[*K+6qt8_ 7ijq̐?;1C>Ofs3{\a'#6+ԳY=d64:Z<-B ⛛uvI⧨gYdn=?#x#;T]Ϟ ZPi]%p3Ģb]}֨-uܩٜ`QH4z+ԓsxT-fbWg3N+ͯpoF˩99Upz~ëHhy5 Ee5{1&e+AȇCꏶT;e0~4P'7"TS`ĭM9"7$T³ 7 ;T[{'mu=M'(fT`FQGǃBHz13\Ֆ\b7lh(e[|y[NEÎKh ]j)$Q[ tx7aRDz Y6 שm_TGBVۨ$)Zmb?i`۝MypN;8jn7g~s\ UTo(SGf+ɟ/ws=9O_HdHː7+?Nl3&X{\\FrGzsf W-?U AjrhJhCO[jWڧLN+DD%NW v_7EP^Z;>% .WM^Me D~A<\<17bUxcҎ6}c7̖`eݔՙ:ph@:~`D#BKdІ E Iu>,[zH rƻUn.J-@P?x"Knۅg/_$ :ifb>,X \C)|X~1ҕ%5pRR}g C4g섵2t]QP̄.N_NᏄLpgA#R@ʡ!#ODI$T]KM&sѹdAV*'U!+6^sɴɯ-+ ,YB Xl2 lXzbdYp:H:8_nјH?! 3,v*x_"2U7kxۜ1AglC[ #SĚT֓ף0eub  LM`O0i_ {Y6$Y,轰G\RMij&Z0v,nXzUO%3mjmPyrT3\(@>P6΅+8tCGz!hh}M(ˁ ǁJm<(k ?ErF9ͥ& .8?SRz"_$Okb7W|r&i:p8g_Q)aBo(A/4&jkT`eyڅ׻_&p;@wY"QUI<֨p@X7#g <(&+eExBMAewA|n1#BGs^IR5LRXt,%M<>f aYQl SX1FYڮ>b'[*nBPx`b.&m4hS/Fj.y-&yۢJa14L^Ny_&;,4Iq*S}Q[ ͯDyh/T}r)B(xMr=TD >#wBf+mX>fhoWs'hjM?Oߐ7ٌ?VS]pYOͱx4{ϐ7Dy .+f/Ck,YmVX9z\yqȩ*̔4b)fy8PWu D8\bv{ P &2a)T3b{!W ^~1HJ&ϻmyȕ}  :n۽}Auo.e1#z; 6\w+) k=aog S">ȀJK:1g3iFJn[tM%S8nD@h% )U@0b&)J$^}P7ޗ*KQo5:"q+]k#H1eX,@f ޘ:ػ%D7ZuT<[BiTSi{Ѹ5^ XcBhJڔ:u B-q h  A_xʩˍBY B.l{ ==7 5Qu*yGIHZH R('4T@:S eRRRD*Jn¾blPȭZq_be/5!; "%"pCi3%CN퇭FJ#}'Vx!!_6}x HX3PE^0L53x{ ]bb.?h\>%6wk.O3V,WU ~fexQ˪O]uz5s};&'g_> "fzIBD7sr }WvP+w[P$ɮ/aǾ 'Vcx]FnY־_Ov}j_J a w,qa\l4U:DTaҮbSjØbk{0}܎S :.O]_)fnM ;PX/ơ٘mmߒr 1(G{" C?jZ̜j0& I_ 7ZLnwD+?B@_k3TaHd{*-ĀZ%F'}[ 9Þu[(ltP-H}!+C[IJ6@ɪkjdUoNbޑ .0 ,3XɢCfdxmXʍNו""5)H7n3oJj\`@{$qv8~lIkFk]w#-7Jyƅ(>E~q^ldؠƜA!ƣvI£ !gShXZ?lҘ{ɇJ2$. 3cѸ*!X+ [],@{XY dcb{[Ʊ J}{4bm̻W&+WffBеT-R)TlVVL;oRݰv GP(M^Jߊ lۻIBDoɯf/9ʠC Vaa0l{ }uL Alf_"9xh &7gB#Em~M$ЍNj+k .βAj{yb^9CY)_ӽ[):7% ZkQ)>ɗĈŪ?u%،Vc[[i.[ t6fxgv\B8KUZ#0duN@c5]T :uraao^ B(*8oj & i!9c4v>N,YY:V_KkâkmgՔ|POFn# 2+'S(;8 b' ie+sϡ%ig oN3kCr1N<0&>S&y|Ɓ$R7-t}&859/tm19(hE׫SL!t:]@!fCT es!Q9dqsƣ^|k6VwgjZ4'ʷk`.VѶp@_(kDy9V5WяnF-knk-:NC2ePQY7+C=-JvL!*sGQDc~$Ad b74DMeH;`V;OPX%LS w*(pN30RRV0X/s.ϹǣC9ўAkeޙoT;Cex̐5[2kd_&!Ie]S%;H.ͤPeev#ۭ`qʲ *pęT̩h51hFƚo bEnrذi:2XvئG,Œh&CMॡ6"qC@|_IXBi,vp\ ^MS:GS\w AHP#.I5Х{LLN%ZaA$p` \L6^+`r[.%ݱ^ ޲kAv)F̊/c F̃11PqmUug&wӭ&^؉åc_:0Y+kW^!ݼ<؎qlQY3=3LK| Eљ,u+a-DAsd,[_GoU +w屄`rAo{MnU5vj[)Dw}ZE䏇,&爐1^|#KM}Nt_TZ׃yJJ>kO#Px{!i*Sv7I;ud=RY彤qyz#*ӉDB[2cdNZ0fAM%^ 4ߜ V8 ;TW/L!tJŃ|i<c1~4J˻bA: ?}Urk\|xZZRU}ST߯'%Gӓ=mGʖ+֢e+ jVvbYǡF$YKeg-mVuQ S8j 1pBC7zѝn]Q1qEnTϐ '_ ?1ڑwb[(rT9Ybڸ!c.5GtC]{Rꛫ2+ȱk$'֠e$Gw"Q9ᗪ#%G1Nn1Y>Sm=g3}6U\vJ~m- ƙPjTeY ^[oq=[@By GGj+_;YkW'*X PFW05C{9FD4fG+5u6Eh ā̢]/hsݍ!Df ڃu8Z0ڑLz fi[OrRw;ɪL{FG'1N_:^ww$B4ͬ:bA*H] L#pb'6G(TBphW[iZA-̻omzEԕ**Uzx" Fp zp_"(R˃(FZ :v ΙEy3)ezʽU9Y0 T_KQwqjǢSZ@8#3\Gwd[5MbYP(beF)LgDUUK_A5{za1/9RNLֆX,e"B ! /@ b3 u`X~-;VCZ㩾 Od?He$}mD5Di(|6uvGrrDmM5jk޲5Ҫyw:&OL($ϹCJqU݊Y7(WsTy*5U6K̰{"gҕLWןdS srHI0ꏾ2,>,SK֤΄3n}޽/`k6EZx6 ڙ&gO0\e¼sjLJud [8Tl$8o9ԓ\]Eײ`y*8V0{PfG}:ﺔҌ>;2',Mpd'Upe3p< `eF&8_ ēB\TsҔM=BrE<3XG~To׍6[L/""lOg)vKٯ .7.ds:}'n_\Kণg5 qO~\6mr W=!Lߞlr81Ʉo\6݌PM`{e&_`[YPaq נ忦k'gиt6k6.'#43SbLq)k 2SHS 0!dv5XryUN;SyׯQXx.|IX$y"``"0+[8%-5ɐv(-N>#Z0ϮƻZ2|+4_$,;?Uv +[K׸Jgz =p* ^"*T\r? _H%*Nr%n;ܥt0c/ؗw 8ב˒?.f_d [E.nq,VNnt"Z6פI9$8 pU+Jl 6FFzTvNVz¿ yo֝%L䰯OTzA9|\0 X',_{>XO˧/uRZC_\WoC &y?0 f~f`Z0?؋ɔІnv"-PW'I? {Qz?)\-]`iiy!ElYHKQ<ǘ7Ct;ݏ P(Gy XMث[Ek(#:}o |&b(<"}F ?qpyvoM) 9xe@Ӊsx ,f{\9qkjHy5džfә.=3FbCr8ߘbxǀiBCyM֝zCO1b]9FLaLIT@;>HG)/?W;숛ұ͈so|m ;#1 m?S5 z7T*7+g|˹ۑ$^e(\^_*=QOGr:zC\PN"WܨJ>KşAӘyIE_ڌj5 l-60^u"5 5LKV uA:"ڔtE--~te;dY-eÐ ޸u6r*rIrGB}{Cz E"9'4k{ph6k ?hO-2xɤ&j/C!1Lp21gbS>?mAۃr!} J`h;dfbɥՖY#a(º?|=r OuT7]dd~-PjXg>25d_3yiw ,>c8C|Xhfd(,.2Y.Fr )e~j~{6|^> b!pzA@ޓW]ᓤgQe.(DHJ83 WW˘BpzvylCqm<#:| \Y܄ : bW( '՟7 4y/l#3HOQ7"NIt@W Ë́;@VrZ>w5O=E/%Y. Q*> MNFKR,‹ގT4 &\I.F 胏AqZdWw_D6oL BoYxZ~>,"dNL*CjݓqP4)~](Z" #ݐ\jTKMɥϕ!\8]I#):BR ɥAҨȀV ;@K7 /3(ox\/p8'2ʺdxl^QzyʰDktf)"X]84" t|/xa4ż)X1|֍ߌֶE7V&7n;UG QxK .:9(h-$MJjE5}J ۷8عc;Urc#D>lT[ շ_N?P3͙ DY}?|[sq&ӲBdĹ>tBWbD{i; 'K,/Oi;K$Q>| -.̢ Hyn6۩^'zUd%Uxf3Oxy5U˪YzubHb͐[E s-+퀥wSi48`W<6+ O}ݴIuNOs.S3N&lx.|ˆ}AgR&YӇg!Ex^g1s}5WfгX*V"z2Lhia 5Tg7J^J! 3xzaP~Bp0o!ƒn}t_,y,Sm5p4vspe;{ڮ*GJrVl=7&d }4p q+ 0m{`\\?rT뷸sN Ec=Ωֳ@ c!50ݝ[P5TP*hGJE&;.i'"l!Ft)̈فP \BE*#Ў6ۯvH[sŷ՜B~+rZtKG*J(a9T>>q/o<ŵcdsU#<-Bsx69DZ=N~n|g~4e,oSjKs@+x涀EȝmrS8YNş03:"tx"sP^7m]}܂z|}߄C$>s :$ tAY}pxʨkcG\ 2?lh˽ 83<9]LQ叼5X (R)̒-*fDp?9gh8tOuDRĘky(ؑYį#tk<2?,#0vIJeܞ%[,(Cs-#K$D767w%N_t;TbFzw G4/eio:A[hҟlJ7B`v=CțZq#U/a!0Z[5"'ϯ |( Q T>O%"@kcH Qk]<_XƧ}=ܫByo6MP;?H)oΥUdYb_Fh*e@c'vʼeW00Jܴ< 7w-kRvwRKڼ5ʉ4z_mwuG8rpݠva&1{9{ŕ0?g,j.٣ -cq@V%NQ3vvH Za J0tؐ.ў/!})s7]%#"c7yYZ2?}ckuOOe]$إvxzb:o o[|,a4 A#CNG$~\A,NI ȩ74u\\lqCiƠ <1 ŀ˩\{yG҅mS D74>Qf\eȃEmM/['"`!LHI."w_>(C6?+]1FPāTqfүJF9;CQLo)"' \Ă)b@P/#_ә c i 1QBTҋhݔ(K GBA3OA &ӿz?e0#4vZ|疲hqk:/iNGiI^8ةdwc4 KWyu I;.Xw(t/~Y;'0e;dx'@/_whr1zapCǨæBw8s@wxcd'ç!tQ"g0\p(tܦ`;pvuzb6:m!c_w:RNDӧ:DOt,dtkNr~Rj//{#i3}LP0=KE;߁}JaP m qa݁$=7[{L >R+:0hwT >P~|E@?sE!l?.~O~vK"go+~vKI?Uxx_>(T?K}@BK iRAp՗ =O2Xտ6~z^kdЅ\/}*LՏ>G%d B22&3|J[)^|ԦM!ח. i]A`=h)wzPX[MEu4tFs@?Azet:@6f?MӁ游DP}5T"d',zЗQ nL$ 2#eݦ=_|κm|GFXpс?G[B,R, fYfO}$#8\R,tvnL:'NN/)-Uv@2 M@Ҵ#l;R;cDlC}w3O;GOK -uuGW|ko\!uw#_4L>XkD3JT.N)lƭ2Gr#kWo_AXA^>,~f1nxj7+W43u20b\Urv@Xaȅ]Ntg_5?^h*Um+vYϰڎjc~aW+K[L@3iXKE@up\(MdzE&.yp_ii$ٳv zKʦ HXnq\ᤄf~sP`|!+[9uW%MuX&DzOJղȪEQ]픪%bՕXUՀjMj)UWt&Uc ˋe-US[:BYpYO ߱#a'".ۅ %zFG?YW9Ps1 '׵tO`jqb.L>dM"-WOy .']d4#\_ {7%3'1J\_iUORQe&]e6UX)7~sLphoI(>_}җs%ZDbFvzB10H{c03fG{w:Cz#>0RwN;-ZKsqoe=HC &ImͥT'ɓ'hd=&;/Q,bÛ;ȶ ’ sJ T!x-Ltђz$5HGC$bNECjd8Gt+\߳d!b&~1Z V -m<=|j=-84Co'zNץ"mh'9%&&g]L@׳/I$GLB'N PHE32D +wPᩑh8r:79HZmJҪ/H ^Bx3$|}y]zʵ+!r(oF(ocp"sYD:ٱ,F22eN?r7p⦬믟02 xnwv@ 59.J[,iYGG%튰pZFa?:s2:#)+f5+Ze%V{'nD{ī[˫rGZǠVWYIUzh0e)9S*lt^XLN]мqD,dؒU'#MMj5mudv m :vl=SO]4XK%v-kje~lg@09ߎ4C) qpѲ;ŸβFRVBEp~H+g/<ѩ 3vql!#Z ;Gt8Ӟ@ m$Ϣ<"5ŠM|$z-bM0gҖ(0~P@1Hj^ܯ#ћI? 8D[$K$X>MĐB tNЕk76=DoP:pvy`Suk2rl10+`l-/)!Ҡ>Qn%(4*0?8׮B0mś?H̖W[ 2=ֲ 3yڰANC`*Z标Wv yk6e( ٜŏ ;3P!N](sbYtlFyv%v/ihgFFtļƳ3h'g͒+YG!ل6.MdJ`)MɋEx0ʌsʳ%"er)YҶ(7>g-7a`];y-/ey֙xf5[N;n6΂;*2c+Gwz<=`sa솨w" :-Ns/Ld)%b; TV"F>3 M09lfs҇h Iy[90!]S P9*_ݺ|XPr[;ӻ/AY!܋ ĵ9޸dڷR^ESvTmz5Ehu\-͛N[ʚY!r܀]EvGݰ*;s=ͥ뮵zxl&[=i%!d )ZSG*rdR&o:4},rA{< uWZAʴA",WzGx"Cgl^ N cuT&PE?[ޑo=uا9{ߘSʑ1 8ZK*L+t=Ef',iCHw kWk6؎Jnŕ3D碗ȒzߤW4)0HgT-~l0=S*~) a1rA=N|z[7荓-`M;~)(*6sim'ާ:d].ʓΖe={}Ž o nX{gLUW|綸vfu[clkOw9GՁqm=BS0'WOL l嚉uk1Qg6 kqĚ{n}*;2V7fZ[&i.W_c آMpq*85u@y'Pωh|(F>k2}[2x\V# 4oafo@F%ХmO@ E +.# kba[ ygJ*& ot ١&&oՙЯlyJ$:J675hozV?7X%/3G:&|V0^bo\Kk[grAw>UV0V =؁zFŒx# q7L@ LNo&$E} U<}F[<' Z1&:k?lV( )s_s_Fn5[`P\><ޑ`Uee'rks#]nm#> KpӴj%O1 bWMkpC:!؅GP͌#H7Υ 3J=u?0vO\8DaS pڙwQC:K'A(Oh^ϮwIţj>Ő*[Ҏ&&뜳 E=

Muh޷|?%}D i学]Tpgp 31|2L18ծ@y_Z di,ϖiY-gS'nF 62!bzޯTrws7@=|XQ}7&Z"'4@򘟈lPeܥ&bf('!p4n+; .;"^ػDcK'[ǷK~Ì <KO}="qzC[:W@}#߻C(L~5țP?Ó%u' &w?y4'W1B<- 'ҍfWsf@wM3ʙvZ;-4OqzS,:Pt0*=!sF CF\a \=ƶP.%Ѵf")߳K*RË'Ԝsk +̜oܧb&67{%M %Ù &lCoX4XƂ^nŃQ]9Jp݋S2؈=5Մ6A ;XP8gD1rtRsV`UXn2Ws@ glsi[ M.$B=ץδb8緲*A7>;'w/< TSs̸c^u;Y1ґs ԩU֢v$46(c=jq[^W?ޛq%Epe3koZ`g.O}/PoʚDᾁ݈HVE auPVPYJ4%}ko[#oBCx#nT7A{~@c}POw@-#z>X+6ucʞ0@3?8=AP:{; ``,F`>STh JJ`l`8GGoim,18tO1 J+hΏ-j 50Mʯa%f-mM/M{iJW='46 ML&#%OzٴX]_>Vۨk``<&?T0#UL2a5BL7P0 )}-)!Lv0TF TcN%LJjՠ٠#g8{Ig]95T!aFmXw*.e8)7 D2DE=G~({7w O; *:ծ)񑰷Gd՜ Nt>ϒ~ǷO_JƱ!J]N鷲6W|׼ATjn6o8d=sO&EWWu E DjcHo?GROk: 8""^t4?#s jx>!gR6 _JV@~XY%>'b55M,9b;mYI9oH) G чP<8<[M/6 rF rjcѦsudA@l D;Oī"n2-pLF((s+;FHn:[iִ q&RB'4sQxU9P751K|&!S$8uv5X 2KGHӦf|^"R$ );+{.*tI|m 7#/\?TE5.C_S1bmk~2׹59żJGluz>u%C+ո&_dQyuH4PX`WCو&QI"*M_])7PSh*!zEx{SD^ ?m&nmzѦ,mߣf? 3Fᾢb)}`u*'&7{ڴ*ygY^5">]y3bH6#]ߚ v&JV졵1 \\T^od29: b(#Gw?ߞ}nmSt[nwo֨[i7CzE_>u'Ҍ1ju[Rzݪ^yT$(1E=0%dQrq(%}Z4}I1[SS: ԱR|Ll̏VU m[&TGvg+q*N>] Fa<HkAx}qUn1;:"ך S53)K%"K;W4דu?i2khdd@U u.gY.ADN A*9Y\y嗈?v?^dҟ!3FWҶ \a6$WZ+̫^5WڢD\S> AN?:<nQCFիp%ٶ yC<\}JA[ w[DԚsD-lR<9[Zx}B7"H`\twErO ŧМ+7Wz;Z6%R\(ϡR~0`|Q~\CO44-r )>kh^亪t3#`cJ\M!V}AczwYdƕ;K' :۲x&- qd1b\//%3qD'62b5btj$p{#4uQ3w97)hj\]|F4_hGӼ0wʼp|(/*:P{Đ,q\nz%:Q]<>䙱Jkr|>ZvP[!"}HԍGͳV{k.4T`N9$݉žYG /5F}\ܾ]ܾ[}FZbh[ gB^qj=ˇ.D/av1 c+>M$#DbpM }wV} 5wS+}6K^Gņ˳+^*{8V־6ا}t^k'v@W8=w(=^ pz*HnJmVlfTDm-*m tUZN5C@iW{T~ Nu["6 (L`l h_ H|7Ag 6@ ,cW5 \\;/:#aBTM[BnF}/P A] лg+t yty*tj~?P}5:)vF5OW0wMJˡҦ*6ǤB"=%_]pOMBo~7PnzhC oD>_V0&DzU{ϯRǣ6ꥎB!m?Y~9j|VOV"r@|Ո\{ERE>>1i Z`Çb˼ U"99^Gd-3# _BG,Lx4mӞͿlU>*C8偑CFHetk##{2l~!8F *oQ{4['?)?qN ]pQ⢼(]jB[,$=;\6ⳇ~/@^mrظ?Da#c܎sc]jhǶ#ﯚ~Qw-iW誡RU-¶ywQZ TZ ~L/ZƮo:&VxĹ/#s*Oya^ѧc%k :٠ϓJV@}<'i^ZU1[xOݲ]?#?G0 2cO^]}\Uj\?,!٨; O{wtY1GZOs9"i iׇXLP ƨԣL5h$_n4IA8]6DsavcBg]oZG)kPI a™][aW9G~"QGά`UOM`%skqpO^~R BxĂ?GN"f Sn9[rA̘I*sR%IV1hTq̫S*0oɄٴ@mX3}a4m.ޢGJ| q-v AUg'gX eN[& k V7A(6d#1kClY&_ i} kg]C@>)\cxq J\tk∠ h6K ) t7HçI^1.zIsF!* #)v,ݲAk "AL'7 {/;|ix d>bgίF89=yڂ0߶c ̚Y <2M?1f _0^~9z`Xķʇg^RL:3QUA>2fD6 z*^ی~,zry lKEES:rx:]`3en KpI3 Om:u4;ja"v5T68uUsH5QgULa6rZj꓎oT ?+rxG1;kPqI3_=r4Ŗya:Ѓ}Av<=1nnNaU<5BZ"Lgck LSƨd]03eҬ5D^m;&0qYG1q'#&n&,,C}z~A?o;=nO)<5.sxF eoN?:>F]ߔc޺Zsn^c}[8uu񌜣O};PѯنCpnWCrO{b&[u ]"ĜO̕i"numwՇ%ɃS=Y>rJϰ^9'E}cHwy~+v)k/\>]e ydHZgf.c׋^|Vοy6,$hEǔ8srJO95gfWq|G(a6.1%-Wsٌ9"]'~?cSa]P, D C@&Eg-'D_}Nzd4l~GAFdD5]OEƧ?*أe9h~9=IJ[rwD^_*y@y*L ϸyͱI_Q<<-멨? gm#f^-³aix$EbabX# #ү]-C)lA#ד[1Om/xXhW^)"ٮecok\Z6@@@;OB u}(-E%p}(^cf! GCRe0Uץ[câ&`Lftt CaIh(F_q6 wE&tVHhYzt̞BQVM^\;u쏺tez)͚$2%uBAIuYp?/tzH2e/ar+;[%x %pM5n(Ph;:Q@̓*En;d~8Jp+%{RC;%ݶChPd w[.K_@k&aIZh>d;Oe*`g?E9oce_ ]4$< G;Џ?q'-A7PTe+Ttmk %T u߯Iz gH%am$\ oL3~*anp$,% o0K‘^/a=$"a HX/q(ݝt) - p~!f/NKpOo#WQ'wK^JF *PF·%HT| gIx7J8\*a [HIYu#ᣲ%tHlooK\?*$]IE'֙Kxu{x޷cO{vy}:ѱ?9崇!k/}%>Ob/I!/=*K~{+ޏaOr#Ҿ&ohcX_MCQG1 NiZhD{&C5d$W# #7~eGZ~HG28 j$S#9H pI~uY2'~, :G?ȼH.C_,^$#yɾH^C2/,U$K"ɆH.D2!# J$K"9d;K}Ѕ]e17o~gy a+o~:◇ZfXq_Cnt?@qt ]9еx;4ķ/,]ۑV⋥y8B|ߺ(UW @tw" ^͟ tW{eM:íA: 7fa=+洹_xk&})ϰM Е [Flya@ya qХ^@nua|(.8OPzGՅüXR+wՅKEՅ3t[#ygi֙y3,=uf~|X-x{{ۣ҅Mk0,zjF`0amX`fnc w>0f|py ͙=ÊQ<{ޝּ fPhtϷΙ?@!ͳܵH]u(q/@"?8iΤp'lÝNLge8D!s *ixͦZlGE~fsb 8HՏY-_Oq 碃D9{Ly3fp9wϟ5W'̞;sk< ݅d+n.BY p+!Ŀ~}SۯR߿o\;`<Ge$Ѓ&NDj xl{!_PN9#/ 8MBxoK-_ ,G7(H%♈Vq,nkd)_7 ?Q@*9J㬊MMI;KiӖTz,i i)c7MheiS P$ܡT\Xj8ԊTVAE^o͛yy^`lU*-UȿAoRMJ3 }~Qzp96$αxn$o%o"yɤء;d`[#OTk]= UZC9#٣g_F WR0kojY3z+s+@WJTYcxDykcKoxOx$GQx87vʾM֒^O3eltל$[}-,_xW\z E]3P@֠-tc}gD~exv#Vy`Jv4id.Pz>6|ȚV}yswcǺp}x7ӻZQ@k+oxw(R_W[(KeG{$؍bX*#m3=cgye}kcU}gpG99UhVw6b,ģM"eֻҮp]),_o=.5oL/01\Mp! RwtO>bgAJk_UƘ=ԶG%b^HҊzl M㪵3јm 04>hӾ*n::-1%NG{)VӦہR6 L7v"6c; #B5XP嵒Z)S;vao9`>CNYݭ1;hߑ$fO6J~c?x3Mwz7FO4ރCF0Rqf-Oއ q =:g.P1)]C-YeTc먼b{!/#5E`Ӎ.qݬhf菠dd!8(59}3Y]?f-V3l;`WLD|(bމRP4[yHYExÿJν \W*y.UXA2X:屈Bᥨ,@NK =Fh3M"vvlʯFڙbۆwvqĤ]cB6[#"5ydUN)FyO1 ]S@w4݊ ݆MӅ[?z_.b\oTktUj m r{=RheAf{VJ5_^3b^x[ iQy4D6jbh`D3FO3bdFsf#ϊ# O^ {=z0yizK+Fݛ~@$Nw'T+Wk}HYel%V}&sMfU#=MuZAeFZ HN,MlC 64J4OcJ#Ym1ۄ()yw+'5jP2َ7oWƵgAPەKTz+3n^mͰH@{Ui+od].1JZszg,Kf|jo鯎p+ 81 vgDx44Mۛ[.4ڹ{ej~Nn7;jl/6JSN=‹6+.;sjf[قۏ}ݐڅ>DN<Ρj[mGd}{LmO\EZfO/yM}KkaQR6Fbc\ax GVuZ[Ҥ6׷k"[B .7=sԹiQ(ň_"ȴȣ %"_vl|F>7}k:A}`ttD_s(.QmyU;:; m--5hcsK{~t'6NDr-#o}+Ѷ;"^d NoSGW;۹lE+Vں{~yi"YGDm]HF+A^ ˓Zm%Ҵ^08!)Bd ]/Msmڱ an]0E?;) Qe'5ێnn_7mjSXQ˫dT^b=>ίoTۀA`\RWu`p;rڄ!ʢ7F,_l^ CZ=گ+?Є8Ӫ8n^k;5C%|]qڲ?WJ9Ah4'üA0Qe^LHv\A=vEM6DØ.xu`[(5toK-GOuݯf^ħ^>qƢ.bbQO]f?0yK}D;jp@.1/Q.#jAqغ~AKpK: % ۆ^"+|v.MȪ`S}Wkdm{ckW _oĭO/vH0.O//eᕷtZ7iK΅:#[~-Ө1#-̱?'Sݭ.ƪv]R²ⓞD&vStis:G<.]oa$wD$i>ΜCsb^s/ٓJc}|r%2^?.~޵67>w|;y7=$nWʽWخs8/ה[DŜLJz&Gkct װyFW7NooOa.J瘹,=%Q]wvv4 ފܲ<*mv}_ĶNcc3 /r^ģnNlw0y oǖguj(qA >j֩C;!DM#Eq69Wꕡ4 }9$ؽ/;F=ekW_O+6j>NzcW|mp?Scw[z WJh>Ze@/ط%ί#R\\>*wŧ:*U-;pSG+N"@m#;uck[5"pX#KJӈm+}t> C#sz =_7]W7Wk|uL3FK4,ɞo:'z&ՍrL땬 swobMN`cVG@k+sZ/Q=ȳmQ&)#+-qI֨%j1Ny^}G YZnlXZ=̋ovO<Jhz$ALGL8x`-<ۅM?Diڼkm ז<`cBPqZax[x[5+BZ4߻3]hmi@axhςun$?4VSQM/nN/] hT&Ti$d/YQʱ mJ=Ո@hbk*X:,T߸]6]ab@ 3 "amLamX, @GԥZA"1£DWZ|coW{k |>0-b;M k M7WnXD!;lF?v^3[?7W9a϶܂9j?t?췠*:g=6uvNWwM=0?\*Rz&>ğjQI`u0'X(,`Ga^$ r/;M[;W^ ϑjD>›rSv |v-#K-|98_|z^z)w零os);v99pt[ ȣ*럫_8|=\R߶}}=Vc[GW[A""~[\z|k]o@MU ]^~͵޺ Η_P3|l:^>_Ƿ\G;$c@+_0w1q|n&/l26g fVePA7sǞjv瞇v!oH|%r~ ti߿K_ց>`Sߓ,h?oR?@Wؔot8Zo/૵鷈ƗFzA ]/g>.i?:xcZй# lg4T9^G#{ej|}6оayrT%;v].F޺zew:U|W߁:(3s z'/VL,@\^.ɀ}כxmK|oo77Z=hp֪6B/ [:<'y=@1pYqн6zCC6Xپkf8,oG|.?ͪ}IlI?nm̷[gN6ٯ3|؆/S<<닥$Keqp\lGV/qu>=6'rtpvw]ݸyߎLgk|T/$b׺FǷ/ 6қA/]"?SmNνax)c*4ρ_^Kp'|6|o,w}#7ސ=a/t$/|R6ٗ)I 1_-|,+A: Oܤ1ou7t">n-߷tΗNfkH"o7 ;t]ҩA_ogooG2SܽmFu@_]|Sw -QzQ}c-v]jG|n+lUx> _&ɸ2ΗO~ b+F3JGK*~lQ?_/:n8oP=eC;ԸO~RͣaI<'h7E|H/-+k7?*}]1 {je_ߪ}Ղ>l3@,MܷOwu:gxnG=f{ut(mK4>.sJ$0w%]C}>wYջF/qm?d{# |}@(v_7Wc?._/@;;z9.tQpKzZHh;yG]7uy^UO&m6[CzG1hzSOotI%Kk3˫m7B~ϰ#mGA~Y84<۫:`/Zo|FgQgS(H@73p/ JϤ f>Gb}@С-K_d߱oUҞ9,(_Mec}}v4ޓUYL6b~$IP[g#a) \,iK^$'I$IO&Ie^$=$ݚ}'CI|+5'Y%᫲'᫳ %yߵ$Jw73d^by{Fy$}0I$I+&I%IM&nIh\y㭰%7U#a. f|KK%7#a.94ϛc#a.y2oiyl-]98,:H^#+?(8f4*?I5m0I;,|[ex/ɺa goo-|Xd٪M:Vջom>-އGC[pGC[pݫ|՛Vmz鹲'͌>jݚ.,PKfhcwS$sKo|#F4Cp]L2b)Fo|ʌp#R8&i5vnp"ti>_cv/DWV̨\嵤Qb)jilDyxf!rLikYaK%ӶM0S:w̜|H{щM-NwģW >ѶTqscm6$.O]ve ik'FP]BoCju+}dHC@2+|_$m!u#Mr$2?X-pkDZlA/ҼѴ0c>| t鹠:;–jT;Í3|q]hZܙ!x\3Sʟ3OYC!w0||U|DE ~ t:U8Jzl b(<> !BY @i~Wqϥr{RXv?ZVG(mQyByE.AY">O%k/ӕfwr3:5uDe L7L3fO5%FP`NHqThȭquLUITY*Oq.mY~|Lcc)|cb _1w>{D z-2fG&%ƔX8=6o!:(E/f vXi̍5Jƌ_PwI=uQp1^VQ $ 5TVH,6=bTo4أWidA"xۘ1& jp q=~YIMϽJO="xr1?_#\< JLX_ްi2dj'V))ߪJΝ@q@0x H_7aUIӇtkg.=]l]k'@Sv읁Tu@*_H~k-#8 AB7/<"T# sJs6zG8wbd bVԥ>z63Δg?//d -q>mwŸ7>&+)^O'^$ .ۅ y$cdMr01 +wTE6te ]WoV^c,K^l[¸M^K]_ׄViE+Smf&sBmUzH|s.TyŊvxR1űh|؆%9J/#~^3U*Z;ҩ^r.NXY |'yC6V\l/zs~^ܫ@;eLڜWMSE̺{YEzŻ lRmnw)։y\˦o)/r ? NQϹQU9oT|{ovnٜ6xVE|32/Mg}-)U嬓r W˒7-Әb2g^ޥ.mı%2~ |JϖU9?ɤ{<9{ٳg^8.?2z=IUܞ;~ފ\GI60j02q|Z£+H}:m0ׂl+NWkrVTW+z/ײ0fTA63cQr}eYs=izn'>lD]Y?5=-*=wUrEc! M&(E.ECJ@zYצ!_'eqg"^]n* NqEnP1 ˀ|' j-tβ9:B ^BwCB?1:y%5g]3JL~ToR}>t_^fӿҋTEl~8xK"RO–YfSœ2ob8Oe+',}h/ òw5c|1}B{|dlxCA~` DztNBoxV@zq AIkA.|)_QKHԟWJ@*#@]o"ew5t8_TKo<-elI -9S_9ߨڰAzAcܠζ76 hPsoT,B-zA侨{)q} {6 g@ Iq@3 f iR9;ԿyS3Ԛ^o/7Mo)'l_Rzw}[_:3ڛ=sF1gL^}JdzF4x/<.u ׿^ مY%F1,ªE9_JcGթc&ۇv*gvyIgդĵټvFϼx߱~$OE4ȫ-x_ L~Hvd~ĉRT9x:.[qL6tE/k.z!z~ 8Ùr6p6El%;n_6mӷ$U7xҘ4u-롛ړ7dϤs Aob;:z_oJ;u }6q6"}'D~s:sE4v"XFSPչQuĮsyJnUm*OhkRdaucdMl]gJYccvs:xq]¿{jߝ}7.(1*5˜M`@vq|hӐs@P=wgT2eJ'{u?1rsTx2G;w:`+ptWTLO)q")./),mF{ZX7MR;m{5ݐ5$!N5 ts#zgt=6sb~#;}PEGɨC>[SwS @N٥U< 6Pypމ0m5LF b`\\/)<]+g"AvC%Dž }Lk|J{(>"W"HNG9Ws7ٰ7ʶU Q~2d>}?/`#n=@zR:'Va / |u ~[wOlcv6eNN ڲn'Ljii=˸B_c+ryբVѳ%!\(̀H5 .؎UQ8h {/Fe;@1Us1eg0>Pjao)gl>:tXj r7OCZ鸳W$},cr`1&; RZc$SԸʾԙ|`a ǯN_?gl@1ޗ%νJop=*_'^:lWIQһ;׃SSXYNW|s [1|K}>z]?"/JNǍN}\ zN  4#mKTһw$~e(~T`>&+0 n^mB8o zPIXջH}j q"B>y4~^ c<;\=We&Xtj߅<wU=~wN*T I`_%7+~nB? y|}HcOgi.?t3hPG/½siN=c#+X jW.@sPKNzFS>/SOgI͑D{,!si,IS>W>WozrI/9E#*?Ӹ!:K_@R>+*`V|LW X sE:`Y҅(Z:X6YlO]~ڀ5&1kT7C%7Kfi$0BHҺJ. L{B2 E πn`3O'g;^O9^ZVt/p }`.p3+?9r!u [U1xRz<7> $f; ́K~kC@9g CO8O>HsW@.^Pt?G+4`**_p! ύ" ͍TO ͅ }7: яO9  H-ϡ /9x <mE/~c@ *w \E\ \]x|ϡ1,υ  ͝gz@K^y{euHs@җO255NOSXB86 ۛ@\ ]4+_VRsH}}'Sxݡ@c7\s!q<6ϠHT4n|uLj(f&δO½Ee~?'9lݷ\\I>by͟hgެO+7LyO.E͛m̌`o}W꜉x+Dw? &{4k":5ס (}c/Cd{hk\R&q:TzR.+)Iӏ̈z>ʳWdOKWz}ܛJϛ*n f[謷}$/տFO?I&SgEO?+=$SDo}UlP i$>9C1cdUccS}{8 z=;#<)`Le?t֕G *yOg{"o?>+.EWRNẆ.% } .Pp~I)]JsLYo0z_+Wt]BRGn귪-?ǀDh'pgk%YoFmgxN?~v<)C=?ۭ1t}d*9Ղd y ߯Rɾ L |rM;Ҍ<5`q_jPzqqǰzQw$Qe|@ዀT =]S-tF_~t:EvOdmjL{O}?h\i{}dq?p'^4˹{T0 гGWπTƷTΖv8YWP/QN8WH[B>h}Zǧ9ƻ4f,ߩ>]33~N7rs18ĽjMcE?O Xw x/b1gk>~2V q J_!R{0W0U_Rۿ|'i*@{J ]xt~ r-}^(qL3@.p澗Ϭ峾y;z9׈.2_g|N6deg7mc؜~YMl9ssA3XEtȭ]\}gynOxFߪ;,goO ֏,Uݧ8EaBFM*> _^hG6gdA^XE=X \" ^,GU$~1zH~gw}u?A_7k~y-Ҧ4ux@8Je'U*88JQzZe~H私f*{[m8 Kv2789x*BTHRVzX ooR5^q~ <_=q싀xsSiݺmNk QT]Ӂ_Rl@ώڳdxNK9"6zUy~L݈LXgN7ϦϟL'V4Ӡx$ȚT-4FS<]93ѳn!+.pNhjSN_L;E.Y}8}t;>8fwP߿"o*vUn ~#^W,rHeh޻\Gs6|M W<'؞p_y% 9N`^yXdVMہ}I{N.ʈSczlD=[ @> S@B{a|F}wC6]G'.ح^}\Ͻ\QȬH|AeFeD  1ʊ,̑tE^ǪmlYQfe\+\ }g ?s^Cm{9D:jF|Phz1ݓISp}Wup֖;}._9kPkKǸ#WY?CG;uCz#Ւz*YS^mYvPu\qMGzY i?U6ﶗ'{+'NUjkCsE=J|wyv{Vosnxu1Ϯl K%۠IZ^/*߾7F3}M~4k45RcATv E o{sY̓ݮ_P3M_Ӯ_`$\ d]d_~:&_c?Pۗ(m蟀]}m={ih_@ + ywggΛmzgIut. 2l2T'дzgW8*eVq:}sG] 4 ;Pk<?%ܮkxX;= -bץtC؏oxt@yk$%~ USn֯h{BYx?3ǥX I'88v-߿_oG]CЋ2Zp UӑV i $f1T0>ެ\#I( e<voe9}=GGK"Y{/T^~|`?Ipw<+,. }ou'G 24$[YP/,RC|@9GOl; r=N2e{e)=xGEY^7Ct%"8 Vp ΀^f0$Y!m\afW<[ e=.Ek,\-;1Xf;/&_yǾnO_4/K|$Ʈ7i0AbӍ4.jpJwήCA}Æ2hP۽ve0FO%|Л?jluZ8P5z_a[ROh%C/x߱΃c޵QPۍ:ޅP/ھT'vN pȆ:|<߆:xl}4~Y^$~PAs qBzc`l? €C{Ps GL8nx_a<Ӭ1~CcɵOx.< 3gcDhp2l0! N:< pN{ KxLEw΃ڟu%vySoN. z#Oϱ8'5Eo+p:p8׶N))w;C9ot؏lx轈d48H[Pu<'q -8:%Gd?~g%FE0 5{y j >?x4#~3lxA<;k"u}>ǽ {C e}%{}js6=P F?j0~@/0;/:1yo91m$5ߜ7Y$}ҎaPkFA7>49?JH"=k1e_ǽ%9Opx!h!(s/9^(a_8 o_rpqA^iN}eS6Bد>X5=ze8ߛ m{]r9(Am4mc]?zBmjbhD eG{Eyn4oB^U,cg54k=.{ػ2:IH{@K}#mw_k4&EYPw_.C^\d(gCm?М+X]WCC@lЌhOP۹ _z]v̓_B] YS&tZ9QƂLc;\|%u#) /st@ov\Cm:d@?k?|b_ uat5?ШRq 6Tl+L@ 34[yP3Sn4A]߈!V ct<՚2y\+¹Cm9)$.jH~=S!'DZ0Dy^!>sI\w^%-vb 1sH۠ց^}6gf}> bĦ}؜֏ bo Tq贎VYdDG?3&Dn}nYY:9Am6]>m!cc/f~;Cyo; =RsU:M~):N]?{cZ[3 ~NI:&";=;'@|3ڄWN '{wXR[g^n[G9;#"߮:{vr=oWN4(;[xi)~~؏Y?K!Y7{DtI\38ϝhG{o rujW}aO϶i =ڵBuQNV'8ʋ`|[(n;4tYaO) [렱wH[dm̰.&n%c6kVg>Mj+^I~g.%Kܷ5kRc .㈍~F8q a}YށmS۟sžϾST $?J["lF)I\6w]ej_yaq\$n2B=ہ6Q{xƚ~ {3\c.՟Ͻcay^sHf$߯4:|@:v pH:}+=K\b)4%t;8{'ůϧ_̧&L>׼>|]wC˳`IkzN}=Ş4\Lxa2je^z^Vt/WK=6I:$ݮ;mq|_zw:v=Po+O]Iy?ݮq/O{9[[WzuC֣mњ_1/%|W;"l~WOW_/zί//$L}#gBeo]j֩KU_:㠫}Y7t.W8S7]j%{A]ePzI.Y|W8l[0]$6  g9B8UXX& U%au2A,\ \-,&+|Up-- k ][& g UZ^ 1o?I8J8X% ?K#O(, W P'-L +5Z^_ ccE-Fႃ) B2?'{j_X(NNF N-|V nHd G=>fP]awoŽȢIhA]f́]]X) ;x+Lap12τ_-T,l>" ap0S8Cx0Qxpp0Jx-]2?LFZa;2.HWHl(Kx:^!¯>_-K8V“V)϶v{OFI9%G»hWoJVNµBXH8G8U8I8Z/*'䠬G[B O?ŮUp'S zTWw%UdK4oY]PfΜ8alaI w3R,bv _BLW"Z*]0#wWD-NJRu. :-s*=eru]Z]FU]-[qBQ25.H,5'szj._.bh@]J^=ʔg̬dDWJ[`Vv"W2)__+. =<vЮwe&-eA.e*UTv/W\Ef)Q8%ޕ:N+weQoWtK6Ŕ0꜈\i.HU0 WW;`.{WNoSa[ Vԗwvn?3<^@W9>Rh>=NJ4S_V^ 5e-YpHOnJ]yTj^r}O9TJrlPTʥ+]Ʃ): pIg<g~ߑ["R#FZC$-3Ŭq(1Ge7RA>Ne#|_߱x.]^Aoxe?ch$! <@E~i8n]I,@LPi~UJ<:T{h$#J^)Ƃ.1~y]L9Xk=wTZm:}X;s9:]J 0V0/6:s ܅l룻Ց 7cp<ҙ~/ԥ^?v&Q]75&eYszF{*s 4rxlJ.36sYbAP„.p=EB R:oKb{w_$wVִ9ҎRפv33ԀSy& OEG Geٲsj]{ϛ%z/_Г&ѴFo[fLOߞ$fKeŴ@ t^vn6 B7HPuj΁lE9x9Ye\SZ~(`!+ҼtV2ҹemBNMijTT?RKy =jVt 7ex2:Y=zHȧHii$%[fsi:.QsLn<Z!gZ9% )&C@6>ӝj4 gͼxN{O g ǎ.뉤ݠ#VM_{Ryfш%UB2Ng+loGzKZwٗ/6cR <".6j_\ "w[JnY\vezU K"3bD])n!D._f) =:S9/' !:.|tpoN O^jD6QRim祖k1",7d^a*vp0d4TMJz|z>گ C-ҖLVD6NrV7R8m}{ߤ xu]YΑS͹"kMDyfQWMQoׅyt-) JeŹ :}Εr$ގ !{͡ϟ2J_ =XsPb}m} KY20Lzz//pRRx;O ;<$מ2zjlszX^oꜿIrM9-LN ibᰝKiLjFr3̌̃N,|65d]VmrZ{OQק)泱g,WW`/m C,{+Z&}-#ҿR~f?iX4WVe2OL =Y[låKxJ!r > ɀmK\s&mqukaY{oϦ. ߧꑏ}cH 8lK7M`\ ?H⹫9>;g8_9r<|i@N12;.Y.۠?.U Lm{J:¿Ǚ.ƕiMӧk.&KyKx$..΢} [2 ?ͽ+d㕱sfZ9ιy*Dn'f%""7¿םv] ('?]`}?, %pK.\kǕ+?cl!K9kF΁W06r\3Ҏ x*!DՌx\9_K:ȱpZVIpUa.F-<}W"Z'c>%fx2s"k;YYxe OqVt50V!nM?DaZk?^C} |6AV.b^a Gorcp.>4Uy^ yYO"{q1z/Ï^`<܏>ۼZ`Nk ᩻SQ \b>c/0{7}l-}ۦz1#&\3[W֫GYsKp \(r4,GV%U^[8]6Io!܇[i[nKr1| i 32in҇[Xt:%/2V('lyg[፯Pe \K {9Nx6GN~E 5|~72F;#D8S`J݉oY V+7 1t\= (qx!;GE`-1uA8y9e(sf~ʚ>(-ĥ7B?P1ކe_9 W/m㔁tbaW4+s^Sd/Ϟl/ig=lC5z P5>,\~Ô'{P lLxgpdW2 9T5d zJ_MiukMNi \lː4S*M{C W…)3\р#n%sA py2Um<Ukmnipg57&r a~?xΜdk(r,D-V8Ad6jzvv'v JO[ zÿmuu5`Mݑ᧸xKCe" ~Pr%ܱæ~2_Ś{~_GyeQYo=䍼q[B[T!s~k"ޠamW}+G8=~>}ߴuE8%mZߦ͉JqfSߡ߫p޻ 9Tm=M oo ^8k{<}> ~q|y ||{hg)evO̾:D qy~3PXk*um's}dgܦ#bhTgW? ӞǣTn0n7r,_S5y8GŰQ&S8Uq u>~G$~/ l0p"6-'9U"|yS#w_+GR*8gӬopÙs ,z~@N:\[p1Rx۹nMk1N3&'= ݱJt:Ѱw .ZD&ISEN'ĝ 5"7/p&T+%Mx| a.~۬w+r)睜_ãO' f:}8InJ~28Ur < FmbcwiwV8ĩD^ pMȍpq)q V/ʱ~.,N?>r W&j{72\Ɩh-_Z q M0*9r܌3׵`u'x5N\M~D`*k/y<lRߣݑ Nu y/7u`]5\Ec^y\7g_oD8pibZ gLm^ #q ȍ90r: ׌<~BF7õ9rCr:|\3I2AȟAV9FDMSG2!1&™03L:ț(rܼ2Gn.pD=jv͸zduF. 92a> N>DnlՊ\otEϸʟq̂սr |gCŸ=' l)\;l?cNȯÏDV—pUOѶ|k 9ę.a KEOPO3a*i'Ud8v8[!~i/G;ѷ©Mt| yud:|'vF:3} jr U<^鹹 >'r3<\~(usO~t[*C0j,}M1pXk %`g9k&\#q|an2c <?Ѧl>xٷl_>WKϣ/#{]N8>YxcL}Ms7{r9i(œ״Gm6S} 6v ،3{i8k |wpw!4+gq82f$xE.ݞCwaX:"{BnW_B:5I\.?![3~ړ'Ïpǐ?Sɴq3/e\5w9͊P7eY%cgx8w>ul>8eж&\c?>#k0(g#8q ǥW#\s xVkpz/l\ҁCrm:a*ܿ*ߎhx5 Ϸ,Pkޥ6͗_ )?BWm^ p̓?)"ơ.հq]W0qf?W^aVh'}˭<^RB\laz)=B΄kq>|A6.r |Xpז!nEL_4Ù|?6)r=16`mR>Fu9 }QA;TȺZ8+E&WJ×q~Ti7cr+k8} j;&a5R/ dM!Ҭo[N8 ﻊ8G`uu2R\5*2ҫk\3e ~k^*+bM|* ҹy wR˜M9½Yp+.wﳎ!D-mq:L C\O/#5| <|W=w`R5sx~?Şs3|{+_W.#=w\O5^^DِGJ\؟'@\> N5r}{:\|#. Wɵ2x#M_{qM~);0lUr~5.na< k. [DVܩyFʿ׿/Kfqmȋj\5|io61Gb\5R ׆:\{ 6E:M.MlYs"n-%G{N1pmamFo8^+S;'?F4\m Wp*ܱU'8~#)0~{c.a;sm,s: 8^]1gઐ&\1?U{3{M:_27xnoǬ>y#&saȟá/ÙkY~9fh\{Vx~9!\S6|p!u9v/U-(0V9TUiΌVU~7\ o10I.,)0jp <  0)0J ktXgF[`l`4o߇p#̄bxZ 7&X[ D0=z뿜Hn0000e000a裣zDž''ѧWW׆ׇ77ѷ?F+L''ѧWW׆ׇ77?vg 4JT웷jMjh!2H5hEO;#ΠkvGtw3nOk߈Tds?K=N#. ʓ+'(Tcz<(~QA (UUQj#=gD䈠QꮠgEA}hZZ^ڂ_GC:ˣWA~o ʯ(u8(䏻<˺]*JU'~M \Of9'_Ţ;<}UTfRs잭桟>thK%zx\% rXbn\e.L3\(U0S.>'P~QejKM^lwbCypNEOæTT>(M>>I{6)(?"7~^T!u\ +EV/& >!hI 2m}M tESH˿;?2,0Ay'*Ф0`McIҫ]u7 4a>q:[j7;,U᠅݄`mGƶxY mĔĨT#$+↲ĵcslHjUK>IwHO"7SIlc#;_p*b[;|@aFH+K44Osρ_wo`x_ďVOi9ݖ~]gvXϼyƞo Od7xlԖ#Cš7rYMcÜ,rscLsWy[zms,VzyL{cʍ -teFGFmhSѤե3Z}o5D.nk56m_>}!7=Sɬ]] +iy^ŕFb{_jоvQsn<38~r__V\f,ޢ;nijgU+ģ4GGer.$yQ#jn~e8t&x=?ܺϊ4LdTwE̘0냦_emIa/>_>ݺujGWv'N3͔6 jأdsx6tÚz[95—oZoz$xVU*=y؞F6&4c^R#FǦ<|Zfߦ8mD#k,JʸDtn`aa`\l][xsO*azy߮Ù+8\L.$6hҶcF<֙4 #mŕ׭gSC\]R^8Bۻo UjT#XゥGMsq Yo*ADsL$ITNll@R;;J:؋fir[!ړqZTlt6NܴTc{hnjʋ;>C*juݑdPviE+[ͨk=|TH7mnj[l_'?81׵t7Сg7"Sv./-?zܷ0Cbl7w8Yй:}uɲ390dc KZλZ~SXXR cKڗ^qהVڤQi{m7-s#$ v-0,g|viտ6|F_Fys׷3+Hq_cH{رXsѪO&l}4jµG {[Uj8}vO q+Qxlc%͇v?V:䫓ݵW=j?/aڶR-O_Xubن|K:j Jw8dNPsϯbܥEC{7n~GO oeFO^w7߲602vLlfi $C/մI_jhh|kMHPUvͰOzMCFz&TZ7BΠW&]tZ!+&55:<9*;ZvIiuR2fb-c)3T,^+H#6ЭJWC[#˩08UZv8V,QDZu+«NMMqTFJh((eww.n-PJH5-)_A;ԓ?z9m~>TTl|}ε0ݷLgމ4 vmw>\v**l|tW-:mi^=o~捣7/6nCKҮr;=~هj5weDnqՎjPԻdž7\r<}vnmx7j@V/Թa<}Fܩ4}wͯ,0s A,pR+sy Nu|GmO(Xcks.][Up!e*O9f ˮ&]Xou\N 2gvxeɝ?liʺy'ͶN5E<7/s_{=h;7{h6^wED]zjS՟ԺdbZ5'~6y;ч ֺ[=yiti4[q~cBo.y`@!!ǧ6vqk= z{˪d pb5>7'd9wQ%Trp_6r\y=u\j89 }=Fa3*ov(cׅ♖_i]3&sSg~3DOW,[Vw]zkY;mmͯb=>+/OՕim:޸i0L<()dDO}2rQVp/V<[.S,f7"nѵaO/~C6 Mk6=/.҅<3mgb={eYC\*U*^ǯX,} >U,5\eAl?gDë X&࿃K_P#Vŝ%D/,Ki &mhdҳnm71ݼ.mo7oӭ]^=J',W}3Z /6ys li2|YV1;q&n:x4ǷϷ|bt앗?`UTwkFٝIX4-e!#NigtxhTů H(afT 2M[4rY\z<~ /Ӯ*ʝ鲆8}`WHF r:bfdkr΁yۃwOQqYIS1[< }~ w{5tۛ^uw3d?GUfNo|M߷0rәkig׍껠֊:>W<26f-z;۽{Z.ئT?l8(^;H9򃜋z&9eߎ^*lpTaӰ חsWS?ixgih]ʫcuحǀ7f]зQQf3n3Dž93-KzޔQ1cwn˸ݨO;9uʓ7<ک!~kq{R˥^=NT :]vy:ݥOM{7,|C.ͭ{|Nu9ZA=mzOvPCŗ3^op[MSkǧ7^t:~GHk$BTMk)Yf_%cwj<}u&>ϩ ;\`SJϔ<7͋&rZf͸QeuŽqϨuym3HF7[9hq -N{ zng2 n&]^RLVL>RSf;j⢥_6]-Ïb>.8eoGϞKo{3z~C?'9Ň>0ٲ1- jUdkG&Unhߍ)XN6Qޅu=a2ŝ -F+ 7R>+؄&W2xwsn>ѻF-!.f==j;c|phl.9YvߒJg̏mq>͘4-M/ئn_n̸2Ljچ&6>[P$V|9+|ޭr4Z/i͂9r_"LۊdA'%&9|^:_;ڃ}Z:^l읃]VyK~9[v]FY=[:~Y;Zqa1+3]qck^Z㤥V׵bܨfrO?嬘|I=y6}'o姮l ^dpn˝3bszwsGG<Ʈ8J#RoHCV+sG}nkT8Cƍ5-l[*KgGL.vcRS[륭 2^؇K~)k=ug􆠱[oaSǼn7u!x'Isw?Рkx ͽ79oYc}زa+AOvھ(_$u߳hq`'W7YZtЯ١.N%,MRd{u}s|7ddm9 eЮgl`c^ꕶ7Q}]&Jv*4hx;cxwP}o}tMsͤD3O.p[ajVtiƃS4 ѿڻƗi7:rrVOV#෬We~1Q}TsT;{{cWݺrcg ^[;4U:qgS~[e 5hѲNiݓ,0\촪_~YYižM}X~SFޤK=鼫ʻ6&a/<=1؃uXR:탞Uo7/ d_?P ~Yi"I}ZYsrxK7;ц29smV12ZEޭsf/?ol`|K[QINs -){]~zO5^Q'*!R,VΪgb7R@\HqDD%w[(kr˥뺡 opW Rs(Ŏ?Sq)s'a"p2 RݥLHB!We0FQFArIC ˀHjPl.*Ԇ ,.(c- 2Sp!]e|qc^ҲmZPg Y,VHk8~qrQGAc/~K䥼R'q.D:ϦT ZhPbc ʃ7}H)`$5"̝"4 ʃ\@+p/-Pk4>&֠Jdwb.M)=Z >) RS-)I 3|ziEČi>Jx%8SK }ARwZ$X Pj%k+r(ȦZ;B ?DZ d*[lO Q3%"?.+ /-"^/@ UĤcha =TD`AKgF*KIUx,!ʣSBUaYQ Dxց*pȉ3S+6AB yrv=j̶YkG_I}P@<㛼 tX {K .nkP]1-Aj#h`p X/C8Y1rw((ȦvOJ7Aҷ |)rM-IgreiJu'b?I'`F"y4sgB(-ʡ k,oå 㲴֟9K$Op8FU"Ǘ1 ;  og:FT@ 4nc!GIXaRh5$Ý-7@A(Cg"zR N2ᮌD0*mlXń7(/[ X4R> JO!3Z+kHR>IIiYX*64C 0HsnX6 wA.Z>RՓ$% haTC,oCeqEj̪$-R'q:k[>bQ'W gVQ;qg&/ k$T@N&jCC=6JӸQO4Cd wK3ԃLrۆyPYdFK %.іw <wri]U҉@ Jr1Ua!˳1<иVD<8TdO) !HH& :n]I_ ӃB=5CO*v ,xS*Jg͚'%r=%Jk/R^UQ%ye exzBׯגUYr+pt4 @* i?WOźH P&ľnƺ36ș!%iIpW2} $j2 #-Mx;+&34%o,eBa)PHMNTo{ėdw>GZG| thAyJb*PGBݽ" YF U{7o{"@bk+ci;h|N&.;g㶵_ቪ'_([JPجYHII) '"%$d'Z@ |\B^XVyEj\))ʏl/'^j<ڹp`Y 5Ly\L?5k24?hMɄ!]$*OK?<_Əl}LOl%Sh=P,HtjN,o$'CJ3PAIzGܕu)L3%(h0Q(Xbޘ(:5*Sz8t*6\ T3is2xƲq=>6@q8Mp7H\ Sc,"A| G `GN,{h$٨%z5Wiʞɘ{ k&؂N(9@Jm ÆE30MyK逹PFIS oiAҼę We9<mBn^P}%**R-uj[!Z{m@{l+ܡ>NΚK'2 |37zkU9/EQQ,GJNnw P+lxR+ʨ0e G6OuG5}]`J_ %fl Ocx! a 6Y7U)P/ <M7qĔ s(w&H{ 197զ4MuXE, 62T!Qcr=ڨjęs"&a89/-t'rowhF;\:)@y [V,,Ywa GJjRC_QgY,;h熴3J V h!hnZ`Q?kyk\Hΐ@ 2kG%ЛN< a)7d M=m%OL|B j^HUTPxfCfBX-x>"DDސ[ a]( QC$F(Rʵdaj;*,J w.v2yq\jٟoSKjʋfO Vf嵐>=y=Zk XPW8#??H)4K/#a}u;~@/S {C~#H_Q1ONB8uH 1F?e>sH2(HO\Lr!{ $>QςAH4 A}: 5M #s( ] #%2=׭&ygR>c^T}vzԄ1*hcWQ駛HZ  dGkKk` bt"lDp12F-};k[g7Q@+U=zj, ֻ2nڞ2D)ҲW K%/4Re qHh޲{@\z1;Ic|SVm@ }ջP[)TM%xV.1ܾ'K>~#kB3eeJʵDEXl/ /QN1DQ0mMe qd - )9q>}TMayE~Yw<j|j|1 trhX3>?4 7E~!奪8EsxBҘ:!]H'f '! X( әrLmb? F*p-cHX|ΫmfoPN e}wS/{ I29&/?i`P)xߵ?-Tl\rMZ@ҕKlH|)D]I\|+!o~w"U7濔ό2FgA?τhT  usyB3?$';YDa SM?_B$jY5OV l㱂E"dQbO{? s6B>` pZr'ϕ=,{^-ETU+[\Pxr1vByVpGp>>]ykU#/S"?.ȧr6-PC$nF,TtpWvLp+Q>m$G9ϥse$. 1CDy?E iSloiBsybv=T|RL5]ʿ`YT2!ޅΓ8t1OB Nt7we?b.v-s bɿ O%  aYXV `X} vÆb#$l`sJl ہbXǂ!pb8SLp;p8w.%pX+UjpM\n7Atx<xe:^o߁ǻH|,> )\|1_ow{a8B#8 ( =G%Db I4@! BC$  "ADňQN'wD?b(1KL"D 1XL$ q8NH,$$FH$u>ɄdOr'BIXR)%QHbR%D IäqLGf!sd12@V&&d{;ُJ$ǒid,B%+5&r/323)Yٔٓ9 P2EO1S)~0eBdf%eea M0<,c/QAp<4ϻʰ޴'3>mAes ,` 6BY JյT1cT`>N ndV&X,>n>Hi6 p0݂v u Dh;+r+rga3"%$  H+0(@ҵrJ`@!A`*fPQA Ainګ5*.Bxa+bo{FW綶d[(d?;eҜJp8*$Bfϔ^*J㇁gf讶J.㫓o`rEi®D `vLX 2 FL^:DEY0op:=.]›^ <1|j5)Fw%}̖z Av:LR/EU1٥+Bﺅ#s%}3p52hCA"`@,y+:Pqia0g6 _}_Vn%%U! l*h!Y*}@ ]|[\ KtqFkfNʈB(rrJ* HoVA8nTJ2rll%F |[aV/F=0oצe|e<ѳ~AN`@[;@YZ) j) zTTpc5 @c65X.6 wş8̰X7UN~{urB&t9nST)IwT (-x[gڦj2K=<'{(ݑ#J-[MF4NFF,jV O;o{D&Tռ)h9 9u}fgN9&}QܰGW-Si\9qE!A#XQhUv!Pfe:bSy?!#\&M}T: e?2Hp:Rzo`@#~89/o]lvH\3' <`!۸|D|M4(+! _,REj.M+i 8W#ͼ6k[I6p]Ţ^t4lt*X2ݹ0x?잽!&_ O@Ոٴ|,V,}F1y(PLyy(%vΗE J٩1BD7祯eTK&YKF۵.{.$go&kTXZ\0Vh?Fĝޕ:&,77=0a$xCˑT3o W-H6 bRhyFpwYInjk5'J>5=lvW`ƆP.dV?icP>O^e᥮H0=9ZE9WZ 6఩U`{cpTEym7,k nӿfJjO\w^w#XܟrNf5Hpc$)ey꯴eU7̄i96^G,}tﷰ?/hz6aUTⓉެݫz.ƹ_u0{sG" &X.:͘쫠ӗ!Z{4%F3K1VzH_ 8¶FR6Z;$Q^Clm1G&# j9Pu},%jHQa *OEyV66j0:؁H&`~Z@p$mGcȐ@}vޠI9EFt7RfTNPM%ws7}}Ff[T,L,\\Q.(i`5H E "KoHEEBu (Dթ7J&S0hқ绲Y3{du"4Dg$쵋 dO>C ".X*HeWͥMz[= o*<)=Vt-}{eϐk!Y"i&%V`ߏEyp¾PwzӺUku$9@aJ"5ZaFMSo銎$@LE9D>mփɳpTiM;Nݨ;k>Nna5 k7`TH >0/W f@`?z*_U0T\@ sZřr{97o_i ]g}Jc2`%+h**#"r2He+ zOD5!Lb#7MavEB_~c073CG+kIkk"R4,*.f~3` z 軗 iM ?D}1Ϣ=11k9(9RW"ߒscKzKo1OoↃʙ,V@Ẍ́$b:AV^ࠓa]5IwYb{G8MAߕw' S2>גwV6ȤwZ{鮫s[[pћu>gUPcD݁o&7,Ea anN 4gi%Ď|PʮÍ+]%ך‘|RyYsv^4ZپX._Qrv[`)!06ՋG١:v.rcȶX}Ī&b">v{]Gm?|se۩>aˠx-11Z ;>d83~2edr1ͱX:PUjfr.'R]G'*նvzHH2u}.qo~O-%ɺ!o=PkAUuQr-Qw 4b6R@T7(@kkP*6䒭::j::yʸz.( 's@1ܛ杣. t1}'mSnZ|wy/k7'ʵ۔e=-$aWO%}o:>.] iBC,59#J6q |>* w@| m!0҉ĝeES^s͢Ssd]uKTkRŒcģ+ܼ)c/3Lj')w&1!Zh?w ((*Jk!uiy-$ E?Ja^ b<8M0$!?{p* 0U0TUtRyBbrOef/тy!wUw/tuhmINVcܶ:cf)%CYe78V(G}q[Ǥ2r5~[w䞪|V2" 8ys绛%]OިɗH:PG)w_zmsږvӃ$|<jn=YX{G-ZLgh zZ{%Qx7Ҫ7Q ,G.x-κs}*eR8T,8a'E8ד-p=0>Bx #k8ZJpَ}L+jAPr0gqC YSPl~_ kQ2b^/O),ɕf?} T}i0P{ W0(! o 5Z踅!}[*>9 ']}IU9 g&1{"b^ Qs~*}/KXˤ ҵrM*|iXW ?Ja5Ӄ>Zzmpb0QTp9ECݴvD/YpĪКk9EU^f z٦_85ع,6'{(o>6ԁE\PkoA7Kmį v>F\z {̾x蛁UƉ i*.IdLScmKn MZ ˭lj:KJ$$<;}f5EӺZ1znYEr<,GޫO  eVnC1?Ԥ{ytKԽ X*@؈#i]9VZr_.6K3SvV`DaJ/$_;u\.Nnq ho+~`ZtE./.ݪ0=9yT&OWDy >H2k{RQ:(~9.ڳJ$]|*h5BOld jW_'~HрA)ҥ({lU!6$Pda6IF(qƃ 2ӂm= TEp0!.%?z2яD_#V+M>/sHDJs٤lO_s&g0[S)c/;vl")mQ9^@䝘pC7 `~~I$Z{7xwFu܍mdOY i4V[y2WwnO*<xG2nuvWZr[-JݶdR byg`N-ykjċ0쌠}5:rj5SQÞ+CڢZYJϿ9!Mmc_] a}FNk R\GShr+И AgdcNHHL]=𤢱"_>3rY7g ",5dzˎzcuV\ m:ntTyǁhur;S> NH 5b] #޾-i[C1j:*J޴82nTy:mضܸۈ^5W6s1ڻ3;_t񪿞Gr¢}ک(Gs[7fǦ*ֽPA* g"> 'G[3 ;ܩNyGy棫rۅJT}PeG _im)܅HdSe 4nZMmqrs-CFWwx{&=~APkw.'yPO1X{Ln7zNK&p<88 6vw{ӡ6SH7kB612QN=**zH]ިYQ@ 5R JV5D>g*lA3<š[^O9JWx BbNo K fՇ#a`}|Y`n4,J'Rq_kSq` Yn5 If% }JU1[TWZ;C-H|{E3,[XI }xc^f=qbc:ޒcvYbd\yآm(UUk.1*~2AbMr-HkOϨU^ЫgB<*Kš+Y.LG;eFkm~&cq6216\M[y0>qZ:cjo5e)u6"z/s?RQ닡ڱV ,شBa,It8 n@Mc䅓e3{ۥ~PrR b}KX"MjGL3T %g gs4Ƈ^1ӽ٥~O]G~T-#QDŠ ~ >X`e')z Pй ^JUL3Jmm-0!CίnNԊ{rVQ 瘈.fǞ \|gL7" ;UXR*#0W5FL' hp ~%e)tqCox`hթז1yuR}*r7Co7Co_d]92pPbV2*3T@? ce,P+P}cW*lb\kR6~Ȁi~|w.=sAI77w ܭ=s3{[97op(,O:1Tt{x$Fsn;U~iLJ} ӹOx ȇ%қƝ*4o>d`Cu휆w,NW0$۶.(V\Fds+ rͦ6DH]&C>eRHVQH !0^cK}{ԍw,¯6bIas;X Qp¾0Tx?P0FGЮ=ͺI3;:U퓂4ۇ9ceyWb,h[]9$1h9S#5X4,ճmB^~tv=JL쪇6f3"GCwSbWR?z 'i? ev&rHV|5~ mWTLhI2-X8Z=4NT =CX:IWcViwqR Oe&-Dɕ4%l7nI|$9wDLJ ΡKvu^u-RխN9ph̹I ͝PKS%MS'windows10-signing/signtool.exe.manifestj0r^JCҟjmier}8(!f`e˃b5\L m._;)8h2z\rY$m+bq.\~Ӝ8,k~һfvs)&񺯬D PF4]-d 3u<'+-4PL*ۢS԰ꖍ? a+7$FqKceq?L:fN#p5WUu8^ktPKXWMȓDߩO@windows10-signing/wintrust.dll]i|T-Ʉ,3 X1 $TI XҺE#f Vy[[j݄`+Y$ b .!M73Xl{ܳs} ~a`0X p!m#F\;%ŋn[|y7y碐[w:nyE:!'gPކuг ,x`wƜW96~6R8ooSz!_>+gѳoo>o>s`tÂytdrs FYn(Z|7 '=Qy # Ӑ]^>z^>7 g[ -܋PUgԹx.^<ifpI9lSfCY։OZsޙr(Ha rzvwJ4uT鱽вJ7+5A[6_G5,H_L)RjC#J V[" +%D 2*@6bAqBɏ.CDs,N65MׅȏMJ4PXl;?9 8x^lmݶmV!6-VsB'ZY1lpM=;ls 3}J1,C{"rSk[}Dr#FhBq-L +*\e\$ͩ(꨷kѵ~Ѿͷ3hhBNQo4wA4n qCpkD{5 f`rE"N(t^۹RÊJPݎx$Lq&'Ɍ4UOE,6oaa>u;ZkRDGavH+kvo6LMV 'a_ tElSY񼻧z/#}1No{tЖm0j4@ȴLG?A 7 ,^s}vǗ8rm}Bjb})8@]*ɜq$r9g9*~aF@ g)=RJtVQb-%Wk9Kmkv_Z$_FZNkk"V:i D}/5j5G_0^ xxR<Hms6+F;Ȋ |=[fB:FGGvٱ~46V0"%U%9h)!j ,B_%t L-\ 4wVwEb0<=Z{r3t 3Ӌv$t5CQyI9o+ Dv}9/X|.r,\1T*Ôޘv"5ш5~&q5-BK<<͸ ,]k͐ṕQ^ :8W -MT'0͓ OZM('6+$mLr&4 da8da$w '?xi]kʖr;D!J?G*Fpb^g N{?%yzV 6٦Y!'& ?_nh:KfA P::ItIg HNLu@ 7uVvw0z^1;ADIrg=t,DSNj ]4{D/˿& ȧN0֗q;:MY g&MˆDz΋DH|s$kz-z /טvp)OSxVD\NؼnyWlÂ!SRekBu8iXwhkv;Vp$iL2){6SϏ%ѤYѓL'E[ޔC_:_U6夆n>t;:p~@x&m"k8W}2ɲgsWV<(_adn<pW#>ds|ܘ"Ui 1yL` Z"zeŝ?£tcg픺j^cO8^#H▽. ^ZA;}⭽ѢnbUڥAM@=ߨkޕjWK.\P$-L9ވ\iHŽ|,;]4zW1mR7 `_{}Ծs>fȾҪ@l%*h/ h4^CT*vaj_pϳ* igUOI7ǧPay~dŐcN}cHw?zïN0P<:󤳘tOyۚS#?&~;w՟Z蹤^+t*^>Mד 'AR~F:쀄26b!d(0lv'nt ^gn -h1ұ xKc>*#%@@xoE+nͣ,z$,(~"yIn >W~U'e$1ˋCCÐs?$3'N^+}<) O=y d`(9GuF-b\ {]Yh.L8Wh戦*{uɩ*t+Q}&F~sƋYwo赖K{-I:Ϯ$2t' ^;>%q4})8)C9ςv͆])E,;L2khF8-hC4.ɇxqNj涡.pzb(uu@̭&k2N1!Zgquk_+t2|^5xh?Y}^Yc myX߶ڧ %ߪyouŤ(f&I= LtW϶}v=h >J6lD]i%lS"-q%^_Y2>3QVNswS0a,Ce" G>31m:Sx$BQW.NzV;&S uM)}u94 G%G|G胼ko# Y2/%3 Cyw|8( JV]CSo4avNSe{O1G-)|0ژ˵Yc+Q=Q%/V+k9xh;]Fu)n~WL=Ф^a~hE$[XۊLo07x"M'==d`{ZP|+Nq{c+Qy6^*? #gH1l}lkz#76î`{zވ12Bv:; =i5$:7s\$jڨ<>0F*{U8P v9Q7(ڮCwF 3^ E#1ê]Qh16&V;NM$Ahp;qj7R,/D4'Log"X[ š$8@ffhF*8nMiOˁNbu=mDoY]BvoI3\S-zə8H|W51\SUjۃCAs[ܖČ*2X\C PcK]ηEZ8B ᅹPbY6; B/AUhD`Df]4KZW$1~ͮ#h)Éq^rnwlr\QH·-;/E;RKzn>D6aSJ5KTY"~"-ʽGRwR07@AhlkhvjE"۽ ]iXFxv&CX^]d]N 4}}9]@7ޯ*aEQ}i۱,/z&m6 ]m}bÃq~7;cJajmʬxCY$ʼn+^|p "7~n(+U{DV̂٣̜PHː+Τs|@4 QR¤s{E<iÒCaNtBYI BvWUMzf ]nħ$ za׽RNtLɶC3Q_ 35L\_ݾJXof!ƷDpO{![վb9>gQTӍs]szZI MLVR{EY] vk@]8lM}h0 kuت&SoևyeyʧF;q(X/f̨e0CL+Ɗx޺!LYfOK⭱faZ { P (րgE:7 gx -4X{1bAˈD޶ T. zϡy"R90M:X5C-hA< .|EՐYN{i^?(6l IeC~C YW7"@ `Z2Ϧ!ӢomC%vFj2so:x|t{">#"%VJۑ&/|]A] gmmɗ6uh=$?¾R= 0bl*,'~}椿Xood?* ѨO:8Z(Zz~D]}5GEM>Q\%]d++ѩqa&Oi ^Mxa `2[mm`p`ަFfSZĦ_fjZq5M*vym} &U(ۃLB>uBG0}|1nCмӀx]tѶdǸЌH o5d#=DF@lDWy ڔX/W_d)kltgj4.HQ;@N7,~3VWV d _ƌwif$n &1yb1#被 *: Cd1 #s).g=ݽNhΫF PvKtݗGGXrfo#MZ@ݶݤ&<}<>C9d1P-ڼmfB!d'N?Ov0ޓe{ 죔4tmV;ąvs}&y]qv3q~ =$6ʛyfQ T=L#ӄ=݆[$QC|=ރOH4 ҞBoیz'/ _8AsNNIW?3]oV"ůP=}Aޕ9=*24@"ڈC?9}|@)%Ӥ?67 eh7pNH9b҇99UZzzAiŭMIpvI$n_Lf/o :=hp|6{U=$QV0N h>~1콠zOa))KQB oC!;fwbv/v׹Q-nBw4y.~WW/r>"wZ0Tl ])-RUmJ{܂yD(cAH}v픏(I)Uf,^OdSB}2}dYm]Cߘoho׶9Z'DG[Ƚ,ħLs!H>nBx@:L̒7Mh3t'WXnAw,ܐ?nGZrXNr+6a>uR!#\҆4p+P"B]la\Sᮘ#ިyՑPov(qVxOv[/Wb7mղ%s3 TxIb+=Aًgkw]tNh^7]{tqI#Vcu#@}Oqi |PaZƧ0g FI@riŦ>5ja}qxD aiI䢌Ge_]\_9܈p rk"ݘ2ZfB=Mڣ^HD ov.^w(Q93jEqTt k֚[M=I SG$$ݸFE[)v+7RlX>qXpr(Q +;qht7A_2&ic0pۺJD5nOh.~& MCXR]ɇΥ[ %+\EoQլkP̝PUדIEKwU_Tz"2q~cўBq՗07*) ]B0Tv&J3Pj=L!aRsbCz4X8~+&OO< #hӊȑuT:a'6La?zG &+ Cg !{Utt(vc&3xc'd_Y3n `?l֡*Kfh0aVaBr7tsI]"D.rnbGa14f3fAVm((vD jIeŹ1&C ]X {NsA}"D޴۳vLAq\{BJQvxܵ.TBI@Gݧ%F ˵[!4Ű8-Z(c|g-djF6NEl#(8eu ӔR 'L ~K`}k4kjW`e W:z؋=idbz zegGUrW6!L,t7<Y'^N` xe \RZdI@9H*@Pa;'1nJ;Zyaf߶.ʸ53pR] ~i>LH>wȳ\dWPI^)p~N@$m$SDFs{%6}8!> M}Ϯy˒i+2^psQ|`ЉđoADt aogVh62%b"`$yf4rm[W*iYbiKJ!%%NIJ;*#nuBe9$K\PY"tVY-Yb {edC>շ%(/#iWyN\yŜFp8gFcgiG?f6ʦ.Uac\.IRmZk5 ^\8Q+ vV81S}6(' CR+] >+ !;$%^[N~KDc'g$*>#QgQ\)UPriEgWzMh'kS}5)6@+N:L*ǖSPGjXfKp^W;T@% TM+HIs#ʽi#Y! T;yVfhV0P$ 隦ԄԇʡN*L+zka<_$|Q9fҶuӔg%HPe1:909s̈́ TyJ'*=HeYzvTz߳5De=,rG9¼$yڪ2q1>TKn(_1$%$dwc.p np@†+S)Mv7k9Fz65@\#ۋ=hBaIdSS#᰽dUm̒(w`y=0YŦvmц//5HJ|/^0pDI?u-1D f12ZcLFhq ,QL2 8iu مY [YJtZQ9X>рS/8* >XsX*hpu<@);>Aotv> nQ/6ю6Alok%W8xPՓiK+wO¸#aˀr5?62s! Hx̭>měN(~j$œR<.Ma'['/4+$OJ;{;[dm6AuSjĔ:}N|(78Dk̥-H ɑѓ䯠:7ikIjG 0v9-G62m7yNm 4Zdԡ|ij>ax}*CCYrE4r))&k,)Q8/RPUPiR3"A~A:a2Q-~"Ӈ)T|Iu ."S \SC#`}~(SHsKu/z˃CFZ ځAْӢCx&}>ɧ62 rz x';#>::YnE:vNr?=bY);#b)eݵs1$y/f#fݒ> 3HOR?=ŎfE&"qd v_H!-G4؆-'@ze_궆<[f-)Z<." ycl:K4 G~U~n]{!<Ջ6FJ)77xNo&vkջ=@Ss|(; ujk1%:MG'%m;tū 퀄` MPݢ ܂ʆ;KM{[4hV`# }xBs8m.e؊G{`ƠA׌R?D 4Ҕf{eiYr>>)'>ߑCLgX o{N_}ѿ`O l}' r³j|FApV?O,C;e«cquir< ׾x} N|jĉEi*Y(^-.X(g NSD 1.XLOFʂUT/Y!GRoS3Sz_W_A۠Z^VKAF|g{,[^Q/AѦZW[= Ix5 ?VmLdL%B&r;drIN'AXj=$hዂO}u4G{jk|k|uW+PxS2EHkk^g!LT'/ J驔 KF ? C#=};k]}m ;7f6>~}gq]ﶝh(O) "_̷RĤfЭԥ2N9e%BC2 e*( d!X7`=٥]ڟwmSKd2m2$S_]^'SlC zi_w^Ӻ<%%;LŶr ʎE7rZ=2u\#/} .lߥ{yik׫i5xҟwA˛|$pBKsD{1f(SdO-?s0ؖ硂t@L1vQ E2 ҏ7~ MۊjOށ9@/yt=miN%O&o~D|;Kuc^Nux+ [%|%{t^ >3׎ч} }=&)\pf{*ʙ׸ZAD+Hm룷IY2QGv;K+-aU= -_SQ`E@"9Ig DQk/u= \YD7$P@V(2]F _rJ[;B3Ӫc'_I!`ŨnED K |@E!C gFnKA[N V~$'$kMJʹ gjB? iӾvj' x.bI&WKx3ud~'u^AW_Ri@.!׊~BSc7UܱuNtoL bʒB޿u2G,?-"tbafs8kJ0ƐF8RGV wl@d*/7)g*D- TD /V]fQ K M(Z-JD|lnt:k ʦe:]/Z@Ⱦ߹Ibng|>49w~ӊ<{FCir% Ue. ^Ypi_;`?`Ȕi!h`] 2{쯄x1QilSY(}itd_A Cm DP徂&2*02? Y#&_brE Q%Ɗפt|г{;s4ʔ s1% 7ycuxhFZ,r198> i>ʽV,qi׊ }Em&5aJ0¦KjׄKC1b봝${SZ7N[i'?i _PXdĥP &2ҵvf<gn7Tq$,SѦ|,[|{ba0m}KI`M» j#+}qiXZbD~4C 3!k _NL ֱ;Muܜď`EG'ѣ4ӓ1J+-x1b'"&&N up;@ D'VpƊ1VyXQRݓ"JIqU, bYP};9 Va^{ܧQێ: Q*|n Sql$hB0$WoV~Ď@G3NST1vRx'–) b\U%_GSJ5fݭU{"-\?u]r?ڮ}|BS(:x5_o#y7ry˚L`ݎgRG: <4;ɦeZU;*!ӄ!w}Od<[nƄ)6%ܛ[jqϫp;8vv"9|EaEGnA/{7ρψyFxͯl ߺߨ% lȗTg(Xroe)lXvBcDӍQrwAR4@h+@Bhɇ'2S4DZ@QP͟.8/~<1") /0{vzNb$z.%S~V3>ҾXByƔ^&`S5w/a'v-LakAph'w1'5#ZW;g)y?ԬkJ4o6ZǑ zG=hZF,"͉DdRpƫȣ6 }DhȑxDUqGύ IZd }whK:GYz&TZb$anS&"PqL;;|T$;LSJ&ͿǾ" *F80ia x|dx:E0"n%Tj~ބ9iDVJxEa }84#}cJQ|V^>K/QOj-@6qYr dm`HJPx3PĔn rsܔ_M4%G!kt_ \ǾIa&?l7&P=?t 9uЈ% [j!^3l4~m;"*]߈^ gӃZѱOI[$;fC*EgyC}KY"kNƶpTaxV} hBrX)rOxL#Jb~iePz'r&266 T<6uIյ@}U:k9d" EMvuK] r_VyS=CscY3<JS_ aj⮢bCHtr*׾!|aCAMEM,iA,vno7B޴%7 8٦~ǘTkҢҪw8Q?P>ω/N}uUHdӯ9w^8p^pg{] e>UFҐ++4껈&Q:ӦPU'xĀs&#db*94/KGuPJiiWuQ8P탛v ~hWXl!.X׺jP,]g6wD56O*Í1~4ӳ/ TPV>%bP''( ,.X&J,Bۓ7N9tVb!TJ@oK $0q;o62YF5C; IE2ܟ7˯6q GXrOn$P/:}eQ8n"љ+9Pe2|'¬֋_b^%2D?u0/E^I>[̜W3<0_|Eըg*VV LMad0ZߙɳFzCwn+( _qKw1VN.:$զ /x-^V덟  @G5$Qd{hا '5>H̻<#M-}E۴H́ġ&lF"qo~0J>HPILz#DՃHȔv,K DN5Zx`%顯"ވ/Θd77\z j#qu;bbyyEiLK1`s.C 0%i/5Rj4{Z*`|:5HQ(c 9eNAO͎lT﮿)V'|=9(w_dx6Vg|j[K{ikS|eR> _~+E\ahǸH4VRO8b3"hܼM(hGI5(1p(k:׾ ̵tp7k2W>\pq l>#j.~#l_9!,Ji!۔D VcZq(vR/ mÑ_kKP8تK>T~ڦyġDpK؁6Cf>8$/P͇Qp'jcm)`3}: &[t.Q9+|I_u>bj#3]+`2[\)nE+#:!]'l4b5 qi1vLAKM'nt9prDJ-O-N\ iA"޹~msCtg bhN(Y Y)lz"N>t,qSWQ`Q5̚u쏿6/P7LI`5q TLIJ))WD߅hSO`mp%&܁cc0 3C:Ģpsg@No~p0k):hi`,U]`9{1zuFb(UI.`76B]5 :Q7ՐwO 2Uܟo_E~s(4OLF v,D>Mju}'}UawpbS߲wEk>vI@EbK7άo]'Y3I!F38>惕jj|^~`Kd;v#\p e)PMKV4"Y׎v;v#FƤ]}4Hv&~E6ޫ^j3o emm;K0$I?.#|P"jjQ@r$i)e3] ߰\oiVabOQiNa*n7^{N+^Xt y4SyAmMU3Y,QNwjlM$jnv]1}<_?%j7"rO? {߫ z\Q_oؙ>*%W.ZrYnw܂8T 7аCBYJ? `e@٨^G8zs(+/<+3gsU\Jd[04%>_;S`Uz#Y1Gݗ|TKnPTcgMy5{xCtѥ+?̞ݞeq$|g]$im\W871bxhq^;b Are>d[/+H7:]X0-y 1ٽOx(Y,vb׳ZܵTOqh%\5Tet:WVm&J@&ѩ6_8$$̢U/jtUZGaD9T@o>W*kKlEJ\XOm@2.-\RgB[k|0 ] S.a.4%K1#^=__'Iy""Ce4R@ՅUiж]iQ7Of˥*@u`v«S-5qKP|9up%FS\FCm@v, 7ȝ*7pfCUlѴ{-VQE^Dg?!QFA_DiMrC obK#6*F"EPCx\sh0*D2PaPc38,Y fHYpB" 6C޸۸bP/n3i g l YwhM0kqooR$; Θ/w"5Q!<W"~,L܂X<[aB&)|43!&L`*PKe<ɢF[ *eTOY[GvBl^#.@OKT/dM49.\Mqj?ܵ{|7 uș[+@T7$3WNQ1_؂]2q C9+-9-jZ2PzuE1D1Ip^lqQh +56y6ؐ?pФӒ@qa ݎîEsP3`nN>l=/t@xw"-^rU~_"!V_mbuA'^NuD#GK@Ƴ-u\kAHDKFBȚk!DAceQ_} 7; ARJGoE5s dD_YOd?76@(Ch|[܏zwG1)]R/iGRAX7ݒ?tbw~niKXӓŦ dB =?zBx#D*1ʵrta!C0/++ rAdNM.ĴRn4/Y36G}qF`'Z[ǥZ 4.DEuP7g$A P?Ĭ<%HG\mqZ/Q( Khﭒ]` ao3V.UGzuU.@ 45ėh-e{XtOϮjLxqQ˂[03R{IRZ<~%<~bcSE<?Ԟ?ZQTKUrhgMɅ,w%X9W($ ' .0A 핫 O!J1o?? #ՙ\X1VA2 䂖P?2 #coH4]++K&jSF gΖr1j0'k1kz)${zCO3wJ:Bvz)_FDEus-.%*J6ޡt"[U严bTI}?:zrY6!cWA;_$Ukik%y9Bs\UBe.(*uխqMʪy)E 8ʰmx )~7aNNDp.GR_RW}(C;]ŕԓ BSo-O<+2p&Eɨ#WH\ Ÿ#o"; yBh:O*ɯBbw"8ߋ7 HcL?|11b蕓Q匛q!1b}6cՔļ;G9x=p)ެ [:T3v..h+(LO/>%8s1F/~Β/uT[pm]f"+* +ϑ˲'9wR3ճt_h !. Yb*y|aW4DHƨMMM 7 1H QrL$֋Pc.N^V?cPcH,i_  fl阹$ğ߬3 ltXsB[/2>%D8#.xձ$bşVNZYIZx_v͆ |##NPFI\eN|fB+u`;_*ư9Md,!N㫚 I8I]q BRQ{|EC9$yv[5e˂VE=F^FEArK&314)珼bI2>?U ;CXOU'Pa)֖ujpP%\u* fbΗ0^ 'OA4K07\z,QC9UMsEۥh@o^1 bST43ADv4 &\E|: k w;[ϟ@;*Ef}yk=ńeĿ 1W2"74#mQ8rdo9 #S $uJyW5nT@:z t MH3XtD )pX.?$Sѽ>W#f2/"nnl:XqǦ($!mƤ$FSa# 5833WŸLQv&BAYSWqcV=FG&X8&EIwǺ.P:H|P|_(P3n }r M6 K WL;e݂<|H~*HF/i_"3Ȥ\~QSW%\' 3*#U 2aݰlr>yz4mţ>[SomZҚv]5)}5d@EF~..ZyFCj+h}&h\tlq%U4uY9 + wpQ~' p}NW@o7fwWwY@*c47 ecrKD?i) Drƴ z-RapDžc=@Zx(-߭A-r}"5uF?-hT{ıeRc`4Xyl(4 t}cgB|P2f6Tvӭwލ{gךq'I> LGKZ `iKMOVZzMrE=*3o`),b;Їwz悤5/ 29ZlaL T^K_ECfIhckB̀/ sFH壃` 6׎_~kǯ#ZZdIL{;=@Pͬ1*T$hH@4X(CI`=@c%31Pc=ǬJ(f w+>@ڇӳ>_;Qag~vl&'bB%q/ӻЙ/xig#;iK*_8܁025$.$ EePx]/^e5ۥPڻx$\'z%T~$a'6u{v5iꕁń:ѽeD(!)|)W2S;b׈ꨐNv*V^*taݕ5lZwITEPgXcNk :C0Jj]p"DŽr: 2͓TO(0{FVW5)&ב/kp F@, eJ<&'uoQG=+}h6bN-]nd"MIEœPsS@32{>ý*u;q_'_ O N6N4S#A-'K۬s |!Z#JPs<s F R^nCWrC|^Fi܀]/ו0i Migux_I TuLesrK{xm>؃2[x" K͆\ޜIv[D#Z}6[ԣ t!1I4MvPh=Nܒ}Ȁ|Q#u$ifQd\wߥQBN=vU^' <.}p"pBiۣ(>-FG<_Apa9h?W9e_ɞm&a#2~?HӰ0&\ LI6]6p\m2>'ړ3ͰL$m6Cgԯy|mѦ\!3 C}qR'e[l60Kʛˌ1de6/Ӟ*0C龼/be(Cb3S,,D*-Kiu.OpHNq#U~]z6QuHK ~P%))E͕0 w mf3va61En{,14h\oRXq`b39VHd ɬ26𹋈ȀkoL$J7_Zsp'8]x(51WpWSܞ3T&Di5_jA?_9@li-Ć!V1J4#ڞGV욷>$~:EUt"V<~$W-ZZ$& Fux_VRLւefȧ3D>-@N8zB!tX7BsϸX>LE ˗v7{L4Ȫg"Pgϑ,2XOl~}iCKc@nUl8Nx{·t(%l:C~R'wK&;0ϗO0RfV07}\&2V*uz1*ݏB:I>` qȑ~$$zgvϨ:vۊ!HĄk, ~8Y"F_L*rd/rFZOQ`~PVg'bjP;DC,M`$4ۻ5G% ם_XBcOׯ:v~p8a׎lcM}rSD&ՠG 娗 !E FiKX/ --u5ktw7T]&Gf+5m FJ=vD)q|-!Y6Bvd{" v_SŧR%[U)Z^{@mW"4hA>e!;{yݥsR`v@_w[? ,̬'=rs#)j>FDgLȠsI޽'6h8 XtE[rB / xRx%_y"?вא$v*mʖt|<]qb6TZ=ҦHچi]~\̬' w+atڋSe÷i?n?LJ IC6I ͔=qA`TdW îRJS7A?3Z7bE^:N턞L`ԴhoDG}@*Ԟ,צ'`z35zbܐN愴,EMz>RT)lk-\WO~S5)ǩgS)~Mq- EhYݢsD[-&=P("zM$G݉Z`f(K};$ل~i_@muGyĄ#8<%zcNg_ybP,1Hi258nDp 93D#]9|dȂ7b0I?f `|iL|3^}mB>A LYJѯ 7FHjU{^PI}r_Iަԣ2jk{gRR$r`p۠ eJkֱ 5@'ϙ׌P?"b:4@.x+3[ة7.T9F]oZei AdRފ*1"IFiTڞ'lVAA\OKG⫔vi$.8< 0.==qLEWEE8,t a<N\ EeN^FL4Cm Yjthtb8(80 a.eƍG'ק(v7|RHx8}W. saVAܩ%KS`@ζ BCUGԩ" d+R An_/6d `f&(ɹjJ~|GQ>bOWޥv>Cڋ/@$){Ѽ:v ŊP-wtX 9({neT`"0C?;뉺͜{Q \v`b:3A]GjF.4GDPgjrhMSv*hD]ޔ~˻tc1q{xШfG>jjWd͍'$*3꺈39̋~x<~.Ca,Rpj91~^j4fH^fRD$q!uxfnA\Fc?2-hkPڹцQxʏ3W4{0y2`)E=)z2PUWA MJdwm24jLKS3SaՂ?SZ3#E-،N֍QΖA&E%QF|sA fMQ?6]8C\C8hi GvA4by] Z"ѫt{U6WZnZX[.d5?]`z'*_$m 6=/SϧtZ;O0ȋRky=X#kL'v bvC ha\cJXlm&σ܍oMp͒v77Y㹸$w>|y$꠶lW!KurG( 5NH&s& L/FWzގ`Kh<< )7am|A!yfFaW$y}A! Gf+sY9HY&70]yN Nܯhԁ́&4"-<94{y\{{: ɯuWɐ*@{]O:1 ~̝0#Vz]3ӣC-瀺52=f|>H];i6b\ognV~|{R;?x }ýܜ{ZwiIg,ۺӹ'!_n" Rv)bȳs`>Rw"Bă%0 DO/ 2tq }tJjcJ,j)jA~x)J ;md!Xy憲`~`&0< Ǧ \YD` 5gOB %4 RUׄ=L;l2SZqN _l] /5i.fLj3`=8.4x^{/_5 䫤S۰1Gb݆Dh9Tm|6؟z⚩D|,Kh>껤EKq3?t<~15'y܄_Ozj_p_6p-9%#Td2BaG^UYqnu+7TobcQ'6w^{^j;B-s?z:J…Cu'}q !㊯++ uk<ޕWaCrTg`. V/t]HA41o-[PcC3|*M=|0RdH ©.urL-mY&uwx:jS%CnK}>[}t?S8:w/! 7j_d0?ld)б[z6pUfC_ز R5><:yO}glK}1dP@eFcH[OYH.ߪȔnc @Rxx- r] av?:Oǿo cOLB^bY+`%5; L>6nS^l!eB5 ;Re6;ualWy7wcc޺e>14}{ޗpmE' P?|@| ajB'‹~#'ކEPEg)!-Ya5a&m^w-{_ Z V l5>}S="qĊ<^ xJ>[Sŭ:Q}Y:S%|)$uyd)D* !iEv'uS3^V t*'Aـ?L w[ {ݞ8@b {Ƃrx76+Zo~9-?oGXwz!07 5-@ctojIڣB9!fP%}Jcq~Z s5 tCL}Uf?,دQpo,]GY H/,BRA*T4(QPe"u`%wD{ {A_] |6Y`45Mh Dn84i hM:r\)Q-dy=n+yy\D%7aߟZڷ9^e .=:[.r1Nnh<;9ۮͶӨ ]/Ůz8+d9))w*Α!Ejca‡21o3D&eN@&OU ɟ6A7t~P $%A<"{6̇.K]kR{%@r"P щ%?uzpس5Tr1+'Z1|N2"Pi$&V90[ln R`/vGhG 'yZB-34'Có/c+)хpN Yf8S3De%6tAhhBث j4%kj4ڷf5XœC[y.+zd(-$̛Gc|jwϊz>!VpF' $8}]Aǿ gsEd LnE 1'yd񌁭 wh׍,ZFxx>Ur+ѸIxY2iXö-jR_M ^i 0Oqhq&#<R;H faf- 3b읞/&y iNOG,laO`Ά91|2%h ?qwD5;kY[w;Zp4"KïG$ #v%xT?S˩D/EK>ހP{2}<(M=aT8ЩOp .MsRH5Ǫ B8и:c6ؘƣyh ߮}>G,UUՙq~޴_}Ouy]#mI wfvvkd!s_,|'|/{Ub+@OMe> }ntCc p&&@_+ AHlR}#3v5Zy BQGʲq$1ߎ#'J0opf͉Ij^XunueIpBق*;$>lu2rZv1FĦCCYVOYv֦UMAX͆ɞ2H4ZF}t\j*bhly)^&k|js-z3">m$^&gԈad^ybݰ#{htV\Ϳ?ܝ}b*A6R#K@1םl<3!I`6<9*0>c_t6f0tqLkf zBYK` pk0,r{1D*eW&8=Sʮ#z`wD. /| D9Q@oN`aj%;J,5A* Udl h|W3I>[l䛺P~o^2ԧbPa4뒃_ D?F4r}Aj.?;Ei}{`<>3| y_3 'O Liw.~NiE -0z T32[7~,ߵRN=B2^Awh@[XSSdH:A.L+[\]2ui8bU@%ncګ2-=ϺԩRA[_O gF5_agd<:0WdZTWc =V֤l:5Lo`Ʃh`2 ܇AF'+R-@cׁ.@ _f\]븫B'J UZCC yMRɔM.iPrZѬ-\[UbLmf"1H`2Z ;.cvimgmIq0݇#|8p9T?}>缩fqahsª?PQYwVΏyA*ȕ/S1 p{mLѧݙPLJizS`Jӽx 2OeFq޹]Y;>Hawb vCD`4wE:i~>jǻrn}:2TSÞ6amF1Oގ ;pi>!3Δh1r=x9mbQҾ$K|M"cS:W.0p5}Vd>`;*R*K،l eHHC\e?jcvs1XSTX4巣E^s2Ebm{F`, 9  ; 9XW2gS91!e )GNiqC܊Ѐg (H%ؿpvۜo_/^\>Lq ud,Ӳo̴1eSZ?r6c$ C_#ZjXGryBTQ_5#fwFZl4tT׶eCvhW9~mM]8f"iA"i&Đݷm`mt#ѹBu>.E^bBC}ʥHUH1WP1~it" kY&d(+dDnN zRyc.Y Q P*]|wD("ukbӟOid; o3ķD(a#?Dx(_umxo{VMkъXu<%FiS&eF-"܅O4B?^]­D4to4X8xO`.lURČ<^ؼ^Z'fe?$n6&>ؐI.Rm]*m>Q⽁-Y2R &.OsɆGL~HӐG)kęX5_aqqھځlu^2=I]=Sbet5[2VPF+uOɝ++g ~2n3#dn-ʺ9l Qc TC)qexX\eO6ռY/4f9ŪQN:Ot6L){$o?;mׄ*cQ`\E=hzUY{I1dOe |ųj #rl~!9F](ëcyvtA3!,9X'S  F̺([էM܊ԞuKo f~_ђdITIh> 56'S+L>GU{:Gy~u)HKڶYMᩍiiv8Vz"@4YT2kQ}m˝+jVN^=])\CCaV7ρ\]jZHĀܠE֩Ί$x7fZv zy/i/(BM:Y-6үsSYɂ,)=: 9pgCs(,qqzeozqgLlȩ@JQsGGP2m.E^$,uGlL5UgsjyBWaK*iebaUӁO3}e9*xJ਷%y"O[rgvF|C*cӑ!Sʗˏdoq`uQ_OM.|3ڊ/ʹ}H2b%-:T8=; ֽ c =yIţ{ v/ipᶁ]v#T9(qzWPnُsWbMfgEhcbQ?P4]-VP[ \ ōe.u(u^؆rE f-˙a\nuf`N ">p<ԋ)6mTO[?:F y4~Fާ<'2F)Ash(:i4u\HI]q4+-@Ȥ9GQIИ=OvTFr݋:ٶ"TR RZWߚ+u_"iӲ5Sh&]'[ZN}[CkխR|/ٯ"j >N&V_+d* ]\xv=\TL\Zx"#b%w#!cMI 񢲢nC!aZjF*P:Q9@]>:1#{kxߝ^CuL:_/d%|6k3$>*K*m=~ 8xMke󇴜e@^ڲ';;7܌4]l㱆%;W@UU~X?L)c(n:l T</pjQpBk|4^tX7&bx3j]ˆ 9ϕۋsY"+> agXrFŮ ٪eI`l>m|KWW׻}vU6i:6az|g(ҕnP4& * :h-H&d+;N>|ީO "dDG.-f:/3lUd9% fXԨQ zqU@N 6#TH~ö<n5'v󘟔͌+#T3>O8#My)}nү'G8vYw sn\=rucfhC`l)Qq~+|{ " K|'n(-M;FRŨm1 aOs4|W8PAYa!6 ̲砮ߑ:zDt}SGO Tلt=JLqN1@c&^hU; Os:#zsHnYng%ùdv)d0B$*%J91x]6IA[g ?1Jpgt.MvΈ영C6.(Q}C>[D@nbAGL$Օѷ=放ؑkyߦ0T/Xi(#S4D*kB|􈾁_8L#)$dvDp+cbGѸ>F{Lb7h)@yR"D6f}O|z}l8 }l̈L EJb'wbÝx h rJ!ó|o?67%8 ݄?e/uÊ ӿ7b."er` Uf'P;P9A`hgPay +dIx!uR,C7-ANz]㫌5h _8u/.iT}Fs>aƧ(rCTJی˨^DK~fBD#3rM)ϲOdt0b^?1C,At9E^6(r jCE"a~̎ʻvkuUZiQ3jeIsfKqڑ=4c촮*Q!rhͫtI~46fX-Ù _fE}avc[a2@fg9O1\ad*8ff9qr郶37qp`>OfZ S|׈Vlcv]dۘ9J7TMVbE*G3lV$ LH9Ðy 9Ky`E# yلފ(Mt/CmO V1gK/|L98"N6L!>}&nkd5hˡ7iEI~-lN&SNʸ9Y4X:|oJR^5]P{Kn7 Fe!P8{_FmVȁ ?ag{k W3 l PQxDx>6àSW&w5j)%ѪKnV堌qyؗ ފc&[fA.p6*6qTYdqQ!i {Ї=AQHNrHS}i̸W]T.AOq%GHwcy5d%03abVl^rqN߱ˏආøU8>b5֭ !Ve4!2:*:rMy>Iu+2 NCGp aPfl>{aU ҿ~0N݋RԘ8)0Ve!C^0K2sGbMzhaT); XtC29Z{A~/瓢V')2ӮoЩPxb4eCM>] t 4O(37/, /CO0)KdsKS󉝺~mѐ޶> f4>o]8>d`1 IrU=-qXT?^Oֱ5(},9'\lQ]_⏸K7filA8iRѩq2&.0# .@tM/*Ż/:"A F!jK'_`@Uk1(A$>.' i#:F0w j1I^*P0{/xMu'Lɯ,~ʾ5|gq`IoUn3H/_ cC,r^{*Wi,S)I{1Q@*uv % #|ޣ2xF5y w:2&e۞ORjgh0yJ HvAX*\8^hxcՉMx9)M}~0O+_Lw̳ x?4$)v 7,QnRbf8#)R['A-6KX}!H/Ke\3VM_5 d*~AP vf[0<*_su9Yx^lC/cb3QKهHEeL?v2 Mf>pHVꏮ≥Dn-% xQΏj AjүۇX;BQOKm Ws4 eӰvuXu=g_Iiiō;onB5ZSҴojjO,#_bW"Ѫ wBeqv s_یՊI8ahWv]UDžJY‡+ɨ hht:H`?V? 4 wo= &6#ۧ^~tZa``=՜+BJJO |xwDp;Vȃ#$ ~_Q9Wf 8lY#xw)(3{ 95,=G825j+2GeLnɣמpfh sz&%KO2&\u ""D[ɷ/ǒA'@|'@~_9fɶu??\$B Oӝ v/vSERä{>pgӁJU;s>m{:||1 6{Q;zǶ ʶ%Xd}-jϊ𗵇&|0v75/Z{$;1,=K_xMtOnu"Vhpp7+Dž{Bʿ.Pu6ḑo'bMFM"z(-d-Q ]J 7Xqtޓgm(YFF| 3Ɏ2n1y>Ϥd2lB.7HKВ(x)ǢXd.bdz  C(i>94p@u13)sL}FB2PE`cX v~h]@_*TI݆R֍ԋ|~E#2y[h#6, ֯E*XҰjكK{Io>Lm G/M\#7ݜ~iްc5qNc/ NwwH|h)~"妡ܩ{ c [T/x(yweB_႔,Z˹_&:CNPXyk9:V5P~9LȶZ!2qxdmW?Cn902ZTEj#}N0h⃊0hL+/!X6CyϳFM q!ɍř 'vҝNx߷!/n_"vBO4ExH^8 H&~f-?Ig Vx}d]j=go<|JtVi,E}Oܥ3WYt4e7ÇEO@SiS/1e`r*lC/-I^D1lbHgP4zp'M~B^p sR ܡAX4Nw \*N]/ě$$ g;^!6Yӈc#'w,jꏳ$` AD@ |:;;jׇ;7_sOCh! .US$Xk2`;[(YtEiEFag͟~pZ @?N+ɲr},vQފDAn1!F'Aǖ(PxYdoUxKXŃ7/b?eh3b`]2h1u<14϶3{d[K V1Ci?P 1#sdĉ6|6EFZ-/1V"C(y]EhL|;z "꿗݄h]BLjS3l攂(=36:8 B>ˡ>"F=A|<9, # ȜQph`~zi66;|=(>Rm%>Kz|t4vbƴ~hTwQAPe"y=MD`*0yuXZc9{W6AI}T9Ѫ.! *M2`~#N^X*KBq)I~MWFqƟӣT%RfI`KGn1'`_к`5bz,&=n*'x5H:h1sf3MUWo^mO1z '5:㺀9py.;^YWC6a2΄H ,̽Vdmt PНvgYhD~B@z cR8Y6Ui-7|el]?]>~|DQ9@aߩ-y9CEx9Z`fe>Y{wXią1n&=%+L |/c‰Cޭ?\P@wXׁ/Km_&58'݉.z\.- Cb>ˏ<ůmy;/&z:h':FK>=u,$9*W4t!>p[;u)*mWlE": Gž*'^Idkp׵_j_ͧSwKbFQSRDs1,nb;YJx/ɝ\ڐĭ8Grf)0o -p* )pHŠe)Di>m]ۡ]8+܉C?0ڼxOTz WA˾}Mɤh(HV|W*">@` F$e`=sN:p1_~kMw7 y@to_녌׋Mpv-18-:&*>~1?j֢fb  C elEVVY +@9DñQ.jg&PBJ誝A OA֬[ *_j˶t>*4#ijn6w-( $mgEp|ryZ?QʍK%}W;_\a ܌\3"1%W#E`oS7y``C7xxi>LrJllE 4X)b B 3g P yxkSZwЕcX_k!QPWs"aGBҕ}s~*.MO* ,u!*yAYQG>qND9;M]WvMh2rgi{ ;gD=Y@Y2\%D~L0oԙBw_dIgv2MCFȱcXy6?gVsUo=^6v|W iG$!yLd]E$TƧǦ4GgI,FˣKw׼VBq eYrwUm\LCsDx8m9M%- ƀFxu!|dՠIQC t;85 >1fU@BF%mUeoId?o4o+]gV@,*w7tWq 5`fq Rķ|N_ gh&: h4u+cڌ'SRN ",6O\OMoA12C|VpNnƪm1SY2wQABĖ{tZa& ~6c(Ce܄I8ΥF |шR1(?IbuckBj^Dz4Z{ _E.dOIqWWa5%OAQt T6ushO++W1SBs ժl9-|Rӯ8=,smxN|etUY6ɒݵ2Cs d72vH2L{5f }nIR,$RRwF3ǬckZ=Қ.ʧh]~_O(WO lM}hU1Tؑ-\ݼm#3591%46Ki֡ rdI0jl"Sƅ{.)xDKF2FB8Y_ Q iFhlYoQA##JYhcvcH[0Ѹȥ$S:PvmP6ylub+IxH[>@Wȭ/i ^B`Xb$Rs $V'>־c?*, BFB3 T9^7"l=@S+vOH&ϚBٌkx+M8V^]쇙s~"وwdWc"O@olo`Clu4e<*TJCDz%cZ:XШl}=}eSA k1obHWȩI!ݤlOE6݈ր~ C89`'muʺ$9?〨SMBA >v#Oh xɖZfO11$="8„nR$'ƍ}D'9b8T: Цll 'SW2ņ!>[0*~,~!Hʴm@ <֗~vMrT>mW >3$eϧH&È #=fuBiSK[{^ZdZ[Cbr`gFDO`Qp@q1<ˠ|86 "$O4,ן9FOhl\\@{z=\doPN>Kvk=1.*$FI0r?A~(}w {͜RtOV&f7R;s >@;6k lsʿMH ₩:H2{GDwM0cvaA} )wV Efz.;cS5 ^>ӟ~i:nχ?PZG\sĭ-` p1{\k*0K{1!cg%=i'tQ}[+`9dDf֘ Xz+9a~p\xħݏtBNE|p>l[:l3Z A\ ղp̡7ˡmr},_` Q{|L,&v6\rG݌ o;>~*W]כO zz H@&\BgUڈЫ%ϣ~[*HNoJowBB񼯰OO?[df oQ ӰBj[zqX&=z>n}ZpƆUL!ZGᚗ,&D=D?\@Mm/k7?u?FJXα& ܭxYkޓF$X"o~K \_C# J ]/,W8k 54w\߽Q>,8HpҷŦ|^6Q1*m>QpHX;$xF_LJ;?:/3f 6K$âj{ 7ÄT~.ҋId#N3Hކd8$sBC_uoNoWzZ?O0뒳^kmdՇьZߤOfA:?,?:'ds\$ؐl&e=kLVy z㎕C0u>A*mRf؝vI\۽)9q^f^kPYgܰQyy a Z3VFI#']LL@HS }xq&xgn 8ILČvYw4zB_GbۤS-b~RŹBS3H@aм rx3H z^`:9CYށI'0!LgO |5.!x,/Nfc Ѝ%웻jkZslc  ϕkrL~.ڤwa;pAl?e=@^.j-UR QbսX9d=t~R5̞'AW5A遈Vf:#Y[h[]H_Q枧n#mb7hL}4.RZY"n6dZEN'\WJOz0Nܗ ? UNR]-3!)g½,>_gpKjM6vuMCAQIG '4>T%C!SᲃW4,2)O*SD,6W'<š;7xqܛx T^p+j* iy56*OYdn"t+b*l"ŊXTmd fwCZl ˲ƔR|dG*qR9'lhXs}9}}ta3bjҶG/ ;MaJ/t')R>0IQDR$g{`Q#9>;l2{']A8C "<+P'~eVYڍ,`;N A~4_$}h5؉ѣC,Sa#GQUu2[n/mϱY{E\hs0BSPmW\PI%w└]bPW $x 8Il'ż o#e8A6N`B 5" x PLs"8,4wMV 9+ƓS.[ f a{%`6O`zm~/ɤVIdR+ *z*oѤԚUtc!pڿ6} zdTݣP[o QZcPkz+#v'[|o+V;h=̈́٭$,_+מIcPajXX >ӻ:R]h{lwu%xH[{3M,ϊlиe1-D1_= W侐X{R['S)P^WEن#և9[S۷2q.$K]T#TI̗ވԆ )hgqEBLM˙" #av-4t2 \~k[ a`;.!Vb9rM/b9|lm˜~%DՉ^::7w[ -w~&)>}y~aWGŧUZ냇Ǚ)ET슪sݔ o5z43 M\u̮|@!3حZgeQX/N>`6aG\bvS.o;F6!=~uqd E}#qX=yyhz[\0DdJ 1 % !VЭ3h@ΛSi3 c}Z["U*/qS؅m%3a ~I:xL*-[N7"sπ5O0@H(D?#yxmhje9ŠL>FrdB$W=)_KL$ @l1 r7f3&h4nۢ`d9qdbyi|+ #Ӳ []FZZ;73yL+|! 2<誆l?b1JOcYcqf%joQ #A oge1PGhv@%ј2~2Et$,|rUoeS$J>IPR׼6?T#Z)8G y8Ly;-)Dqn6ʢM)&ʪIZTXL7y,1K< e̾rKq~o"^TDo*^m?w/=D~qJI$Խޔ2n9ZX,AOZh Ji2m`pq@1seKF߾qe?%Af*ANI⯘G%aS+Ma`D.u}C(B)[(!OP/ގeMqxn)v80eL&c_y? g C7@#SXZ4OleP"(#./_Z#m(ɛe)Y2~儆N16 GO Gr~6?Q' H ('QڕD [<#qmDf Pvbw%LJc^N>(3G@l7IM/|k"OC &G乑Ȁx"-rEކܼQ6zZrFqwYzƲp @Fdb>\/(>n7=ͱ-ՑIˆ>,`>B|Ǎ<0j>AۼaP= 0W^+zYͬyoj63NáC 3uQ!u@o@=ޢw(3 :$ z*Pj^t~+F?caUﱌp*klP\~=1ެ,ZO KIBFǃqQӍbà^t*M_Y᭨_+ ȊUM 5Ry*@W}7.Xmq6b>!WYJ dYfj!."*?h-#P>5]O@o 'hn0#\ n(-,?vYkkE)lqۡRU[X4@O[$k(R/:a|dthcS/nEL)lxx Qr r:Px8L}VAN!@~qfm``tAENu# döL*# Ѿap30+#aY5-rTs٭D(1FO얣UQr峈O7[Z }B$ A[9uPEx÷amaBnx9@9_l5 TE] ꊪH|x+ZJ$LQ]Q6' ػ߬j#>!;1iI\&dD/)x^PrhRK[]J_QD#HǨU{laql:1@ # H%.쵂#,ݥ}N>l,B U*>'a]Z-JPT!:قIC2J47WIv$MԆ4w>}tX}rO"llA%Tb׼'*ga=p7Zn@. p'S+g3<Ϛ3Qt07Tl-9r 鑤Oꄗ 61?NNHhCT ˝^^4°l< OYFr;sArț/0 _z5}a @/Cz36, 9:وT|*ס ` f _08QBJ eD< 0"[Px,NPH>=ofZAΤ,iL&.! 9 .A:u˷*aq%2曍X=Ž>zpZNXMI3Ct_F۫k=5PG|4?Sb+ޓiٛzZSkBlz)HGږTWd`h5?z{O%z%mC*Ru`=dҨukPx{_Ɨz9D,wc (u]x9Gf)Ux\>o$鍛;OzOh>|@n“^z;ϗn Lb>DG2X2šW(A<)(Tů*f/۔Tgk8ڄ:.DXn#0Ůi !n(JįUH(t`^R \?@Y|'/V1"HUA?:sDk?ckG#pGO=|*BÈ,FPh"rq&*R\<_-!$B}Y۾&>e3BtI1uIL%+Rbs6E=-l{0rTd={f+( XjOIl$*Aќ%lyj&VnK^_FxxJos0~^LJ:qi;=%J"W\'mմ,wos [Ԇ~j|зgCg2;Ѓ}s)<0K|m3JXBGlD,MǦt*Y@3!z} & H1q_L0b vB4A8 M=k)0qk͎-t;y8(K~JVim}7 5  09R 6;v4{J!Ɔ]I6 /~LK@e+)z}͢f7/~7$pH'dv]hGM?mMP3vX2956YPEٟo#5(|}. E|9Yqfʘ96T)N66d&5 0~9dߜGC|2|>">["쟁*!u"I޽//|9b{AIL{p{/ -/@9=/j1/O iGbźpV",WvM8'gSDzQ;MjϨ'T9>'?fOLY2+*pny q_&Bpuqxyq C^{?3gn dNK$c ."_&EӉ @elRCU ?/iG},$sw0FӂWQdv%hG,& =Yk4$;HًY~ }_fgd&"nMB!ӒHŘ0)<,9Q s/f3i3O%b\PNL ei=؟v$S5~<i%KzXgvL.T@&-jSZc2vmOpk" '%h2?m-ǻ rs 9dnh- gBM:Inpȧ ![Ugp "gmuH]dI)L‹%{6h)XTVy,+Qn~ IG8t"ORr 䁬Y/O0, d5ub0*˧(v-iܗKJ8= 7܉pEiyT[cw06ab %; (:f䘻0];Q^줆Rs*&YDi\G0W-C J;Y~.3"^\^»ǽL΃ܥg /&0/< f3[Љ#()'\F`.߈;vS׷:uXR &J?ToDV!k} 6vdJO4*H*gp! p/0/Z\n+q\KkH(R\T }J):< [=ԬG{馮xg[1Ȏǹ(uv>kp]eRx/}ZЖEp)@hh( q…vP*˾%B{VRclY:^{ uɘYjx(㜇㋹i'M(_L=#kYSiZv OqKHg>gT 5sTkT fz8n7G GVhTؓ O³x@Q>qUWjW׎/%TP~צ2r" S:S:P~( _:9G>'UR3N%݂YNs -5 kݣӍ`ԩ Z>%`:D7X5AX&"3aW}Rp.{uIURAgײtD".O@9qVhQ1-ߤIasc~yY6 tW D`pot J FVy 4$B J]}YR# cr8>QPr3̌`m7 +EvS_K ͇vOqH~(\khSZrN@-,NbiטWk+[\q\V.Wô j.qG[ImHE5q9gmsCB]^xO&mوe./U"lEtps.H 05@{s̮i>t1Y|/l4ժ 6Za[ !v^Ft7%$ 5 bQU HJbzXAL $9Ejfʾ*_CDlx=6N:+Mۋ?>imWPf4뤓GЂJHwrJM-8P-C'uqNJĭs66't m)2JȄTlo4&&<:H}&wrvgIr#U: Ѕͺi^'m'(4-".v)hDڽ3M;V/ɋvCy$ED񜕲b T"Vh ^A7@o)ɊH,G%]9<־Fm&Tz c4}ōx@AJ"J^E߅I,i(z A/&IwoΡPc)kw L3ڢ9b}<1rDCMvsg7ٴ1:;Q )i/ѻ̢N^1sPp;\0k3I& x mC:ʈW7> "'3kcws$蜴q ~Eb$3MTp}:{ k ~ b* kv /G:V֝c ;w@Q0n+w&qcg!Qf4\Q&T(bnjd0 hF*b&g!QgR^,v_$WqBxx69UJ{ sSˍ# 5넬7J7:3gK#6$=m~lj8ׄBg5? QOdOA$rC:#{@- ' $e:_&cHZυ%Ȩ.4uc{`|ԥO[!e;Tӿ,NtJ'<.0wSrv(K7Ǜ f]Df ngԜ!GI7D(ܛĵ/ KhJH0؎U/պ8%/c ` S;,)1/_CD kRw\!k>JySO3I 3R-TƇ%3{91ȷ ԚJ\*Dog/,.h2e Wo3|/\R3a *0+T&04/ 51?u5qhe][Yx oDIzӤ-VPߩ҈(1TF`Әʵj8)-2/eU,eM/j -$ӼY9|CX Ս@yS$+NᲢϟ!LD{þ)~aAΪIyMZ@ęIL\h=d+eddO[Q$ u 7Ap*j,>důfoit[\METv"9*0KX=$jQ3l&n-QfÎif|k3A%}i?cc U3cymHۚ(a=oC;۩mfڂ.X6)fj~1'짦gFYl~Ӓ_p; L[YIrEsI&_Xe]v/A3L&|L1C i`YN+Gs5 uS7=-3`]8LTv1D{"3/6(UQI4BB[c *{8}E|6)-uDJ03f-;2>v\ jf*ofRkӚ4_sV6q$󯙅,i/ATbzW"@Ȧ|\ P]<^؆ fhAW ȴm,K+a%.ʫp/Yv4d/kky]E*;l}ڛcg凄e^SM>?Pt.^çYH`' J5ս ϐeT4[X]'`p}%>Ҥ b]8q.QN^Z()'XYz(-!(p]4LeI+H=XS7P-1=G; m#Fu1>t@M)]?߁7v=ILsC򟉕}1sna0`vqi+﹒"X \ilpXSJ8 k{C^ϵ=8c- Õ3z{- ~73 y{5Pf^;>FeJqƔٽg&9[O>O^ʙ`bI+AN^Lj!$ŵ+^DR3# "ʓUjo>s|xA-LIVv8YTq :oggX1r:rA}lWQ "F8ChxB˕epfE4+r1,hv b'l W.FvMn%MSMOćqcr ҥ!փ?4&an0zPG:>.XZ[$J@0׮g-(YFZhn e>X6<փw[ JEjgV,UC3seFϡg@CQ'^ KkDq!0\u._σ")8*UW)PiV R6Umq>]b":#a 𯏢_s2/| +;M U2}%aɀ놫v3:^l@J"4@1ěahG=䊔bwNy/gb"$n"9;k3sx?7)KںD"CoP[^a/Hs91qNn QEeQyMFPJ.[噋yD6cVóL,ͥ~, `Doؚ;?Rpɘj˭,d4Ld^#;& eĸBUs,]YUY V K!ޫЗm:D-β~bV5tT'~f3){15r!BHX-"~/i @q{:Ƙ!V&&Ck̽]47b"NG5&f} Q͡k1NܪSA_DԵ­a$9׷`xiݤfH=2c=ru10h)7h׽s )ox?cؙ7^$vD\'tkNTŚmՌ[ ٰ$g?P#F.قm܁kȽ+7[Qn~,qL՟ҲXOmE0ىQ'|;4rti);ބJfk2ck1ӥM Kd_++I<8 w{G&s}t4#M7R <"N ,o F[p3WC>m45E xA;UePYeQG6̀p%1z7;ުov(b Q,l =Kd>Snm\TѩʪF<հp҆$Gl8'剻rz2]"d}zS2tT*6Rj}(+F)}M6&ժCºI'*q$Q'Ynbv,g{oI/zg+Ig]s(x# BɭAF'Brg27!{:k64H-iGb_M ,!\]ֻӮl: _5x=AiCI .O {?M]J K&u蛿#@:Vgla湾*ڄتGqm?-~4^7!pWƬ} =K7Ǹn8a|rH N"Y³ZRcdK2yX SκЬg+Mg)R`m0MLvo(mXj7 >{5؏J8%%koR-)woҗ +$烥lFYC*2jf~2R R9\E>[U S4#UJ}p_e2|5DPVP\+FVa2Y2GO ; Σ.I*ێzBxX@+8Li%|JBQA`>s;7e#]Z[P_s *#uMV ú |\{!NrU]WI1Zȓ!> ;@[Ĭy_#n(KJC3#,ĖJ?bqڔ~^ ns~ NNܗ޴&$zZVp j ֫]yd(8P>oKҤ6:JkRF\ƲJ4Q "SaT5M}菢x]DN#лSM4_xhmʼ{_{O'JwF7l^H $OuxѺH\5Gtg]\a#ZiBtejSiB`Ӽ~U5C0=I]؀㋜hdk:mfj|4ѫr0ˏǗpzw6Sw3TepgRCg$LR<=LEDĭ*q$ZD38_zD̵ bޓz1@09Ĝ/gWdyƓ&mAFAWikAH TEcҤ媡BusEmɥRDia*xL8/ƣxp)tɗ~9OjNiDž 0XgVӀr%802M+z{ i<|Ps$lǁ2On FJ1sق5m. a>~pTm3~6:2R φ|X_W1(uh@cJ=*NNKQQI%2\R%c;k"le4rnKi(9z:~tǏt>TKWw T}W.`e)}C-Nf[co&rEd|Hon>x=#8_Lշqj}vsD9|݈DTQ| xK=' ESR$iXƽImIgmAgmAڜ rJih:Ͳ=nOGx=!.~D/h+dqYHzx[ 2 ~PCP|ZX4ĸD*S^mw_S|22Cn)ItwNKҕttwNW <:~[IRrkG FB=$`~Ū49K۞)cv.L0R__Li\$h^$L7kOPe\O@cwuB2oG_qFv!>';mzA?U <Ξ͹)!Ăw?lۜpQY9˯%d4lө2V(98]*QgA=2pNmEHF_Hh֟[_aH!Jz$Y*2@3Zu*ߣk a荝c2ߙ[F+WG"""|K# x aB]èոWf1M{e {Qc>\"r ,/h<8$RDSM y's$,~t)qp=2҂XXPF?C&݆Ue&#^75TAh>:;kzp #C4J.Gr65C_b"f!XJN4aV&#Yx[*׏a?;+vwO3LD5~Oc6lN%J.RJur4/~xT,8l`[GJaccZ, 9-VŵB7JۼQE[ t?|~` 6a'y  ۴i\M޿+x;!:|-d2+PcpSG{š*,a\XTO(Q-ȴRzRaJXl)aO}%=yKr|BNaha|@Cc<)t=р+bbXĎ0vDP %՟p,"WXZ3}Ġ:o* 'mBRdH;6%1T7H_fɤÚؑvAB`ψipG `TbJiOqO/h@齂ŎOEoO޴ɹxEs!K:-lԩ-U6܈Hlal]7Y;?݈1֋o.*EV ͟@1Ia|xmp@ٸfJC \2B"p0P9^[;bd'Ϗ)ا:RέW/$9ѿ" oStk=g(|u5'_H@5a'#qm_/X)O ?Evt .NKtzF2 -p;vJ-<~fcvWٖ1.~Vx!y.-9/P1h1D;[ T1jWQUTMF'ǘ ֏)ml10%Kf`]*.t|~S-]ML"Wi T}1J_2Y =X_{3; x'd5KMM0{ͲZF;uFLBwq<1Цx4kw3>C[6A83LI)SfW?CD88Ϋ٧'3N;YU.ftQSE*+I#&RBEaDAǻtEjr5Qwty_;|6)p2)LbIE@+\ np{C%^jpBefz[e\ˍR9Ъ[Vǿ<pr܁dy gjF#DnLyY -I9BQ1©+WcY\ &4is+9=O(G19+E+b랥@{)1YK9%MhF *΃.n^"/,'2ᤲw%C T _( EHC !8.^Mpw9'ѸE9SP+-*3F)v\/}ZM`h+~S݅RHH#]aԂ~LRᇔ^D#^xpmŖ;Wۦ7y'T!Z9gVgJZ]C]UXj'`\F} hC+ym7 q S d5/,DYb*V8R4ű9m<(.{:5$#@ʼU~`A7/6@Q\V׍ac˯ԺFn Akol18cNuZj]h`ڰ F Q?CÞ@ Þ)]`Xp/  :Cɂg)Ũkˎ°UF>';({ EMv1@ jBr?QN ={/4 FJqDSɮ=kYh"wT}rpvpw$hV8T1&`)8h.u :,&сh+h!t¨"G3yh(ЁI_#w^{8dW`pʁ7LBɠOښ˃9#DdYbOD$cT! P%SWp 4ҨyE*߬b:&3u;YB)!(MyTSn_VE<|ʐIӽ³,%dN0g;5 'ek}K2 od Civq~:`` 'nBBtn/P"S1'KxSc# dQ gj lG|Y'6FPCVUI)a2(x|fbЃocK+'>gSxK8KC\r'r1ak7cfq`f(}c/9Kwܞ \$1Qܝ| 5ys= YLrOCrlylbSĢ =lta |:.7m._zRM ΥGi'R^y?_Sxi9~|fNAgHğUxHglrѿx=#>NLP\? Ǫ_Aء_ܣSQ!,WxBᰱ*n Q;fy?|z_7~;sn/J%ߛ.e+϶ wH}`/[ZlZuH&85X WWab Ul-+[q[T\hLK[aՇkbE"g?BB 71&B>'{6DqEp*I(nliE7BUnC8x \=FwSGHҗ ujYR=KQJ/3vNTݒ"G'Q'蓸 WWw>H(v>`f>!r!֜D(!3)~G, _+c!֜͛}͛0S?KU#KZ(Jڌu@0oFʖ+ᖶ(?Ei0ZjmZ[mjm=^VkkZ[o藒Z[卑e-VuZ[Y[W4b~[a~1bJ* JtA&R}\j{JJD|{$A)P?o'Vi_a=D?ǮR5J]tư™ Œҡ2g?T C8h +96/KFܠ 报R:hGR\M UJS DK4^ĝAEГ:=7ݽ(p'gP!\ix+u웿T<1RUx­!茨 Yа }`=Ƽ ޻$1V.eTgEKτvx8HDprxQTau" +]*a諸7{w[O9 /-&6UXI?ԼYSrHCR?w 6UoޤUvw}vpʎh V7Zp58%xKݷF=d$_ao Tc0` 'xi?.Ve_翧5 )# @5Hș.n1{fXaˬY3J=1LeSF0ۥe .YReO!;di.j\ZoMVpk5`OH+b̾@0~^Eql0ԊI%!|J'l.٨iz"H>UmD1.7C|Uh ]'|3l*wΎ!`}>1*1lLEg%,%T8SjUB.U"F_ץމ?UO_Xt=o^\]l9cfa-*w%*eDN1YS{ˬs+7frŜlL%3Ԉ #!2j~ Oe|Wv<0UJ˔ɷxL\Z]$ d؋{5;(%屰,K/^q6'>\#d9 a*2 $}_+Lp6Wko>$IKW~Y1#F((d?i"j! 9 k3N@_b$voR(F0 1ϰǮךg(j#jT*rl?>Tq!7ue΋cX"_+/7)|M#՟]v5,PwgzFG'e*;G3lknѡ:3tP"AH~ti:ivt˪ CkP+P{ÁfG2 y'm1Uvݮ+P;=R5aA%0*#ނ~λF,y HM:lQ{?[LS? 6&2$ Vy ЇjQ4E}P_*Uvwv#B[iH*Tdr1>!xԡ|ϖ_0p{!)d1D^1QEf7S ȹ_ǣ=%>Y?.[[~Y> XfI1 9"(z$Ѯ{lJ%zh^<'|i{N O]q5L60"ZRAv-U<][7 \(-O3a 6n+9.)\}D+=/yAbDPw&(m!]i| u S& T&@T3Gh$0ESwTJhlgq`3+h=Q{^xϏ 'cP1pGZm*͝QѾYDTq7f-16>eS~A-6[4?I4hjם{~cH,QEg?༨kDok>c!֪ԑnKCG _@QܰZZz%oUeop6#֧сqrW88O.$UqyK6q)L;K lYK}ۅՃGnEЭaCu(|~ +nQi[A:#wVMZ S2/<.g mM{dޡObN_V:P tάz(fV{bwUV(:sVG64Iruh?^O2Œ?H!V xeArqcS_l`GMgM\A^Q34pEd3 P.h-B~0@;qN; .ꦬM)ž!.%JҒE4D GbBp[gKUHX1g=Sz!iª6X/wŐ?p*ŠS'oއBE)A+-251^x6]}ػڱ>-*5Y|shlW222_2-6(b1LT ePrcy{I駗_AƗt_D%~~UjD5=.@S9}EC%}eסfME'σs5_2+PqEq$z<{cg-VL#rVR0kPz!+Ώv'GF3OQ(9,ԓdwewv$~  b%UU@ʦVLX*h981KC7Wv^m֕gP%(lr4y-0ȄT2Iw 4;aWdOVOi؅e,|b疓s:bT3y'8R9!_N7N*,\Eə]d}*_4[ XG'Ju'(l j߇xE9;Sd QBfVm:_nݞ-)XUKv2,V#b\ӆquuy0/q|· Pj6hKܨpj|:ZGd5bA)ῴk,?[tMull0e+3Ss=WJ\h>.w *5/ѥ!868Fz4/;ҁts|o[*J^vgܥq T7jQ18Ut wwZ'U`+-l4aPxɵj0]nZGv{#N^Ň)ECKDQSR44zX.x } E( |<&ᘏ(3[%@"G>\ڃzzLHFRL;(1md4$K1]YMd^'Df#oA<:!\'r1OL.j'+ڭH,थ}ДXP |^AGwnJ;nݾy$1N>ITY j+Z0~ڡC%鯼aCqa+~&K*/P+feJ^uBUNu+iVwrN|DM kuƺ*]6;]5)Î%W}gKТ<]|pj8H'Mq#bmCTTYq2V3όnϡj=V13@T^"8ߦdG|!=+>?'Qp.8Tg3 ]xc9 c' =8l;ks1aX?~N^ 7=LtI{hjx_%?Rn$fjVowW|-b ׷X"ZL?yz cA>ks;센xl;]< o^Gy{h@<ðbhYНvH?`Y_rg؈2s+s+s05FϰՇ+UTWt = ݡw{JUfĉ^:dQqPw*rPC}~S / hab+? CHb^auba]N&p+Q_$ouigކjpi oT\_-ej0TΰspIEdx74<u%抾_[?I;u 6lX/lR8\.N; 3.bpC*"9\ \yJGAӧd>JI8VJH^Vԛ'mc8ǍI, AO\7j2ROVulRӥbGZe!oibyì[:tDTfwnٸx9yn,ǟ*78m tJ_i߾_~_enw^it~,-C>ATFt-|{h]SDx0먂4:>y;_|Ȥ| [=E t+< 9l C>@nn/=#XתnWmz+a

vF],+ac1\gSGȈVN@HP< @^Ҩ;`Հ=K![o 6Qc.YJ۟jDXbY]0S#@VAY8yFjphxA: ǀk+W[@ MY `]ceR?&!?Oc*@ܱ`dAJr<_Ty-S/ oAˣ%Ǻغ{ŽǦʧ>-DF׸rgy0a G~F9o'k];nLO2A7MֿA!L?zqKhx/+btAuazS-ֿz=_K|c Wh+xsm{~QrQ=?~nՂsCm|?j3D*B ֦L{3VC?x@T#I]u||i:eଖ"1&s?GtPgW*n3QFHVt%Vˑ^rΤQmsވ}o^)RVqN3ZJ_͕K/Ğ@p:y8TyBDxpXhݠ}p B!p~C5!Tb\D(|Szj<=RpXj?)L>O)3\t$/%26 E@c;A_;+*\ZƧp< F46;gcqg OR)d;[Ѿ9D]յ Ìlw׸dr<-cbv[כHfto|s$֑cз8SsfXo-2?"SPk\z°l2v73b|\Hp' @ cOSK.N?jc@%,K/!w2J]\ B2 ܞ,_LyU9H}*#n%n3'Jir59 w m\acs=j7 ^U,R.P;e$.箫| zm߄kux5k9'ce ?֦eLJð OӰ 쩗M?i\re ZO둼([YCo-,MC|(~k;=~8AdkS6b9X TזWσVkqج84iea@ 'OȪ*KEX7#ƜjN2(ưl=z%8IeB:!mJN`&L tNGcct?qH)x̟z-WNɰF2 cUw k= ߳;н;&M%<`5R*!"NAպmtevDwG݁V{ş.j~<`/-'35YP6l)֦,zC8|kW&5 A΂4lo`  >MQB6ʨKc%kYuwH(;?27c9!2noH2|Xˬ9`:pW+ yij/@RwHMl%R87 =j*.Č[[g]!&!7iv#^6e!@K&YT寈h5Tn[fkqk}M^j */ӌNXGPJ jz|FQ:'J/b+)תQ5[q1[QZ_ZpɈD]X@FWm!guHH+R@oCjb@;]djʫ|ʸ%`3PqC`6k#>Og0Ab724ZK^vPclѬ6 ՙ(Q4ιmzc[E0#CKY~œ ]#:zrKvksETٸ;ٸU.nL)L}O°>n׮E]-*bkKDlL/N4 u!H1-[A!H?ώ >"oUyN,o=!̰:'_ 0HfE l/BaÎ?.15vM#f 4lJv w#zK|NN{QfV{aoэ)w2Ja57NMܥ&%ISpwu"O.sRƃe Vc.ހi{]^:93q\shQx@m'"eHIXά`+ep{e)Z{Wy­EC>!ݨv !4{ XOzeHp  #Mkˋ{ :ٮ:xW;xz4v|*L)k]ǾY3.:JSJʴ,RG旅2kDkgc]!kE6sh/Vsy@ I,وMd[[]!;px+Ig(ՂToԩk0 LHw~߶5GF' ORic<4As>ӕ"VP3¬'c򰐳qTʳ<:Zfłb14zOU/ǑnN`ݭM薤jG9ܺ<ǻm0 ?D0Qm~֮FΈ\.ĝϗ6:"!]'Rx)UKSeQtj7KO`9yKE|3Kb\gzmf:~5bs1(LWi-5Htޛ3/UJ/E'F[jbUNjq+ JG.:@H>EOJJ;,*k)B"䠈$R|Y>X$gs֎ܹӹ' &5gY?K3rOs'x|+=]ﯱ[T895674'f~y.>A, %!W< :(E`&е2椤=ռi/ַ(y%YӼ-cCtaˑ)36Cu+w<K֨8Hm`j,OZS"%\D@dFM#ί"u.|ԉ9@̦{w .e~(=ok\\K$, &ςv1Ģ%=ǐB,قƿ/^|#=`lFM^u\yyb|A\phѾqɷEp@^{gG+\+Qj\W_.h8f 1M?! $b_.xM?mA9Yj1i4 h{6F>yJmR[%;zǰc̒EY:ÕEb=ÕUXAE<~FY~o|ۏ851⁲ztgx(K$/ D89nIlY:TP,$($FJpBoTi.xSܚ KJJHD|?پ8W'D!t5+pR℡TJOt//yH#JZsp ]]m jnF*hT7NEm)Ec<*^O8@CV'ECF@.P\R>iD G NL04cO?~xa B}.)㖐LEM :E{ZRʜ;:|XkŒ4OU2^8 ޝ)4 0gf]o*wsKoХ`ͯ$.b'Pxߴe>&]b'ze\7 d87cFyˎ#pˮdJI_<*O[.zƣŔMS䷜6PԢV cHt6 eOPP(wHuBc lXl^keB YeGFߔA<L'Y7f -ɼj:T*7ـ+zD}iBlٝa(Mn>'Rg+TX*鲯Tˣ}'O|%)ր/r\LK=fߡQy™> C-HN]n .W Z2rg>"m6 A&ඎP23 K3ш- CNNSH/Df nGҏJ`Nj3?RB6칼;߿xlΌVSD PGMqY?v榋!!4ޯ{NkeOUoiU~ o9/ 7 {d(6kRcKڃ{,*'P7.Z.[,,vb06m6|RQSlKgZ!7UԯU㛪pӤm()P(jPk6R:7n&-2 ^Nd STǤB L(PEiju~@Q]4H eu*o=~Ѡ:efçL=L=ʗ!*b</8{ } |2@`a ~}9+sʓݔ"aA !ЌڙGJxq!™fƷx^ƒ9Zo g8>hΚQ{~F"xw^\#ӚǯlhR>sVaD%ȘvZ[L$8xd fT</Q*L<;j̔r+6J~eDHPy6XyͅvKXBp݃/OD8HɁfе2s`joX!RVBK; 9 \fI*[Tޫw| "aNl37Iy-4᎜@"̤b<?cCIM>w"=Uſ7[ 'Q2W]7Z!Y;TkԨՖbՉW-8}Nʨvl\LFDO4%ӏY?%Fe9}uL 4C={ v +=D0k݈2c&*L GW쿑:uD26ewm Px$tLm ؃KcTpwZF_U Ѧŭ^uk1aRaFUyuJ!FE~#լ`'^{` Ry r n%u (f~qf,Xn"ne eCd N6'n蜖~g_C>%*Ā"&ܯzs-:f . YcF8&'P鶏%m+_)уܞth^@=X{Pe ޿ |"^Alzr +}3[&--QqM='ybxT2O6aorK/&3xƋ VI+V^GYT/qQ*# +N#s־;" ``~9\F(GcF̪m{}cm yx_#VتAt8ĉW{J*8^YM>3)A3o<"~1ab)_4Q @J'#3 !zjX44I Kz^2Jt$<'eLiZI6Q4r"DRG|uA85.Sv_T]9ʇkO5RnwjǓx)!N튫u丯1P?c07?ɺ']dR(cx=*1 (y/~8V`nsތoU7BI Be̽H!ulJP!#C0(oz ّX'! Tef,ڝ]y+_H}=o!P#{tȮNVϾ!81J:: * =[|$=S $ O2ٌLNw^縎Ji9{̞3 >՛D8iOhǘ|'44%ŸcrL٠WYB3pOG2B{mO% WnH]iNbB3Lc]!_'tx j2FyPIKEt8(Û]Oslh ypJϒ$CDh0%(" UWR.a`f`1k`-U0)S Pf_,Wced=Dz\x4!8NL g$֗"ic"7Ǚo0*Ǧps oFyMK].h4k:];y{ks^y>s5z B"5kzqN YmH" 䲇]\-q"*>0 2A)8cv'Fn SvCauSrSN͆~frHU =l|wK ruU_E:NG8#3[vL{_֓3%U`M:̃WvT=$<8/Ҍ+\;;]8?yBm (WA%η'̶i֡&Fg+h(6Oeש.2IxEI]CGƪ @ ʔ<(0']E_`%~p ~QuxCp'mUtˇ .GpG8Η+v_8^6Nh\-Ճ4Q+TeX[ݮGc H5N͉ SQ YhhX*tW7jN`| G#UwAY=4_H)^HcDIƊ# TGie;G"oGː-$6ٹm,W ;j~Μ@:VRh󕺐C XM DSj0l\zq8|F/NUi20x5~|rVZ0VwwpvoCɁ'7>!pֲ  _Yh[DĤFGI9X\i|X[8فOVV6pN]R4Ȫa<r Zw{lBeku8]p"9N+4׾Ⱥzl7G ra#Wa>U2Yd7vꃍ85%a-V Ŝ#|,6:jX Ի ];[MzU?|M[ؠem o[}]>6X]pyX `)bP3f]H駹8_!ű̀+B4z1ۡYwhX:vvP 1_"8G3mj˱w_zӱ T|=*~XMLlKhx8dEPꙖI AB}[\@O;}:әlm֩oet+rbg'udyb FzJTP'G ؾPӍj6tc!?ϥ3U%̸BcccE9G>Shu\[(kuuC7]R%T$b뇨 zf&gpm!+&ѭ6\nijvR0cpfgn38(ܨrnf 3 V.XU54cjض,΅Xu: &&xGOnAt:$[T|Wx~,TŹURHf5yz^|>]-5wZ$9RK ACkLGX[lTZ%=5zC'/~9`L{Oyg5*j[P>ŶI2袁~+B : C*٤Yё;A\x8T}gǏ/{"bę멛חf!b෶&=56c us)**ڭ-*oα9Җ.|a77K%9[`4>Nt2tK/ ǟ sxEUPXV~9 dt'[,6w`bo$$5M6aY4KWܭ#qKhv.eAt9nk&:j( Κ۳d!+Ƌ:>ټL"z&9fufF3EDHꔈ$$x2h""ܗD1E.)v~r Z٢Ho~^D*hB';gK}Q@2O(Ϲ[#c:ס Z;@,q@"JdWFD RRC'W#&4ү;23U+R$Esex퓹e '74o.yiw#\x6|R3M5?O|C*OlG\7JGD .ja/Z@?z(?SdO?40/u2x!~gT`f̊W6:=` m|[ˊeEcP"7jpѶS e^ΪA"8]cXNþ %Xjj|1CaGvp{/ړNNX-\,ȆU g%?X_Vs݊kgj:_/sS{,7&;bŊT|㋶]jNiJnă`=Yo3E%Bk` \{]-R]`d-/]ϻWq, #VsL_7ZP ~A[ɵzqMɎ*X ?2ܜmN䎅fKP&?c&_Sd*pѾ_iDk9lɬY0&x,:٧oS wU3Zo"{V9yYJ$_yLg,qc9X!et5Ϧ*\}޸JKx\틧~ݛS¥ۘNw`➋jJ Ai@ּYWV%q<͋TӸ8 b]ohUdP1t9?`ͱs2i%6cAY_rྃ|:q(ȡOd% `s泻HܰKVQ&LMS;*n̦"՜.Uq'ybA`⻸ϵ"~.p+GtWG=x .O1I{ T3_(Jzv^1MF>~;hd;gxyh+ӌÎV0JO(Sj=u85 (jEzWx~ Iq(-)I]?'#3Ҩ84Hcsnlaƴ\n$֜BIaOAˡYpsN܋eMvB?!K R63!Dc*W9վ PRRc+\_W8Z\Lwlam1:644|im)Zp$I(NQsJO6AЇQ J0uq̹e]dy ?|\_ ?j :_0bσ\U FG,$vJL#t/ypaO/ĝ2 YPM/C*rQ G "(0^r!`/ RTj|4R/ޱ1džC9 "ctTlM~ ^VTP>7A r'$V5Y",tM$YL#U\8AvPT(TKٵkb2%ߕBFz͞X8쵰  Wy˓J;rHچcf ̉-FyDVM׫yVPEC_OOECа.#CQ`Km&i l{h}DG/l"jU̕F8.2 /w͡|K 672X7=+LL2QTPSPh>c FoM. F Rצs1W#> vm_aʈ03[5j+ͅ9/Pn6 .E=Gفw06䡇Nd1 o=eϡ%zg`r`W{,#;}>Fnd֢TC vi={w ٨$n*9iۊ׈l^3Bl0Jurd= Q!mzc?oz0叛ݵDA%"Q7Œ?V8o P>"X̫~S o%z{ァk7=٣ݏ;M7'^ާ݄]>^ƴ7;y _B"+k~CYC]'jTB(Y؄M+v Yʇ*,M23҉+Z iPt+3}s=Kh#pYW.X\#'>{P|Ƣ7w /L) !S ހ,"e0B1u= Qm lO"ڦMn2T8e9c-*6duzxgB3S>o+F?0Α1(HA}u nɤ~ݻ({|̕ 2Ny : &[Au{Ae'_8)08N&7CbVFo'tD'MgF2aDJu*N/G3ĖxEi*EN?.ۓ0Fb*aZ„RV 8c-=rcERvdzN:`ҰEߘM2Ȍ;C~Qx$F68,' XEJq~n[c׫r`FꨩasҼi1,mg04n' vs`hSv(]OkɎ<~`KB } }` gls O,E)r'~|P>{IL@4#+~,7]#i홶i6pȕHM7lgwً(];Ǣ!g.`@P@v H}kx-g.cf vQ"ڄgwu:~%0 ^H̥c/IvLYB %E԰oedS5-g;^$6{8woC$Sȷ ?OyZj\@Yt XxK'٫kHJGX q2-4$4;G zjJU3#׻FF1.N~r V{aa~R . ޵^3+1G )8>v>#=%dLL Oٌa@ !ĉP̭<$d#;6d+Me#/WWyy9˗fS<ݎS6U#-r;vehzt)!></QD6&$@ Ϲ7̍6ޔ~>ѵA CDDк{ 1qM N8ZneGRͷ=<fkR{}[Чz1̸[mRrQgj<¾H6'?Puوr-·C]tLE;^h(&H"2@ϵM~P : Z_\o/G sO:E5s0p@\b=јci.c[s/J_{5K"W3ECͮH9cwL78cDgvOՌX?5Q円*F^$Jh&ˢ,S*SӒs3v?=9{Pu&A&I QM}9Vj%.(Tc-r8Z&UR6_xv-]ybA¶Z^ts\^}K!ZMX#f Sfy Gh/ee٬˷!UA9p`6m\"~ҕ"lA9m,-NfK߂ 5v;V!n"CPuUjkBKT]Z%BV>oOGzAk.E_fPZ/6l! /Kmܮh=իK"0 K؄rH͘hEllY׿˕,O*>ݟO=&91bLt%*k5gCkpJX"˿{ Ў=TU]LkMԂxQ82"VeqolSYjC6t(6QpI7~UP}n=T9`B!WZmjwM" ,ņ_֯sǭܕV>L:]w+!+Em3/^"Ŧ^gZ'D ɟ Kx}@!$,.Yu#ޗPOJT6i>?hTCЁF<:lv>F[ar5D~=ʻ''a)?)VM*Tu F(:H[F5m8>&mu-t L-3?7X6 C=k8_v멚G@}أ c&kؽWO!Zo ncLxS~`'y!b9yI 4KgP$T3o ̅ЦW #ؕݴJ=FpZ*W[{}0$Қ&#y3AdI*fҗey;w`dGx$Nhd\+ G Ͱ]ŲG:+uzx$_Tod^"mQ$mlVKXw˞Yc6n/Rۧ'R8Vyp| gJj'de 酜o\ǀ>׋rB̄USOr'p4O!BArJ@]G^!)DyE grK4EP/y)MMLw,CbKcr 3بPWc(OT{j|N<73Q7H~iFCrlˋ#}U~5cW+ZK9? %ԫ(*Wʠ I%I&B4ˎKbџxEmYU&F6xLRLi 9>sY?|G=SłII}!8I?WOM`LQvҍnWHݨ22;2m]3+[yu k|J,}'ճ־}}5{z"iϥިo|4v8Y0[KsCXpІvmVݼYTR M`tYLd ]3zFQZt~&dY8ƹԌ\6@-NhnIZsRLۀdY5V|hTYghYB* l {h0&Y!' [JV)7SHIa1hZ㺀YWJ{t|.8VBx4r O!68u0rGVP30V-/OԈZ1uB$AA? Z]_=ݞrnz~0uy;@c-c gGJۧ˹B;7Сcc8Ǻx{YpGY /X pD慙8Gk+έm}Bx y%vE*՚5*Zf[=LePz(/{@_ PA)$yRf mYċULAӷA5\*w+ut% ;/Pu ̝̑وLs{"\% r! 1ETfF|skS\p`Ra{}Ȼ1fYu(8ŃLxpÏ/{Oݷ^q,Ixsnכ.=)P \0)f7hao!MU><xiFfV(}X+dW ȸ ~C@UfX7ɨYI(EYkA5O:\+^}6Ĕpgc2+ߑKceelHؾ9zKl:Σ4lV3='+VIb3β#q E-4/auds'fpҩOȇ~l=i^YwqQWY|E hZJ 3 6DT$,QƟ=׶حݬ]K,P3[mk TZ973`gs}w^[ TjSWջn©[*+\S*\WxU2ʭlԎt V0O_x$TUJp7RN'khX):l5e1Vg=]$@!%=lS4wS*,ػC3j-rHsA'1 HO*>d:A]:^1ͫy!j%xoѤeX_tS!e?QKUB6OAE8OiDm!8먶W]i.fZCjb)MZUJfUs%)N!l] 4ҀoyC6ЎTmQM)(V`êLŪ3NBcfǘs-&'֭`cu6PKN*M0Cv4L|yb8,,{E=J= FLDkg0B _V'h0BtQSQ/nc<:m-G7sxRDQxς\\5A v7=&7ۃ袉@PV⎁wQdPANLuN[$N%D|MuaAV CfqV].SRcUgފ1 xybtbPjLė5SrY彘 nߪ1톌pM d$9o~E?+L4KBqV_%jK4.AwXAsu<,SyHQ1T{uE4PD)ż Ps 'P8"xy&8;]@6ka8i>+GsY%GH!$v *'*.A…*(&3+(9NNb]a0Fp{JCu+]uqXIR3"g4{D6xMfQB<ʨXH˩ B.i&쨇E#oI/pc[b*Eq?l,`[uw7<ƙy?A=oFNp'4{k(䰚yuk'6hJ3U#v E!2l ՈQ5^PUvnV FP? Zvrf dBWSzt 4G)Pw {?J:)Vy3WOܗM tH;!OT\P# {r膩v}wY+(%=ޮ+/ M+],wqi wU T(:K-A5BH{ Ҹ U*$'D6>BYG>_'w%*o-*r"/TyLFD3B|,,*%Р uЌ%vLHpbsE2m+0b,u]!:ݎ.!=),B$LPH4xJ? Q #WAav)8&:@|3h|FBgo  _UU 2]\U{T;,S*p,Jxޮ K+\^%.U`1hpUVVuCqr׻vSBWEk!= |]{ֽoa F^(ĎP Bj^#R]X.f^SDF(2\R-FٳkR$6F%dެ ,AiZ\cPiO,:rHzks 'm_|mckՊE,XA)]0 #հ^kn̦AL})H4 Uzt@W l6F%I2 } 69`l 9 (KZ "ۯ6@B2'<e pǧB6-&T6nFTH"h1PpQCmMM>SA0C;l,|@J֯V?9?u؞Wuqֶ&NMr(/*}z&\QXWmh}QتAO:3H27BMm ZY(w0PۡD*[aDXЈ$F$$aB}Dj`򴔺9*CW^x3T#p?J,{ZLQ$z h Q\G^CGsJX`J:* )F `C1cM$f3mF)xߔESXa0FˢkL7&T;@mIhCI%ЄlBkAz Q($b35cuZ+Md)c 7*(:`c|Ji4I+KZaS{u6dK*}J+ܱ &|OFo 5-8ě?d:ق' H"`vaTdKE+i;1Nu,5xԗ5As3wHB6h-(B;֛e•g{JU~< ӃB+>g<ȍ4|wUh,$'+$)d ,* i$+sIۀɢIAx`k,rtRPPf" cV3M겗&HKEq_ ^Ytp90 (F oo/$ p&;jv^nCsf5A- O*gorLm+(vNcXPukZ+*^:C+QuAuPQ 2ͪ5)j ~zB3R;K¢d䳾 ljTX۳qE <}TRqH# ݧu"q*Z3Lx6^Ľ٥ :%[~hVݮec  kz N}Ð_wmCuܘHb@(؟ިzݮ0XQP;KςFPkS E%pNX9U q>9LO'jm JTC +4^$]FgfG>~x?BEaW[Ot"7}whz ^#`>&*P恻u<y8F2Ct GO*ܓ|ںXM-?HJ ּ4:\s5`ЍNt xtDn}xvA|S%ޖ,|& YĄjOk,"]uأ"?UR3bt~}`OأdqzTю#WIv&b=ѣ4r)~ gN\axߞpO(sS@@o'hRҚz>ja.YwwZ4 y9M~VсlMMYd30 n%*eA*`*Ze }ci@:ŝұu%mJ:)q߭sQ'rT@Gd ̡" *|n>qmނ%iH|#m\לUS>~圐{Dw3;-,4`N =iH/'an2n=woz*4ݮy:Z0:#.&A7=qaRe f7Uz[̃1\AGg[CtZDT)iƤbZJ{-Ex } H!bWPrqTSSEWKL0 WŁ$ )כ{gښڢ b/xF\GZm | @k!u !9JkЬj4Gs¼ 2W57Yź>,y~ vrp8.i]LC# b]f[(j<`9Vᨘ­XV݃{[Pktl>:Zoo pE1qCxԺy<S5qyNَ01݄ #6K߁R&s|؛V>>'Q{p7 8s >8^ P]3q({< WM_xO୎(psoiǜl?k[om|MuM݈aSS Ja&iC;n=z4F ^JI?5..D2+O4fq$Sz@:aGC(* 0$ 0’hoz06^܂TbN&&N N EubgE`aS:'>Œ:JJRٺx! ;kk٧k;:?ہ7P$v9z>qX'YFFn,mVޯKRT׮3ek~wl{¨SJu"<{(68ajB+D&&~ "6XCc h(aAw- N B @e hH+\ωCo%+i|tnX6:fw[#_4e]9A6k&fEŷͲ_cs4lW^:[[t{>ɵ lgc-ۮCzC>)C8;%3Usɥ>̬w]v49st8A8eWu^K\zWvI;'ZrDO,\jRJӰ0V05VQd=^]l$&ay6OB<-"xZ%!x6OÝ2Ot,קg*Lb7b X5=I/b0E$!R//Co $%73iqmZ6/襤**.*_50}m0)]!ۆ 쏈l3qzJFpG pzpzϕjc?]KnpteL7 ̏ӑ}|C.*S\:HD ! 4\_Х6 awe{.r'N}ߜ َH_72\nlsݷ e[-bd8Gٿql?5YﲿqGPd\>U,/۟߭^LBk'ť}=,_O*n/?O=X vKwB2}|C{a<, C ʐ/ )ߒw@y@{p}ڃ뻹 P>sۇl?G{pտlz߿R>^J 3haog:,/Q@O+E9 {6O vo|ﮓtB2(5 l/00O%>X` ~ڟ1(T`҇#痱da~T.9+U\sq7h|ӱI./# sL4e08#zFgqx?=O`H ƠjjTAQ3Jtr` s};Pv?C{PeD=JCܟ=*ܟzv?C{PUv?C{PC=q=F=r]_]d{"elb*ey*X'*SQnOEo+ۛi> .xx!? c%[X#k/d>lpD5.NmrvXE!t?uiQJaz-%"e34F%T{h\ڭ]\^ uhB9lBEh\PȨPCՅOs|{Ir>%Ԕ..ow]\*Tw}Gk.]܅.4;4w %yK[>ۺJKPDtqy.)Rzr_a?3%̧-O0)wW_{c:]|Lh1neb`^?_cTCz3NW#=/ͧnKk2D^?_:A< +h|t=0331F^?0pT(gp,XʿJS#.S'~>[} X/{ toJf}(ג3:0~o9aj*kc%㱫e|W#X262d8ds:!b8G302&1Nbl<ƛ0ft]%p,1J8qc3&Gq˘br2V3flfhF "q3c"py02`ld1g_e8Xc("ƿ2g!pؽ1x1q1c3> FQ-  73>Ǩ,œX2nd1EsҙGg1,MN4|ƻXx8"uLG1^˸э|3xsvA/ƙٌ3ދfa|8"| ҏ'su'7!b_xU{o?8I\_elImfFwg#LoFUe~"Kbb[;>fۯb871q+&~?ǧd,g\81q%R?%XR@%X3!Z'CoDNG+> ב'brg`D3Њ*|4_OnHJFꍤFF*Fʉ!FjkG G _GʚFhH}F*GFbh 醑 r.5-ڂnw!`/ф(//>JYBk5KxS2{}H= FC0EjmFlF*l 4qI]!X > Egކ֎'HuH4HL蠑ij鍑i:频"i郑2iraAxi{min#{xigj75PEPDzKDK ,h+LOG*>45(.Ça<7i&<@0sZy蛆 h@6%hG >s0 yEHwZ@uG1фP"*R" *R"*R",R"+RB+tۍ_kYG{3!a=|!2_"#?)U UX*'q,J|d}U(TG#>RרP É;@Lq_$}3j3Ϊ d37:c{Aw6Gq<<Nb'"c7qcMqq'; I`׀_ӁbFpWׇk5TUJJ_pF?ޏO+% 6}z\ѹtRUe T͙i쇖Ȟ2 srW}1<2|f֒+ 7ESr3 VvW,pB+W:$07 7;7 3Wt_81.0i¤V*c~׫FB^S{OzRaMG.8a9qgGzK#gj7gՓ)/}lŷܔ4#2?P_`Q^ Ϯa>1Sx.UVt;:²NttqSWxs7*ܐtcOӷS}ٟ›oWk|Xy'stmUK~79; }ǝ+{]疡䔛5XvUNv¢!ͯW+>)bV?x:ɣ]</H|}+a'|~c_pq6wme슧ĝ's\{g_jρ_OrЫwj>OvecfjJ-/>}~+rا#MZsץ{ݻJY9fMZ̹poL0 5#_83Oo=w çeo[5o=WN^Ů|ɓHh]w5o }Km<7~PgǖϵiX;c[h8z&-k*W1W{X i4uhT*;4Z8 ji,>sw&{e'=x_ 8YўvÔ+rrK<«;Ř7h1aJr50э4+ˌƅa`jU*.Eb%Vrcb"GS?^a`JLE6R`(pɧg)8[Ԥ3&FƩӢrUcYt.3l֨[?L⫾oS)zޙ'6kƩI[SOjj8|Fm)<2k^#h&56~}kp~_b^lQKvWz?SǪv֙ 7W_;~5LW?bcV2iG,vɷi~?ݳ5M~trgƕZoncz[{|}Qkᴥsѐؙ;w.90|.>Y}wǟi+OJ_cGʱ߶==%;;3]>w')_F]3?s{wnTEnox/>>]5eĢ O0_{zU۱dDw%=q{Nᘾpߎ8r`|3_(=${Ϧ<>&}xk;b\sّY_Vo98s8pmW/Z^T|4^d+gee,= /p0*p{ Bxt~BsWd3V䇆ٳ8L>׏9Or-2ǀX%t+GK'Eȅt|%N}|}r!'/j2im~_ ۆLh~=1ax`?&ZEoʊ*ma%}5mnpYJ|Ԑ~fz!~,m? _7yK.DtFB@|#6T[NW㷣?7N<!,|<8}ݑyUWƅ!Po?+ݘ,s(!ɇRP>a?pPQJ<\QA" `h* (N;73?RiE'|990,w;iYn#)@NYeʶ[{?;eXOw32Y/_ˤ/1= +Kv2Z e-1̜e5d-1X T+dfR V]ޮ>΢Ϸi=)-iJ[h=B=,&&k7M+hETkU 5ވ(^O1"* bī*~}i6)M7o޼y̛o}=D#!nA'EjSM.^:kTI76HJO+˦)MSzmb"vC$;md؛rNSZn]O?;nM/d }n3{Apķ/hٗS9.P?@Zo^#!2xȨ?IQWǮP}i5`O1oS?/;W.|y=n@20T;2N'kr넞T:ZW4ēb_۰Vٗ-FnUGx ˸<Y[Ӷ'YY)9 >WlaᑄcGȸ33?}6do{SozenL {Yt6F uw;+oe-0s\@ NdߗgAWwxIKsdmփ0#̿&>1U) o.xh/Q)]0Χ_zzZ[=wĪAMmc3xr=;;vnHS<-rwZτZ-7ΐ6QF>Sq.V~dZ=Uo<3#46f3ﲘsKy=zj&yg!y}fיO/9{949'ϡ|RQ9w3lG-'v`y$ 3|xFl،iGn khe`L XD7&h>!]2>[du."Hxʽs}WX[{Vq3᏾=g[fI=S4 f`?gzc, gVӟcʉ{J( yOz1k2e:SͧOJgo-u{&gOg&UwfIsz3Y\{&%4/G?mu՞ gcF+$}ȀHI~Y K]{#{F!rYj6dh\3Vې}̔-@\u=svd6Q ض-Y'S#QߚNnF_{g1?_H{W%{9qY9[gr S1#!C&>|ۿi~feRL}9ӷ$߳~)zyV/<+|֦>T(.wZPglxOϾn{󇟹羪{M֗qVݐ/z:߿ԸunRPo6WD_;ܴ߾Ϝ.!t%KC|ˆ+mES2=)co'Fe?zťyf}K'׏;Koxb?u'|_y_\;Gyxjc7m\AGȇe߹ѭ&˶7s]yS3ѕ V 5nJ5tIh/'(\crKZ@Oc븽k!oܸxѕ+ۏm}ʻ4D`Wg9G 2/_ WCk F-Xp7k9=sr+y6\^2乌ӣ׏ Gؼo侏_G. ˋЮ\P8_#G9ނҀT˅A7mJ.e?yeT7֫#!xbՠib:]i_@OmI~/Ϙq\Py:,+zlČg|e 7PsTV٢A&Om.h'g_FUއPraV XmѼ]Yi.APoQۜ[0Lzap Kqսe\H|%da0,KP:RjB1eZ(}stQrsܖܚr2Ͱu Rp\!e T[򙟍yKU W?c*¢詋!r8޸(Ure:]>'LIMe̙̙5uu^-d?jy+&TnI'Yz^1%0iiQjNpʪѲ|ҽH*DNى4{)PSsum2#\hDk%>mn֭i:-EBm -3$3/~t2iTP,|t-E͐ZOhȗf!3)mLKa?SKj5όs$7CzˎϠ,3꽙#+-s{/<,irB+rTAN? 2xv1 $arſι=prJg!?'>Miv6t}ir/Ս&>o^~uj+]o:Ά;<6?=q=/YȻߟ_>| ?^:yeW|k䙯|ٞ.]VU7~}K֕7wh14e?N#J'Qݛimtfl_+KCGYn.LS=Lg?I+^, ;~9==Uft2دSX !ޔF.ѝF|]r)MrW<.i}6^e緙=K/ $Öu![IN5A0ů&68;I5K>!cNuܠD#M|wېq=iv49ԛJ[ FU*7 pUeai(&䩄 h `si(p<4焍!ȩIN'MUwex/PBUtz艹0 ;Z ˞p,S YHdM ieyh*KNj\oR }VTYقB-81orDxXuXV,VˌeM P<߉pQ*R.or!cWs䜉񚱪0PT?] Aa(>;M4;w}GKi=& Uހ7UCKj@'Fbu=7WO<<<<3~vzL"iHC<"iE[%=s''jǫ*F]^ֹq"т瞪Ɋ ȾDɚ1"҉ZIhx[Kɥ"OUKUBg_s#o֯\4_ա_kw~Qj>d7ikX-EjQlZ]"vp+2@#t(rH UcW|WWOƓB=n#qE۫PN[>V /(c*=\p"Gh+M!h_!AvȨtFϋUNUcljimV/۞HPygб<0Y9Q>\ Hځ6uBI~R*QɲqJʳ戯_N6g9JIW'QB$'1ť/fo3W*fc\1vzT1ȁǤR3 ͘Gbo|r+擷@WN(F-D~ʛi)l2r {S.ʸ葪@ 9ܥK4G,| }d1:҉zE_Ú#9Pz퓏6>հA'1ێrsw;a^uKY*@Ymߵ bK1-D{TOk\^7Ƙl1 03 ׀OCY|?>K>H4Ѽ&fa;m?U/R9\@ǟt<қ `6 q_/+3hJ⯓t= 0ym"څ.U4T Ys뜐o>kYFy͟?'4F[O[[־Zm s[澖ЉU2Y4Q07gqR-z.64J5_S\ꍥ&pvm;{@u6 ȷG:e \y<fi?8 u|R0G* =2~-:= u'uzy=z=/o4TW"c>|^ZW :ԳYOSi2?j T њļ2V@6 ZI!Z@n/>[)oߛr 2 ̐t;*Uft*54gz^EW^^Mo-?jKiM+|}AZl7}bwE1eX_7/*psƜ$m :^{Cp <Xw,+`;}ٛu/)b=cm^-͉hC9oR\aףpkBwtoC ׫sW,&ەj53`i:آ*OHۋEbolb1g11}8zP%2=ϣgCy'<{Vw-T`%dOIv~E!swv;]Ѯe*Du)VRj10`cT6){n l<~N+_RMz2 * }'z9稲9ʀ{틱?01gn&\GO=,MXfhH?X{cE+{Od')WX-$'to CqZhNŜ.dx,M-m{:_zz(>X>X(} FhTvˠuyEٶRjlrpM_uwU_cQfٯZ[J6گV#~3|>wϱ -V_*Xjg:s~SC/Otk}^}vAu)|k/ͨjԻ _~ukP^̫b<&ϽjG-mrVUvخF|~DZDr?Kzc8LwKZnvYVsss:5JrSr9ByO\sMy,}_7m/4476jQj& Z'f)޳~hyz3vzC i cMvd}С>!gOc pZs|k1<לrϝ<e[0qu9CՉtڡfZ<6y=7řphg P/F{h83B`Y`=CK:{,Uٰeږ9RGyN&mӽuL0Љ&klwg4>K,ϡ1 C= }ĺR5 ޭGԟ~PpMܺn:j,c։5kƭC_OxC[p¶sz/ʝ|y~ܿW 6v-U{l|x|# SYbĿj uoj|u\ItϐB:ڃg/pxla&<_m1#|P7AяxUw Vp3_GlG='_nR|zO`>{ i7_Q7  MYAྍ+8΂84+uCrPO0qp-yujZgQOw 8yN~iԶ{ю(n(xEG0#<CC8~<4x@{>b{A'~Aa?oix>+w $.Fxҿ >:"%sACr#"B&¯g(W #܄CBcS=a;>0 h*C4t@4ƒ"!7ש6#\pb81 I<߃=#5yȇp-0o#_!-v"#  YErBXІЇFxh~a GO"( .A؂@x)#(6 BDCBlJ7KD)Zp5B0pB!C>o# aw#\ uAx+i~,~ʕ"C(뱛W!W^xoƥ VϸZ[KEX_x_V>ӥ𰥖_ߠ^r _߬;:8}m7wq ō,|{xk>3EW:m-/GA~M5!u{#xKKpru~fJ*j55u MfuBEݪުަvwm+m=*V97l[`ć,t|iDUeţag$4܉|  K DGV9:CMhHJ %a# IO>m8t(۞ i!Oo(yjeԶζ@zDPS[c`?>unlHTMG;F v}A3@ͤ\b@۩XJ14f3ㄷVHjLo,1+oi6 U4f10qRhf /G\[)t{xW2^ C6M0zgi&RΑ 7;/b&O4zu=4!|Q*(9uҖmIQX&C*lLܹ\3y&+ϺwkL\]3|MY[ }&c(cݾ֩ޱ $Cp. Mwl\&J_i#Ma <)~E%E|Jӫ4|TO 8g%ozf) I`D`Nk.%H ܺ\\,\(B4<%*~,x]%-O_+t^W lX%prA9$>G:na'x14?($ؼ^'3& <'@Wn]MM]G 6>e q@= {*KJBVJXKC߿N" |")g_`] Ym> \.pn#_*Vx|Lc KnW`Dk-lѵw |MW,t_,x |Z`76 "p7 1g>%P8P |SXsx  SO Tk_d>'t["y`r+H/N.Y+rxV'>.i['\`+|7/^ |wSKy"/8_`"aO \E7 ةo)Y`@|_malEX({' ~,tx?H$9ryR_R=x DqOd1p?険oD01<}j?䧗H 9q~y630i .9 <@?t|nGTy m%xtƱ$4^+^0m/3wшa(+QJU)h:w-%͔F{ߎ z^;2[JJaٓ: ju]k=+{˹HSMPJ3ݼ&#1Us9;h]a?{R SGKX2KhcZ*^|GW{ܯsɯDPm!He~SIJΕ?q8KTyڶtmkEPP@~SF͓L}I+á/:iI:Euru `MGXnXWk߫Oիtb DI^79<m9rd7 :Ȗp1pj8 K>+K*yvBtLBG#Z}2 j q@~pH M"ƕj>\ڧV{MyzӪoFÐr8Oy5vgIT:Ӿ5-ZKRs i7 I`O[}:H?n}>1a mP;yDNab)S$1ڬvĥ. w+ϾHiya[~FXmap5lGb#pyp|S+hs E;"PwIVw95%2ܯk(lCFHJ]Fx4tchcx"㬚Жјza ! Ջ -'6!D~nl{<5k('/4sf9䏄t;(!%{ƻ?VQcͳ'qCz&(psKIW [ֺbi7 nxmYަ߶?|Xzu- 'ms &f1/L"-$͜2&-C(z[{D$Ɍޓ XߑF78Y?;w:L]Ձ#702X9b *XfУTNVx?jEL#N'Bx cLji;wHB\oh ft_nZ" y'V q5k>B'EjEY*Hբ? L:e6yk8>@9Yb8,%a^֭#KsD+>\YuLf1o%o^w}w$+?ڲ!k%WFH,bvߨ J9x_MkPB4Yh-=I=D>/ϴkRܦ#1{hw+oBMon[1Bv%BJʷlyz1S#E[~=K-Ӌӂ:F?1Yɱl蟎ԫ|+9RFʘ=H8L掂r" #ͳߣz#ؔn7w 2Ik ̌sFC;gZ=,h5o:ZV}fanZ=uqR<.OwHWzAS~w&p1{?3^j(:SQ&Q2* ]JEadB=%Kֲ\B!{wJy939M*?8gb;pQm4F6T䏶D`! D`tS$Rk s h8HIr;K_b#"ʠ3Rmf'l\JQ':JTt>.Pa%"?~ʲn??_K|6ӭy긿e0$]/.6)UoyV^q \jk{7voVP`t3E_!IYlk8Ky.\bN*_wyިNa1mۛ;4cܹu/:li~RtrG]`CakWX*PwwVwC;z)> fb ZF8;O ng64s(J<9CE9 qp_Ki*hw"C̈́0Kfaa@X,rYaa60[Ȥ=n|>ET{6ZتIp,ŬNw:p>OaH!; m#PВI'VhtjaT$p^45AxQ< !PJb}1xN gu  | FG+:3I="2S waO0"0+nL]I aO6`T92Gwh ^%ՌI[y6/0mɔ lUF){X2yHp7*\dŤ'gJ]zs0*%8Ah\` 9>x&&htُ b`fZ GC'oT~bABW='K-[2Z܂/!/2cQcw \=<)cr藠/ù$3jP: bj"8O2~g1KALz)4I&M#r!9:~*t1(B a8TjpO8H¤, E{*?x21IipN$N]rQLdݢ<$OLU/qtx5IBtplv qW9:$;1-D^ĉ8F^ O5X%`b+t%eA灹Kwb2;)aE`hރQցe+1W?ȳ%!a -/!7j5inFo:04'`A95 z!`H/˛sjE QF¨z`e`9*쫏> Qy|A?t5hњCC@‡v"Z6fk!Hw;u@Ц%hܙC|6'ps 0+s灠 srP`ʡc"ӓCB}zq(h{0֌C$Qy0%taAC,8D R$ډt.x|{Xrkh%BׁLhj5 -<0:nc-S C#w !hgOiF9#`BP&ԁ2.G .>`#~qqάA|Pc < W!ΑG }c\9{h18HkPϝCTX8F;cHg-aSwwNQ [xrq#z{-^Lof[>}E: 5z{,|:8Xs}-[Tabp?:)S `/9 dʗLJA &6~qZxh{ G)ȇtT\; eBNC0e}u`\|`Ʊ0qKc0/sPh=i`6Kh!E"-6 \*U{.~A]6 `ϭ(<` mFz)ȗ3>7=8e0+`m@)Pg0nulhh[p>~?DLql"-yQ\gAybj#}SLB) y ryM@K;:`S _X 4{~>&S0j/}i vyArX {9Jk1WaH>?Pbmy/}ɼ/_a^ =<c~A[h؝%OOT)`.4hk@+m.a m .sq{(ڂK"] F¨'`5Iu0\K.cAV\|*@&.=.\5S9Gt$݃K8A=95F3.<$oe@+.C f򻁳DF rP \%B?t"x΅ yCdaLU4\<%T^BW/}X?KHAQ X'ЏI\:Υ`h?U>>B'BL.&TP.~`4.a ] .=*.F0XGr8*Dqk%0R(? & \ͥdJ vRpV oP%K}Pw~2Ufc_tQ1)Ê^:k=Az>KTBǀ.#+hK@V ̃Q>/MnBy\)<}Dz豊8j ^7|Adԁ<u\t%8z#O5&\zMe3} [TpT: ;-* :d5%.}%ǥA &bAP/ VC+>%;pnt)aƥ8}ܶt }Mi0*`N?<13zmEz)Fw2:| ƫ=bpa.}`}KL G9QX 4qK9ǰʐ^ N:Ό{(4|tv$!V{pyϷ+pu&Bb!20&SWآY0.kt x c*p -G=ߠ}QF|@9E`G->1)K>3s\ y<"C|v41wk@SmoB G.>kaSzS4oC TiSk 8!\ VOT9n+̿% F[lW6JAm Сy_[}X2ҏ!~y8h FOl? yXKA2vAR&<}LkXM)):КzVS|jcКf))f}P+ >7mWnn$nQ5A]0AfcO ҹ`ws˾MPOO ]S֏?I'.IDJJ^þd{۰ xDAlEx BNkg^^_ɳOoNOg5wԶO'ړ(i!zUۤ<"#&P"ID8yHfGs~>1atGFHEkD=%x=6 uHP?3 9q;u;"cC2?O}$*_C xŁOt]]blT3 VOKcJ<̠K_B#ma$OoFph_FQ8Kls M=\q"d(wCJ0J~RWٜC( It O1n6g/~ 02t"H!`=HRF/AL_8XzԃPAWi]ߎ[y3COX(l]t>'*J3?Oy-ÑD;NLDI%R2ATgȠF"xqL!6KR7$&&{ԶIvb7dڰ=ٷlo7lg޷ΰaszyϼnx-oؾy{<})loh?ߩ߻}|m“3kZ^.~WHx\ˏr.q9nX+o%iHpIxӌV%IBmRS7JEM;SO6v4F8yTxORAvT~˯_.p GO <}a^7L4XBlߪ~XmI˱YwP8?NQ%x\=Zx.><;Wц];?FJ}5yͯԦhe&-^\-:X䎃w TOVNٯo=-f:/{p|W~ukK?{EOEoamhC''Tդe~xƦ[Ѯh~\z͙E) V,^uUhֳ7mvvdUWJT-}f'%8W6?qn6;M3gS_ܰݗX:]@aU<^?뮿Oorure lshTͧO>ɩ|-R2 "&kRң9t<]wuFz*ͽ[ )sF3ory/6Zº0<7 \z6_WU9{k+p[ҽG wnجa|a~ç[mJm3jݻڵ;osK~ܣ si`ݒ1kf?q8#T*\Aza#=7vPQQ aO;iw~a?"drp4@hgg'v4jl1J0)6ZogG ڐذc=fͿt9ǹ9 |8:Nt簞&uX؂a˻=b̈́eTT}hMc]Ysjqy_AGca,Ύzzc&k9w w;xĹnˎgo!_6H=]sK-zwfr:l|-$|)ϙ9aSB.hy| u%2%9|'7j@%^;ajZS~_X5 s3mcBxQt /1 B:*uK_ Y }(6G }^QGӥ (NHɔ jz}r'{ c$1( 1wD/$RciYåH S#R_\JgϤ[Lz]>] }!zѨ:o4Ri>})MZBɎIݗp"7[V8둙N{ goLD8/ 9>>_K? s9M>kԆ|vчc'gΗ: d2~RiM{A2mP-1z;g}dcQ@]zΆ4b6/aC{-JŽ{-S'5Oҏ۱|ώHQT699t|6P7"ofql*YY10%N 60 @}olsca8Vgvd"=.}3#2C4K0"B\hnimkVvBs;$1B85B41J% s qfkj''߰+7۟qQ5gו?iσ?w/~'J~wKqqQ~+k #Ý c5'PÇoKї X'5_!ql}sJq,>!aA!ո686>8V'6چ"fDN y˟u@mC}8K}#]"C£b#QK=ȟ+XS&SȰ𠨨F5ih~<ƎK7IV7:PRvC.HO!ԛ\p]j#MCםYz$N^2ˡ|z3Yo79?sn[|g-Ufꊂ^v轹~Ft/7> k5뼚eY*kĻע|J󴁓 OYΘEԛvU])  "&Uczs,R `IN:|yZTbUOF(ӐeF2TFle"L,ɂeYL*K%Rd2RV$+dJYVV'r 9_n$M\$w>`D#IL^$/+jyN^/'4iFiidmK8'-8ML+J+I+KHLMKOH.ttIzLzbzRzJ2($,"26.>]CW)LV+| "FHR(d DQPT*juzaaAffd3|23$1I) eFIFiFYFeFuFmF}F&?(4̴tgdgJ2c2I)LefifYfEfefufmf]f}&2dfYY,,qO_Vp$+&K%RfedfeUdUfUgfegJ %_i(MV)R(J2X)Q(De2E)S*EeLYTV+kuz%6dfٶ٢llqO_vp$;&[-VfedfeWdWfWgfeg99Aic#qHrbr99I9)99F\\\QKO_npnL4717%W---˭̭έͭ%4yyy<<<༘|e~Q~I~Y~E~e~m~]~}F,-p)H b  R E%euBBBжХP\S\())&& E%eՅx˹H䇙eޔ61|̖r7x̒xy -ӝҽҗoAJ~Ѯh0W@E4b|"O_qAQg~eiF()`VF.SR F*eZĝ&B!djDF8rAH92DM)"!VG eNQNeNuNmN]N}8!HQD "\&>H*B6:ȨcC#cBFD)tDF_F=Ɲ Őh_I!R!za#5O S1$ڑX%i En"'ꌄNsu,ީ#ijO] nĻ}dF)z&md*i\)kt}6#[xqA醡c dZd | | @'l N 8^!U4!jg#s+MTсזZZtSh7vev4}xr]k\c嗎:t8flh>ib^Ք_~k߮f/ђ-w?k 6<6ey>N2QsgcW%|9r:wOxV;SF)>bT;>{V'2縰P]]fK2 xniԺ/j[{v zь κ f6.ow{/w/W3͟Դ.+sd?R#H}}R˽y'k_`{JRd4'rZrsᤫb(9DhFd>V0iAFH[ȴ@!i@eWofiigKZ-$;PvV1" 'מ8Wl9ncnehmVқAeeCeC$}-,"Bͧ}< |djj!wxDEZe_/vikf%40G&r엞t#}' *fΜ*"dQM&+qgg~Z|qƣߚr|yo'8OFv7G霰t ZGR/~z6Hl G]}ƪjus+;?w`!=}by'(O#W-tt;^_8s@fڗڽ\{ܮv;tKy[oT["4z'.Ϊ2z`ܺkۈ+] 0ܼKo*ޮ$/`Rg^bS0KU6̳MW 􊡥5{rZxak7_K$Gϟa]&>dw-c|[7 6D{h{1g~Zoȯ7jA]2Gޣ( }Y7uEƾX集_9N.Ϳb>UM׷ʈ~*c g:/XdkX9NudC,:h ks+&~t~JaxJ3L\Z'nMĭ:o2ݼx?wwqSs)f2,Q0/_˾Ц zjIF_1Ԅ/.~n YP"L9 33䘯}3azSqipۓN->vЈ78;qSUɌT;mf+l.Y:A^<}r;}:΋z(ۭn{rZ߻=*bm6oWyqN}O-m{lSox_uvJx˰5Ce_֓rWiZt M~6ð_Yg{kk4۟o ewzx&EGLw%5IG='y oZQ}Y*ae6o=2 jz3/ou?JntX%O~7Q~ۛ7$O^4_c+5 ;vG~~`gyՎnurxͪWTnX7. !x_~mdwbƪ_"NrLw+/䊦|ٴ_/k\<_og@q2Oβe9Ư&Ol h꒍_mIvn8PE|a!";\OwIF8 =KĘ('7v3z=?heGdo8hPG_6}AI*|I&*뙻΄Xziˇ=2Ώ5~r*?tW' mkƕod6<ߑ9+nE:5- ʸʹ֢=Gigzՙfgu~9;Y.y~֛{x?ҢשcD*:xD(w_ypg[˹ q |)F3/,)laӐGU+n 9rkoX2 N6 F8UVEͅ}z%Q ZR6bYrNvc 7:_@#$ }2YGSvcs<󆞶 0hD Y^\Yെ ]䄘u&jq'4yi ׺V$.pk]3bʌ;HM6Ћ{M/QE}*6u[ ;\aaMgcSt~q'S4Ӆ1› Y#F~uuY!!_pF Ҫz2q]挃˔Z|{tͩNR}}ט׉N^΢n(~I]~3^up{ΜQvܦ3ܡc~n S{Uv E8;wL}C='lqc'jyN3;_Ͻ3жHF'5>~vxAX.&p7oVcM^b0z'f)G](RY7$~t#A)^.{hГЈmW_JDـYvgUx߯:dCQiR/58( "`]pȧ=6{ޏ' %27ó'.5R4,=pTW,&/ԃrk۴1Fs[f.0dsD%,{хvʬ1SO.Oj[u%BB#C"2e rקSeϯ8\m [L1#=ԙ@R{k> tJzi Kt~6a`X$c|0XW"|eƶFU؍m0v,r"? VAV!%G8AGEe&JӍSq°BRmW2۷!]9խςL[,&6]=YTUGcV{H%}K/ة]DD5bWe74x5z&{*PC 3&rs V,~Fk 1#&L“vI2 jesw8%,7 =0o_=+s;ĴT^1.ֽ30bҫ#Vzߥ*3^ݪ4ҤqcWwJDTiۖ0|Z*#{w蓺q4h#_+RVx0AM kM_eK?؝4u΁e?^ml) ߪ?E\*H3Z-hq˷8.lײ2P6)0Vet cJH5=v䐝4rߎf?D]Y?&.xc(Am|Bi}^ v{g؟ti m`'+rl3 {rSUM8BR|}@kÔHH( +SNI<@ Fa`0ݻlnO.ܼk|-ŘPʭ=T4 "}th0#` au{%Y 6Y%ni7E,7W@ݍ rV2Cv {'XV\7ڰ?rJ~GZ>S6|qE vl [f*$*k+U_$H]Jn Ła@ Q yA23f2:VʭЄ̝OvsjrV `|~!r46e<~B޾%g fۢizj>;h(QIF;^ْ8QξVFXIQM U=h~E %Ua9܄IU"XEkC3.J3_.\͆>ҪxpgΕ6|K9teFֆ[>iȫ3CdiԆ{5SWQGd \]Ay䵐_(e~V.E#I EMHE>4:0F 8oC } (Gd0 <9q-= &~[~FV?yX4Pam7R- p5,2pAޖN :?oi]ߤSw5ܐwi+Sq NDpgբY L~U!. RCW?aJH7_Jy%>f;6])ȕjM:?"Pg`$r h7OuU]Jtn/C1L@=ϼR9W2[͒I &9G_p:hQj UX^9d9$cd]JCQƼg6&s6>-Mv^|z.C8]%] hk)i1rN>c|CY~(v@R{G ,QCxwKp鴱Yi:ݫחŇ4d8}e-QYNg3Kv hdQ@ace&)OYNQ܈(-)@n$w rũBwk /aule.(9) }JlBVE^fnׄnfFEK6chz^ˬV v8q1w=ĂYGI;LOb–,E| |MC6"2s^'/c/^ֿ"uPrߥBf^O+#&hٚx W(b۶`5ybeCAj-fhڌ ؟_$st1PxcB*y8`s^:*k[IԁoeNBJ-֨*g۲ j}LYލ`T:HF)=RyS]nRFį3S3Vψ5*+2Bi p#^l pѲ6Ր5m&zBmg2{T\# 9p+Z,eQ{w$G^jƱBﲮw1^3Nt*뼙C %e-g+Ø/`;^un- %4 KoԻA!RgB(FMLƪ ohΐ`u}AdouB)REr .x:m IM͍b1 Etj]SAXs^W tµoiTwP,'ibn6@|'Duqߝ?9?&ǃmam"Ad q5 (Lj(Tc_S۷U ?LGԨ>Lu9fHLdJ _ AK9(bnl= `uT?4Yn̂r~oYgs.>ٍl=d{uUng1j]9Ht_nE=?upKfNĄjIY "2fe#Q߰?my]t`%}fX^f%2CwgCen&hXۖMhqĜC0uzeB6V\enL2 d/JP1TO) ᓤOa&*Iʆqj A,oR 77/DHrs6///+(/ϯ?Cu @Lpr'W?\M/Ρ7:rv"/` }zW:,m_XgaI/5t b_ T6[_\{r[Ga}U1s L!]% }>&P:(7ozn;A'9GI2T"w ^ Cc[R,/<ҍ.\YS%r}ݍ\w]F&. Jq UIe9Ӥ͚ LR64ˈ_9>hI洇35}\}'asdT2(rXIG ;C-Dd&{QG:.aK#ȵfc|NQ;%O6H賳lnU&^F6Kf UD"Ĵ0^ڃK_qlt|3m̆9j^1fߤ{: $uU*a o= *I'Aqwv-D2C+<讂1^Ez;a.cxf'3nbc$n\=LnTl2@;Kִ݇ $ޏHheB; \r \'NY?A*,Ybu9?+.h@@8++>O | W@ҿ'W`rjUJIئ ˪C"swW\/Js*=)+z+~O`?;餓#%hK,sBLz| ‹[ P|ְZjJ\qP#" ~-_ )kty!e䬐&3(?>$]yi&E?!ͺ.s9 7*Yl|gsJrrw԰<\j@͹;GqFƭ\_&i[k3t"re/9 uSg镓~ "e&61s(} g[~0lX , B$Or2X y?BTA?KW[ dqät A]I&fTӈEuVȵa1*vY4_#5-Б6.$6ʒ6 ^XP? bi wFp֟,1 &khc={:LhԿT`j1«Ѽ {822YXSx}xRv]jmRw&[Km;L\N:2~ Եt.vnY0wvawaMg?hu ֍Aϓjy9e4HQ#Q@~ GiЮWD0qY</*\a\o!-`%*(ѡG"@+@D08 baD|| NR"$bsЮ]X&u4te#1D)1G [0qL8Đb0X"G$ R41΁(0gE Ysf lOPK?"EN$windows10-signing/ $e>eePK?TWM(,$ 0windows10-signing/appxsip.dll h6mj3eePK?UWMhg7(t$ 8windows10-signing/cert2spc.exe 7mj3e3ePK?UWMJ^ =HX$ wRwindows10-signing/makecat.exe 7mjtetePK? %Miv&$ windows10-signing/makecat.exe.manifest gQEtetePK?͓RMQoI$ 9windows10-signing/Microsoft.Windows.Build.Appx.AppxPackaging.dll.manifest eAg׬e׬ePK?%M1,(C$ windows10-signing/Microsoft.Windows.Build.Appx.AppxSip.dll.manifest *xQE׬e׬ePK?%Mo!+#G$ ]windows10-signing/Microsoft.Windows.Build.Appx.OpcServices.dll.manifest VpQE{9e{9ePK?R%MOaG$ windows10-signing/Microsoft.Windows.Build.Signing.mssign32.dll.manifest PE{9e{9ePK? %MKG$ windows10-signing/Microsoft.Windows.Build.Signing.wintrust.dll.manifest /iQEΛeΛePK?UWM%(z$ windows10-signing/mssign32.dll 7mjΛeΛePK?XWMr*Lw (2!$ #^windows10-signing/opcservices.dll U;mj.`eePK?UWMg߫(d$  windows10-signing/signtool.exe 7mj¸e.`ePK?S%MS'$ windows10-signing/signtool.exe.manifest KÙPE¸e¸ePK?XWMȓDߩO@$ 4windows10-signing/wintrust.dll U;mj$e$ePK? %Mfo!"$ windows10-signing/wintrust.dll.ini /iQE?e$ePKriseup-vpn-0.24.5+ds1/branding/thirdparty/000077500000000000000000000000001461742244100203605ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/thirdparty/openvpn/000077500000000000000000000000001461742244100220455ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/thirdparty/openvpn/build.mk000066400000000000000000000005271461742244100235010ustar00rootroot00000000000000build_static_openvpn: pkg/thirdparty/openvpn/build_openvpn.sh upload_openvpn: rsync --rsh='ssh' -avztlpog --progress --partial ~/openvpn_build/sbin/openvpn* downloads.leap.se:./public/thirdparty/linux/openvpn/ download_openvpn: wget https://downloads.leap.se/thirdparty/linux/openvpn/openvpn clean_openvpn_build: rm -rf ~/openvpn_build riseup-vpn-0.24.5+ds1/branding/thirdparty/openvpn/build_openvpn.sh000077500000000000000000000200211461742244100252430ustar00rootroot00000000000000#!/bin/bash ############################################################################# # Builds OpenVPN statically against mbedtls (aka polarssl). # Requirements: cmake # Output: ~/openvpn_build/sbin/openvpn-x.y.z # License: GPLv3 or later ############################################################################# set -e #set -x # [!] This needs to be updated for every release -------------------------- OPENVPN="openvpn-2.6.6" OPENSSL="3.2.1" MBEDTLS="2.25.0" LZO="lzo-2.10" ZLIB="zlib-1.3.1" LZO_SHA1="4924676a9bae5db58ef129dc1cebce3baa3c4b5d" OPENSSL_SHA256="83c7329fe52c850677d75e5d0b0ca245309b97e8ecbcfdc1dfdc4ab9fac35b39" MBEDTLS_SHA256="f838f670f51070bc6b4ebf0c084affd9574652ded435b064969f36ce4e8b586d" # ------------------------------------------------------------------------- platform='unknown' unamestr=`uname` if [[ "$unamestr" == 'Linux' ]]; then platform='linux' elif [[ "$unamestr" == 'Darwin' ]]; then platform='osx' fi BUILDDIR="openvpn_build" mkdir -p ~/$BUILDDIR && cd ~/$BUILDDIR BASE=`pwd` SRC=$BASE/src mkdir -p $SRC SHASUM="/usr/bin/shasum" ZLIB_KEYS="https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x5ed46a6721d365587791e2aa783fcd8e58bcafba" OPENVPN_KEYS="https://swupdate.openvpn.net/community/keys/security.key.asc" WGET="wget --prefer-family=IPv4" DEST=$BASE/install LDFLAGS="-L$DEST/lib -L$DEST/usr/local/lib -W" CPPFLAGS="-I$DEST/include" CFLAGS="-D_FORTIFY_SOURCE=2 -O1 -Wformat -Wformat-security -fstack-protector -fPIE" CXXFLAGS=$CFLAGS CONFIGURE="./configure --prefix=/install" MAKE="make -j4" ######## #################################################################### # ZLIB # #################################################################### ######## #################################################################### function build_zlib() { gpg --fetch-keys $ZLIB_KEYS mkdir -p $SRC/zlib && cd $SRC/zlib if [ ! -f $ZLIB.tar.gz ]; then $WGET https://zlib.net/$ZLIB.tar.gz $WGET https://zlib.net/$ZLIB.tar.gz.asc fi tar zxvf $ZLIB.tar.gz cd $ZLIB LDFLAGS=$LDFLAGS \ CPPFLAGS=$CPPFLAGS \ CFLAGS=$CFLAGS \ CXXFLAGS=$CXXFLAGS \ ./configure \ --prefix=/install $MAKE make install DESTDIR=$BASE } ######## #################################################################### # LZO2 # #################################################################### ######## #################################################################### function build_lzo2() { mkdir -p $SRC/lzo2 && cd $SRC/lzo2 if [ ! -f $LZO.tar.gz ]; then $WGET https://www.oberhumer.com/opensource/lzo/download/$LZO.tar.gz fi sha1=`$SHASUM $LZO.tar.gz | cut -d' ' -f 1` if [ "${LZO_SHA1}" = "${sha1}" ]; then echo "[+] sha1 verified ok" else echo "[!] problem with sha1 verification" exit 1 fi tar zxvf $LZO.tar.gz cd $LZO LDFLAGS=$LDFLAGS \ CPPFLAGS=$CPPFLAGS \ CFLAGS=$CFLAGS \ CXXFLAGS=$CXXFLAGS \ $CONFIGURE --enable-static --disable-debug $MAKE make install DESTDIR=$BASE } ########### ################################################################## # OPENSSL # ################################################################## ########### ################################################################## function build_openssl() { cd $BASE mkdir -p $SRC/openssl && cd $SRC/openssl/ if [ ! -f openssl-$OPENSSL.tar.gz ]; then $WGET https://www.openssl.org/source/openssl-$OPENSSL.tar.gz fi sha256=`${SHASUM} -a 256 openssl-${OPENSSL}.tar.gz | cut -d' ' -f 1` if [ "${OPENSSL_SHA256}" = "${sha256}" ]; then echo "[+] sha-256 verified ok" else echo "[!] problem with sha-256 verification" echo "[ ] expected: " ${OPENSSL_SHA256} echo "[ ] got: " ${sha256} exit 1 fi tar zxvf openssl-$OPENSSL.tar.gz cd openssl-$OPENSSL # Kudos to Jonathan K. Bullard from Tunnelblick. # TODO pass cc/arch if osx ./Configure darwin64-x86_64-cc no-shared zlib no-asm --openssldir="$DEST" make build_libs build_apps openssl.pc libssl.pc libcrypto.pc make DESTDIR=$DEST install_sw } ########### ################################################################## # MBEDTLS # ################################################################## ########### ################################################################## function build_mbedtls() { mkdir -p $SRC/mbedtls && cd $SRC/mbedtls if [ ! -f v$MBEDTLS.tar.gz ]; then $WGET https://github.com/ARMmbed/mbedtls/archive/v$MBEDTLS.tar.gz fi sha256=`${SHASUM} -a 256 v${MBEDTLS}.tar.gz | cut -d' ' -f 1` if [ "${MBEDTLS_SHA256}" = "${sha256}" ]; then echo "[+] sha-256 verified ok" else echo "[!] problem with sha-256 verification" echo "[ ] expected: " ${MBEDTLS_SHA256} echo "[ ] got: " ${sha256} exit 1 fi tar zxvf v$MBEDTLS.tar.gz cd mbedtls-$MBEDTLS #scripts/config.pl full ## available for mbedtls 2.16 scripts/config.py full ## available for mbedtls 2.25 mkdir -p build cd build cmake .. $MAKE make install DESTDIR=$DEST } ########### ################################################################# # OPENVPN # ################################################################# # OPENSSL # ################################################################# ########### ################################################################# function build_openvpn_openssl() { mkdir -p $SRC/openvpn && cd $SRC/openvpn gpg --fetch-keys $OPENVPN_KEYS if [ ! -f "$OPENVPN.tar.gz" ]; then $WGET https://build.openvpn.net/downloads/releases/$OPENVPN.tar.gz $WGET https://build.openvpn.net/downloads/releases/$OPENVPN.tar.gz.asc fi gpg --verify $OPENVPN.tar.gz.asc && echo "[+] gpg verification ok" tar zxvf $OPENVPN.tar.gz cd $OPENVPN CFLAGS="$CFLAGS -D __APPLE_USE_RFC_3542 -I$DEST/usr/local/include" \ LZO_CFLAGS="-I$DEST/include" \ LZO_LIBS="$DEST/lib/liblzo2.a" \ OPENSSL_CFLAGS=-I$DEST/usr/local/include/ \ OPENSSL_SSL_CFLAGS=-I$DEST/usr/local/include/ \ OPENSSL_LIBS="$DEST/usr/local/lib/libssl.a $DEST/usr/local/lib/libcrypto.a $DEST/lib/libz.a" \ OPENSSL_SSL_LIBS="$DEST/usr/local/lib/libssl.a" \ OPENSSL_CRYPTO_LIBS="$DEST/usr/local/lib/libcrypto.a" \ LDFLAGS=$LDFLAGS \ CPPFLAGS=$CPPFLAGS \ CXXFLAGS=$CXXFLAGS \ $CONFIGURE \ --disable-lz4 \ --disable-unit-tests \ --disable-plugin-auth-pam \ --enable-small \ --disable-debug $MAKE LIBS="-all-static" make install DESTDIR=$BASE/openvpn mkdir -p $BASE/sbin/ cp $BASE/openvpn/install/sbin/openvpn $BASE/sbin/$OPENVPN strip $BASE/sbin/$OPENVPN } ########### ################################################################# # OPENVPN # ################################################################# # MBEDTLS # ################################################################# ########### ################################################################# function build_openvpn_mbedtls() { mkdir -p $SRC/openvpn && cd $SRC/openvpn gpg --fetch-keys $OPENVPN_KEYS if [ ! -f $OPENVPN.tar.gz ]; then $WGET https://build.openvpn.net/downloads/releases/$OPENVPN.tar.gz $WGET https://build.openvpn.net/downloads/releases/$OPENVPN.tar.gz.asc fi gpg --verify $OPENVPN.tar.gz.asc && echo "[+] gpg verification ok" tar zxvf $OPENVPN.tar.gz cd $OPENVPN MBEDTLS_CFLAGS=-I$DEST/usr/local/include/ \ MBEDTLS_LIBS="$DEST/usr/local/lib/libmbedtls.a $DEST/usr/local/lib/libmbedcrypto.a $DEST/usr/local/lib/libmbedx509.a" \ LDFLAGS=$LDFLAGS \ CPPFLAGS=$CPPFLAGS \ CFLAGS="$CFLAGS -I$DEST/usr/local/include" \ CXXFLAGS=$CXXFLAGS \ $CONFIGURE \ --disable-plugin-auth-pam \ --with-crypto-library=mbedtls # TODO debug first #--enable-small \ #--disable-debug $MAKE LIBS="-all-static -lz -llzo2" make install DESTDIR=$BASE/openvpn mkdir -p $BASE/sbin/ cp $BASE/openvpn/install/sbin/openvpn $BASE/sbin/$OPENVPN strip $BASE/sbin/$OPENVPN } function build_all() { echo "[+] Building" $OPENVPN build_zlib build_lzo2 build_openssl build_openvpn_openssl #build_mbedtls # broken, see #311 #build_openvpn_mbedtls } function main() { if [[ $platform == 'linux' ]]; then build_all fi if [[ $platform == 'osx' ]]; then build_all fi } main "$@" riseup-vpn-0.24.5+ds1/branding/thirdparty/qt5/000077500000000000000000000000001461742244100210715ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/branding/thirdparty/qt5/build-qt5-static.sh000077500000000000000000000023231461742244100245230ustar00rootroot00000000000000#!/bin/sh # Downloads qt5 source file and compiles it statically. # See https://wohlsoft.ru/pgewiki/Building_static_Qt_5 for tips QT5_V="5.12" QT5_VER="5.12.9" QT5_DIR="qt-everywhere-src-$QT5_VER" QT5_TAR="$QT5_DIR.tar.xz" QT5_URL="https://download.qt.io/archive/qt/$QT5_V/$QT5_VER/single/$QT5_TAR" # TODO we could use -qt-freetype, but then we have to ship our own fonts. CONFIG_FLAGS="-prefix $PWD/../qt5-static -release -opensource -confirm-license -platform linux-g++ \ -fontconfig -system-freetype \ -opengl \ -no-ssl \ --doubleconversion=qt \ --zlib=qt \ --libjpeg=no \ --icu=no \ --libpng=qt --pcre=qt --xcb=qt --harfbuzz=qt \ -skip wayland -skip purchasing -skip serialbus -skip qtserialport -skip script -skip scxml -skip speech \ -static \ -optimize-size -nomake examples -nomake tests" # --xcb=system if [ -f "$QT5_TAR" ]; then echo "[+] $QT5_TAR already downloaded." else echo "[+] Qt5 source tarball does not exist. Attempting to download..." wget -c $QT5_URL fi tar xf "$QT5_TAR" cd $QT5_DIR ./configure ${CONFIG_FLAGS} make -j 8 && make install riseup-vpn-0.24.5+ds1/cmd/000077500000000000000000000000001461742244100151455ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/cmd/bitmask-helper/000077500000000000000000000000001461742244100200545ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/cmd/bitmask-helper/main.go000066400000000000000000000024241461742244100213310ustar00rootroot00000000000000// Copyright (C) 2018-2020 LEAP // // 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 . package main import ( "log" "path" "0xacab.org/leap/bitmask-vpn/pkg/config" "0xacab.org/leap/bitmask-vpn/pkg/helper" ) const ( preferredPort = 7171 logFile = "helper.log" ) var ( Version string AppName string ) func main() { logger, err := config.ConfigureLogger(path.Join(helper.LogFolder, logFile)) if err != nil { log.Println("Can't configure logger: ", err) } else { defer logger.Close() } helper.Version = Version helper.AppName = AppName // StartHelper is the main entry point - it also handles cli args in windows, and starts the http server. helper.StartHelper(preferredPort) } riseup-vpn-0.24.5+ds1/cmd/bitmaskd/000077500000000000000000000000001461742244100167435ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/cmd/bitmaskd/main.go000066400000000000000000000024241461742244100202200ustar00rootroot00000000000000package main import ( "errors" "flag" "fmt" "io/ioutil" "log" "os" "runtime" "0xacab.org/leap/bitmask-vpn/pkg/backend" ) func main() { var c string var installHelpers bool flag.StringVar(&c, "c", "", "Config file") flag.BoolVar(&installHelpers, "i", false, "Install helpers (asks for sudo)") flag.Parse() if installHelpers { backend.InstallHelpers() os.Exit(0) } if len(c) == 0 { fmt.Println("Please setup a config file with -c") os.Exit(1) } if _, err := os.Stat(c); err == nil { log.Println("Loading config file from", c) // all good. we could validate the json. } else if errors.Is(err, os.ErrNotExist) { fmt.Println("Cannot find file:", c) os.Exit(1) } else { // Schrodinger: file may or may not exist. log.Println("Error:", err) } providerDefinitionJSON, err := ioutil.ReadFile(c) if err != nil { fmt.Println("Error reading config file") os.Exit(1) } // TODO daemonize, or run in foreground to debug. log.Println("Starting bitmaskd...") opts := backend.InitOptsFromJSON("riseup", string(providerDefinitionJSON)) opts.DisableAutostart = true opts.Obfs4 = false opts.StartVPN = "off" backend.EnableWebAPI("8000") backend.InitializeBitmaskContext(opts) log.Println("Backend initialized") runtime.Goexit() fmt.Println("Exit") } riseup-vpn-0.24.5+ds1/cmd/snowflake-client/000077500000000000000000000000001461742244100204125ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/cmd/snowflake-client/.gitignore000066400000000000000000000000211461742244100223730ustar00rootroot00000000000000snowflake-client riseup-vpn-0.24.5+ds1/cmd/snowflake-client/main.go000066400000000000000000000153571461742244100217000ustar00rootroot00000000000000// Client transport plugin for the Snowflake pluggable transport. package main import ( "flag" "io" "io/ioutil" "log" "math/rand" "net" "os" "os/signal" "path/filepath" "strings" "sync" "syscall" "time" pt "git.torproject.org/pluggable-transports/goptlib.git" //sf "git.torproject.org/pluggable-transports/snowflake.git/client/lib" sf "0xacab.org/leap/bitmask-vpn/pkg/snowflake/lib" "git.torproject.org/pluggable-transports/snowflake.git/common/nat" "git.torproject.org/pluggable-transports/snowflake.git/common/safelog" "github.com/pion/webrtc/v3" ) const ( DefaultSnowflakeCapacity = 1 ) // Accept local SOCKS connections and pass them to the handler. func socksAcceptLoop(ln *pt.SocksListener, tongue sf.Tongue, shutdown chan struct{}, wg *sync.WaitGroup) { defer ln.Close() for { conn, err := ln.AcceptSocks() if err != nil { if err, ok := err.(net.Error); ok && err.Temporary() { continue } log.Printf("SOCKS accept error: %s", err) break } log.Printf("SOCKS accepted: %v", conn.Req) go func() { wg.Add(1) defer wg.Done() defer conn.Close() err := conn.Grant(&net.TCPAddr{IP: net.IPv4zero, Port: 0}) if err != nil { log.Printf("conn.Grant error: %s", err) return } handler := make(chan struct{}) go func() { err = sf.Handler(conn, tongue) if err != nil { log.Printf("handler error: %s", err) } close(handler) return }() select { case <-shutdown: log.Println("Received shutdown signal") case <-handler: log.Println("Handler ended") } return }() } } // s is a comma-separated list of ICE server URLs. func parseIceServers(s string) []webrtc.ICEServer { var servers []webrtc.ICEServer s = strings.TrimSpace(s) if len(s) == 0 { return nil } urls := strings.Split(s, ",") for _, url := range urls { url = strings.TrimSpace(url) servers = append(servers, webrtc.ICEServer{ URLs: []string{url}, }) } return servers } func main() { iceServersCommas := flag.String("ice", "", "comma-separated list of ICE servers") brokerURL := flag.String("url", "", "URL of signaling broker") frontDomain := flag.String("front", "", "front domain") logFilename := flag.String("log", "", "name of log file") logToStateDir := flag.Bool("log-to-state-dir", false, "resolve the log file relative to tor's pt state dir") keepLocalAddresses := flag.Bool("keep-local-addresses", false, "keep local LAN address ICE candidates") unsafeLogging := flag.Bool("unsafe-logging", false, "prevent logs from being scrubbed") max := flag.Int("max", DefaultSnowflakeCapacity, "capacity for number of multiplexed WebRTC peers") // Deprecated oldLogToStateDir := flag.Bool("logToStateDir", false, "use -log-to-state-dir instead") oldKeepLocalAddresses := flag.Bool("keepLocalAddresses", false, "use -keep-local-addresses instead") flag.Parse() log.SetFlags(log.LstdFlags | log.LUTC) // Don't write to stderr; versions of tor earlier than about 0.3.5.6 do // not read from the pipe, and eventually we will deadlock because the // buffer is full. // https://bugs.torproject.org/26360 // https://bugs.torproject.org/25600#comment:14 var logOutput = ioutil.Discard if *logFilename != "" { if *logToStateDir || *oldLogToStateDir { stateDir, err := pt.MakeStateDir() if err != nil { log.Fatal(err) } *logFilename = filepath.Join(stateDir, *logFilename) } logFile, err := os.OpenFile(*logFilename, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0600) if err != nil { log.Fatal(err) } defer logFile.Close() logOutput = logFile } if *unsafeLogging { log.SetOutput(logOutput) } else { // We want to send the log output through our scrubber first log.SetOutput(&safelog.LogScrubber{Output: logOutput}) } log.Println("\n\n\n --- Starting Snowflake Client ---") iceServers := parseIceServers(*iceServersCommas) // chooses a random subset of servers from inputs rand.Seed(time.Now().UnixNano()) rand.Shuffle(len(iceServers), func(i, j int) { iceServers[i], iceServers[j] = iceServers[j], iceServers[i] }) if len(iceServers) > 2 { iceServers = iceServers[:(len(iceServers)+1)/2] } log.Printf("Using ICE servers:") for _, server := range iceServers { log.Printf("url: %v", strings.Join(server.URLs, " ")) } // Use potentially domain-fronting broker to rendezvous. broker, err := sf.NewBrokerChannel( *brokerURL, *frontDomain, sf.CreateBrokerTransport(), *keepLocalAddresses || *oldKeepLocalAddresses) if err != nil { log.Fatalf("parsing broker URL: %v", err) } go updateNATType(iceServers, broker) // Create a new WebRTCDialer to use as the |Tongue| to catch snowflakes dialer := sf.NewWebRTCDialer(broker, iceServers, *max) // Begin goptlib client process. ptInfo, err := pt.ClientSetup(nil) if err != nil { log.Fatal(err) } if ptInfo.ProxyURL != nil { pt.ProxyError("proxy is not supported") os.Exit(1) } listeners := make([]net.Listener, 0) shutdown := make(chan struct{}) var wg sync.WaitGroup for _, methodName := range ptInfo.MethodNames { switch methodName { case "snowflake": // TODO: Be able to recover when SOCKS dies. ln, err := pt.ListenSocks("tcp", "127.0.0.1:0") if err != nil { pt.CmethodError(methodName, err.Error()) break } log.Printf("Started SOCKS listener at %v.", ln.Addr()) go socksAcceptLoop(ln, dialer, shutdown, &wg) pt.Cmethod(methodName, ln.Version(), ln.Addr()) listeners = append(listeners, ln) default: pt.CmethodError(methodName, "no such method") } } pt.CmethodsDone() sigChan := make(chan os.Signal, 1) signal.Notify(sigChan, syscall.SIGTERM) if os.Getenv("TOR_PT_EXIT_ON_STDIN_CLOSE") == "1" { // This environment variable means we should treat EOF on stdin // just like SIGTERM: https://bugs.torproject.org/15435. go func() { if _, err := io.Copy(ioutil.Discard, os.Stdin); err != nil { log.Printf("calling io.Copy(ioutil.Discard, os.Stdin) returned error: %v", err) } log.Printf("synthesizing SIGTERM because of stdin close") sigChan <- syscall.SIGTERM }() } // Wait for a signal. <-sigChan log.Println("stopping snowflake") // Signal received, shut down. for _, ln := range listeners { ln.Close() } close(shutdown) wg.Wait() log.Println("snowflake is done.") } // loop through all provided STUN servers until we exhaust the list or find // one that is compatable with RFC 5780 func updateNATType(servers []webrtc.ICEServer, broker *sf.BrokerChannel) { var restrictedNAT bool var err error for _, server := range servers { addr := strings.TrimPrefix(server.URLs[0], "stun:") restrictedNAT, err = nat.CheckIfRestrictedNAT(addr) if err == nil { if restrictedNAT { broker.SetNATType(nat.NATRestricted) } else { broker.SetNATType(nat.NATUnrestricted) } break } } if err != nil { broker.SetNATType(nat.NATUnknown) } } riseup-vpn-0.24.5+ds1/code-of-conduct.txt000066400000000000000000000060421461742244100201160ustar00rootroot00000000000000Contributor Covenant Code of Conduct Our Pledge In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. Our Standards Examples of behavior that contributes to creating a positive environment include: * Using welcoming and inclusive language * Being respectful of differing viewpoints and experiences * Gracefully accepting constructive criticism * Focusing on what is best for the community * Showing empathy towards other community members Examples of unacceptable behavior by participants include: * The use of sexualized language or imagery and unwelcome sexual attention or advances * Trolling, insulting/derogatory comments, and personal or political attacks * Public or private harassment * Publishing others private information, such as a physical or electronic address, without explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting Our Responsibilities Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. Scope This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at community@leap.se. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. Attribution This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html riseup-vpn-0.24.5+ds1/debian/000077500000000000000000000000001461742244100156245ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/debian/.gitignore000066400000000000000000000000321461742244100176070ustar00rootroot00000000000000riseup-vpn/* .debhelper/* riseup-vpn-0.24.5+ds1/debian/README000066400000000000000000000003441461742244100165050ustar00rootroot00000000000000riseup-vpn ----------- Initial debianization of bitmask-vpn repo. This is a native package for riseup-vpn, branded clients will use a template based on that one. -- kali kaneko Tue, 09 Feb 2021 20:26:52 +0100 riseup-vpn-0.24.5+ds1/debian/README.Debian000066400000000000000000000002611461742244100176640ustar00rootroot00000000000000riseup-vpn for Debian -------------------- -- Kali Kaneko Tue, 09 Feb 2021 20:26:52 +0100 riseup-vpn-0.24.5+ds1/debian/changelog000066400000000000000000000004641461742244100175020ustar00rootroot00000000000000riseup-vpn (0.21.11) hirsute; urgency=medium * Release 0.21.11 -- Kali Kaneko (leap communications) Tue, 22 Jun 2021 18:26:53 +0200 riseup-vpn (0.21.2.6) groovy; urgency=medium * Initial Release. -- kali kaneko (leap communications) Tue, 09 Feb 2021 20:26:52 +0100 riseup-vpn-0.24.5+ds1/debian/control000066400000000000000000000021011461742244100172210ustar00rootroot00000000000000Source: riseup-vpn Section: net Priority: extra Maintainer: LEAP Encryption Access Project Build-Depends: debhelper-compat (= 12), golang-go (>= 2:1.9), make (>=3.80), pkg-config, g++ (>= 4:4.6.3), git, qt5-qmake, qttools5-dev-tools, qtbase5-dev, libqt5qml5, libqt5quick5, qtdeclarative5-dev Standards-Version: 4.4.1 Homepage: https://0xacab.org/leap/bitmask-vpn #Vcs-Browser: https://0xacab.org/leap/bitmask-vpn #Vcs-Git: https://0xacab.org/leap/bitmask-vpn.git Package: riseup-vpn Architecture: any Enhances: openvpn Depends: ${misc:Depends}, libqt5core5a, libqt5gui5 | libqt5gui5-gles, libqt5qml5, libqt5widgets5, libstdc++6, qml-module-qtquick2, qml-module-qtquick-controls2, qml-module-qtquick-dialogs, qml-module-qtquick-extras, qml-module-qt-labs-platform, openvpn, policykit-1-gnome | polkit-1-auth-agent, python3 Description: Easy, fast, and secure VPN service from riseup.net. . The service does not require a user account, keep logs, or track you in any way. The service is paid for entirely by donations from users. riseup-vpn-0.24.5+ds1/debian/copyright000066400000000000000000000031401461742244100175550ustar00rootroot00000000000000Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: riseup-vpn Upstream-Contact: Source: Files: * Copyright: License: GPL-3.0+ Files: debian/* Copyright: 2021 Kali Kaneko License: GPL-3.0+ License: GPL-3.0+ 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 package 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 . . On Debian systems, the complete text of the GNU General Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". # Please also look if there are files or directories which have a # different copyright/license attached and list them here. # Please avoid picking licenses with terms that are more restrictive than the # packaged work, as it may make Debian's contributions unacceptable upstream. # # If you need, there are some extra license texts available in two places: # /usr/share/debhelper/dh_make/licenses/ # /usr/share/common-licenses/ riseup-vpn-0.24.5+ds1/debian/rules000077500000000000000000000027001461742244100167030ustar00rootroot00000000000000#!/usr/bin/make -f export DH_VERBOSE = 1 export VERBOSE = 1 export DH_OPTIONS export GO111MODULE=on export GOCACHE=/tmp/gocache export DH_GOPKG = 0xacab.org/leap/bitmask-vpn export APPNAME = riseup-vpn ifeq ($(DEB_HOST_ARCH), i386) export GOARCH := 386 else ifeq ($(DEB_HOST_ARCH), amd64) export GOARCH := amd64 else ifeq ($(DEB_HOST_ARCH), armhf) export GOARCH := arm else ifeq ($(DEB_HOST_ARCH), arm64) export GOARCH := arm64 endif # see FEATURE AREAS in dpkg-buildflags(1) #export DEB_BUILD_MAINT_OPTIONS = hardening=+all # see ENVIRONMENT in dpkg-buildflags(1) # package maintainers to append CFLAGS #export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic # package maintainers to append LDFLAGS #export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed %: dh $@ override_dh_auto_test: #FIXME tests try to contact riseup api, need to be mocked #make -j4 test override_dh_auto_build: make build override_dh_install: mkdir -p $(CURDIR)/debian/${APPNAME}/usr/bin mkdir -p $(CURDIR)/debian/${APPNAME}/usr/sbin cp $(CURDIR)/helpers/bitmask-root $(CURDIR)/debian/${APPNAME}/usr/sbin/ mkdir -p $(CURDIR)/debian/${APPNAME}/usr/share/polkit-1/actions cp $(CURDIR)/helpers/se.leap.bitmask.policy $(CURDIR)/debian/${APPNAME}/usr/share/polkit-1/actions cp build/qt/release/${APPNAME} $(CURDIR)/debian/${APPNAME}/usr/bin/${APPNAME} strip $(CURDIR)/debian/${APPNAME}/usr/bin/${APPNAME} dh_install override_dh_dwz: echo "skipping dh_dwz" riseup-vpn-0.24.5+ds1/debian/source/000077500000000000000000000000001461742244100171245ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/debian/source/format000066400000000000000000000000151461742244100203330ustar00rootroot000000000000003.0 (native) riseup-vpn-0.24.5+ds1/debian/source/options000066400000000000000000000001761461742244100205460ustar00rootroot00000000000000tar-ignore=".git/*" tar-ignore="staging_dir/*" tar-ignore="build/*" tar-ignore="deploy/*" tar-ignore="\.*" tar-ignore="cmd/*" riseup-vpn-0.24.5+ds1/docker/000077500000000000000000000000001461742244100156515ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/docker/.gitignore000066400000000000000000000000071461742244100176360ustar00rootroot00000000000000mods/* riseup-vpn-0.24.5+ds1/docker/0001-build-fix-build-on-ubuntu-23.04-with-qt6.4.patch000066400000000000000000000142311461742244100264520ustar00rootroot00000000000000From 92e399ec1e7d40fcdfd2fb7957b989972b86f6ee Mon Sep 17 00:00:00 2001 From: jkito Date: Tue, 20 Feb 2024 22:42:00 +0530 Subject: [PATCH] [build] fix build on ubuntu 23.04 with qt6.4 --- bitmask.pro | 2 +- gui/components/ErrorBox.qml | 2 +- gui/components/Footer.qml | 14 ++++++-------- gui/components/Home.qml | 2 +- gui/components/InitErrors.qml | 2 +- gui/components/Locations.qml | 7 +++---- gui/components/MotdBox.qml | 2 +- gui/components/Preferences.qml | 4 ++-- gui/components/SignalIcon.qml | 7 +++---- gui/components/Splash.qml | 2 +- gui/components/StatusBox.qml | 2 +- 11 files changed, 21 insertions(+), 25 deletions(-) diff --git a/bitmask.pro b/bitmask.pro index f377bb4..4aa4956 100644 --- a/bitmask.pro +++ b/bitmask.pro @@ -1,8 +1,8 @@ #TARGET = $$BINARY_NAME QT += quickcontrols2 svg -CONFIG += qt staticlib CONFIG += c++17 strict_c++ +CONFIG += qt staticlib core5compat CONFIG += qtquickcompiler CONFIG+=force_debug_info CONFIG+=debug_and_release diff --git a/gui/components/ErrorBox.qml b/gui/components/ErrorBox.qml index 5667ed9..ef8f58f 100644 --- a/gui/components/ErrorBox.qml +++ b/gui/components/ErrorBox.qml @@ -1,6 +1,6 @@ import QtQuick import QtQuick.Controls -import QtQuick.Effects +import Qt5Compat.GraphicalEffects import "../themes/themes.js" as Theme Item { diff --git a/gui/components/Footer.qml b/gui/components/Footer.qml index 3c3664b..0e95083 100644 --- a/gui/components/Footer.qml +++ b/gui/components/Footer.qml @@ -2,7 +2,7 @@ import QtQuick import QtQuick.Controls import QtQuick.Controls.Material import QtQuick.Layouts -import QtQuick.Effects +import Qt5Compat.GraphicalEffects import "../themes/themes.js" as Theme @@ -40,7 +40,7 @@ ToolBar { } Image { - id: lightning + id: lightning smooth: true visible: ctx != undefined & root.selectedGateway == "auto" width: 16 @@ -52,11 +52,10 @@ ToolBar { verticalCenterOffset: -6 } } - MultiEffect { + ColorOverlay{ anchors.fill: lightning source: lightning - colorizationColor: getLocationColor() - colorization: 1.0 + color: getLocationColor() antialiasing: true } @@ -115,11 +114,10 @@ ToolBar { rightMargin: 20 } } - MultiEffect { + ColorOverlay{ anchors.fill: gwQuality source: gwQuality - colorizationColor: getSignalColor() - colorization: 1.0 + color: getSignalColor() antialiasing: false } } diff --git a/gui/components/Home.qml b/gui/components/Home.qml index f3bea85..7830f46 100644 --- a/gui/components/Home.qml +++ b/gui/components/Home.qml @@ -1,6 +1,6 @@ import QtQuick import QtQuick.Controls -import QtQuick.Effects +import Qt5Compat.GraphicalEffects Page { StatusBox { diff --git a/gui/components/InitErrors.qml b/gui/components/InitErrors.qml index aaf9897..10b4755 100644 --- a/gui/components/InitErrors.qml +++ b/gui/components/InitErrors.qml @@ -1,6 +1,6 @@ import QtQuick import QtQuick.Controls -import QtQuick.Effects +import Qt5Compat.GraphicalEffects ErrorBox { diff --git a/gui/components/Locations.qml b/gui/components/Locations.qml index 1c887d5..7914010 100644 --- a/gui/components/Locations.qml +++ b/gui/components/Locations.qml @@ -1,7 +1,7 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts -import QtQuick.Effects +import Qt5Compat.GraphicalEffects import "../themes/themes.js" as Theme @@ -81,11 +81,10 @@ ThemedPage { //verticalCenterOffset: 3 } } - MultiEffect { + ColorOverlay{ anchors.fill: lightning source: lightning - colorizationColor: "black" - colorization: 1.0 + color: "black" antialiasing: true } } diff --git a/gui/components/MotdBox.qml b/gui/components/MotdBox.qml index 2c8cdb8..7b851c0 100644 --- a/gui/components/MotdBox.qml +++ b/gui/components/MotdBox.qml @@ -1,6 +1,6 @@ import QtQuick import QtQuick.Controls -import QtQuick.Effects +import Qt5Compat.GraphicalEffects import "../themes/themes.js" as Theme Item { diff --git a/gui/components/Preferences.qml b/gui/components/Preferences.qml index 7b6a519..9c594c5 100644 --- a/gui/components/Preferences.qml +++ b/gui/components/Preferences.qml @@ -2,8 +2,8 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts import QtQuick.Controls.Material -import QtQuick.Effects -import QtCore +import Qt5Compat.GraphicalEffects +import Qt.labs.settings import "../themes/themes.js" as Theme diff --git a/gui/components/SignalIcon.qml b/gui/components/SignalIcon.qml index 8747f05..38a2371 100644 --- a/gui/components/SignalIcon.qml +++ b/gui/components/SignalIcon.qml @@ -1,7 +1,7 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts -import QtQuick.Effects +import Qt5Compat.GraphicalEffects import "../themes/themes.js" as Theme @@ -41,11 +41,10 @@ Item { ] } } - MultiEffect { + ColorOverlay{ anchors.fill: icon source: icon - colorizationColor: getQualityColor() - colorization: 1.0 + color: getQualityColor() antialiasing: true } diff --git a/gui/components/Splash.qml b/gui/components/Splash.qml index 41adadb..aea00d3 100644 --- a/gui/components/Splash.qml +++ b/gui/components/Splash.qml @@ -1,6 +1,6 @@ import QtQuick import QtQuick.Controls -import QtQuick.Effects +import Qt5Compat.GraphicalEffects import "../themes/themes.js" as Theme Page { diff --git a/gui/components/StatusBox.qml b/gui/components/StatusBox.qml index ec9d4e5..ae8c41b 100644 --- a/gui/components/StatusBox.qml +++ b/gui/components/StatusBox.qml @@ -1,6 +1,6 @@ import QtQuick import QtQuick.Controls -import QtQuick.Effects +import Qt5Compat.GraphicalEffects import QtQuick.Layouts import QtQuick.Templates as T -- 2.40.1 riseup-vpn-0.24.5+ds1/docker/Dockerfile000066400000000000000000000100631461742244100176430ustar00rootroot00000000000000# An image to build and package the BitmaskVPN (RiseupVPN and other branded builds) # (c) LEAP Encryption Access Project 2018-2021 FROM ubuntu:23.04 as builder MAINTAINER LEAP Encryption Access Project ARG GO_VERSION=1.21 LABEL Description="An image to build Bitmask Lite" Vendor="LEAP" Version="1.2" ENV OSXSDK_SHA256="631b4144c6bf75bf7a4d480d685a9b5bda10ee8d03dbf0db829391e2ef858789" \ PATH="$PATH:/osxcross/target/bin:/usr/lib/go-${GO_VERSION}/bin" \ QMAKE=qmake6 ARG DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get upgrade --yes && \ apt-get install --yes --no-install-recommends \ build-essential \ make cmake \ git curl wget \ libappindicator3-dev libgtk-3-dev \ webkit2gtk-4.0 \ mingw-w64 upx-ucl python3 snapd \ unzip sudo locales \ devscripts fakeroot debhelper \ clang llvm-dev libxml2-dev uuid-dev \ libssl-dev bash patch tar \ xz-utils bzip2 gzip sed cpio libbz2-dev \ software-properties-common dh-golang \ jq \ squashfs-tools libgl-dev \ qml-module-qtquick-controls2 libqt6qml6 libqt6svg6-dev qt6-l10n-tools \ qt6-tools-dev qt6-tools-dev-tools qt6-base-dev qt6-base-dev-tools \ qt6-declarative-dev qt6-declarative-dev-tools \ qml6-module-qt5compat-graphicaleffects libqt6core5compat6 libqt6core5compat6-dev \ golang golang-${GO_VERSION}-go golang-golang-x-tools-dev && \ rm -r /var/lib/apt/lists/* RUN ln -s $(qmake6 -query "QT_INSTALL_BINS")/lrelease /usr/local/bin/lrelease # osx cross compiling #RUN git clone https://github.com/tpoechtrager/osxcross && \ # cd osxcross/tarballs && \ # wget https://s3.dockerproject.org/darwin/v2/MacOSX10.10.sdk.tar.xz && \ # echo "${OSXSDK_SHA256} *MacOSX10.10.sdk.tar.xz" | sha256sum -c - && \ # cd .. && UNATTENDED=1 ./build.sh && \ # ln -s /osxcross/target/SDK/MacOSX10.10.sdk/usr/include/objc/NSObjCRuntime.h /osxcross/target/SDK/MacOSX10.10.sdk/usr/include/objc/NSObjcRuntime.h # bomutils (for osx packaging) #RUN git clone https://github.com/hogliux/bomutils && \ # cd bomutils && make && sudo make install # xar (for osx packaging) #RUN git clone https://github.com/VantaInc/xar && \ # cd xar/xar && \ # ./autogen.sh && ./configure && \ # make && sudo make install # Grab the core18 and core20 snap (which snapcraft uses as a base) from the stable channel # and unpack it in the proper place, to speed up snapcraft builds in the containers. # RUN curl -L $(curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/core18' | jq '.download_url' -r) --output core18.snap # RUN mkdir -p /snap/core18 # RUN unsquashfs -d /snap/core18/current core18.snap # RUN curl -L $(curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/core20' | jq '.download_url' -r) --output core20.snap # RUN mkdir -p /snap/core20 # RUN unsquashfs -d /snap/core20/current core20.snap # Grab the snapcraft snap from the stable channel and unpack it in the proper # place. # RUN curl -L $(curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/snapcraft?channel=stable' | jq '.download_url' -r) --output snapcraft.snap # RUN mkdir -p /snap/snapcraft # RUN unsquashfs -d /snap/snapcraft/current snapcraft.snap # Create a snapcraft runner (TODO: move version detection to the core of # snapcraft). # RUN mkdir -p /snap/bin # RUN echo "#!/bin/sh" > /snap/bin/snapcraft # RUN snap_version="$(awk '/^version:/{print $2}' /snap/snapcraft/current/meta/snap.yaml)" && echo "export SNAP_VERSION=\"$snap_version\"" >> /snap/bin/snapcraft # RUN echo 'exec "$SNAP/usr/bin/python3" "$SNAP/bin/snapcraft" "$@"' >> /snap/bin/snapcraft # RUN chmod +x /snap/bin/snapcraft # RUN ln -s /snap/bin/snapcraft /bin/ COPY builder.sh / # Generate locale. RUN locale-gen en_US.UTF-8 # Set the proper environment. ENV LANG="en_US.UTF-8" ENV LANGUAGE="en_US:en" ENV LC_ALL="en_US.UTF-8" ENV SNAP="/snap/snapcraft/current" ENV SNAP_NAME="snapcraft" ENV SNAP_ARCH="amd64" riseup-vpn-0.24.5+ds1/docker/Makefile000066400000000000000000000062251461742244100173160ustar00rootroot00000000000000######################################################################### # Docker build environment for BitmaskVPN # (c) LEAP Encryption Access Project, 2019-2020 ######################################################################### IMAGE=bitmask-vpn REGISTRY=registry.0xacab.org/leap PROVIDER=riseup PRODUCT=$(shell echo $(PROVIDER) | sed -e "s/\b\(.\)/\u\1/g")VPN UNINSTALLER_NSIS="../deploy/produce-bitmask-uninstaller.exe" UNINSTALLER_WINE=".wine/drive_c/bitmask-uninstall.exe" UNINSTALLER_STAGING="../build/windows/staging/uninstall.exe" UNINSTALLER_SIGNED="../build/windows/staging/uninstall-signed.exe" SIGNCODE=osslsigncode SECRETS="leap/secrets/windoze" build: mkdir -p mods && cp ../go.mod ../go.sum mods/ && cp -r ../packages mods/ docker build -t $(REGISTRY)/$(IMAGE):latest . deps: sudo apt install osslsigncode push: docker push $(REGISTRY)/$(IMAGE):latest prune: docker system prune login: docker login $(REGISTRY) package_snap: docker run \ -e PROVIDER=$(PROVIDER) \ -e TYPE=snap \ -v `python3 -c 'import os; print(os.path.abspath(".."))'`:/bitmask-vpn.host \ --cpus="4" \ -it --rm \ $(REGISTRY)/$(IMAGE):latest \ /builder.sh package_win: clean_win package_win_stage_1 sign_win_uninstaller_in_host package_win_stage_2 sign_win_installer_in_host clean_win: @rm -f ../deploy/*.exe package_win_stage_1: docker run \ -e PROVIDER=$(PROVIDER) \ -e XBUILD=win \ -e STAGE=1 \ -v `python3 -c 'import os; print(os.path.abspath(".."))'`:/bitmask-vpn.host \ --cpus="4" \ -it --rm \ $(REGISTRY)/$(IMAGE):latest \ /builder.sh sign_win_uninstaller_in_host: @rm -f $(UNINSTALLER_STAGING) @rm -f $(UNINSTALLER_WINE) @echo "[+] running nsis uninstaller under wine..." @wine $(UNINSTALLER_NSIS) || echo "[+] wine finished (it exits badly)" @cp ~/$(UNINSTALLER_WINE) $(UNINSTALLER_STAGING) && echo "[+] copied uninstaller to staging dir:" $(UNINSTALLER_STAGING) @$(SIGNCODE) sign \ -certs ~/$(SECRETS)/win.crt \ -key ~/$(SECRETS)/key.pem \ -pass `gpg --decrypt ~/$(SECRETS)/../windoze.gpg` \ -n "$(PRODUCT) Uninstaller" -i "https://leap.se/" \ -in $(UNINSTALLER_STAGING) \ -out $(UNINSTALLER_SIGNED) @echo "[+] signed uninstaller in:" $(UNINSTALLER_SIGNED) package_win_stage_2: docker run \ -e PROVIDER=$(PROVIDER) \ -e XBUILD=win \ -e STAGE=2 \ -v `python3 -c 'import os; print(os.path.abspath(".."))'`:/bitmask-vpn.host \ --cpus="4" \ -it --rm \ $(REGISTRY)/$(IMAGE):latest \ /builder.sh sign_win_installer_in_host: $(eval INSTALLER := $(shell ls -tr ../deploy/$(PRODUCT)*.exe | tail -n 1)) $(eval INSTALLER_SIGNED := $(shell echo $(INSTALLER) | sed 's/\.exe/-signed.exe/')) @$(SIGNCODE) sign \ -certs ~/$(SECRETS)/win.crt \ -key ~/$(SECRETS)/key.pem \ -pass `gpg --decrypt ~/$(SECRETS)/../windoze.gpg` \ -n "$(PRODUCT) Installer" -i "https://leap.se/" \ -in $(INSTALLER) \ -out ../deploy/$(INSTALLER_SIGNED) @echo "[+] signed installer in:" $(INSTALLER_SIGNED) shell: docker run -v `python3 -c 'import os; print(os.path.abspath(".."))'`:/bitmask-vpn.host -it --rm $(REGISTRY)/$(IMAGE):latest /bin/bash riseup-vpn-0.24.5+ds1/docker/README.md000066400000000000000000000003401461742244100171250ustar00rootroot00000000000000You can use the makefile to build the image. "make packages" will build packages inside the builder container. Use https://github.com/kalikaneko/squid-in-a-can if you want to save some bandwith while building your images. riseup-vpn-0.24.5+ds1/docker/builder.sh000077500000000000000000000016461461742244100176450ustar00rootroot00000000000000#!/bin/bash set -e export HOSTDIR=/bitmask-vpn.host export GUESTDIR=/bitmask-vpn export DESTDIR="${HOSTDIR}"/deploy/ rm -rf "${GUESTDIR}" cp -r "${HOSTDIR}" "${GUESTDIR}" cd "${GUESTDIR}" make vendor case $TYPE in snap) echo "[+] Building SNAP" make package_snap ;; *) make build ;; esac case $XBUILD in win) if [ "$STAGE" = "1" ]; then echo "" echo "[+] Bulding WIN installer >>>>>>>>>>> STAGE 1" make package_win_stage_1 echo "" fi if [ "$STAGE" = "2" ]; then echo "" echo "[+] Building WIN installer >>>>>>>>>> STAGE 2" make package_win_stage_2 echo "" fi ;; osx) make package_osx ;; yes) make packages ;; default) echo "no XBUILD set..." ;; esac cp "${GUESTDIR}"/deploy/* $DESTDIR riseup-vpn-0.24.5+ds1/docs/000077500000000000000000000000001461742244100153325ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/docs/branding.rst000066400000000000000000000041101461742244100176440ustar00rootroot00000000000000BitmaskVPN Branding Procedure ================================================================================ This document contains the instructions to generate a custom build of the Desktop BitmaskVPN app for a given provider. Configure -------------------------------------------------------------------------------- All the needed information to vendorize BitmaskVPN are contained in an external folder, where you will place the connection details to your own provider and any asset that you want to customize. To start a new vendoring project, you need to initialize a new repo for your provider: export VENDOR_PATH=../leapvpn-myprovider-pkg make vendor_init Follow the directions in the output of the above command. Basically you need to configure your provider CA certificate, and some graphical assets: * Copy your provider CA certificate to the same folder: '-ca.crt' * Check the list of assets at 'assets/FILES.Readme'. You can validate your configuration: VENDOR_PATH=../myprovider-vpn-pkg vendor_check This will fetch your provider's CA against the one you have configured. If you want to skip the online check, set the `SKIP_CACHECK` to "yes". Checkout the source -------------------------------------------------------------------------------- git clone https://0xacab.org/leap/bitmask-vpn cd bitmask-vpn git pull --tags Build & package -------------------------------------------------------------------------------- NOTE: Some of the following scripts need network access, since they will check whether the configuration published by your provider matches what is configured before the build. If you want to skip this check, pass `SKIP_CACHECK=yes` Run:: VENDOR_PATH=../myprovider-vpn-pkg make vendor Then you can build the binaries for some quick manual testing:: make build Now you can build the installer for your host platform:: make installer Previously we had a cross-compilation setup in place. Cross compilation will be added back in the future. For debian and snap packages (FIXME -- WORK IN PROGRESS): make package_debian make package_snap riseup-vpn-0.24.5+ds1/docs/build-osx.rst000066400000000000000000000100521461742244100177700ustar00rootroot00000000000000osx build ============= Cheat-sheet ------------------ tl;dr: .. code:: bash export RELEASE=yes export OSXAPPPASS=my-apple-app-pass make clean && make vendor && make build make installer make sign_installer make notarize_installer make notarize_staple make create_dmg Pre-requisites ------------------- * You will need a full Xcode installation (cli tools that homebrew install are not enough). * Manually Install the Qt Installer Framework and place it in your path https://download.qt.io/official_releases/qt-installer-framework/4.0.1/ * git, make, gpg, golang, qt5. You can get them all with homebrew by doing: .. code::bash make depends Sign the release ------------------- In recent osx releases, it's not ok to just sign the installers anymore. You have to sign and then notarize with their service. here are some notes that use ad-hoc targets in the main makefile, but we should keep an eye on any future integration of this process in the more or less official Qt tools (QTIFW). First, we build the regular installer (use RELEASE=yes to do a codesign step with macqtdeploy, note that this increases build time considerably): .. code:: bash make build RELEASE=yes make installer make sign_installer Now we export the app-specific password and we proceed to notarization. If you don't know what is this pass, you can create one in your Apple developer account. Contact their friendly support for more info, but don't expect they understand you do not really own any Apple Hardware. Sense of humor is not universal. Security -> App-specific passwords -> Generate If you need to revoke these tokens, click on 'view history'. https://appleid.apple.com/account/manage According to https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution/customizing_the_notarization_workflow: To avoid including your password as cleartext in a script, you can provide a reference to a keychain item, as shown in the previous example. This assumes the keychain holds a keychain item named AC_PASSWORD with an account value matching the username AC_USERNAME. .. code:: bash export OSXAPPPASS=my-apple-app-pass make notarize_installer Between the output of the last command, you will get a Request UUID. You should pass that request uid in the appropriate environment variable to check the status of the notarization process. Obviously, since the recent changes in Apple policies, you need to be in posession of a valid membership .. code:: bash altool[5281:91963] No errors uploading 'build/installer/RiseupVPN-installer-0.20.4-175-gee4eb90.zip'. RequestUUID = fe9a4324-bdcb-4c52-b857-f089dc904695 OSXMORDORUID=fe9a4324-bdcb-4c52-b857-f089dc904695 make notarize_check xcrun altool --notarization-info fe9a4324-bdcb-4c52-b857-f089dc904695 -u "info@leap.se" -p my-apple-app-pass 2020-12-11 22:21:59.940 altool[5787:96428] No errors getting notarization info. RequestUUID: fe9a4324-bdcb-4c52-b857-f089dc904695 Date: 2020-12-11 21:13:10 +0000 Status: success LogFileURL: https://osxapps-ssl.itunes.apple.com/itunes-assets/Enigma114/v4/0f/c9/1e/0fc91e64-2c9f-74e5-3cf6-96b8f3bf7170/developer_log.json?accessKey=1607916119_6680812212684569509_nLlPw6tYxTSiWZfFTb0atP9zZ3CEGDfW0btWV51xhjWHiCFqBt%2BneXd5Vp40eQCSx8e1W5PYCIe2db7JGbhoTeJsYxl7UmYssRvYpTxYJl8z90uwB9jkbS1fsd7niaAn%2BQs7xHdv%2BB9jaKQI8LJ%2BwYY8RPq1QaeCJxBIdeG44DY%3D Status Code: 0 Status Message: Package Approved If everything is ok, now you can finish the process, stapling the notarization info and creating the dmg. .. code:: bash make notarize_staple make create_dmg If everything went well, you should have a .dmg for your release under the `deploy` folder. .. code:: bash created: /Users/admin/leap/bitmask-vpn/deploy/RiseupVPN-0.20.4-175-gee4eb90.dmg Setting up OSX from qemu ------------------------ Check https://github.com/kholia/OSX-KVM Compiling in old OSX versions ----------------------------- You can download old versions of Xcode from https://developer.apple.com/download/more/ Version table: * High Sierra: Xcode 10.1 riseup-vpn-0.24.5+ds1/docs/build-ppa.rst000066400000000000000000000010551461742244100177420ustar00rootroot00000000000000ppa howto ========= * Add changes to changelog (bump native dot-version, change release) * Upload changes file .. code:: bash debuild -i -S dput --force ppa:kalikaneko/ppa ../riseup-vpn_0.21.2.2_source.changes Using kali's ppa ---------------- .. code:: bash sudo gpg --homedir=/tmp --no-default-keyring --keyring /usr/share/keyrings/kali-ppa-archive-keyring.gpg --keyserver keyserver.ubuntu.com --recv-keys 0xbe23fb4a0e9db36ecb9ab8be23638bf72c593bc1 sudo add-apt-repository ppa:kalikaneko/ppa sudo apt update sudo apt install riseup-vpn riseup-vpn-0.24.5+ds1/docs/build-snap-canonical.rst000066400000000000000000000032251461742244100220510ustar00rootroot00000000000000git integration =============== All seems to be more smooth with the "new" (ahem) github integration (once things *are* working). Some tips: - We've got different repos. `riseup-vpn-snap` is the *snap* repo. Import code from upstream, just merge it with `-X theirs` - If the snap doesn't change, just use `make bump_snap` for upgrading the version from git (TODO we could write this also into the hardcoded version). - Otherwise, just do `make vendor` and import the snapcraft.yaml generated from the template. local builds ------------ multipass is the recommended way, but canonical does use lxd so at times some paths etc change. For your own sanity: - get a zfs pool on a fast device, and get yourself acquainted with lxd to use that pool. - don't get too frustrated with networking + lxd. restarting any iptables in your host (if using bridges) usually helps. - you can use `make local_snap` to use your local lxd infra. it launches with `--debug`, so you'll be dropped into a local shell to see what the fuck the manual build of Qt is complaining about. existential helpline -------------------- * don't despair. we've all been there. * snapcraft forum is useful. * all tech is crap: don't think that you'll be happy reimplementing the whole app in electron or whatnot. just don't. enjoy life while you can. * https://forum.snapcraft.io/t/the-sorry-state-of-snapping-qt5-apps/22809 * https://github.com/mozilla-mobile/mozilla-vpn-client/blob/main/scripts/qt5_compile.sh if you have some time --------------------- * look into a `clang` build. qt builds fine, but last time I tried there was some incompatible version (?) that didn't let the qmake build finish. riseup-vpn-0.24.5+ds1/docs/build-snap-release.rst000066400000000000000000000052161461742244100215440ustar00rootroot00000000000000Automatic builds (snap) ~~~~~~~~~~~~~~~~~~~~~~~ When properly configured (TBD), launchpad does up 4 daily builds if code is modified in bitmask-dev repo. We're building for amd64 and i386. They are pushed to beta channel in the snap store. If you need to force a build, trigger it by editing the version string in the snapcraft.yaml file. Releasing snaps ---------------- From the snap dashboard, you can see the revisions that are built. By default, we have riseupvpn-builds configured to upload builds to beta and edge channels. If you are going to be pushing to edge manually regularly, please configure the automated builds to push just to beta for some time and push your builds to edge channel. To publish a snap, click on "release" from the dashboard, and assign a channel to them. By convention, if you release to a channel, please release the revision to all the lower channels too. (For example, if you release a particular revision to "candidate", release it also to "beta" and "edge"). Do note that the automated builds for different architectures do have different revision numbers, so when releasing you have to repeat the steps for each platform that we're building for. From the command line: snapcraft login snapcraft status riseup-vpn # if we've built a release manually, we have to push it first. it gives us a # revision number that we use in the next step. snapcraft upload riseup-vpn_0.10.6+git_amd64.snap Preparing to push '/home/kali/leap/bitmask-dev/riseup-vpn_0.10.6+git_amd64.snap' to the store. Found cached source snap /home/kali/.cache/snapcraft/projects/riseup-vpn/snap_hashes/amd64/b5e9d106c823e3c83fce1ef81ad95d68c33fcada859eeb98233fc766863d39205c192fe5ee53def71c43886e40d3ab5b. Generating xdelta3 delta for riseup-vpn_0.10.6+git_amd64.snap. Pushing delta /home/kali/leap/bitmask-dev/riseup-vpn_0.10.6+git_amd64.snap.xdelta3. Pushing riseup-vpn_0.10.6+git_amd64.snap.xdelta3 [=================================================] 100% Processing...| Ready to release! Revision 20 of 'riseup-vpn' created. # otherwise I assume that you're just trying to release something # that was already built and automatically uploaded. # let's publish amd64 to candidate channel and the channels below snapcraft release riseup-vpn 20 candidate snapcraft release riseup-vpn 20 beta snapcraft release riseup-vpn 20 edge # and now the i386 build snapcraft release riseup-vpn 19 candidate snapcraft release riseup-vpn 19 beta snapcraft release riseup-vpn 19 edge riseup-vpn-0.24.5+ds1/docs/build-static.rst000066400000000000000000000001611461742244100204460ustar00rootroot00000000000000some notes to build the gui with static qt5 QMAKE=/toolchain/qt5-static/bin/qmake TARGET=demolib-vpn ./build.sh riseup-vpn-0.24.5+ds1/docs/build-win.rst000066400000000000000000000046061461742244100177640ustar00rootroot00000000000000windows build ============= The build currently expects MINGW64 environment, on a native windows host. A cross-compiling procedure (at least for the application binaries) should be possible in the near future, using mxe. (There's already some support for it in `gui/build.sh`). You should instal: make, wget, as well as a recent Qt6 version (for instance, with chocolatey: choco install make && choco install wget). For installing Qt6 use the [`aqt`](https://github.com/miurahr/aqtinstall) tool to install a portable version of Qt. It's recommended to use bash for windows for compatibility (the version that is distributed with git works well so far). In order to avoid makefiles, you are welcome to submit a port of the build scripts using powershell or cscript - see the build.wsf script in openvpn-build for inspiration. For the installer, install QtIFW for windows (tested with version 3.2.2). It is useful to source a file with all the needed environment variables:: cat ../build-env export PATH="/c/Qt/Qt5/bin/":"/c/Qt/QtIFW-3.2.2/bin":$PATH export WINCERTPASS=certificatepass export VENDOR_PATH=providers export PROVIDER=riseup Assuming you have the vendor path in place and correctly configured, all you need to do is `make installer`:: source ../build-env make vendor make build make installer checking signatures ------------------- we should be signing all binaries on a release build. to check the binaries have proper signatures, you can use the sigcheck utilities, part of the sysinternals suite: https://docs.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite unzip and place sigcheck.exe somewhere in your path. make sure to pass -accepteula parameter on some manual run so that it does not ask again. adding metadata to binaries --------------------------- If you're doing a final release:: export RELEASE=yes make build make dosign make installer make sign_installer or all together as:: make package_win_release Please make sure to cleanup the build/ and lib/ dirs if you're building for more than one vendor. Uploading installer ------------------- Since 0.21.2, we're hashing and signing the installers:: export FILE=deploy/RiseupVPN-installer-0.21.2.exe make sign_artifact make upload_artifact unreviewed notes ---------------- see comment about patching dlls and windeployqt not being needed anymore https://stackoverflow.com/a/61910592 riseup-vpn-0.24.5+ds1/docs/circumvention.rst000066400000000000000000000042331461742244100207530ustar00rootroot00000000000000Censorship Circumvention ================================================================================ This document contains some advice for using BitmaskVPN (or any of its derivatives) for censorship circumvention. Bootstrapping the connection ----------------------------- There are two different steps where circumvention can be used: boostrapping the connection (getting a certificate and the configuration files) and using an obfuscated transport protocol. For the initial bootstrap, there are a couple of techniques that will be attempted. If this fails, please open an issue with the relevant log information. Obfuscated bridges ----------------------------- At the moment RiseupVPN offers obfs4 transport "bridges" (you can try them with the `--obfs4` command line argument, or by checking the "use obfs4 bridges" checkbox on the preferences panel. If you know you need bridges but the current ones do not work for you, please get in contact. We're interested in learning what are the specific censorship measures being deployed in your concrete location, and we could work together to enable new bridges. Getting certificates off-band ----------------------------- As a last resort, you can place a valid certificate in the config folder (name it after the provider domain). You might have downloaded this cert with Tor, using a socks proxy etc... ~/.config/leap/riseup.net.pem When the certificate expires you will need to download a new one. Help us improve circumvention! ------------------------------ We're very interested in working with people on the field to assess the effectiveness of these (and possibly other) measures. If you want to help us with these task, please write to us or feel free to open a new, confidential issue, with details of what is working and what not: * Are the obfs4 bridges working from your location? * Do they work with the desktop app, android app, none of them? One but not the other? * At the moment, Riseup has 2 different obfs4 bridges: does it work with one, both, or none? * Does setting a certificate manually work for you? * Were things working before and not anymore? * Are the failures intermittent, even with the same ISP? riseup-vpn-0.24.5+ds1/docs/contribution-ideas.md000066400000000000000000000026741461742244100214670ustar00rootroot00000000000000# I have time, how can I help? ## Packaging * Look into `AppImage` + https://github.com/probonopd/linuxdeployqt. We've not considered that option too much in the past, but it might give us a decent, self-contained alternative to snap etc. ## Linux * Revamp vpn helper architecture: there're problems, of course, but we can try to isolate the client gui from the vpn helper itself (and "ship it" as a binary under the single bundle, as I do now with bitmak-root). An idea that's been floating around for a long time is to recycle the helper interface, and have a long-lived privileged helper that does the vpn connection using openvpn3 libr. elijah was initially supporting a short-lived helper (what we have right now with bitmask-root), but perhaps the integration can be done right with pkexec or otherwise (separate users in linux etc). This has the additional advantage of allowing us to do a very early startup, and not to depend so much on pkexec + ubuntu's quirks (portability!). # Other discrete projects * Secure, automated upgrade mechanism (look at TUF and the Qt Updater Framework). * Log viewer / log sender * VPN Traffic panel (statistics, ip, gw health, graph for upload/download speeds) * Migrate codebase to Qt6 * Reduce the size of custom static builds * Apple + Windows stores * Convert snap to use a qt5 base (so that updates are kept small). * Provider-agnostic bitmask. * Private bridges mechanism. * QR-bootstrap riseup-vpn-0.24.5+ds1/docs/cross-compiling-with-mxe.rst000066400000000000000000000021411461742244100227320ustar00rootroot00000000000000some attempts at mxe cross-compilation ====================================== We really would like to have cross-compilation working. I tried mxe, it looks the most promising way to, at least, get the binaries working. (Cross-compiling a static version of QtIFW might prove more difficult, though). these two links were useful for me in my attempts: https://gist.github.com/amitsaha/ec8fbbc01e22ef9cc020570f415fa2fb https://stackoverflow.com/questions/14170590/building-qt-5-on-linux-for-windows I tried the mxe project stretch packages * debs seem to be broken :( * add this repo:: deb http://pkg.mxe.cc/repos/apt stretch main * install this package:: mxe-x86_64-w64-mingw32.static-qt5 - I think I tried with cmake. should try again now that I went the qmake route. - Compiling things with the instructions above got me further. However, I only compiled a very simple qt app - did not try with all the QML/foo libraries. It should not be much harder... - I had to patch some files in mxe to workaround a couple of issues (basically editing include paths). TODO -- dig those patches and include them here. riseup-vpn-0.24.5+ds1/docs/debug.rst000066400000000000000000000060131461742244100171520ustar00rootroot00000000000000Troubleshooting =============== This document contains some useful debug information. OSX --- If you're having troubles with old versions of RiseupVPN that did not have an uninstaller, and the new installer is not cleanly replacing the previous install, you might need to manually clean things up. You will need root access to stop the privileged helper. First, see if the helper is running: .. code:: bash pgrep bitmask-helper To stop it: .. code:: bash sudo launchctl unload /Library/LaunchDaemons/se.leap.bitmask-helper.plist To start it: .. code:: bash sudo launchctl load /Library/LaunchDaemons/se.leap.bitmask-helper.plist sudo launchctl start /Library/LaunchDaemons/se.leap.bitmask-helper.plist Check that it's running: .. code:: bash pgrep bitmask-helper Manually check that the web api is running, and that it reports a version that matches what you currently have installed: .. code:: bash curl http://localhost:7171/version Also, you can check that the path near the end of the file /Library/LaunchDaemons/se.leap.bitmask-helper.plist matches the current path where you installed RiseupVPN.app. Cleaning up ~~~~~~~~~~~ If you have things messed up and you want to completely delete the bitmask-helper: .. code:: bash sudo launchctl unload /Library/LaunchDaemons/se.leap.bitmask-helper.plist sudo rm -rf /Library/LaunchDaemons/se.leap.bitmask-helper.plist Make sure that "pgrep bitmask-helper" does not return any pid. Now you can move /Applications/RiseupVPN.app to the Trash, and launch a recent installer to get a clean install. Firewall ~~~~~~~~ In the unfortunate event that a crash lets you with a non-usable connection, you can restore the firewall by hand: .. code:: bash # if you see drop ... , the fw is on sudo pfctl -a com.apple/250.BitmaskFirewall -sr # clean it up! sudo pfctl -a com.apple/250.BitmaskFirewall -F all Windows ------- In Windows you can use PowerShell to see if there's an old service Running (it can be from RiseupVPN, CalyxVPN, LibraryVPN etc...). .. code:: powershell PS C:\Users\admin> Get-Service bitmask-helper-v2 You can also stop it (needs admin) .. code:: powershell PS C:\Users\admin> Stop-Service bitmask-helper-v2 To force logging: .. code:: bash QT_FORCE_STDERR_LOGGING=1 ./riseup-vpn.exe Ciphersuites and other openvpn params ------------------------------------- You can specify a custom `openvpn_configuration` block from a local file (instead of fetching it from `eip-service.json`) via an environment variable: .. code:: bash LEAP_OPENVPN_EXTRA_CONFIG=../extra-config.json ./riseup-vpn Manual Gateway Selection ------------------------ In the same spirit, you can manually override the gateway selection via an environment variable that contains the hostname of the gateway: .. code:: bash LEAP_GW=hostname.riseup.net ./riseup.vpn Dry run ------- To avoid setting up the routes, you can pass the LEAP_DRYRUN variable: .. code:: bash LEAP_DRYRUN=1 ./riseup.vpn We should probably restrict this to non-release versions only. riseup-vpn-0.24.5+ds1/docs/design/000077500000000000000000000000001461742244100166035ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/docs/design/gateway-selection.rst000066400000000000000000000131271461742244100227650ustar00rootroot00000000000000Some design notes about gateway selection ========================================= These are some notes about the design for the new gateway selector. 1. Default behavior: automatic gateway selection. ------------------------------------------------- This is what every user experiences by default. No configuration, we just try to find the "best" gateway for a given location. Client tries to fetch a recommended gateway list from menshen, and pass a subset of `n` gateways to openvpn. Openvpn will then retry the remotes in that order if any of those fails. For the desktop client, `n=3`. 1.1 If new-menshen is deployed (at riseup, for the time being), we get `sortedGateways` field, with load metrics. Menshen has already taken our geolocated ip into account to first sort by distance and then by load. 1.2 If old-menshen (ie, geoip) is available, we fetch the `gateways` field curl -k https://api.black.riseup.net:9001/json 1.3 If no menshen is available (service down, unreachable etc) or the results are unusable (misconfigured provider, geolocated gateway fails to assign lat/lon coordinates), we fallback to the timezone distance heuristic. NOTE: we should catch the failure to geolocate. NOTE: we could inform the user of the timezone heuristic, if done, for transparency. 2. Give connection feedback to the user ---------------------------------------- Little is done right now about this, but we want to give feedback to the user. * We can display the IP that menshen sees before connecting (your ip: x.x.x.x, your country: xx). * When connecting, we could display the openvpn states (so that user see changes). * When vpn connects to a gateway, we get the ip for the gateway (from the openvn management interface), and match that IP against our list of gateways. We use this to detect which gw we're currently connected to, and display the location for the gateway we're connected to. * info to display: (where am I exiting through?) - city - country - ip * systray: RiseupVPN on / Paris (auto) 3. manual gateway override -------------------------- The UI should offer the user a way to manually override gateways, at the level of cities. Ideally there's a toggle near the indication of automatic/manual for gateways (systray or window). 4. gateway selector ------------------- If user wants to do manual override, we display another panel, with - a list of available locations - some health indicator for those nodes, if available. Open questions: - how hard is to add an icon to a Qt combobox? - how much info is enough/too much? (like: does user need to know gateway name? probably not. but useful for logs at least). - do we want to expose the gateway/transport level to the user? (probably not). 5. picking host for a manual override ------------------------------------- when user select a new location as part of manual override, we select the best gateway for that location: 1 **if menshen is available**, we just pick the first in the ordered subset of gws for that location - *question: should we still pass all the other more congested gateways for that location as fallback remotes to openvpn? or just the one?* 2 **if menshen is not available**, we just pick randomly from the gws in a given city. - *same question as in point above*. 6. user feedback for new connection ----------------------------------- After a manual gateway override, we try to connect (ideally do some connectivity/dns tests), and then change the exit location. We now display the location for the new gateway: * systray: RiseupVPN on / Paris (manual) 7. revert to automatic choice ----------------------------- Selecting automatic gw selection again should be a simple action, available quickly from the systray or the main window. * systray (clickable item): ✓ Automatic (maybe this should be called *fastest* instead? More advanced use cases ======================= A1 **how to display load accurately** (load indication can be averaged, or best-case etc...) for every city A2 **refresh info in the backgroud** There are some advantages in refreshing the recommended gateways in the background: - no need to spend time fetching that info on next reconnect - ability to signal user if we're currently in a very congested gateway - ability to transparently switch to another gateway for the same location on next reconnect ...but also some disadvantages: - currently, there's an autoincrement in lb that we have to solve before doing this refresh. - once we're connected to the gateway, menshen will not see our "original" ip, so the geolocation info will not be valid anymore (unless we pass city or coordinates as another parameter). What to do when/if we detect we're connected to a congested / bad gateway? - consensus now: take the next reconnect opportunity to change gws. - maybe ask for user confirmation if that change means breaking expectations (gw in a different country/state for instance). A3 **inform menshen of manual override**. We agreed that it would be great to have an estimation of how many users are doing manual overrides. For this, a *proposal* is to add an endpoint to menshen in which the periodic refresh passes the manual override as a parameter. Something like: GET menshen.float.ip/json?city=paris&type=refresh A4 **how to gracefully fail** (ie, if menshen geoip cannot give lat/lon for your current ip, or if the geoip service is down/blocked) -> we have the "timezone heuristic", it would be good to be explicit about this choice. - detect dns failures A4. advanced visualization: map / traffic graphs - yayyy eye candy :) we want that stuff, but needs more research. riseup-vpn-0.24.5+ds1/docs/dev/000077500000000000000000000000001461742244100161105ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/docs/dev/good-practices.md000066400000000000000000000001151461742244100213320ustar00rootroot00000000000000# QML * https://github.com/Furkanzmc/QML-Coding-Guide/blob/master/README.md riseup-vpn-0.24.5+ds1/docs/firewall.rst000066400000000000000000000002671461742244100176760ustar00rootroot00000000000000firewall ======== If you want to explicitely define allowed ips in private ranges, please use the files:: /etc/bitmask/ipv4.allow /etc/bitmask/ipv6.allow With one ip per line. riseup-vpn-0.24.5+ds1/docs/hacking-qml.rst000066400000000000000000000004451461742244100202620ustar00rootroot00000000000000QML best practices ================== * https://github.com/Furkanzmc/QML-Coding-Guide/blob/master/README.md * lint your qml files:: make qmllint Debugging --------- In windows you need to add some flags to obtain QML debug: QT_FORCE_STDERR_LOGGING=1 QT_LOGGING_DEBUG=1 ./riseup-vpn.exe riseup-vpn-0.24.5+ds1/docs/headless.md000066400000000000000000000032661461742244100174530ustar00rootroot00000000000000# headless mode As a wise person once said, "you don't want to struggle with Qt every day". ## backend There's a barebones binary that launches the same backend that the qt5 client uses. You will need a `providers.json` file containing the parameters for you own deployment. This is usually generated during the vendoring step, but you can manually edit the one for riseup: ``` go build ./cmd/bitmaskd ``` You might need to install the helpers (bitmask-root, polkit policies etc...). Do it manually, or use the embedded files (It will ask for sudo). ``` ./bitmaskd -i ``` With the polkit files in place, you can now run bitmask backend in the foreground: ``` ./bitmaskd -d gui/providers/providers.json ``` TODO: make it a proper daemon, logging etc. If you find problems while running (like polkit asking for password every time), you probably need to debug your polkit installation. Every system has its quirks, and bitmask has mostly been tested in debian-based desktops. For arch, you might need to add your user to group wheel. ## firewall While testing, you are likely to get the iptables firewall leaving you with blocked outgoing connections. You can control `bitmask-root` manually: ``` sudo /usr/sbin/bitmask-root help sudo /usr/sbin/bitmask-root firewall stop ``` ## cli There's no cli at the moment, but you can use the web api. To authenticate, you need to pass a token that is writen to a temporary file when the backend is initialized: ``` curl -H "X-Auth-Token:`cat /tmp/bitmask-token`" http://localhost:8000/vpn/status curl -H "X-Auth-Token:`cat /tmp/bitmask-token`" http://localhost:8000/vpn/start curl -H "X-Auth-Token:`cat /tmp/bitmask-token`" http://localhost:8000/vpn/stop ``` riseup-vpn-0.24.5+ds1/docs/i18n-howto.rst000066400000000000000000000013151461742244100200010ustar00rootroot00000000000000Howto i18n ---------- The translations are done in transifex. To help us contribute your translations there and/or review the existing ones: https://www.transifex.com/otf/bitmask/bitmask-desktop/ When a string has being modified you need to regenerate the locales: ``` make generate_locales ``` To fetch the translations from transifex you need to use the Transifex cli: https://developers.transifex.com/docs/cli and an api (API\_TOKEN is the transifex API token) ``` API_TOKEN='xxxxxxxxxxx' tx pull ``` If you want to add a new language you can: ``` API_TOKEN='xxxxxxxxxxx' tx pull -a ``` Testing the translations ------------------------ Pass the language env vars: LANG=es_ES LANGUAGE=es_ES make run riseup-vpn-0.24.5+ds1/docs/index.rst000066400000000000000000000007261461742244100172000ustar00rootroot00000000000000.. bitmask-vpn documentation master file, created by sphinx-quickstart on Wed Oct 9 19:52:00 2019. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. bitmask-vpn ======================================= A White-Label, single-provider VPN Application. .. toctree:: :maxdepth: 2 :caption: Contents: Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search` riseup-vpn-0.24.5+ds1/docs/release-howto.rst000066400000000000000000000012201461742244100206350ustar00rootroot00000000000000Release procedure ===================== 1. Bump the static release file in `pkg/version`. After a release, this should read something like `0.21.2+git`. This file is used to generate version strings from tarballs. 2. Tag the release 3. Build the latest builder image: ``` make builder_image ``` 3. Build the snap package: With everything ready on the docker image, this one should be built "in a snap" (badum-tsss). ``` make package_snap_in_docker ``` 4. Build the windows installer: (TBD) 5. Build the OSX package: (TBD) 6. Build the debian package: (TBD) 7. Upload builds, renew the *-latest* symlinks and their `lastver` files (important!) riseup-vpn-0.24.5+ds1/docs/research/000077500000000000000000000000001461742244100171265ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/docs/research/snowflake.txt000066400000000000000000000064661461742244100216740ustar00rootroot00000000000000Initial brainstorm ================== Date: 16 Jun 2021 Authors: cyberta, kali Goal ==== Using snowflake to help circumvent blocks on leap VPN. Assumptions =========== * 1. Not all the gateways (or obfs4 endpoints, or tls proxies etc) are blocked. Phases ====== * 1. Use snowflake ONLY in the bootstrap of the VPN connection <- we're here now. * 2. Use snowflake as a pluggable transport to tunnel an openvpn connection - aka "mutual aid" scenario. Comparison of approaches ======================== Approach A: depend on Tor binary -------------------------------- - Pros: + no complexity on the backend side + probably more snowflake proxies available + we might even depend on a preinstalled tor binary instead of shipping it -> no negative effect on app size - Cons: + Not valid for PHASE 2 (actually moving traffic) + Shipping Tor binary (how big is it, static?) - but we can just assume that an user that needs to use this is sufficiently motivated to install Tor + Need to control failures, probably more difficult than with a better integrated solution + SLOW - need to stablish the circuit, bootstrap can get interrupted, either by censorship or other reasons. - BUT: Is it possible to build a single-hop circuit? + This whole approach for this phase might be a good PoC, but stupid - under censorship, we should expect DNS blocking, so if we're going to rely on domain fronting, we could just domain-front the api (plus the certs, there can be some complexities there). - However Domain fronting is probably going to die sooner or later QUESTION: what's the status of azure df? what's the status of the alternatives to domain fronting for snowflake? (cecylia was working on this, should look for the issue) Approach B: no dependency on Tor -------------------------------------------------------- This is a bit fuzzy, because we could still improve over the previous approach by using Tor as a library. - Pros: + no Tor binary dependencies, only go code. + might be a solution to route vpn traffic: a censorship resistant approach that might not require sysadmins to regularly change ips for the PT bridges + less boring :), explorative work that might get further funding + little bit faster (no establishment of the circuit, no additional 3 tor hops) to fetch data from the api - Cons: + We need to fork or modify snowflake :( + We need to change the webrt connection proxy <-> tor relay by something else. + Either maintain the fork ourselves, or convince Tor of making modification s that allow a more generic "snowflake-not-as-a-Tor-transport" codebase -> this is a key point that we should explore with tor anticensorship team, I think. agreed + We *will* always have a much lesser pool of volunteers than what Tor is able to nurture (Tor is orders of magnitude better funded/governed than leap is). See https://snowflake-broker.torproject.net/debug - we don't have traction to have some 100s of volunteers, even with the expected churning rates. + wrt. routing VPN traffic: how well does the ephemerality of the proxies play with the users expectation of a uninterrupted internet connection - really good point. is it preferrable bad internet or no internet at all? we need to start asking people. riseup-vpn-0.24.5+ds1/docs/screenshots/000077500000000000000000000000001461742244100176725ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/docs/screenshots/about.png000066400000000000000000001610401461742244100215140ustar00rootroot00000000000000PNG  IHDR*w3vsBIT|dtEXtSoftwaregnome-screenshot> IDATxw`V?ONHBBB2 !@ QmַZ[Z E[{ 3,ބ< $ygsI\&Rն$)HPteY.X,sZ?!!!N$Y3*~Ȳl?~lT@'M&ȲyR$IBVkp8 ZgJJkAcۛ;6p`Z N߬$)p^@ 9e&IRJPvM''+ g%BVbNA ʔ~ 6| n0'OYHt\B%wihRpjqܖfܸ~Ĺ7wNFZ;@dRD{܎xdfgϙ "T`*&JWٙge1a<W~6cły]h2_'iҠO23_a1yxb>y7}[1:܇Ahd~|k<|,Yc/;v[h %%Qq]l3?}zvw:4=Pzy6[E @PiQ~%6:_TG Lv4qڭX2&|#df3fgU쩓xHe$?WUO3$[Xٵc/΄vSAˤ$Nbw%Tʉ8;>8 ưMItij?%"BA5} ľQCA$ǯW}7CI E6q)<{<ET-4Sd,\";8MmڃJK~P3e(el^y䡃 v4l[PS!@qL+Ama޽I T{^?VGg8Ƈ`E{k z}IJ PHNKD#v ß}{ǒɿ5^ kW;j(C?_0?)vƲ/>FĄ3KɽiSf$VDG+ٿꈞL %upZ]MHH:@ bCHN'gT)5KSBh7s ^ܹȹjHD `sT9d<";.T J{D!g(;'m#]ڦAMVVӦMp`6yG~R|$?#{GkWƂ(_rO_dϲM\9W } j‡ļqfK8o "S~} q|:,/c;y%T |:10{ߘ/ucBhnsvb+@#Rls[qEN FH>qx`ܮwKλC\Rv- '}9˗s=$K8OLHS?#Ɉwֳn!rK-b1ju ?ceQ'ش<6$MEj@-ΰeR(Cۨ1n8(=M)FhI!chbϲib,î$$CwɏN~5)TshWejF4ԅjX Cv`@Nn)3ɨ] 8(;Wes mֲ;߇nIڍ9@aLϣª%]? iO-))8XGvLPQL/ I|l/`:fC5>3&,<<^`Ģ9|s:bʘ$(*(ss,&[odF&;[,8ed&rR 9v ' )\8koc{sx/ %mdl!kW);|EC)݌J[/r\ƩE%Y»}wMKz2rtØ0y =Bryl/w]ul)jE$#ϻ8NNȐ6zg&+;y'.n&Od`by&YU)w1iT/ZʨR&{(Ml/kן'6"mM0 vsJK5u&AH"f~ @_wNԩꃩ܂.456tFz(R{N'C>`>^C__2rl:ϑ&J!lz{ltc5f}8 IqD{)Z}!)~jq$K,v)Lp`,NρvmqO;Ƨ{Og3TZNnk;/7_G/( jׇ~6b Gw߷7>˴"H4/PyO@Tj?Bj~  D.t fCn.CÐeP{|0Q$tĘ nTq|:r&WG$txTB6Gxa.:Œ'7]iGש +V W98|k: >zW jGcw2R ձ}kQ:^r~x?l+Fa^ ͧOˆ5êYF7=1bbSm3*n*V)*0̥NNMjC4?HK&2~OdRo`̟_X|#V`4aCxr ˃IFM9Nf3WcN3F 5ɄSEPТS:-Wd}Ee:bO_@o$ށruap2{l~;:~wuLb?w,tr/:(Pkbc=v\DIF]ŒU?1qZm^duMu( Nsh2.gʐP7⻧ Bv O܁g/>? lg祷s]At}E]ƅ{\5|oowX9n9̇^6 %Z¥e3a5.s4p#q"ίa!ckU.,p $◘JxVBѠhPUzu朥;s5do=AyxkHSMus@ft-! aK$dDڴQ)Ֆ2|LI:MJL}ӯ*4=58$aLM*q׫h'Lҹg8+>+}uzdNʎo';0QWKyW֥/>imZ\xX=aC:{j7ZlϳGr8Ӟ97P ݺ<{S&]4!?Zs%{Nf~fnz MD"1nS$77 ^O`k!dV MݕV TZ J+* pb.ҌO.LyI)Y/olĀ;SFD*wPSfu?uiluP˫ӆDѢjN+NU{ح6qڰ% inچ"فr;(V lbE]SӎD4LaV{/NUxqZArʪ,(=8[oO <,6dѿ'Ԉ:mXl֨Q^(+GDvտl3PQ^ѩ+>2vA>09i|G(-u2;4jJ-Ѡq`,)R!WjRہkjRkOBh/]P#jzOc)=Q^D|BNȞRU'/*\#hZ:HJ\ԩVW$N +h,:=zΤ(xRGDZ U[-uKjw|m Prw33Œ˳qی^~Ϳť aewq A.qx9rSV HуNy)W:~9="q|o Ct117($^cޤa>J٧5&y*k|߂FƠ'Bл)l092d:zR\3Jy3So'M#Ξ>EBs:m-Y/oD؆lUDD|8N=FUV~&`7afct- aؼA7߇)da?$(9: Yr9]>XZƣ#Q Qv' nf`a o IDATJ[aHvXƢMG(y8cUf{X8FT>0m,d}޵P;ي1 hчSY{zv*vp|b{2zTwZߓS0Vn-Y^ .^ĶjbBA߁f\NkC0B~4vD#Meͳ:wl?2/oTnh9Um2_͡e-cI£fB<X/d֖'*ʫ?PXNp~aLaA*$WU%a|Lb|hϿŒn4 X<"HL%CO*6rHvG -yvN k"3 4¥k2NEܛ7 g./}>pͷ*4d'kIBܞ| ,ٵBv`SSa6b7&?]@ZՌ{l%\,6wr:OV=^vokERz_Uؽܠ.L[.KnI'(y߉@- BBևl:vz2@:ey1nA$辱K.Rl'Y[iO|m@($ckSЍ>,#!_tk1KL[OPpX= rp]?-j"vTPX"xCAEv>xNUzj~5yVwSit*m\-{bv*»Oi;4$7RąslX۸ȨlC)2?5oi +3{t7kwhѨB'V'nɵ{e60 6n>=Qjܠ=+)ؾg މ+;>F1Gh;89Ճyc3o2*Y`sD.I?HZ]P7nB:Y*n)~e0n*hn$MywWWیֽډ`O݂UVi4&aE ė$dF@wm-싵 o"Z+(F˂X:OElr$UYk]R34QRj@P*c\UlAJl]JGVxMbɋ]ExHMb׎c+S{2=[Цz0T 4dlt~6JvOJze{7񀑸ƙ sXw&_ XTO,.8.ו,kaRA'f0sfVNy%7K2(0.@e~ m2*m8SXͣ+y8RFCtRYzjͣ6: ysIq̜;\{)t |͊ 4eI$Or(-Å>'Mfœ'=L>|C6OmvC-y&%ڒ&j)ìih=HVM[y.ӪK'|-"eh#AR%-q1)+SSzj6 cZ(>.l஑1lg~ >m>Kx^ 5À3sykZ&:ʀGQ+0+jA '=5ի59uB ?EP|:&.YV翂ZfFO +l _fZGH:t'V~|`L +FG8}h% 9k+a~nz*˫0K{_i,;0USf+XJa mk2@U6rӆ&hP;n(‚o} rbšֱu#VN݂ͩd] 6'~hʊpK:XvX* Le6+6Y;X+UV#|"تK)Kx]9XmN .{W7w`*+̪7}m9m5V2gi݂+:5[lIJōXo7'l\:=QDRLp#BsJ -&\Bs: -!t|--ߣ|o7@R]RDI0J˹SP/#48rYXz{˼z1e }Il~΢L{+/>D'woVG#|oFHFNliK7+L": u1Y7+h)*%(FukfZ+n@ }h*&O (a)߯;䲔$uH[Icgh#ّk/e('Wšma-(ȑ=i^AL9mk?L LrŖ_L c˶|8y1KEtьUuNqbZurM8]zR,a<?_EU)Hrd}ΒILGe6M\do<iaU9W*0~cө`/l$UNZ2x@}Q11V|uߩdDkЙC[ ؽlbV*#0c"2asoIqdyȡGJ|?1! ۗp\\{3S=;!o[K8l^e1¹o` 8gf9'2vX{sٟï82Z*UINJN%kZ0fx;[>LeJfNs!}7?-圳iDRMHbhpt9]ct1A67k0 CPbVd<9o}}1ԊskֲD.(v\nRu.Gλu+ N-[5De$wWKٞ;(/#1NBNӒ1ɓb;8dI^Ӝ(6N-W'=ՎU9{.+ߙ΂ a8Q{N{[Oph281xl?btz={n]J~X ?oU z-[Itha5[9o $L]C3jEcN8Ƚ lE"P{./- / @7-7#Ɍw' dW᠑<{w@g^a_y&nD!ə cv쥼܎M׳4{1z D)zOvbDl+$ɉ3r(L5RոF޾"#a-.5$'zB޴ Hx PDɀ#cy$„{_EےAҁFmGFZd &Jx^ 'HnZ]4~-v_\љ\@cզQiȆRc8taoVh3cYK^t)lS+mY7w DQ`Y6ߨ =q}7gOoQՎR]Pv .爐#$_ ۗQ*/O`wm(Ԩf ;xSrX,5jzgE7[Ҁ2ybúOMײhJvpN+͍W\BR5[6IJ]J'VKOBB-z#՚;.%DUq2-z~뗦zrt铈U;E\ɉR,f%/m@J?%ݽy?U:(}i~tg0mGۄpTܨOC2gSv@`]eG۾t_9ݍځ*<#B6 OӣT]7vή|׎9лkp6?${"zr}xw?xv,r4oqY348Ne9wCի#JUq1U 4WP\f%?ޒWJ5jSS/5VJiU-e;Ʋb- ܼvS]#نjf[Hx -o9eVx*m$+. u9jJ+sʒ2Lj}\Fa*‰?nWAGv4SQ\Juv,XkTۍk]FۂK6HzգL:oZ4r,}k_x|ϛqEl]*}=ƎWXZẐc:=i>1[QswՉ5|h'yv_vASN,ȑ" *@:atHig/Кs.q mXrmQ(c4,c Ә8PɆϳ؆9Tä{a߹-r(V:?qd糖d1;2`X_beY*/]>, 6l*=j֭,'X&,'0ƳYx+'';F Ml0#-D9s2ODU0'e'v>(O6uRwn$$_]y+s^#4iin[_ph{^43yVs\V|O}dIų$* >6co;:1o~r.[=.:5sZ̦Nbp yN-a)m R* LZZ7򰍜X&o."ic[o$da,=kZ~"[:@|lN/Ns4cDQmZ_Yk„1]PX#)q*zg頾L{*cƣ(-SM*~DFw԰gk|۵ӵ%wlՎhIѥ]:J]9y D]TwցUqWBw[&mǺvtuTnhq'$BnGVJڝ_{k=y<7Ǔd[omկdq*)o7]^[JQX挊i3$8WlB11/㍗Wr9d$f"d.D)/I;kYjڈ`ZR&7jdi[=g0>>$sݙ;3ra8s5uFN&[I-EDzE|'w"̦;@ =C>;.{O5{u*3u`vÂAw^E4buXzd=\DT`9G*Uzko*[-nBC4u5Xz*cB":p ۜOGmpC{ Zŧƌ;KeڗL94kwg}%UD\X CW5oaw[=L6Dζae]5⎃V f9ъSumwr*M*.ՂUB%WѪ X 4b ڴ_7s#gAB0(V+N%?Q#^˖\1Cd@rj0rUSbVsر]rהDƘvXs(bz' ߑÕ\Eeτ^a&wNU%!ٜٗ5KY&,G拷KF@\%vnDy7Wd%G1ivdql捥(_j:AYl=eDѬurL׌;ޔfmy8{C%89Ru{vp8 ۱b9KM -}=*cVy"]K"2oܮw9ܒ !**l z,R"Mj {9׼BzX%{ bC Me‘^|}[23zy7ksjNk,71XrM=Hւ/jgU7>\Է2<*v#^'M-"&,-;>o[ . SO=w_w_-| r]L<o>3?N θ[Y1Q$NhZBᯔ-Rr$bQLF!PFxo',)~tEfh8fq _vz3=7gwy|U,$f=4Fy<0m>xqOO2e6ɵ* bHՂ`pҧuRуwO;^ JBF) J9JEyl ;z\lQ{Q#ZUd dcddˣOyݗ߲0ͳcɼwΤ1;eH3p FJ q3,^AAj]~⯧aц? Bsj7o<ԭH/m+sm%f^޸zX*h@a`QA[l?u&eSFU/?Cj'ho<\l0Qo/\[˰;n8>Ϭ ࡧ&]SA{{:1[6U:E-~mcyÆMÕ-r.xq8kkhpų9菼;cy葑WtaVWY酿)^1WÉf!SجvP6;&kɣ %׈v Օxz{U bw,c_KcK/xrftd]׷nQZ`Bݦ:mXB썱ӛަQԲNAa++Uٗ\==[Eh,) mL׻1`A_RLmtT5xj:U#xG@PĵM'eA_pXd 5 ȥ&^4 2n>s`P0iz 4;>..P\~w tU, W nF'u'erR~t N`p-dzmEBG̻Va2%6 Ȕ?L74?`<\;ơ##w}&_ʠI8v? g@6D`ڨzc#b75W'3w2}~ӗ:IHH  HHHr$C#!!qm g6}J3[.;UBP͛HG+x oUsal͜魽9 NdPdi?Ϗ9~!yS3ў7„X5[v߬_dߦXc%##!qn3r,'Gd+n[X=4)Ņ\[0K֩s{8&͐Ix OxD%6pJ?I580)!i]th CCVqE\c2Ѓ%ǩKOx 1$éRu Fp)T_~ {8*_r䊧%DLv@}gDq5 vt_u0;8W̏BPbe>.^Q_T\&!Pu{pL3!z(:JGb~t.%$n}שK eX|{VE3Nlj!%z* !.q7{vEQ:rN&gzY9zB1 \AM:z -!!ѝhU=94o#qr׸+&'<2>ҒU<ߥ;./zd˽ ҃ ݛv L3"vW1b`ӟ Z%nq !!9chRRfNX+]y: Or5!0=ZjJ@bOfZ`w%K֮I~?Q&2}H$.>֮΢@g-?Sf"]XE}ڿ|c8i!FL1X0 )e7|N0Üڏh=UCY$WLJ#u8}eb~=p`ԙv1Pljz®;[+3!s!"},R)HҜe21znckN>%5T~ 6!jIMD tq'WdSl$aDO<nL^>}>ەkX4Nwz ̌1|fe9IKwpdQ'EiI}vVm8z̘2puWl.I;˖3Vl>} 2qwP~0Ҥ`bT\eϡ2ztmͣJBsF,ug1Dg+H5 [C1~GwGL6>02+E 20󥫩˼;3mXꚎshk!+~AQH޹#UWclKk>9f[Y(/N;^XkCfH~$}IhB?͜LfPFPs "*6~EEF. 5\CCl 0Wk kyeB6SiDŗ۪DX՝*=B*fk_tjK1_̆拜vl^a4i;=NgxzV? =/] B\ nH↩8ȭ LU}E]Fђ01^ ٰh!&j#0@eq6׍V V)VcI^NܕO~ r\U2&;LR6wjICAc2Ӯe3bX6dj @ɰmwky|N^CNy +-t'(?c᢯݋ V#ԄݗѣR0Qo&%=+vR`R_t}A8cl^Cy@2:iNzG9M#1 NR *b)# JY˥Ŝd!ًh" 9dDgpXLr\:Lš",1 lU9'5yٜp$5N齹T:g='v>'c:#=͍{s١lz>rW.Rnr4.Eΰ(Iu=Ŏ=8JnT:*z=Nn TCHp;\p֝`OM;s@5. fPf&O7Ѵ klxu*nhVzq"ݾe6ɵ* bHPK- 7W63&"X"]ej^z{zayAa]wRx9ZɨO25b4YҏwJ7\dVFNy5 v/yeN *'F?# Džc>Ĉ r`FGO= >D\}-k¿+ D _ܱ-N8ˣp,XTIzh(mQ7A&75ŌUӛ#\bw.癇#ÏojL:?^.hU&;nC0$M_60z`LD|p=OnaQ.~-# mP?n}8Y6"-P +T+NlV((eBCm- V9>9kkhpS:] 4xiQ 4ӵ+fʥoNVcM%V%>޸.D}pUvDV+DƺZN\t)YW,&c#m}kt9uEf6 n IlEj`' jnj,8mYKZXf}zQWaP,(|pA./D*W݂]P^ӱbGJ%CYwYVQoUƳ)$bW+@xdgT:MQ>ޞ{}JK u!qd(խr5\LO ]Lƛ@MApo,$ pJOP59e* o.A?7z4UO`' R Iܶ2\no'![Uw J;\IW.nOuhSӮe٪+[7g8 @z 5ٜmdnnbh$n "rd(h ڍԙwoߴS}DNWcYiL$$$~hԩ:tRlB*ɋ0_]ՆLIڀGTSIuQEnf p+}%.NAm>;6l%Wt;W7/ "?ૼ+I~>x3T)6/~~m.Myw4'Ucx`mGc{/Y~=f /Nqqm74bC![e'~=hi]*6 2|3}B]hQTg&Po;żQ>Gl'ص= D7"3'3ct,v9D ǿFq•+| Ox*#''Z]OѡlJ h_xCXuH9ІU8^5wb|Wݟ"\ݫ[#ZF-KV% J?GdrF *D)̝ޫQwTs 6lRMdĆf!Isf!\rn%q̞= _\qТ^ULL"Wya{t%3slFj3uPV|,@u,i%m|̞D@+v1zI89OΦ\ I=qL;DN%Fٺ긱LAŚe,}v8{1ip}:]w%j1Of 2oote05zܠzKC&3?壣Z\ĂYnbSwO ,/K1n.jض%1lff9| jr̚;PODWtI>zw[bLH綎hlE{ɮg3 yP"`C.bt@ žaL"S`JO kWH{40РMc垢jBB=2<{XCIK YdpwȮe C 8QI`%2VCcUb'̛7200rLN*32w|J\T6Nv~o^n:,]p#Y6.%"\˞hE~>WmZv+6Q 2s<>|[P,GLe(7[EQwӡ2+5Uz\¸*u &^iԧ۷IFRj46"ܐ !3rJHLpMAku`ZOO$TIQOx&9v:ܜ>L`wsItk[_^p>0liG y6$_esn|bǒ( ^Qc@7,ծJ,ܔjh*2 I цET2Wu UggPow`(/ODTz?1 RJhcv6ˎlG桼M]O3sy٬]: O0ȻXR%Ra 6VwrfruݓY`﷫xsPQ )B\]BaV5j7qMMsۮSрBB?<9Pwפd#+7l\RPFłC(aVƾ!qQ6:HQo\9}֓jdSq`yR";#"2 Z.fG*-Zz3Nq`-ϮƵU.SgPy4tCz(oc>( MEq:R+ b8}$'tj(?r`EMo{yXAAH@ D ܬLR 9.>OfzMWT0⧏07_[A<]-uȚTJ\\U4pf* Mi:@JCY1{ Q%7\>%X(9HU;ohrt :y`ެcxT @\-dV>xr1.0<ɼaӥǥƯzyt]ETJ4KMk)Gم =}he!{| i8Lv<=]QG/(bÍX+r ܢ[LlUפosQj3׌ өt)y ^O.3$"4W_^FnAopDnJElR~Ԃ,~Cx FwmFhls[X=?7Z4rFɋy4DeLІϨ9,wNwx j`{0qs,#.'~Jgb"ʦEL:q_Uaމ/,uŰ^GQ֬lDQ-ڭP^U{;-T՘Pz㩴cu4Nva TX8娔-;uTQxQnt*nFa┩Q UTx"ksSr}bvQs"h0*Tj2&j۔xjVT\M#b3RSo⍿s!f[B!q^K]cMq:]z >^m)/m?)-mܢ]F V2,XE%77#AFBc@NqNfQ?ӫc*&BBVcPkĽ"&Hoe]Y҉t*spZ}N q{G4Γ]$9MGJ"eFA9~6͓cn Apoĭ7}CV?Ɵ kqۻ\Wo{J2^N "s^YZ []>x4ŃT13WC+)?)‚]trWw/nֲJN7Q P!bҭa6q~sv6V|kd')eL ꂣOl/+`(yϹYǾcYH22e|7jVT;W լ>]heö'̕d6WZBgf-R nF7VV+\ա`wye2eX[K8SW rX|\YgzJoD}re)/}! 3Ad?(ٝsY.w1DdgUYK⥜3)є7s re SvKٸo45[^^KBf ^̄VuH+픟x糏 ܁)^۷8MtH}ɿƉJGWo1>oo|_ȩx>LUGQOj}㵿&F[Kӟa DN:Q5>G߸O@寐b%gVs9x|:gq Iq~`Bgs*=(0aԯpΜ{5fi\Hqq,fgEI$o‡&|~wlb~P-Y2T0)C# !㡛tE)=bRf* * 8'FEBٕjڶr6q΀("0hS2Z*h#˧ЪlJS>bc{+IXWsLoT_XE r`wc|mg9G !Bs9 YdlK.(l5NDQM&} =zKc`>O- rYrv$`D#\)So?sw#(\ܑ; Hdƴ 2oymh>uot'8Ov/){5*23L kBa"1{zݣfޅWFDIWsoÜwpU=' ~f2ַwpP)%)8O:`\e'̝&>å_Un3}<25AtV.a}ODB涊*^wf [FTO]@UB?5 2HFBB# [dh$$$n9HFBB# [dh$$$n9HFBB# [dh$$$n9HFBB#*u;oE^*3wTKePiƈnFỎPl3P}+ҕV^CG?q~{+lXl.$ l8\ՔXkly,+x͔vpކ_[;q>]T7Vٞ*…!O9umi%3}Dc7.w}7!~'X9N0;]ǜ?E3_MQeU@&jmZ_?N $n 3xb92Fp/"`M/`_d?o );n6p!4HXżu۰-0] OcԔq$+9g?QDxY8g!>'PgƼh8̚[8U$b( ʢm;VV>z_@tOcLwXrdLc$㣂qY(ٻUYT۔DoTG 6pa6*Ί:0';@ X8SI$sue@fEVqV}[Xޅa=4e:NXB (ٿ{NI#S{_$+f S NѶuC͡_ ~z)$lj!nث9e%_HژYܑ</'ݻcte Q/m[g.15ս^ X8$gUWnh Mp:cgN WKl }0%\kR3NkWwj ϸcl*vfNV+J8AX48݁/X}!tb콈b}r8=<"qmti/kΎ{TLE{R PEYyd814hwHrx3 k,1 rR JMKqg-bqiDlT>K '#[䙣{_߯<fΝ@tnv)R'>]CSUO _&#i,wbJqmYƿ7N%JN),YQJy,?a1"5LZ.86yz9'Bt(>/M$v#KFT`뺃άa|*0 Cf<" p~+a3?{Jʍj2'aQțR㗐F dffRnT1z Г+,I>}Uqq^%4t0l4ek9ѯKd:I Yvٵ#??_|B:N{/@pPu4:GK/1t,e=;k>&`K7sNkqԥ?3N$Vç)nU7LOo^ͭzf7ΒMq֢ռʷ"F2gdR;YZ.|_hEV68LM ^zY&F&=J 5{M 6$%؄Ɵڅ?'Nhh{>:C7'9-A 衦/sQkH AjIؘ=HDYt]<Ы6Wɱhdyd\\GM8yVRсw(wO ~F.e .`?6i()<.gIlj}0/.Wӏ}U_Kލ(x' KDGzzSTk3uy:"0w3:NĠ};:v/-2 b4i[H4Mӆatp)dIdFY`K b.߻b&~Ξ9sҞ#TYD?E|{,}.C#(+~3'P7S)Da`^ejܮ m42ubo?M0F?&"5Tu59ƏUL`]seڻ.FG'q~sS=޵Ȼ8@\?BV,"bVH =& |v/:2ã,7zɞGС F4Z$j$_G~-OEI +I":_fIPh(6.&m!GŹkjnh8+(o>pێ'cgxj `_c&thU2,f1' Cgs{AF**- FPPrBj=r?4]rY[,C%sRb]㪫 tCe( xRFcsH"nd`g&Nm =IaU-P|Z'<@Nve-+m& \nxi;%!T y'2mw W`qrK%9/?HZ *:[eT^~]hҬgp bфEAQDxh~aJ 4| H8-څjo]('򋿍\};YjjU殸%JWc=q-ou@?<Ϭr`o~N{&[66Eg"I/5xٳdAÌ&Cjy6'4j7=Q*TFk|FY݆njm>N7{_ F xWd36ɫBz)>[ p7 $~=,o[x G솷(nݗ$®_4 rїq!N.|gNPkU`5χMh]Pd~H.<1:.ʺtrB5<|2r!ҿNrM[Wt#v IDAT."sӡth#.)ex&ۏ>^%!'(u% R(h4|4Bav~spp=u;S f?sӆO&qDDb4e8f [{or7me̺c&o4(PuBFVr}nL)Hƌ2[ G~e\~2jM!3JӒ<_\b@B.M81oCrGVt;;o+Oх00VOQWIBy(3^NhVe<|w S~mcG"[,~8u ͊y#rJEװ=x驝1Gtk(7zm8*Hԙ| ł ͎$WArXD)oˎ!Pۦ.vܞO'Y4o)(Q)p/aÆN;VREtZ16`vy9#i^pK`ᒩPȬd*EU5"Šn.0o? ~yYZj* auQ*Dɉ@P4VWPPa0S6ӂʈMmW/nw"(ڌ\G̉Dl_ӂ_/mRQrڰIrT-'PΎDGiqydj:MT(=vB,Fklh >E[=:?q[=&dNY3m:y854.y꺶:0Tbh=;\3h<"6 # 2n\MpplΜJR|5Z Tg(ttW W͞+\Q:GTYx &'#R^MS9e TƷLO{/e@@Tu  =>(D/Ȕmd(T/w ]^kOҔNLQZfejc:GmTBGG"BQ:J(!Y4lrpT}'J$.+V{9!-\Kde9_ Gr?b*U3o)j]z2k \9|INpGXf;+C&R|`D]rHAeY2E;ƭkOfvO6>U>^ g.j㧳hV>%%_ƥ<|4@`iy3n! $QD 3&1a\lj?lD0۲LmL WqڋCLCͮ쯨 RƣT~ >l ~Mtbۥ,$g4&ZP¡k Ճ9[^:l:SC »T̡#xyUш!\,_rj g/`߮X<+8jCy+`yۇYٿW7R~=g3f?2y_֮bӶM6O Ebvj3]v7ʶ>L&Clk%)W`0wQTFJBwdXaɿiwx#{c#vp'#Z'BL 1 ඄B`B fr+Mp5!Pxʰ֢;;$%TZK9v/9i=s@nTc,{G ۖr.Dtcܓώ`2\F扏#h(ENȓk!A3> ngjZZC< TX\t =a?a3_3+Bx"LIc#n[#h+C Ե(f%eĔuac8 ET1ŽsG7Ra\2yvj7؈ pƫ1/CUjb̷74)L/ݿwgx ;%~:o?kdF`a7R@O؉hi?nGgd'&4O E j05USFGggRe%T_#~u-\;_@342jF4Wejo O!*TUq,{^Fwd**hJRjNȘ t\'qkղ?3)Pʬ-fZ4aC[UOԄ/,+yԉP$;#=:xQEKJ1#RL?g5GZ]AÓ!aTeTV2R\wpFB`^1@A؂:?kDco7/["cmݿ O,HͿ("{xG))%,f;]ZY^qکո#w0™=f6.E|/oJnhNLfgXɏ2jyP,̼tH#l TnF"W|>|Zdo݋Z>7&])phL+lQyLQqHe5ku9`#>WC4H(%qq+AQIfL7 4'\x}stZ9vphEFxo·YB^_yp5V,oyU>Ma bwߠ HNͬfiPEewU_insB6#×a5Zeh= xh]o[yosW3^5iP( %6LyceǣGƼր3Z}[rw  \f#5&$ޞ#Z(}M \{ihn&nG54WfSu5Z**džd{]{հQ=wͰ5ԓ.7p} <^XͷE}P UW3n;vs_=B]%;x]y//*Ryd[g)Ƕ}Gنv3k9}uq E߱H }Ј` ֟1%h4ɵW B$t aŒ]7(9id!bMtqUo?1JiΔ[|Hr ;8#vGO6'*3otE0 W辕DWacgo %LɍqX7US"?]\Jeq g2L0S_a33aX%ֳX f?/f&h$Sb&eg܃~u}.TA$L܁]L]HehH$>*'U''(1hB8e>3;Gs?&5fC@Ǜ) m# V0]WjPc;i!E4V6h*{sA,jrF֥Rr#b\MF/B |v̋٫5lx7ѷ2v關*;{K'!.l#C{~/&⧲|Q sld7aX8%`ȑ,V J\~TS-~~Y ,VMI@n%7d$QlD;ySY8oyu\ Ē[&|q=_E0;qGFa$jΝ$_R&\_J%.*e3r2 zEٞ7yqCӗ0?Y$sjmQN_ob8.eΈ5[#9Dp]G;rn]̴nw/;g2)s Y's8} \gd1`{Z5nk@:Ot;rO\ɅI7F,BB'דQ0@4cl Ux V.<) =."~{abY0][DȼX<DyrCagqCX-1@4^wd-&l,JA yy_cQgHxѱWijnb{|GTIn \Ò,!fCvCh :$,q$5и.-CWdb ~:fղ?EO|70P2O~Fެ("{.(a JUb/ WiaߊFJՀݎ|3>v۲4LFf=q i\&AIF*s9mkȯ$TIn2c&ӌ*jei56Y3#\IDrq3ǜ$կ[D)c6bn%ɔJd#ˉY(Ap活V|[y[~``mO0xi-%'f/#̽'KB>"}y +-\; b'{V x=ه8qICܬh9}yѓi Shhf&*QhRth%;-XW?x=ppg$cfJikEIdBʔ4R1o?쀋 InL ^8'GvsAWLBO!vȘn(PHƻa)x6V@GaשlF!щeghovm7"473YYPk| IDATZ|w-}:Nߺ J޸);N;Q-ǖn)~sYG+`uQ/e:w_cU)V_-94:Txx)zX.;V;(5Rk,i0h2y_<ך;ܞ^&tj$pm؅vl{ɕ6t3+%S]VHv*txw`&SU9xFj?n${y7=c6C=k`pӼva*f ^9@u ~d\gEߺ|/n)P:;d:*̮M|?*uhh6DMe%?"akk!jʚ^u,Fc:0]ᦡ ؊ؼy?ff%^/ ;O+|O~+GƸ*N}nrrk@m&kWsf<=JWxs/ 4 v,kO7^LFB&U&hrw׵#q-#/J8-ͨI߷cWp|yV>ɯG{rMPŽqV*c6L`լ8ԮK}e,i"BH>;/g-)("xh !T1~c`,aUBƧR1 s{ތGL/8r;d$,9VXȠ%0_~yߙ+֛Hٞ~* g#-dB().2ĻE=bt1)eHk[ː^ާ 8j_b%q3!~l%O;ߜ9%$=yuhƳqI6g4ns4ٸiNܣG3"uTNIk5DLXʲq!;X6J|u8kݽ-);F6./väbܘ,ݟnxDáy W2ʳ#߭c2l^xD\\J- О%P Gԩg98t2`ټ6?6W]>7lZCgTps^ɉv&K9 yx2\3Kݫ6w'N;a"捸2俀t#Py6SPH>yb9@Yf>d?]xWTƔ6%CB &j8.ٱ(e9eqi{q,{/wΊAK\zk\F'`_|b@O )^Ѵ Cx[ ) g~fz2>4W%JdvSN,f;v5Ν`y[xߍ晴!(P*TDLr%H"N6Nb\T '"w[.p\ZŌ*w}E$VR\ ޚ.<)f")P)d(T V=CѶd d%9 4X%$a6 6a6:7l.JB{@!1pգl[Gt"~(.'Ib~/!1zƾm*} UDV@٤ 1Iv iT֯0~EFq $Dd͊d^ec!Ĉgw'4 x5+8PLC@L¸錍Pg?Tzt{s2`/r"kց(BݕOp|!.M~8@m6/jf+e6*.Wb00%v@L1Db5˼ Lyq\%3)HRHbyl\( %QDfF@QGB~Mn2H 28XKBl8P ԒveXˊ)_;SCv< /qk&\}{%{)2~{>C+8O?ees:fUii# c|^>;֊L}1懊0g]s. Uvؔ]k´yٮŒ{eh@7%+¿ ZDɃب zT \7Ql&z{0y `lVlFO/3~ʲyQ5v3V>U9+5腦wI-9K8uq(woʅZl-mNM4USa j xyj ˁ 4(Yd _76 y{-mNCu%u6:TF]e5zm'p=oJ#vV#A[T٧951~5BFUN,"b0x0T`U5h}M[<$8>Z݌Zr^ӛCZwbõoc54TnXgd ̽;uܛ lǤg{5/ȕ.Pv$ 忞С r+p;0EGfk 2#Ey:й|Ao+#\޻7ݎ)U]MūKy&=@Qh< t\P !L {<͸E@!%Fވg,w/KBRS^UDxΑeKq-KTyL S:T}.,T2PQاXEe7' jL7*o04Ru:oNaZ}eeW=;th3\gbϰf_XL>{7o6b^AI`P ϼo>ǿu&04-;I{H,.oM] a.J僝܉`&>CCGX\M{g3j:Əv+S"X bg,-SVM&Bal؛GˍQY8!|Od`v&d?tsjER5xt# إT>x'IUc ]&fWp gELq&_|M_I/5x+S 6d^3d"9*$taØp|cF}R/F.Gtro&/N)T2o̤3uRQ0t1pQ}|FĈ˙,qdMlLϣʡ#||OFߩ|K1 }ΗGXP/r-C18\w/bRbCTug|v;m;Y//S9ר#j(tROIuN*;IʰYqc}1B~Կ&D}']zP(w.kƽgiݧ+u/FZ]C)SI*_͚5%=kؒy&]z.3? VgśrHl߇nq.;36<߃}olߺ?l@9 J?9U< 2r] gëlUq6V/ELgu꒠9 .eK4:鶅 RÙm'dnR^ GrM۶X6kFd > SycujI;sMX_N9.?2O]xCi3X#.e*Ru~I+%iWi4|m'aώ3g%Z LdG[pOד26tZc<鵍X.@ybR`M Uw,Ғ Fe,|SRԭau6.ـ5.ppl& +s*;ggQahjna#e3KV̿V)}X^Kлw|5pPELrx>c^c6aӨ˾G׉nxyb桶k44U񁓪+ؠ=-}OOƐXZA'N?݇ys'ї{oxyf| { m$)U7OӪl.-F}Yn;G2v8&V:V]z| IDAT+?YL~nvAg^tބv1r8P:Sݔr|C 6'>(ɧLDE'UWxLUG(&KXXz)8,98K %4BѕW$I!FQ^.ErK*|8 7h;;=a٬{Z۞U̞j2f˒F3a%\V.%8uGk,kپh9{'vAkřw. qY~y ٜoսۮ^ӖW s|S:HZp\D˗|H_R-[whYէ,Dj\G7´9P'u҄(#-۹n˖Ek9Ԟly\ٿ~nj1 ͊5psC4dAҬu,ZbӅܺ=? KQ&gaB^_Ē \ы>d=}OJbiA~&iorg|5=Yks}lp6NGW6ۤ;%bd ]rz5@CQ{xqo׉%K9` jV×ܑkfnOŨ7.IҸVn"k'[ Fjߌ6%& qU߉fԦ&!O4pd,ԋO.yX V[L,c[ v;o([Z5R8.7zyutG8\`#Q ZY=r :.q\vAm+ũGn4Q M boZgĨ mpkS#8yʹJKp_TIiр ߖ,yHtx80%a+9mb>t3 g>B\.O-+ xٸj+tLA4L`B6j6/z?}arcyIQ]#[F:TV\w:V۞9FZJ* :}YmǺZ@G\4|-d,qa/iIz,[O*d6h:@lf&dh"H0,'Rbj!V*6gaCmMCF6ь 3)m52GFMS;i'6t6Ʋާ:.kŒxTQjuw\_|cMݚZ\̒oF,_p^&eh#ƾ$Kft.:xΦԻ~) ݆3j&+]!WE.;Qz#gqV@N~ HX)n'JsTj(U q\TH jU Bu\⢚9!NFu4BBx$h^'A#: !I!NFu4BBx$h^'A#: !I!NFu4BUڵ+~~~GPPiiiӇXbcc6lEEE&JeddO?xQQ[n=CXz5+Wd2"#q_~)Svqqq|\. qF2')--ejo{)'ٴi.4i҄O?TBF53o裏d^q$hq?oX,7J"A#믿PJv ,W qҥKjѣGވ+8ng!<<'zGJ!A#ضm3g<߹iҤ ^ꕸRH6m~o0{#q%Q\\pp뭷}{%$4_1K7J$A#=/T," ADDyiglڴ鼴%,4Fs^x<4L\y$hyeZ/v%HFWIμyc-] Qhnf̘۷gĈرmVsn_KR^|.,,ŋ_WR ouM\f$hDzF!55mnvYs3f̠SNꞸHЈ*}wz6nx|nΜ9|wM\f$hD\.O>$mu:}ݕ>3a„Eq9r$'<<棏>u֕>ˌ8́oxWj{Jff&.9sСCӶ;$hn 2j(4h`ʕ̘1k46ɓ'믿cX5j~~~/ >)B0{ƍGII n7=z &P~~o,XLl6={d۶mǟ1bL:K2h |||.Kl6sȑfcoG\`nUeXVΪ-y\\ζ$**^t3Vkm[MA\y$h^'A#: !I!NFu4BBx$h^'A#: !I!N/ ϡ\Bg #YkǛs뾌 ^,.>6вk ⏿.Cfv:@?WL%4܆&dKnج+-1ZzoƆR~cqɑqG_?3uLNWeS\*P?0Gۘu|yAJ^4Ŷ ff2{<ІFXf#3O/xv0WXn0!_0>q\;wy|7} Fd_8 %,OJ>x8]z2יud]z[l`.k~˄a '#3l@7z˲=xz1i-&ִ,`hz?}3k'qKwLX]ҙӱ:lUަ&ѷ a3 (K.y6#c#)<*vY/7'S?b!ڶ<|u?fg30|܍Dll9OU0=#f1xTn{OJCw6@_X j<{ _8d2|8C-~!wx 4SX\zJq$h.4,'Wt& 4OgDqªC^,y_J)=[["7716A3b^>ŗ VaPN"zቷmY>ͧ)_/46M?0nE `d/u ؟kbdBϑ/2tnrwojW3hH_T#߹vz3큔Lgٱkk}[ > Gpo;<]ӌ2}3ԬIV-iK9mT;kن 3mYcڋQ#c$OSG;qjy7ȲO)#@6xj/oϪ# ;MXB>[D6<JJ|1K(*Q8;V$hX{xUvĘquP{/T!.$ +joBx !NF4~Q\ӯ/Wǝ۲3g|V}hWMi6*oL'ncYBzscl6aAL 1|:aѷje'g"f[AC2E̹)9`\%~lQޯ63'oa4nOYOzmu3& iaMF҂sf.e{IyH=hU3b>Hlۗ|roɈW-mb6﹭qW>9e,>#CߎŲ7%[Ǹ/U<{wk#Xs~wgr>ݒ][vaNǸW (RM:Mk ïkQcw<y`],WսO,pLjv A_;ߜF,ec^љ^0SƘ1m48?*`'gfh#COl6cX'ϫzRs-J)U?RG5z~r[\?.yP%xLp(Nt+39CŶzKUԜ{j&#~Sǣgz^5u|JiQJ)Du|RU>UtSjJ.M]U>P?|RʡvN*{jUJRo.ܠiz|sHyNjծIS _\J)e[JLSϬ/;fwR߮F] ٴzSzRN֋~bҞS8Kgf\@G7m$'i$׫uwVZtc {R* V^ x]XEb4&>#Uodu WiCŦ?їה`_Z"Nkcn.Np,& wFñ,f MO!<(Z&1%s]n ZDGRt 5Η[l]:oL_⧰GG6Oܐz=w/M>@d\:]F'C?'{~ mJ*/+,->f3n!`Pz پ,;af[Ӿ n` EՁ>f?=6[^zr`f4y݃QEټ'Cx~$ L=!vin|} l̘5y@qxvpzg VGQNoopRR1Feր:ՇL .JȘ> |+8?bTֽREV SUDժ:DUoTzIUHH QQR ՃCTXI|TXp~Tc}J)&ՃULjo| S& S Uk]J)5K5HՉ QuReZTַdJZV?_GTյ{ 乵J*_} kڪj7}El]7J S5ꤨxʭ,F5 SiUZL5T)9~#UFf-pUbD wyģgzZW1r1Xj.8=o,ATK T~aşWblj5:~&7b+}.-DH@y!b=-:C+Eً),=1ً`X~σ1S3\JєH+.l%N)`J6|m sfbs 089}XlyCt bN(GY{QO؀ r={]&h@:C`ND_4z_}>oB*Eɛ[VN$%?ƴC\QR\d<wR !:,8 Z H Bx$h^'A#: !I!NFu4BBx$h^'A#: !I!NFu4BBx$h^'A#: !I!NFu4BBx$h^'A#:  ^IDAT!I!NFu4BBx$h^'A#: !I!NFu4BBx9R[B\F5 )h<95.2kȈFqμ:q\ԸtYpNAvqB+?Ɂs>ur:r %?̀szrt:ׄW. 4?iBq964J)NG/.<91. ۍNCףhj22:o^WAsS.KBTIj^'A#: !I!NFu4BBx$h^1\N!l7B|IENDB`riseup-vpn-0.24.5+ds1/docs/screenshots/locations.png000066400000000000000000000713101461742244100223750ustar00rootroot00000000000000PNG  IHDR*w3vsBIT|dtEXtSoftwaregnome-screenshot> IDATxwtlnzO!:iJ";EA'E)* HEA|UB $dǒ (%!SܙyΝ&qMENWOJA.ȲlU%d2.HZoZj zIkEAxp)h4_SRRX,Qo (r*J$ZvCm6[^RRRZӵ_|'z(Cfa6 K%IfsAJ(l6I5*JkZE L5/sY*bT%NgZ%JO?B*ׂ~UliWG.܅`7MMۮ~$EgQ:_8Rr %mի=a&ƒ(UB~ُ(*8Qٶc;vl?2'@i;\u3۰_f۹#ӷogs+Z´WS'E4SD A{{_Fkmf*q^4ەA"^nㄪ$vZV»3cƵ|?ym(O_od7^MkOٱmdǒ{Yf1å+_7[ &BHR[u B&r_6h~6pm )6_FH@~7xDL=Uouw(Z^Z:uEtՐ9+*x?̡ئtKAuHt2Pa]7"hCj/Y=qRo<^9|J}q?*RTV[3'ʕ ed.GxzG#{3#׃r9XIصOF}iǎ;m۶wUn5}jåXW@}ϦXy+\\\׭[w]-]RNLXwmB h0k8;~ lh~Vfv;~ѢȽ?co1db92p.q^4]M] ,%ՙQMM4 d53u$+Fv%_;:SSl?$F;".OZۂ 8AN ȸ!8|hAcIA#ÉDp"hAp84 8AN 'FA#ÉDp"hAp84 8Cf֭7Αఠټy3G&11Qᐠټy3cƌ~̝;)1lX]V̂ pqq)Eǚ* _f&Ng3S`Q9⪻7ǒCrr6&>mwl'$: )e`2K`èq+R{Ԛ/зK[-moJ<ʞ={8lQ&[ueV<n};ӥ>XP ˻VN~96-[$H^TD5!@)$rlI4 &^\uV0iZSz _9z1]4T,L* h\3]%18dj# @/d]8ϑ5mOzШ^ qJUFk/V1sr:u]9ӫ;2y'tWwˊsE.~ N!)^o WX=i"+pЊ~ *Xlc9wђ!/~Adg.r=qI!60v'I!׌\=Wq+zαt${ȸФUUTXSv1s D{2۵~%_Gt~̰ړ*M"Hd4 B#ڵ?2JQ/WC%F-#Ɩ9cfرDBcxH`K̜o1 RiDDD'0fz=sN7 ˤϸxK"Z漵yyv(܈x'|LyUۓ|1 9Q;Q|vV%~@}m<] p,q~W*dQ3V%K&C]=GӱcGƌðaD?M $漾pc߆Yp-ͤh7Yf@緙CuACk.hLYYF 'GɚKz>^H?-[bQ u0gctT G|5B\tv)8 E hwu%,4xQzIZZ!tr,֟hU3ȸ^xd+ [Fp{Jaّ{mU55 Ɯ2vY~t)=IصF< pXqQCC,ڴTISU,QD~8eG=)$ɞNٌo(ΊB)+sgT 3r1ـʗʕP{ #3QӶ|,fhj[\Xvmfp8_ׇTV VsK ˀJȍ @!4 .g%RF-(4o&s>v]6aM׊Ɋl[vv'fT lg MXWmS"2wPgVXHY>ժ3~dZTkx.gB&GU+`/Tdi4v5åo|cs;EzS!<0C?SqwZb)0b< gx]ލiZWVc!bX׸c.2vk-Fם ?6ߢiU| 谈uID}֋u  63:̻I w!;vO>ȑ#|Ie|0<]"â'0f}ؕ@i˕T 7vTj5*j@]>33M0zshh:x_V]~31UzD^ )fCf3%h{< l g|-3rƦ`PG_axhl nT8g>KZM3;%A\͇0~TTy9i8A/@ZmD`QZBPZ|h7klٰX,XR[F$IhZZhNVRPTX,RiݔJVI <$$I V[*s. jh4~sOASx$Z2p*}FV_Axȕ~~OASM*Au_C'A~I E#?-A!FcFiӦbŊ]!N wh42|p~=z#< $hT (cBoW %!~UUWM+;-Lף7Bw&4`nYyXx1]t|;[/+1\~_,2cpyjc<;w[.W 9$v^De^z%.]$IkWW׻_SNN>TΒw~dqhG/NP܊_(q)G/ڀf Bq/>ޖ#Q7^>Mr22l

iԤbm%>ܤ.`0ktREߟnݺyAV|8;7]g%~Ι8]4]XB_i|;C5cW+X_||gc RSpr #Oc˵Ѣl7o2xu>u~0-i]1mخ oEceV cݴ:=ަ??٪ eOh^xss:KuBnf2֪4k)T>#UGk>ϲ% {6Ryg|m03T<ƶ|8uzت#R ҥKhjժ8;;QOuK|l:V@鋇*c& iWIjoX/PԤP7i)(f1mW,HTrcZƍZi+ECǏ_ c_]5ZТZ~ô/FN'i  aªxmMZ 0qᗩ|u؄ޞx U;ȰRQoyDuǩ9_ 0uKVxWU}b#[% 5{P}Pm⏔sE'%+ݳCFr|VDT#2"tYo ={K/Djj|m omExky5|')|6g?1;W"e9ZK l`mm^noՑg<]\\]K*% ;Xs?=ğ#s {u1 GOfuCzt]0!IILs6qyS8r=eօ=f,G=0nr.;)Il=JV-O*f8dI6o ?mjhQǕssؕ?;5U^XqMqű/>ɓ'|rT*|a[Yt)wu;6h\Ӧ}/aOϤG +>«uz##5>^CHy7@"3 hn,PJ5(xC.iE/Px!֢ŏW>,X&sʙ|-,Ok_(]|~Y:gv\ iR8w8ջޛ BUCfv [ЩmQ9H_+ſb.bЗW'B{+vp kFt r$XOԈrgoG(j MCax ֲP: *q[ ilnņWhml6֭+yY;,Z_Ú.1F{ IJa'@CZb*l{$kbGS-U_~M$l\`Ć/ҵ)u,9:ǚc;Tp9͈? >|q*l+pQ7;|Ԡǀ|7aGf?ˣ+|&'eVpiէj,v?ѡKIgnرcmۖQpʰ3XBY3PCd87&A%L{&^,S1J^ߎktx Ce&/Ƌ:f;MqTf%D%TV Fdu|M @VBBʒZ j͵a* jPD]kÔ泯#~zy`˸ĥ4*-pn{<ێcǩPNx#x V5cl&->,ZƂ!XO5&<߭ lٲDڷoO?$.2899yv{L' dYF489(bydк{㮻ygydexQxS.t^9]/[ - VVuj4bA^c)y  c$䄇;Eյ1(F炓-%l:Oo1b(Ңk~%\do\nZ6fYՀɪ i8;}ؘL&lonyy׷w!e4ٳ8q;r;{ qSpKիWzC@<&BA#ÉDp"hAp84 8AN 'FA#ÉDp"hAp7hF *ȷG.ť xJ 6}&i?`0sJҧ]^gsE>C4I#MaVt'v0 f?#/B!*}T'C[*KPh"& H=yL՝,.p\J7r`j'ڌ\O_p6^B55{GRkiIRBZt.'iT0dob %d_{bH‰9@r \6cL=GJ.G~> IDATsq<>_)|1lj05Xrȵ`ȼrFjʫsebEH=ΡçS«(-9\>S Xq,L)H'>%؛ mb\t &5',,Oc>v|ۍcKcYƜ .T»l]19ji_19eM%\@zb<3L7*ܝW{zC׏EbwtϪכfxzl/_cFd&\DVm_?ίx!A;z9\g,2Diﷹܸ&vd#7F_&LI jK-FetH&*=i S7ڥc,9`@9Wy ?ng!ٙ킇L5_oGdGf 1WYKDچ1tZ>}"^軃`kS+I+yF:>Ht^'}ʙŃa/Wlh/_rc02d"+׍~jQsT$- DND3X4@fɢ.ZLYx?>_}җ ɿߘvD]sn >F1䪦з aŨ8P<-\Ԣ;]t~Ly=xlOēeH!z&MȦq-xW =b mQ{ٽ Ao3mGdn IEy[g5H 7?N}iiΊFHj~tvVy4Ƚ8e2g,zz;g4;zOG03psYoÆ(Df/_6c~G!?R&ro$;_SysQ̶,~e=D1gej *#6>Z2 HVoͣq5^;y @Ɉx $7<.CNfs,2JgzQU͓[?K? R=ٓ0aS geg$@rA} +TԨX))L'7)/ }? odRKKu첵g䛏QNc/ϻ`OȕHȋ D<Aw-ov.[ݽȍ6Ч $Rk=KFY͇X(lG`:5ʘg}9a YB~2D\Oǃ z.lG04Y? _ ^ܷCIQH"!/x*S-&"(س]J+&5ud|m[a`|}IM%<k r";%job/׸ףFf2c3J*P]of4,r*aS0y5"亊)W1?ۃޝz~9c{ dVk۫\q ]Y|s*4^k5-Cn6Uu{Kʄ\\|gBN!;F1qS}Ԑ|k93/aQ|< |̈́TAs0v's8~?.nmHІƁvOvu, *q x2Zg˫}4dnFP9'ϓjTIK?s0/vVw[طc^~Z6su#e׋H3[0/7;rC15lUO^PLXttsyOrc[utwl]]z>[د1{W"̜ W7gl)0IyyO_ƙ|\2lQfW"Э|4/&&݈՚U\Էs:'qt4^kSIFDTIfݗ9mb΅߰;LÖ Orj]e,&Y>| E)܊k,KTĥ0adsz>\#ӺO{37Iy[Q,gfay㪺y،dgcqL1fimmjhӢשQo7!(I23hд/ܾ+@@T\2'O+a7Sb)6>}kKOzӢ|5娴zK} ~ÜpqFyTNraUh7&HqWioJ_QC ˽Z7кxܗ8{\[n:s̅ ו-!d$->eߴMz7VN~wl*JmJyxp+Wgi˵-2褃((nIeJ=d~:3c7HR~2Od)zUeGPP8UU3gT op$h.%P? hضĤiژ#J]wHB^k)ȜC>Uoj (C˹QhؑԣpJLxV >7AnũR+zVߵeҢ)b?Ī&FTe45EBbO^gP۷jJS5`t҉~5P qJ؃Drˢ 8@t7+הB۱66^肽ھBFitn GCM"E]UϾ}y/wu_ gevcy~: q|VlUaawx7` $ ^gUSmT_l&')l/tΝOSZ5g%br$>ُ5+uerA*qu J߰Cq/!Sz^NdecfqrwE4򒈽ѥAԥ|*֦z^Jb>5WyNkeԆDx%G94RpeC(ka [+.ܾ&ǔƯTREI yʧ(5UqWN4EQ~Q^WUiJIQŢ$m {\c*rW oOkQ)څj^iPGY(B՜8"W|z ʂ GxJ羴8W3E (Hhú3|} :wkss4W6o! ^h"=nvq$ GBA|2; _ʧrp`5%}4i^1}j?ZEojWO~!ݳt(g32yނ ջ1ot&7` 2%mP~׭'!Q(j<}<ۣV:o_܋u==,XyAGg]_;3mrLEXFn^JI<q>klJ:SY.Z\ r;1 Ϡr8 ϋ#Yl#(W3$ p?%qTs=N7r!CYBQ@[ENZxo.j߫[_I=G՚F%?N"$č8 9qWT%:|>~mq&f|'fٚAc/$QS"2d?I(`)Hdc{sZ]{S>8ٲlL`g;b5ZuM%|(9lJ`o1b.N䎻H F|,V+ƌ, \{^ApExocy|ɳ//A=m&o|gABAofB5 @7?~S*| Gon7T{y_fzE,NAWhxg45V_(Sp-#nM;a::n)%h>N b {Z.݀[6[T%E@.CV:6||qqSd;.\{Ҧdv7㍏ (ך T]b33ȓJ>bSc+iF3sq^قdARQ Vzі"Gy9Iw-iXV%4:y)PsE39W>*'|o=^*MUIWcT)9?dWAP$FA#ÉDp"hAp84 8AN wOA ½4,D R$ZxL <&MtӰѣGs4Z''(J=w. ph=rOASx$U=Z+4T ~χN <롓J%.,{EFt_[4 C 'F+J~*i(3`oW0g&p% p Ϲ,ju{G1je_ NLb쯗P:-ZM=~w~3ߥ=h5kAVT&_/ z=۷˨5\)>Rß}U^wxN잝쌊#_%%s'`+þp i۹]ǒrvOc4l;߳"_=i|hw5lNͧtrHX8~='`>u'D.8_-%&&@w W}ʢCFO%'Ӗ~CyKmm)6yG7,̱;2{N9't z $P)+]u]ן㮻ւ k JtIJ%{r!!!0A..3əϙg澟Z?)waGeW_pB{Dt0V;!ڝ0!-d!~ o(=cB|I9C婴݋c),5_ޞ͞~)fhkr^Rz %-ȊH||cz.nF7=xዴb~k&fYLl1*E{Z7urwtۿN !0}}iZA֮= + W[fsUPwv\zbw~YpwWJWnbqcW9iK'€Iس3}wPby씕9ދv Q}~JX!0s4~M*ekqW튰vCg_8XѲM2,GIZ_l{!ѷMGȸǞ¿d{ O_4O4JJɤy<.|L&4tQRj"ŒQJ/`!ޓn% ==o#+1N_Lzrm#X{߾j%b^ݶtXBtz{m{6^ˌFr r7rm&^sÍiKT=y=lg^ b@7NFऍ(M{O2[9f^7ʹz(qL؅8}L!})tC"]x'>Q_a;qxsM Lc`qUPn?=EK?zf=Nm=v=USf1jsP1",Ȱ[חQ&~UyPB&94JY]HH[G본juġs?FzzQ?VN;fu<::e'8&Z{jiTPrM7t/(J/?ߧ٪Cu۱zp+J]N&tQ0><_G⣨8Gk󸦣0PtOOS4HkS7h~"0kSSy??֢9 3Pw*2'zm3֫x'CIN%N#akQhD:*8+˩ 8_1FGN[N\PQVZXAh6cyp#flj‹NJTeꪦ܁1 _AӃ3c6s۱(z>0PqהSkcw{ћJ݊.+ӆ 8N^/>T f &om9Н*;zw&*ڌ5Mw)r錬./F@pzi*|,=v**qklzSQZD_3.v'ъ(ak\/g-3""ֹt`4b=ބڴKPOf|>f4c59}a`JFcIR&ӓ6,{͹w)KUҞƞ3df3^_z]&OLJcΈN⢒K V~~7gpЀK] !~q cQ3;}gKB 1>4RB_4tBhNF9 !$hBhNF9 !$hшa[М}`\^;6%YhݠT?M6q/?Us҅]A˿j&Vo5Dz-?ծ߼ o;/꽟3K^#G)9?]٬~?:|fͨJE-[895}s=槨ܳg^yye^AprI׎Ar=i5!oᶱQMox8`zu lz7z<7"5ظ|;~{7aֺ2TTMtQڞ=fEUjr :ǁ#Q9`6ױ>TE;YrV̾:'}~*`J1@W'^RV&s8Ƈj_Mc=u3KX0AOy|)^|eĘx:XkzpҎOD CܑKq#1lۃg,K %.1v c6[>.31jpɪt@wZ?MUںYx:0`X6xsS-&mu&دv]G7`sS ]7"ۯ]v)XN)}IΌNm[qM_C@!ݛ"%ͤTc ŰQCQ_g/iTD_0w:݉t6nJ'Hx0b CU;9\ m bhd!2NEgT!e6aQÉ m]vpԋӏV*Nvӏ#;6 C@&$pd^JTG2ld҃a#(G}ˑg0װw['Nmޑs9[|sJ FHp1* 8;QǨ-̒7Ws7}awoI|lzºw%Ԡ'(zv$P5yʼn 1aQ|KwRE&7n=IHX^(FɑurGҒOIkئD gP '+ 3~hKRI2z_"{v =bnGm vJYx ?ཕ?lsG:'kV;bi[=*x6чCHAm;yŐ9ջNU_}j m2< {:]͇qm錈ф xCKuSxW{?ƀNۙ:ºw't-∡Ѻt#2CǍtKE0ҷ!S0tvGP\ـB70u`m=kxeϙ u+1-C{uolڙKQ&8aAA.M:6~֫;' `ж*zbjW4=Nl&C"?@tob!_]CJ=BGBI6qB( zTnx].<: z@oPӭۙ qp1_4z%&c;KxD"z~梴sBl_d'B?PP^JI6OLvmGA֊*|;u&տcgB ?Se tZX <Ӂ[s~X9/,.?CF$'qb{my6C5>p70;=oAA2O- ]:5_J QؘW?LhoӦC]ei?4AWV";cWANp|$Kb$s|).đ_P?ꪡ& cIءo'Z_MPNX7@@iիhVN7BE-`KlOeIZA{^tq ت)f,>>M*l ǺW4Y1[ ʫppzk*9Fk1cR`ڨQ17lmpr {־0*A#mۃ˱ntg:suI9s}qD\MSUBEur/ތCIڋH1a5U%>UU -&zN䖑mQ*n 0wnwW0!KȗL:/Evx\mHx <ʶ{qDGFv+I,xm9lMJ=n ضmIr ρdg㮛w^*뾸:#FΉCߐlIGGNo^ё4A H߄atTQVyMsm{ty84c!qv:h1mN?fO57rʃC߱.C8g#0znI)v~rwt۞kٞ[]qec:C.ӗ l|sЎR7&ϰAЗPՂVG̴;oo<Ǘ^}pdNؼf]8#U%'u:зU,]Gxv̩FĤ,.tz׏^oed[=zqr>%+Se #f@0|}_M]2~t*ɢ@Z:3^[孝;#8CۭG`6tnz ؾ'S8u8MUIhLݕ3{zlswt>[A OJּJT ]p6O&=FԲXx!_`bH(;|γ$ a ߮SE-c>w;խҦ4nN7k{ϲӠ8 ~Z.l5Tqۉ[1b U\x& >N(6oÜ9 mqUF#QMXjX}}/A͍bGt{՗T FxxemؼFViNAWT7\+~fY}ۉS=.\S]nn0 Dž˫hT\ۃkX ꠦƅpYe1`2^UCC׌ĥ0ucѻ9T|V\Z?n~ 0{Ru٨y0ZK˻tF,~R &Q0a05%䒖ZL͇ ΀svV>՝;5]p}ץ _]q0C3֩荘Oдzc}MFb<3m ׿I5Mդ, Y_*ﺁAz&jhL|?UElO(Gva5{+oIL9>+-$) g/e41|)D+|C|^B )|Ciλr!D!4'A#МBs4BI!4'A#МBs4BI!4'A#МBs4BI!4'A#МBs4B]҆ (..PBCCB\d$h233IMM%--#..>}rɄZhՠq\$%%eN'DDDh\222dĈ?QrjAS2ɄЯ_? @MGzz:$''H؈";;~$ >iOg∁ oW4X8w9w{sB밼D IHH`ѢEL6,.\ɓyjr3{l<bjIMMɓbccĉڵs8{|Wr`o6+KEyN&i?rh9UߛΌNTTpe'9z86p咓_SI[YIˡB[3׍c.pw8-OwwW>ݖAF^2v|bxfaKZIzhWS?g+/iv;&MknMf3&9s'0wV.항Uhrss߿?:]˳MGVV'OlLm귝VaԶ>BLw, >kQqƓkdrMTTa -7Q?}Omiy3._دaֶތ+<;trfkGY AW? oH㵇?[*Za fTL|MoY0%^L |>uDp]`OrnbvBA߱x8o]/9vz'a˖-<-gȑL:oDNq)Z{ULsu2?%<<2~jXiO$/YepڻO r?˝رc7;W?Ac ^/2i`-۶ogWytL ! }:TuRoË%Y,ْ-Ic⏋ऒ ȋGGڱ_c5>UN6zhn Vɥͣiu≼)}<7X/ 8qDa˗/o߾|>|}5 P]]֭[1jmK/d;_M2(,U༃~%Tt~;C^~k&oWdM4ؾI="gAjB/-|#i׆п}ŋSPTEPz$p$2}?tґ UA/6cf/Y% ;a[,|b"|sNᢙ$rjUύcblx5kV}^HH|xGMsDDDz+Vb INN̡Cm۶RS_Zҩ]v@'lx^_^1q<o~ә=6pk8o-`fE' :9 ̜¦g*xطr o<7Ѝ/?Ϋ {\Tfg7bkW_fs6ShD#$d?]s_grN;Ƿ*cnG(Z5W]ٺukoY|*~Ҙ7oߟ,EO?%//g{1b˖-`00x`V^MIIE _V IVVYojNZZ]vŝZ|3Q^Fq gZ袸W7\?kۼx˩3 EA\K ?>5aCnC^P_!2yr^OFl8n|Yto/+<3i E_W7y`ܤvx׸ѳ30n &ǒI<[e<׎R/j׏hTٽ{7eee=UU/"WQ233h^#fe\Ovv6֭cܸq?{Yg̚5Q] `4| -Xɰy?GDD}SBB$''Daa! hr'*77t222(..檫b-[blmI U:#f˙}06IDATL)A7S4z`՟9̄nB}3ԭ's7VgR-  lI9ɀrΐЙhJLXfiv{/3mڴ_fʔ)g}8|(w!Tӕ|^/4|9j1l޼דB rQRRB~~>L&*y C!C.u1~&L@/];2}tuvJVΒrua?Q6a4}ӧQTTVꅄ׭l!/%m3""BWJzN %A#МBs4BI!4'A#МBs4BI!4'A#МBs4B]җ* (..J%44PyR+% LRSS~p~O>\2!Z5h\.IIIlٲӉ?c4)..&77 2331b'Ղ.d _~ 0I7*yyyNrr2(yIJJTTTJ~HLL;$ Rj[l3yfjj۶-&Mb񄄄֭[k]p(:Y=Ջ %<4fqQSVBTGť8,k+dWF|h.]ʨQ뮻p:,XN:1|Xx.UTu_ߘyZZ-XϸÙ4Ŀ뽾?1|TS7M'1ѵWvi˷%v+jםlFgA l,E6mYYY,\ɓ'pwkjgx<;#Z)hRSS9y$111ƶxX9qvc˙<={س=n3fSk(j08X)fIg1~LOg*aܹ\+[ݿtgN#..Yxtaj\ kj{u+FN- 1j1? f 3Qݣ>Ax(uk1= UT+ {]~4.Web|v| 09(cģch;gשn}CwwCT̡V;عu3;zlo#^(qzuo~ع'eZ`M_?=ii7;> ׷#dB6ك}w|ʦƔmlޖ'sy-ge;~mx]<*3fM>Җ3Gbt!/mšJw#3?i!i<֤x:8t>0c/&Ӄ_lxpwM\~;//\*ZOc b~`3. u].d/ەOFxLL| X><+`{.XG喻xc l^3|vMYYGFU UL&OC=ILL$(("CZsfNٸq#W2۽{7IIIȘ1cZ^0 9GuPVRLBQ83fcݔ*'&&}ÎGowasxX0Gge 6#u6vf=u5J'zL6xTW1`14ٞ_2fݺu7g/k,XYf5˹-Xɰy?GDD}SBB$''Daa! hr'*77t222(..檫b26!eb~'X& D& FtSaah$( ٶ' BX1Z >7:~AX¯G6mx嗙2eY;4{]ϬVt?_Z-hFc+7ofо}{BBBp\Oee%&~ЛK߹ԥL0ݻ_pF;vdt"֙aq/GLhdDEEJFFM%..^zfh4r ^Μ9s3gE($ _Ӈ>}OQQEEo"Ң[B%m3""BW@'BhNF9 !$hBhNF9 !$hTuc|B\.X3!Og4nt*į4G w1 tr\r %b|{vr]P7hB_QErQڣ xQiB\Y.JШb46Vq97ouQo\n7^`@Qt: *^UU]zћ+BԑwBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9 !$hBhNF9j{ !"??zIENDB`riseup-vpn-0.24.5+ds1/docs/screenshots/preferences.png000066400000000000000000001365441461742244100227160ustar00rootroot00000000000000PNG  IHDR*w3vsBIT|dtEXtSoftwaregnome-screenshot> IDATxwxUE?~;!F AĂeݵeײłHG ({Jh@@HBB:ǜ;坙sgf;-tY$˲F .RnHkHHȘz^_P@𿋢(l6{QQ)N3_ jEQ~i[($htnSEEqN띓٬u\7pSQQZ$)vE/F \IEv%I S˲q\bRF \4 =9X+3dY֨1';Aj-dZKhr%.vܧ]^|Y[-C$\R|~iKDxxg, wUVxWo^dʕ\s?c߇WXiRSR߆gr^YƫFp+;?=oYP4^2Opy~XE .07!nPk3PQlAG=Yan2C q9p$NoQco{H B=c}*y֛xeO:=2 ec߹R 7nÓEbڷP>\jB|lL\փ]19 ~aE6?yE.F IB=F IB:k_V 2{g'f>ˤ-7nh ,@Bj Mc?z s<)t-;86md.38߸ >I%5IjX`'Ç>:h4b(UBEܿBe78WUԝ/r>d+ 7esx;! .&+ $ܸɍl,%;?7i ~Ç's𓗘鳗VKݒlN߶+W| B[ƾY; :쾤,p8d؎)7%4u#:05T&&Ι!gdI|rNs?qS)o~ ;n7]ߟ!6Q:,XBnnjBpyN&$qzԇ&5-+bo93Yq,|@tljTUk|y>?OÏ͞'띇X[˃pmuƫ6lt˵%[ ^G%}r ޷oKJwc@=Ru1@=zBͨp;媳KFqlffK]E˟Y4-xgc'Z8kmg B}{ಳuX]n8-^aaὢG#!)^ݨc=Ϙ};66W,{~i+M*2-5h;!,8:*B#.rW 8ѿZߕMILIB#@uտ7v&""B B#@u#F x!4^G@ :BhB#@u#F x!4xUh.]3<,^EcQVV,^EO,⤾  ǭc4tqleT G?/+xyS|u!yL˶W iX]ݑ|r+廷ptn FyvJ4O{ysa;md vE7z ,(J~.Wlf<b nG-*C Fǻa_M 'jTf95[ӡs6P83u+Cu⦖έNciTL $j(?<妜4:4)1`P.,5# #n ީ (إӡ'O-lMZj ٴB:s!r$d!,mcOM{߭Rxg)rאp+M}<;x1'㊯bˠϾ벾彝yPQa…y~g=|zoDZc+2@k9&7v_܁Tzzpv,0?>5mo멫8-1mcεJ˄=LCѻ0( |_:G#BucUv9?i.3_#/ yiS^0|^\i2{pjshE{fUx4PPDDDU{K@ x!4^G@ :BhB#@u#F x!4^G@ :BhB#@u#F x!4^G@ :BhB#@u#F x!4^G@ :M@$T*jIeIm@Q<rp(rYi^Шj4 *게;nN'.Ӽ$$ FF7JBedYt^Rh4 ZV@;A$Z-li. ~4DOF }rFR_wΥK2 ?W ~I :teX |-=@jF .!4J^}1eW>qI?חb(c㷳[pKߑ#^^Tr`)uЎp:oBh%?3D W#EncX$J2]V.TF;ۇK?څ36Rh쇘5tǠkp5ЙO~r:jݫVzG9s·L&4=X? 9vL2"~"׿W hOV1._BxGC7(Hh|S1׳'VVP$!ԑdtHb`Y#[zĂ }ݛ9` "KGZzF1vpVMxntMjU0lݺ`s;G-frB.q]l3;3 lٝ'BR-# tS%U;u&5D hioKu"c V(Qz7r@"mk)ذspݺ$tp :t%'ŌzPp;R;aj{g 䳫I`r'oA:ȈPCAwcH'w%ɳ|RqAK;g5E7sBZxNe㾓.d* p֍Kvn,x$G (2;jO-"IlA]ZBځv~*<'㨥ڻMd_ "TCy0F~Q,>du&֯1GΖ')ΧƇNI } W1cw>ILP:*wN٣=xm(ىIJR|x+Kd%&( MRz(LߣXE$Q}PƩ0Y7i2:+%~BrSJ(JIOQFO'( ??2F鐘 wb;YcR4Sv)y? JBh嶫0iTťzk_?I99̹/WIHHPܦ Lo%+Ϩ=ީmn }vrܭ(5l?OוrdJzB6kskJCxnɭʐt ec(ǚ=@yјO2vŲJ%5C۷~YS{6\yym(읤$$(#ݭ8EQe;LY!JfBR_+R=JvB-ms2nEq{OpZ\~RݽJ%S*(ʬUZ["Ŧ(emS=^62ӯR3FqNN@r-<~{F g*p|S9Y̚(zz O]?GRof#Çv!Jo|$K?3 }7^,_~)T~Z>͎@4P8QdKl^$ Nb]W#/CŢpMCKlMg^J(7?a hrס([6rmWzun C_+ nU{s`H􊕢O楅UuGlohږ;źnmr4#:[YSԵ;){^6mu32KIttm/ {\= +VqYu $ KWcd2w&Oe>mRH&5cJݒ KmՔ < ?!׭y Hc,|!jn;[2'>%f(^:96Qj,X Z$ɵ]^=Xw5sMfL#ocqz zPܱi7Ą\ǺR_ԛ*sp]\ƹl12ɞ(|E]|x~AzECS>$'GSWQzH8Os/ UcgB󗳭a8<^=voa/g(c+9` k8&[}#yh5ݠޏ?%aQ 9<5?r >JI ֔C(q0T4 7NFu Fb:eɪ\Ԕo ^5Qan?نp?v~8{y;g &*ÂOJPe>D%Ec0Đcbꖥ XhG C' W]E#׫8bc?god`_@tG![G~~*],\rC.?CպLY+e4)(,^uێK2ju\>w9|?9naL&,:~Y5sbtsS HQD6pgK,;yMXΓҠnzmcQQB +_ロɈQ(Uy  {szYkD 0s s>CPID>mV,${GxWۋ{5 pscIC[څk3 ckXhx*xI'}LϾS@CMOqwF([F2"E gHm(F ;'~"#@жH,[Ũm71Cv-]>G`{@uw#gĶ}5UH&}:Q| a0^^u)?W9=Gch =~+UyEmm*?|@r 7wƿ֕XbS >ty9R"dR ,]XಷiI1ٳf C l'u$gphC ̏PwJ5|0OpsG_.?%m@z3˨Z}C`uҗKAUrƟgf גCV"ƱǏp1}}}:Й(nlzգ:W+zkkеˎIΠAukZKɍ. ?(.,u5!(xjljDT:#3-m48kmbwB5u5ˆFkkw@Y\O SXjz@ Z%PCCG@/c@R7aux@֢׫zsm69^ &\znl6'n@3y5NO6%IQxj방 ?GzMs]kj?́1b.$0n; u 8jO~QtQ"""A!ͳqB;(Fc+q*ޟUx*?iuq<5@Y-q֫g9:|S >-*+H+N6ndPLJe.Buzct~A V x!4^G@ :BhB#@ub]g8~xa}9\#$ MJùj"|WEK>JՏQg9y8x"2vdO9s|0D@s|:O`9YFy`)co@dE>! ǃ|JV0 ?ݓ{j\ZLxߏH(M~' 4:z"fpF#BQbl)$MjPScU]UD|>LAfl*K~nrUi8–]fFc^;b?;jQ{Y<(rv*wfUocg V}'qS~diUƆyk1ǥ?\J~70-8+QFvd4&zTGf= 7Un0R1o}Ih2f|eL{N֬:mۓ׻#1>2`9ekvQaы]۵ ͬZ2l}dkBwA6|r`s)Ty,$f9y'\~u@0ν[q%pĤ&4}%ϲy c`jz ~IXy"dP!*}:mKۣأ ,*H n̻0}A9{33 f3_|푄`63WG^A*%9/ m/郹9 g33k|zwކ."D Ѿ"79^CC{]G$ %Pe_/ Oф$ťg.w۠7'Re#KOpم H ѧ)1Ch- H 2a.6899Џ?ړ0HO#!S/ Yۭ4njRX`rSSH j)p@ O%[V:h,tDc..8C͝˙Jt&he;NnoJ&19DCnF4hh m|ϥ'5l8N+`wM6݂>. VK(#t#@:i>y1mv#{cvciĬčpƑB6](e DJZ*ɡjj+zTdAQ'ͅzz1VNyUM*=/]f/yuڦЭgwYۀbƭniPUNة>qZr]Z1ݹ:QIFxnʗ@?cw S~h~qia҄oVґ#X.tqFml>RP݉z0|k K KOz=$"#Z|sM"`b3bhN j׎vm A*Zo/sN hG|PKgZ]C':бfK;MJH s*uXѺTCV¦"$.'YwH^xc 1vIׄ@TJ7 .${37lGlKW%1aw"Ti+.;v __PkrӃ]pԖ` &Sۈ0hM}"{$ \v.ukU@`f4*,NZ^5f:×Qden4T*dVaw4dgD( CH҆&*a,?oңW;X\-ToF18fp*Ԁ[d{&gKV4dz5HdtaD#8X/-'v&AdEaj Y*JAr9p=xB*eC$)VJV~ʄ/R{Jmze( ͇Yb7'WԖRPx' nS1[ O$BHmLBjcObk5Xv}ś~GݗԮbqZG-;M\ZĦ޾ULQp7r>^1sx9iUMD}VہVC-,PMUC =܏X.aQ \uX '7K?OՅۓαjj-Xb "3y!8밟v%Yr,O% P@Лݗ3x{3ys7BU2t3x3_vOƝ1jt`n;6keKn ?Kh|I^9@xﻹ⪠ט}^Yq$3>Usz8A4kf}5Y,מ1Ag YBjBjȄwè/v(j [G\C뾊>c{1O n =nN;W7/T*N} $a+.I'#=!U,SIt,׾ܸui$c}<2L1a-H`mOđyw =ȼOoVFASt`rf}Ǥ7V<ɨa|1$Su%R]dx.wOA8qxThEq;pAs8ˉ[֢On1cGtP\\j|nemb:k nbDžzpZX->Fݩ'jv%-UStz5T ږ Յ`DS}]t h v`:Qh'.h-zV,67j3p͘c=0c} gS\667ZZɅå:OYp;q(k2[FQ8̘* >3Nsp̵ buiMNNݹ, 63Q{vzMvMe5aκ:.x_)T3VH3DR?j[II*>~FWBў2qe4FքH*Y[rvH*4Zթrhψ,t6ڠHUZ͑g1{T:/jd~Y2-kZpi2=!//2&<'JJg}I; ~Pm=[9Mnx+x94SDxs~,uX$_8`ec$W+ސ~=C'!7cO6sh6_Fp%/@u#F x!4?SМI&gιѥycBJbb7«jϏc%-7gm_~[ucY(+LK3qQ_^‘*۩/O;GyPWMۼr]/bγ0w(Q̾Y~AH&VMY.* SP~9koc%{^ێ^-jpIKxv*wa#y|I(Z 2"QPYAf݂֮|kUaCAhY]Ć5)>@B^]I TRŶQٞ프 `2,Rz G)uTlU]c0JPh'[Kcn{VǷ8j9qnhKV>t2"5y;5YMs%`/cY~fHp5NqrkVnN"(+]"ذ[G{xp ?#;Ķn:0$Y(݋>9*ݫYu?:oyLٲu$vMP' aIC$0lĖ9Ai@` V5kwpb+HRNCKݵY|#EUN|;Я.mt c^c& Mi5ܔmZjr,7(g5{W`{Q8:KfhSM)ʶaRۛY耓۾gyEil/KǾ}aۊZGfw@'~&3,}YSh S'(+M^&7ymܽE:{$'$gNgi<9 םvM|>kpb9׉v|'?wrv؂PKf'['L6Nu~ 0sU9n=Ƿ Ѱs!KJ֍ OȼV@Vy’#4!06odR;c[l?G*.=rlXÜ{(9Z[YMIz72bL_YEhNzvn',u<KӘzz m_N䋭v;5Hɏ3ya!Qeoi"v;ƝcUd8mU9KDO6d_ sPtf'߰WA~ ?Omh)3R&^r=iSqod*a&aAQ䳵>=aδo`|6zӘ; +8{ݳ;03=4zdXS?kJ\|k675X HG֗&m]︑'GL=i nZ =MG+:6MBrR0v7cءq{lғ;5!HѦ_]Q|SHII&LnMKGk2QW"Dze}7z$=h$fFϤ Ԭ8d! d^QɍTR\132E;gN=0* 2m ;{$ҥfG O[SSյ_Lz qx+D1ki(5g`G;HIerlY*>;i[QL!u윿c+4y:kv$!p( qMe%,!$_bSjxud %1eLɣ]]V1kSGvN8. !%b?=-dFncn_zB0铵΋#>aV8mr߀t@Z ;_GxF+ 44BNe":`4:jg='x^DMPptQtfo #>3=z`_VB`Ml 4(!( l*L)ߞNy=j/-?Z ؟woN:knEEX\t+W j'J'a="[9lC+|B i ଩UMgT{4Ԙز *zO܆_t[R0TKe%TڶrO#Jn:&'Jg0G T6vcLB5vNn3Lo]~La `9 y~׻yk}  ɺxxX>NL{~ Og83)rlF\VpIF:tq+ ? z֞tGtŘ &RM4  ~l蔖3a6(x2 S]h҃#׽g\r6Ï+x f҆Lcd~>?آ~l`Jc#IT$e?"ĖOoBGމ]l9Q|͛Pb:%*9"9P,, >l 33QJdupzWH(x/m$ulAǩoG362U_INoeW쫃K *eֲ#߃J(6ѹ3mtV$:(;n?Eqa+D gcwtjPQ`V'׉agssd4QV\ђ8B:k;eRҷ gm[jWR\X>@9l|d7ċoCVȹ$MZ"NK)d%ASItt$|>{ [#>JNluP+u۹|<}%1d$;r'/Bq td-٬es"χ*WYkәNS:T5*( 5Ѳo7C4!` :dL#6"I%o S>e4P |ZmN>WQ%6.`7{\QLcRv8PZkA&R"uJzezd[576V⛓)KM@nI\X= K*1mX[@€xS漺 AHBwOams<ßzї}g Nz:vj,}*"25QSG=I7{5d IDATmD։;F%}+`ym{qHHz %ފ&fҮzg2hБ4d b!}43@EPgٲ|)1:&RGMŋڀh焩^˂9סF:y)^oFָi I 4uIG#^AG'd ЎƲKEjd!$k)65wMBqy6l&]P(<.<j]Kl'Გ#ZlXdTɋ#cZ1 F MBăPSeAoE/  :++yd=:nAݦH*FIH^,"_B7RSdRMރ& Ԫ ۅG f+ՕV Hk*s ,uǗ U1Zm4܍*~IAlt*I(z}iO@d67/Ut[XApf^6+)/6vUMح&ƪc#?Tɏ$4VTje[G&B4`q b4WkIML[fͤZPԇ*x 'YMҹ5S|Ǜ~ -fQ_=6[ ` ;?ngh u'ZTlٯ`:\ &澷<> 4Bb W2v,Zi73x[4ҸMWR^l8\oaU):&+a1 -|c"{Mlk+h[)ih\K!G 4!G 4!G 4!: 4`:Mg*98n4K-a;PQuhjf t`?dUEQyTU ikhTɩٕ[Cz!ODXX:FsP!^K"݇$K8u;\mL__ ߟ$= 8` Xm17qma.^#jj>2Ce0ewHZ>6~!+ %w/*5#Xy_#speM۾@Ivlͩz~Y89gێ)ʠNJv*lrNqod'ؾyyeYܗzr5gvobbd q\9fq[лE2k%$@p_"vsm@nl.jR5y{RJBÇLB,9p-j=AP86$G1dc`v [0{E$@)3>.C.cy)WjU.snnapc3پ$N#Mzm|20iaьPA,} —3pc=%3[[GJDZV\3gb~*ߟSYk࢙UC蓦ҕt5nNBq֊:o/ĉSHds'=zc"B rr%]B6=pp1}#ea,=k!)Ir7g*|eѡSgp>0sdcad Lm>AX'F$>B&hh|WDa`6*5RT}.\wM/KxE4lKѡc,[r5q+ |m%Hyl)6J۞fdr(PT$w=I#V~ #=<NMuTd]>hx/ZrFf1WDmCD(9W+ f׸^F⋷`_1{Wm6ATzw3e=ŮNiY"<5G1d: ؟SBDV 1\NjEATtayϛÆwQҺ$Qu(|jq(gY;w.eLm1vb&:Hٮ|4c,;Gpaj wno)*FZ*P(ږϰf<Șu!#x*NNoz@9L|>;+_ec{o/"(T \~m].wnA?nZHm-IZ:gK8MdJ,zw:_t(@\IL@QKoP8]LL Ew/ӺAHgܴ,t6oU!+wNG(Y9ozXӷK{WDϻ>{VNp/ww6m 獽:t@x~dEPTU#Tƶ޷žA6X6RkQE^tq5-a3}I3%`5ۑDᲪY]k%Tk֣رB*sank. ܸ|"'1[PC) (X߲,#44s)쵬 עX#jd>GKU)]M=ތ⚈]so_e&[X u)-]vq [N7ep'{L%3O544n q՘ʸӰدEUCCz4(kƍ뤡qã         WJ<+O]o38XKw왆AHͼY}nq# :} ]и>hc{.|M1SC5@ȿ?~O[_$,/hzXTQ^奥,(Uz<\#M|0z |e_k dSTp֗3g5K M'[t'#֢zO~?sRh.߇JJX2ks>54er4PzW >rskn㍅˭צ\6?*+ 5Nݞ|_OT}m<,?-kpK$9 S7ts/sW"ͨv6 xz>͛o@dጴCI|>}coA"UVa[f~4֛: L/n9asӇLfd&U*G!@goi>ݱ-;/=޶;\2~al!YE Iٲ{;fe9"3?"~ٸs6%[_"vlέ19,=W p_gzaiSc.L߰ݻ[V>/ae*Ot̿ٺJ.}k^0-߳ݻv;XqSW/ک~z/{wbϖ9]uY@ދ͎N/l߾K'b"{fعm;VdƶkKݡqc@3&y4p>탆 +YQA_Ã_<"D-gg9-K>!S|2{S.]:!l]M-U\jP{n:Sطd}C\Sڌ ~S X8~ utaM2s˹|~k?k>=m/nqBqz,*KXh)Ms99ڶ'ҷRW:G4Q-%Rj()'insk")Rvbcۓdy U|(4WK>S6'LtF<TVsXi|[_jl"L_+vƭDzQ1T|UnbS^_~/?0hk#ޏY|W @ͅմ$+ j`lBUc(Qȉ5K%00%+xb\&uXBw<ߍ[9;wL =ˡH1lAڵS|, ҉?^y#['{I9Z2 a9=wLm5qלETARG*JN<<} ?;C~ӟU1&f׸Q^ovKhW @Xng?`U^^~0s9P"alOfrB$r^+)!h3<~.rO~|y~:l!^@5gpkE/wx% @yc ҋfL2@%K#"JD DS>%Ha<֛>wRAdFG VlDZ>ټ&Z%,olĵ`R4XF1mhŽF~[?3b?)Zm^RЛxK6Xk#Ӗ_7}O츝s[̹ 8d@@o$J-Dip9cWi#ѿK9l1Fhlߚ<꺰#č+1Cgx{:}_[KUB278d\7>M߱W8wЎh($Zb6>544n@  -hhh-hhh-hhh-hhh-hhh-hhh-hhh-hhh-hhh-hhh-hhh- Ss{rTr.s+>ɉKkz8W[U^B U_Ȟ=U^zCrQRrx_$7[>)48@UQRZ:]A+c̙MZsVƲU>۹Pdϼ,[Gq~ܒǵ]xNo6suZƮsrIj,|w>/~Ӌpl"zp['p79*qq>[z"p5>爻[pUR^r~8ܠZER'ڧPc[ #W%#0Il!p?7فà+MZxGML;Ӭ6iR74UU}NjVGӱDo.$ ·XK}Ms{ 48HxM1xDz3VІ Gqmͅ`1d NXvw/y\fpi# %yjL{,dłAH)HlE*hs?%t=z2'{4UoOR64y넇'g2^bB Xzo^dc|yOۮv]\Z;OTc0xԶ~x*}b<3|yـkK*d._`2P-dS@,<};qgV2ga\zX:!)غy.XLj?Yvn!ʉe蓏;qo@Q0u Geyg ?ab P)s xs|𹓴bADd3qd:|[df3FU!c:nz=s7m(ء8*cBxa X?#aД֮i:',໰nD4!m1mҌR}x3UGgpI B7hiKx93ņrK>ڡgӿoy| <9-:[`x@zPU@:φŻ0~u CK,VqMNS~{Gɳ}"qw ~Hs\!2n6tJYSSE{&z"Bm\uAI3 3+t x<1(o;3c(\1sIam<ܝI4qt,;;k ?;(ELOLv2)WE%9+g3Q=A vٸ( w≠T `}f,Ek?fG0An@NCPUOo~%)Wؼ/F?ny矽lG ;?y34 !݉mGl)C]L%x}*kV*f뇯?:j)[?x%t2z,"Nxk'TƁm'edAc~P>U'5]] -qR'N! @>> ~SGPtCTSXHU9g OxvN@sn';?j)dTF"]ӷ/}޿N1R1|*Ԝ`۾"f,QQe "HweKjn;7%AW#Y;P}h3.FҫkPUs{k˕~954lپRÉm9+-}vw,S!(Ӭ 6T'{dL4KU KrҔFZҜM>}ǫ`Y;PDޓMŊY,ue&O6R:%mݙ̝~O+ NG'aҨ"| ۍ葕hid/!*&/H>hӏӲ`Ȥϝ H7=sg1}_"Tے00#&=B{Ys]i=L̈ihs2'0bR>xO4BݓqCp ?eL,|WI0< 5!I}J~0֧A$LV :Ň^^AK7km1`Jx]n$ Y<|XwNrv)a/;A[5<V~ш^(|Rzx>0Y1~$'J˫bٚ>R}u9]l6## 1ݏr,7kJ˃bc7oI~o"ĺGu֖j}V`,~J_(N܊{cbUlXu2~IEg0ގ`njn`:0}2z:ٍ'`ZjI Fj\/Տh4*s*%7bl|@g xljYhᚦ׋FiZa;\ΈalxM[p2\T֌=hlVcI+CK9Z#,m4ojO~E+M{vVش6GG+wlj4Й-!X&K_z,-Aofnv-E9ht.~GШk7]*9s^݈ 7`5B 뤡unFFFFFFFFFFFFFFF ž"??iFlW/q@CnnQQQA#444~HBhLvv7>PiFC &hhh<؛%2R|x5E~\ՕT:}!ڐʏa8HRʼnͫr.V+8q5[OՄI :nt+lc';rtZ'0nB6QߙB魬q*,#g2ÿ\.OqD H%Bprko*9n@s9pWU #±%0T-aۍ-/gص3-(ݙGL~7j PUN_#*Y]UUd=^׉[1]NfjXu|.\QڥH G/[LpURV1EK<>DKg^I0aյ_R]U avL7W 4sl[>=Fxd;Go je7:5GI4 lC6i!N}I,/`JA}0blXbIA nHw`&%Njq.ݏFDWlv${5CkYq&g5mCדSGoԃ,ݩs8FEƅ%i#ߦPsfk3'pO%CqsC3t厉݉\ڵu9ytLtd xR:*8q vFq&G C\n%Db^ٓۘ)/X#^:˶ugO^V[ KhOT+E8 #RMZMaeNOHNM"C@]/M23S{XdF8ƭD itHT[ϗ5qi 54|A,`Yp4W@O-w2elGjVE·7(smc#wr̝ϒu(4I3'Q {*'?1]1 " Rx-Q /97Dȩ8 )о崫 6I(y? {b;1t,Ps;?A)VT.*<.Iz|n7nSr'Ŝ)Mk{sx 9R^<>kXr5G@nnK0qt 㭸mٰȝc:a S& ns,&)lvE:>CŸ;\ HsD qG&=ekBG2S[ao<ڂLqnYƑy|HjёN!VPF؁FoƬHА\!-}[ٱw$uUr}ARYN\ґzt%T;wEGLv;:wU~h^*+<L1-_rG;ZmH-HѾ W})`nR^BkXHեT|#SGļ1aLv,tXi6'Qu]濫ڋΦ7i|3n['c<)mE.\I,<Ğ.bR#S~pWGE4;t@Q'%+ױ=) *WhEћd.þxd%PE(qD[v1LRػ+J"{)9LtJamig.%7{l%$a, #mo~ZGFz8esYUWe|kCe"^ú#'g>ƮCxUvSp`=+BǍD~#qnȖ%ǐtVdhV O!"8"1QMlZ*?spUT b ,:T !@Eߥ41&ذ !;~Jm;=d *BxI#Ȳ!XW#]϶ 9 Rz]q^5Fbj61,#}l޴ETTK٣ҬS44 j>UTTd?GFN}Uُ?:} _J7 bi J73fվ$I4`2.EFRtF$:=~/>Ed@I/Q #*, zt7c>~0LYV@G'"K ^_U1`1nF(p:T.>>|EsAgt ̭lV|)(tDgnk(Qd[@ n3aik52Z{MD f++W"F{9RCCBh222V&##;HCC$$&;;H~7j{C@cܹs(Lkhh܀h444Bh444Bh444Bh444Bh444Bh444Bh444Bh444Bh444Bh444Bh444Bh444Bh6 c{Jr\WKx*-& *<-d=*RXJJʜn|Aks|5?H^F:x7x+P}SywFNWQ'X^-ݑϦ>e_UThS9%73gl7súٶt1O^4d0J>/i6E\swPuMf/ᰳ*凾b)R:ܰF.I5$psWdo@EVQ^lJ*IӨ \[ x\9ۇf\6wIΏfsNn>ɼS}8\`dD4ʧPCQ/%<0zMyҬ9OHŨ2|7 dWU?rD&NC]}f5sLW:~:x|ŬO2m2gT÷h" z0G_7|[䓭*trM&MF{sߛH+~<,Z9TGfX#T)#};;+I:G9% $DƘ`66vvܾ3f}ܶ;`   t9Up$m>kS{׮w}k]Uy0@W{?XKi ѳx0;D]תL|g8sCհg6Wqz!&gG;vj "4L#dyL?ɕ sNo5ͬdJ%m˛kCd:(}m.38n%*/.!‡cf}b ώAHY~b cA ӵjgN(߅1>/re ' @S3&+vYC)߸kYhqRk%7TޝTĘj3 p6IQL;f%)hzy|ۚRyp]C3Xf,S4OO qf-.dzWH G[89I覭;)4^ZǘTmfMsyl/ekxga~2M;4;]UdOO0~RTJ\*D5jJ ygIMƿv;vO8 J31<Є ҩ/[:aI ɫہvOu zN;)Mg8'\ge-]}ySx4-ti[ ť[0?$xi+w7!L?I{cxt8߳U8BN AIy yvi6uAF@PŧRPʇ)ϵ3(k[ɻ.@_=jt-!Hug9J`AP  ;șP+$2AEW(AxP,xDcW^LM$.75OZx Kk}%%ՇJiH't"{S~EMrJ4ZqLZW]fƤvUVpHmCJ*R-"c>[ 5IX: ;EvQ<+Brp IDATV- (('Q<ǁhBI E^Ar4q΍!"D*8xN |ź8X["}}l)fA$2v{ox8awJTՐ'P OMY/"hz2=xւ1`v4*Ne<("R&|B?S\ATv!*;G0¢ljGoO 4|$.^fnqzhBKxVFnhbɋfã6bT톾Ieu5v+}e?KG>Yc4@(uBB##swc7k~fE_N]F##e&rs*ܵk422 oۥų# ̨# ̨# ̨| vAddB#ywwi,۝x?_ɍ~хBmCߗ1ėi"we~:u:|ܽ{{qީArN_3x ~΂x5ॱ]>sS{\p`Nja*b ( cYr n4 .uxg`٢ZǏ~\HN7ol~ L֣R~pӡO~KKź7ٸ~MY:,&>o  wĥ V~ĤI,cT8.ͪ\JJ .x2FYHA#O< +fbk\&qxgoYK-ITH`bLR([2If_)Dy*p w"t2? ܟkڡMTA1 u8[O+OKYRm-!(̨a$in79Ĺ*9p=_v>yPN ҧƴ OP_@ت,ehRGf.!uV4J7.u^2-.}sc}dGLer~F/1Ch e銝Gr>*9LɭHi"*// կzlkASUo>Kj/ԼFm,z!FWݯ 3y7k1uȽN'{9Y~3j%l+#BAŽZo۵O_eP ?ĉ63|YϜ3I(sx#67g>xM'>7̍QqUEː%4d/XqCo-iȝ0b'}_b57+ I,&L0Eˋ422|!q WAw U(I'wX:EϼoYZUSݡ`Ax=g` %ğ Fj/'\dD=B'`tDǿkЦZP+&j@u#*h™xy$#Ϸz52xb4owNs*Q>3$d`!BxoRb ä$7ng_,b;o/~CF|Œ>-sC̋u|b6锸D:6^ R`*S J6~_Ӂӎ[lϤp-K@5_oq"< AtKFFxXNnACukg. =8. 5]nGn3"4c6dk/UJlv>DeU6\l;N@z0%jhhhʅc|_xc{ (EFׄ#rmP%^h4m_@5Ctp~NNSrK޻u :%Uʾ]K9g)8rx?=Ǵo%= Z|K] p]fϚ\1SQp?O<<[pثw  | hI(^̌pF"[W~š}y,X4J,L ?phN_Ju mxbop6sd?kQPPA tE)2Wd'SqaSSH.^+cӾVb4@.haf܌L$EkE jH4G9/bqaА] GZR2u: #p_+`)jDL19O'mDˉ6ypJdI Ho7Շ?13gߓ4.+tFb3m| !}´1wĶ70vQ j#gE9rJX@f;ư$U^m*efN]03㑩| %;%rnZ)Z2bvj2l+dcLg'4q[MxtL(@Oi];`\+K (e2 Rx .|ynEiSfSbyi;+{+ٶ2Y,v|Zy;aS5;ޓǩaPPJ^߬YfjLYHx\ÉN \Y6[/kITĸNoυzzPE[y?Ztk~ +M59Hp&>XUmgʏ8*nPLp|%9p;$xٸf7 ɏS͵O@tV!!}X"fxS2) Oq] aܔBҵغr :$Iyg5QMxkZrC8}}`Z\YAGL!rPR)}N򢙜)1TjCI҄JAzno<@kpEYdwY l+?ӳZ`B5v]1+'gIpP-Vk#t"*Y[[q {3︕ n?U0 #dF2\BT,>)Sr0װS)v}ۀP8[ڋM\P&3ixaYjWso9N$O\m(bH44FNR>ԇEbv^Q[-x\9s[}S8>\-AI~kQԖC/,&Y IZ^_U="鞇Iuγ\'֓}LTi8!9 Г:mgl 25"# _pw4iÿr||8=j:z}#/%[[ER` 63%f5lFrf7aSFI" bj 4kt9r'2*B#hthq?{ Ƣ$X"AĚE7(i8F/gOveoo 7X݊?ҥ26FVp'n$`Js\,ުIaAZ fA$ Ap;[l/hVFCc HV .n }F^^"} 2lq1SVn*=:^Ӄ> C?Hvm<ˌaШ)z^5(w0M1lv$L;{{q wҜ5R);REGDmԗZLJ!^/$uP5zȚ5[`&%;c%Tvy #~u%=fv;ʚqI Z9īA錍j]i802Q}v9A#=;Stj̄ca{99 TӅGoK ;hB 6aUK9R5ǫ$]'r07ˎ?WEi= !brݧ:߳|Ge EEzBZaw"J$+c:lzz6wu4sejxTVxp8]p,DzxǮ9pbOqTvoьIFix=/7 1ī 5Sw$$S)|y o x+2Aaë/E)j3(ࡥm|CJP9!xݙ#e|'!IKOyT tQlRH̤y±F'2e/JՒ81\&:3ᤑDx}?5ۋ" K`#x.asOMKGF$gl*FMw?kt擿BDiJ 7k`abί?ThD-bfG%:.g:z\Bɐ̜Gg1F /JG?+غɑRzN`Lb\^6J#̏=unz@,m[͆gJ$|2J<ަ\ma$jє;fAxt qpH zIv{% J հ,׍#js2Щ]ج.z#:+Ҡ/jpOH(hxݸ$%DžGP[mP1TuwL+"jWՃ$qI)qBe[{5ZnVŒDž5z=<" ;d7.Z9:<* - w^<86*&jH:-k8|%zDaHу+ )qFZrl_~m3ׇDWF8+ھxb7.zwx{KxnD|s N% E}NJIDATǍto@0)Sr `Mf,ri.[}]BrY.RƁÕ\*$N`Zqu旷l՝!S]J١c%G8{Վ*8 Ӧ)04B{ K M]LQWrS =Y Zw+hU`IȣxJ:ٱ,XϜF,"K]gؾkO]F9&䵅գʩ[5f00˵bl5+X_I(Jr7Xuy/U9n@<"-]͊OʹǺOpW8Ȯ`E; uj-ה#%2}jm&ڰMAL3p%!+NJV`Kt=p!1G6qȷLo!V-JX4D,.MHmM9SR%c6S%i/>V>96B%is ʪ}^y}A:QTysϝOqǓ<t|UWzw70a>[3R:5svYp%NxekywKv@.g9cҴ)du{)pL|4rZ|{/PQ36:/sZ$"@yFQTE@zkঽ_.NOZJR95 5|xN”LNtr]ވC` ,yvJ*&!8pYFH#G_ׇ~@6Y&[/9/q9b?`{„Ng, 5ڈzWTo=),=$蠳g<4@z2wXYr%^)L%B'Y4 a{ ȈOp}*a~4Ru)9y?  3} wfBR&3/dnfp,d%`]󍸒\&ޟ3*`Ya)J f.c~_In^\I3 㱃.'H&V3Nv"%5툱4T3.kUޘ4u[Kxx\@?Ӽ'' xEgeFKyMrLzhB]~S(<%<^Ü_`QRImR4?LLEu'ޙ@e_?EPJPx1*F ) }B~Efu΄qxFK>DK1|GpH+8( F٭n8썲w#4H222,4222,4222,4222,4222,4222,4222,4222,4222,4222,4222,4222,4222ΨXVF29xFJQFɓ'FytttP\\|J$##m2*B/2yyyW~FF&B#U #ssw/a1$s{8K^\a1$ *q8} dLL=|v>K]7~W>-E;Aq '~`2aJ_,o%9 )A(+?@B)$z1aq T,!Z vK*m̸/o([ $(ȅ^ z[;1b 7-ݘGrB;m_!D2w/w|CF [W5&0r } f aA T#m(j$ EPSgM FMB/R%~"s.>]S(*Jc0U5flW8)YLB^^K6]0l%YrnAF!!cH i5%Moۋ5~M7Qsp ',)p]!j(%DM$QVζqߢ\L-'غg?=ؿ %t^0i^[†z ۍ’91 oˇy2vn\I6I1rܓHtUV}bQir OVb?0%$ܾ:}3|DAC+TD@ xjjƦ P{c3PȒX4ϴ,ԠGs"Gy ) PGh`:z2 k=M*̎DcfHisY6! bo(c+x-eek[J[hOK!P)8ρ8H+d'™cHkڵA,6$Q=xy$49 S{55]R]͘DJ [%/>fb VC- *AL 4{ya=̮w1k!4 I53pM/JUi%"aN#(q̼3fؘ[wiw}ɮdx[ 3w$Lp>IQ+)[Mr"@~|lrfN$t[x *Z!>ԸL 4%dM=o@_Mkt,!p#CL.@Wn_sӻ,s&+U* i Kr8 &TScpixK5Mu,!]*ZF41.6n,qYTiФI#x|2S+pL?v`\?{#b.|2=}A2!A-M(WBo[BXg_Y"etѿ>OYr$1x~a)һi9.\k\fN [(M1QSט"~3;~p]djle&[?ƔAwAxr΍/olf`U7>uʬdZ[qs2 2!Sw.pC^Y|ܪ$~bbCL'7/.V0I)fA_Τrg[WLHyt#ze`LDX/mgs6:ɓט 0:~vnJz0z?ζҬ.8s,\[vQףۜ w_ymܧr~3WyC~}?x+ٺasge/qqfײcvuu]2ݯFR~Kp'a+`4(iK'7:Av2yB{j|s.$8$8U ~s8 ge}wޖvefM2?KV.\Ԝ;!jiVfe x.ޓ%1=z`jxmGmγLXbMr"^Ib"4G 4 Qcq:?zp' MO|qif69^C7#~7y_}+x㦞=u\~~ve\tg㒚s^&W,oxG&7ϳ07w_iKVCGX MTʕ+RHD^&+ ZZ>ϳf͚W"X MGG6V-"mHE:FDShD:FDShD:FDShD:FDShD:FDShD:FDShD:FDShD:FDShD:FDShD:FDShD:FDShD:FDShD:FDShD:FDShD:FDShD:FDShD:FDShD:FDShD:FDShD:FDShD:FDShD:FDShD:FDShD:FDShD:FDShD:FDShD:FDShD:FDShD:FDk*4Ii#ͶqEdqjшHӬh(jj"85ۂBcDdqiM:aS(_V(ðDdðK(V7NqUHɴ:h)4IqNWhfv*"gD:FDShD:FDShD:FDShD:FDShD:'e,n~R9IENDB`riseup-vpn-0.24.5+ds1/docs/style-guide.md000066400000000000000000000004101461742244100201020ustar00rootroot00000000000000# Git - Sign all commits and releases - Do *not* include merge commits. Rebase your MRs always on top of master before merging - we want a lineal history. - Use the [tags] on commit messages. - When possible, reference the issues this is Closing or Related to. riseup-vpn-0.24.5+ds1/docs/test-float.rst000066400000000000000000000004471461742244100201530ustar00rootroot00000000000000Testing float deployments ========================= You can quickly brand the client for test float instances.:: export PROVIDER=floatdemo make depends make vendor && make build build/qt/release/floatdemo-vpn If your test instance is not there, just add it to `providers/vendor.conf`. riseup-vpn-0.24.5+ds1/docs/uninstall.md000066400000000000000000000012311461742244100176620ustar00rootroot00000000000000# How to uninstall Desktop LEAP VPN *Applies to RiseupVPN, CalyxVPN, CodigoSurVPN etc...* **For the time being, it's important that you follow this instructions and uninstall manually: if you remove the app by some other means, it's likely that you will end up with a broken network**. ## Windows 1. Turn VPN OFF, close the app. 2. Open the folder where the application is installed (Usually `C:\Program Files (x64)\RiseupVPN\`). 3. Click on `uninstall.exe` ## OSX 1. Turn VPN OFF, close the app. 2. Open the folder where the application is installed (Usually `/Applications/RiseupVPN/`). 3. Click on `uninstall.app` ## Linux Check your package manager. riseup-vpn-0.24.5+ds1/go.mod000066400000000000000000000057671461742244100155270ustar00rootroot00000000000000module 0xacab.org/leap/bitmask-vpn go 1.19 require ( 0xacab.org/leap/obfsvpn v0.0.0-20240422180703-83037b24d5cc git.torproject.org/pluggable-transports/goptlib.git v1.3.0 git.torproject.org/pluggable-transports/snowflake.git v1.1.0 github.com/ProtonMail/go-autostart v0.0.0-20210130080809-00ed301c8e9a github.com/cretz/bine v0.2.0 github.com/dchest/siphash v1.2.3 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect github.com/keybase/go-ps v0.0.0-20190827175125-91aafc93ba19 github.com/pion/webrtc/v3 v3.2.24 github.com/sevlyar/go-daemon v0.1.6 github.com/smartystreets/goconvey v1.6.4 github.com/xtaci/kcp-go/v5 v5.6.1 github.com/xtaci/smux v1.5.24 // Do not update obfs4 past e330d1b7024b, a backwards incompatible change was // made that will break negotiation!! riseup should move to the newest asap. gitlab.com/yawning/obfs4.git v0.0.0-20231012084234-c3e2d44b1033 // indirect golang.org/x/sys v0.16.0 ) require github.com/natefinch/npipe v0.0.0-20160621034901-c1b8fa8bdcce require ( filippo.io/edwards25519 v1.1.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/google/uuid v1.6.0 // indirect github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 // indirect github.com/jtolds/gls v4.20.0+incompatible // indirect github.com/kalikaneko/socks5 v1.0.1 // indirect github.com/klauspost/cpuid/v2 v2.2.6 // indirect github.com/klauspost/reedsolomon v1.12.1 // indirect github.com/pion/datachannel v1.5.5 // indirect github.com/pion/dtls/v2 v2.2.9 // indirect github.com/pion/ice/v2 v2.3.12 // indirect github.com/pion/interceptor v0.1.25 // indirect github.com/pion/logging v0.2.2 // indirect github.com/pion/mdns v0.0.9 // indirect github.com/pion/randutil v0.1.0 // indirect github.com/pion/rtcp v1.2.13 // indirect github.com/pion/rtp v1.8.3 // indirect github.com/pion/sctp v1.8.9 // indirect github.com/pion/sdp/v3 v3.0.6 // indirect github.com/pion/srtp/v2 v2.0.18 // indirect github.com/pion/stun v0.6.1 // indirect github.com/pion/transport/v2 v2.2.4 // indirect github.com/pion/turn/v2 v2.1.4 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d // indirect github.com/stretchr/testify v1.8.4 // indirect github.com/templexxx/cpu v0.1.0 // indirect github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 // indirect github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b // indirect github.com/templexxx/xorsimd v0.4.2 // indirect github.com/tjfoc/gmsm v1.4.1 // indirect github.com/xtaci/kcp-go v5.4.20+incompatible // indirect gitlab.com/yawning/edwards25519-extra v0.0.0-20231005122941-2149dcafc266 // indirect gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib v1.5.0 // indirect golang.org/x/crypto v0.18.0 // indirect golang.org/x/net v0.20.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) riseup-vpn-0.24.5+ds1/go.sum000066400000000000000000002023561461742244100155450ustar00rootroot000000000000000xacab.org/leap/obfsvpn v0.0.0-20230809183729-89f8aac8201e h1:q+637mlcDzjDskxHrUbFQ6jqxuqz27Ws9lpwnM6tueU= 0xacab.org/leap/obfsvpn v0.0.0-20230809183729-89f8aac8201e/go.mod h1:cOGeSmVkgxW5qYIOSvkBeFxwBnoOYsjuQWFYB5YYlm4= 0xacab.org/leap/obfsvpn v0.0.0-20240422180703-83037b24d5cc h1:QyADySTHZtWA81k58D/eD5aLFG2n8QaeKjIB/aMI3OU= 0xacab.org/leap/obfsvpn v0.0.0-20240422180703-83037b24d5cc/go.mod h1:cOGeSmVkgxW5qYIOSvkBeFxwBnoOYsjuQWFYB5YYlm4= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= git.torproject.org/pluggable-transports/goptlib.git v1.1.0/go.mod h1:YT4XMSkuEXbtqlydr9+OxqFAyspUv0Gr9qhM3B++o/Q= git.torproject.org/pluggable-transports/goptlib.git v1.3.0 h1:G+iuRUblCCC2xnO+0ag1/4+aaM98D5mjWP1M0v9s8a0= git.torproject.org/pluggable-transports/goptlib.git v1.3.0/go.mod h1:4PBMl1dg7/3vMWSoWb46eGWlrxkUyn/CAJmxhDLAlDs= git.torproject.org/pluggable-transports/snowflake.git v1.1.0 h1:rl/LloEeBG1sqdZdVxdW1Gmb/c3ZjdvT5o3RV8iaDg4= git.torproject.org/pluggable-transports/snowflake.git v1.1.0/go.mod h1:+a2yI6dfEjwEnqPgXTtKobeHDEdgJa3ANZN4bjSQk+M= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/ProtonMail/go-autostart v0.0.0-20210130080809-00ed301c8e9a h1:D+aZah+k14Gn6kmL7eKxoo/4Dr/lK3ChBcwce2+SQP4= github.com/ProtonMail/go-autostart v0.0.0-20210130080809-00ed301c8e9a/go.mod h1:oTGdE7/DlWIr23G0IKW3OXK9wZ5Hw1GGiaJFccTvZi4= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/cretz/bine v0.2.0 h1:8GiDRGlTgz+o8H9DSnsl+5MeBK4HsExxgl6WgzOCuZo= github.com/cretz/bine v0.2.0/go.mod h1:WU4o9QR9wWp8AVKtTM1XD5vUHkEqnf2vVSo6dBqbetI= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dchest/siphash v1.2.3 h1:QXwFc8cFOR2dSa/gE6o/HokBMWtLUaNDVd+22aKHeEA= github.com/dchest/siphash v1.2.3/go.mod h1:0NvQU092bT0ipiFN++/rXm69QG9tVxLAlQHIXMPAkHc= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.5/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/kalikaneko/socks5 v1.0.1 h1:j60X3e1sAmy/LK/WtHyU3xH6uMmwlRJyc9TE3AqYDpU= github.com/kalikaneko/socks5 v1.0.1/go.mod h1:XAMwFixakJUP0wv6pEVp6v2wx3SwhQEdL8TGDYKFAGU= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= github.com/keybase/go-ps v0.0.0-20190827175125-91aafc93ba19 h1:WjT3fLi9n8YWh/Ih8Q1LHAPsTqGddPcHqscN+PJ3i68= github.com/keybase/go-ps v0.0.0-20190827175125-91aafc93ba19/go.mod h1:hY+WOq6m2FpbvyrI93sMaypsttvaIL5nhVR92dTMUcQ= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/cpuid v1.2.4/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid v1.3.1/go.mod h1:bYW4mA6ZgKPob1/Dlai2LviZJO7KGI3uoWLd42rAQw4= github.com/klauspost/cpuid/v2 v2.2.6 h1:ndNyv040zDGIDh8thGkXYjnFtiN02M1PVVF+JE/48xc= github.com/klauspost/cpuid/v2 v2.2.6/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/klauspost/reedsolomon v1.9.9/go.mod h1:O7yFFHiQwDR6b2t63KPUpccPtNdp5ADgh1gg4fd12wo= github.com/klauspost/reedsolomon v1.12.1 h1:NhWgum1efX1x58daOBGCFWcxtEhOhXKKl1HAPQUp03Q= github.com/klauspost/reedsolomon v1.12.1/go.mod h1:nEi5Kjb6QqtbofI6s+cbG/j1da11c96IBYBSnVGtuBs= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mmcloughlin/avo v0.0.0-20200803215136-443f81d77104/go.mod h1:wqKykBG2QzQDJEzvRkcS8x6MiSJkF52hXZsXcjaB3ls= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/natefinch/npipe v0.0.0-20160621034901-c1b8fa8bdcce h1:TqjP/BTDrwN7zP9xyXVuLsMBXYMt6LLYi55PlrIcq8U= github.com/natefinch/npipe v0.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:ifHPsLndGGzvgzcaXUvzmt6LxKT4pJ+uzEhtnMt+f7A= github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.14.2/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pion/datachannel v1.4.21/go.mod h1:oiNyP4gHx2DIwRzX/MFyH0Rz/Gz05OgBlayAI2hAWjg= github.com/pion/datachannel v1.5.5 h1:10ef4kwdjije+M9d7Xm9im2Y3O6A6ccQb0zcqZcJew8= github.com/pion/datachannel v1.5.5/go.mod h1:iMz+lECmfdCMqFRhXhcA/219B0SQlbpoR2V118yimL0= github.com/pion/dtls/v2 v2.0.4/go.mod h1:qAkFscX0ZHoI1E07RfYPoRw3manThveu+mlTDdOxoGI= github.com/pion/dtls/v2 v2.0.8/go.mod h1:QuDII+8FVvk9Dp5t5vYIMTo7hh7uBkra+8QIm7QGm10= github.com/pion/dtls/v2 v2.2.7/go.mod h1:8WiMkebSHFD0T+dIU+UeBaoV7kDhOW5oDCzZ7WZ/F9s= github.com/pion/dtls/v2 v2.2.9 h1:K+D/aVf9/REahQvqk6G5JavdrD8W1PWDKC11UlwN7ts= github.com/pion/dtls/v2 v2.2.9/go.mod h1:8WiMkebSHFD0T+dIU+UeBaoV7kDhOW5oDCzZ7WZ/F9s= github.com/pion/ice/v2 v2.0.15/go.mod h1:ZIiVGevpgAxF/cXiIVmuIUtCb3Xs4gCzCbXB6+nFkSI= github.com/pion/ice/v2 v2.3.11/go.mod h1:hPcLC3kxMa+JGRzMHqQzjoSj3xtE9F+eoncmXLlCL4E= github.com/pion/ice/v2 v2.3.12 h1:NWKW2b3+oSZS3klbQMIEWQ0i52Kuo0KBg505a5kQv4s= github.com/pion/ice/v2 v2.3.12/go.mod h1:hPcLC3kxMa+JGRzMHqQzjoSj3xtE9F+eoncmXLlCL4E= github.com/pion/interceptor v0.0.10/go.mod h1:qzeuWuD/ZXvPqOnxNcnhWfkCZ2e1kwwslicyyPnhoK4= github.com/pion/interceptor v0.1.25 h1:pwY9r7P6ToQ3+IF0bajN0xmk/fNw/suTgaTdlwTDmhc= github.com/pion/interceptor v0.1.25/go.mod h1:wkbPYAak5zKsfpVDYMtEfWEy8D4zL+rpxCxPImLOg3Y= github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY= github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms= github.com/pion/mdns v0.0.4/go.mod h1:R1sL0p50l42S5lJs91oNdUL58nm0QHrhxnSegr++qC0= github.com/pion/mdns v0.0.8/go.mod h1:hYE72WX8WDveIhg7fmXgMKivD3Puklk0Ymzog0lSyaI= github.com/pion/mdns v0.0.9 h1:7Ue5KZsqq8EuqStnpPWV33vYYEH0+skdDN5L7EiEsI4= github.com/pion/mdns v0.0.9/go.mod h1:2JA5exfxwzXiCihmxpTKgFUpiQws2MnipoPK09vecIc= github.com/pion/randutil v0.1.0 h1:CFG1UdESneORglEsnimhUjf33Rwjubwj6xfiOXBa3mA= github.com/pion/randutil v0.1.0/go.mod h1:XcJrSMMbbMRhASFVOlj/5hQial/Y8oH/HVo7TBZq+j8= github.com/pion/rtcp v1.2.6/go.mod h1:52rMNPWFsjr39z9B9MhnkqhPLoeHTv1aN63o/42bWE0= github.com/pion/rtcp v1.2.10/go.mod h1:ztfEwXZNLGyF1oQDttz/ZKIBaeeg/oWbRYqzBM9TL1I= github.com/pion/rtcp v1.2.12/go.mod h1:sn6qjxvnwyAkkPzPULIbVqSKI5Dv54Rv7VG0kNxh9L4= github.com/pion/rtcp v1.2.13 h1:+EQijuisKwm/8VBs8nWllr0bIndR7Lf7cZG200mpbNo= github.com/pion/rtcp v1.2.13/go.mod h1:sn6qjxvnwyAkkPzPULIbVqSKI5Dv54Rv7VG0kNxh9L4= github.com/pion/rtp v1.6.2/go.mod h1:bDb5n+BFZxXx0Ea7E5qe+klMuqiBrP+w8XSjiWtCUko= github.com/pion/rtp v1.8.2/go.mod h1:pBGHaFt/yW7bf1jjWAoUjpSNoDnw98KTMg+jWWvziqU= github.com/pion/rtp v1.8.3 h1:VEHxqzSVQxCkKDSHro5/4IUUG1ea+MFdqR2R3xSpNU8= github.com/pion/rtp v1.8.3/go.mod h1:pBGHaFt/yW7bf1jjWAoUjpSNoDnw98KTMg+jWWvziqU= github.com/pion/sctp v1.7.10/go.mod h1:EhpTUQu1/lcK3xI+eriS6/96fWetHGCvBi9MSsnaBN0= github.com/pion/sctp v1.7.11/go.mod h1:EhpTUQu1/lcK3xI+eriS6/96fWetHGCvBi9MSsnaBN0= github.com/pion/sctp v1.8.5/go.mod h1:SUFFfDpViyKejTAdwD1d/HQsCu+V/40cCs2nZIvC3s0= github.com/pion/sctp v1.8.8/go.mod h1:igF9nZBrjh5AtmKc7U30jXltsFHicFCXSmWA2GWRaWs= github.com/pion/sctp v1.8.9 h1:TP5ZVxV5J7rz7uZmbyvnUvsn7EJ2x/5q9uhsTtXbI3g= github.com/pion/sctp v1.8.9/go.mod h1:cMLT45jqw3+jiJCrtHVwfQLnfR0MGZ4rgOJwUOIqLkI= github.com/pion/sdp/v3 v3.0.4/go.mod h1:bNiSknmJE0HYBprTHXKPQ3+JjacTv5uap92ueJZKsRk= github.com/pion/sdp/v3 v3.0.6 h1:WuDLhtuFUUVpTfus9ILC4HRyHsW6TdugjEX/QY9OiUw= github.com/pion/sdp/v3 v3.0.6/go.mod h1:iiFWFpQO8Fy3S5ldclBkpXqmWy02ns78NOKoLLL0YQw= github.com/pion/srtp/v2 v2.0.2/go.mod h1:VEyLv4CuxrwGY8cxM+Ng3bmVy8ckz/1t6A0q/msKOw0= github.com/pion/srtp/v2 v2.0.18 h1:vKpAXfawO9RtTRKZJbG4y0v1b11NZxQnxRl85kGuUlo= github.com/pion/srtp/v2 v2.0.18/go.mod h1:0KJQjA99A6/a0DOVTu1PhDSw0CXF2jTkqOoMg3ODqdA= github.com/pion/stun v0.3.5/go.mod h1:gDMim+47EeEtfWogA37n6qXZS88L5V6LqFcf+DZA2UA= github.com/pion/stun v0.6.1 h1:8lp6YejULeHBF8NmV8e2787BogQhduZugh5PdhDyyN4= github.com/pion/stun v0.6.1/go.mod h1:/hO7APkX4hZKu/D0f2lHzNyvdkTGtIy3NDmLR7kSz/8= github.com/pion/transport v0.8.10/go.mod h1:tBmha/UCjpum5hqTWhfAEs3CO4/tHSg0MYRhSzR+CZ8= github.com/pion/transport v0.10.0/go.mod h1:BnHnUipd0rZQyTVB2SBGojFHT9CBt5C5TcsJSQGkvSE= github.com/pion/transport v0.10.1/go.mod h1:PBis1stIILMiis0PewDw91WJeLJkyIMcEk+DwKOzf4A= github.com/pion/transport v0.12.1/go.mod h1:N3+vZQD9HlDP5GWkZ85LohxNsDcNgofQmyL6ojX5d8Q= github.com/pion/transport v0.12.2/go.mod h1:N3+vZQD9HlDP5GWkZ85LohxNsDcNgofQmyL6ojX5d8Q= github.com/pion/transport v0.12.3/go.mod h1:OViWW9SP2peE/HbwBvARicmAVnesphkNkCVZIWJ6q9A= github.com/pion/transport v0.14.1 h1:XSM6olwW+o8J4SCmOBb/BpwZypkHeyM0PGFCxNQBr40= github.com/pion/transport v0.14.1/go.mod h1:4tGmbk00NeYA3rUa9+n+dzCCoKkcy3YlYb99Jn2fNnI= github.com/pion/transport/v2 v2.2.1/go.mod h1:cXXWavvCnFF6McHTft3DWS9iic2Mftcz1Aq29pGcU5g= github.com/pion/transport/v2 v2.2.2/go.mod h1:OJg3ojoBJopjEeECq2yJdXH9YVrUJ1uQ++NjXLOUorc= github.com/pion/transport/v2 v2.2.3/go.mod h1:q2U/tf9FEfnSBGSW6w5Qp5PFWRLRj3NjLhCCgpRK4p0= github.com/pion/transport/v2 v2.2.4 h1:41JJK6DZQYSeVLxILA2+F4ZkKb4Xd/tFJZRFZQ9QAlo= github.com/pion/transport/v2 v2.2.4/go.mod h1:q2U/tf9FEfnSBGSW6w5Qp5PFWRLRj3NjLhCCgpRK4p0= github.com/pion/transport/v3 v3.0.1 h1:gDTlPJwROfSfz6QfSi0ZmeCSkFcnWWiiR9ES0ouANiM= github.com/pion/transport/v3 v3.0.1/go.mod h1:UY7kiITrlMv7/IKgd5eTUcaahZx5oUN3l9SzK5f5xE0= github.com/pion/turn/v2 v2.0.5/go.mod h1:APg43CFyt/14Uy7heYUOGWdkem/Wu4PhCO/bjyrTqMw= github.com/pion/turn/v2 v2.1.3/go.mod h1:huEpByKKHix2/b9kmTAM3YoX6MKP+/D//0ClgUYR2fY= github.com/pion/turn/v2 v2.1.4 h1:2xn8rduI5W6sCZQkEnIUDAkrBQNl2eYIBCHMZ3QMmP8= github.com/pion/turn/v2 v2.1.4/go.mod h1:huEpByKKHix2/b9kmTAM3YoX6MKP+/D//0ClgUYR2fY= github.com/pion/udp v0.1.0/go.mod h1:BPELIjbwE9PRbd/zxI/KYBnbo7B6+oA6YuEaNE8lths= github.com/pion/webrtc/v3 v3.0.15/go.mod h1:uUt2nRSsCnK/nfzTAfOmaeLan26ZJ0aP9iwjc/gcC2Y= github.com/pion/webrtc/v3 v3.2.24 h1:MiFL5DMo2bDaaIFWr0DDpwiV/L4EGbLZb+xoRvfEo1Y= github.com/pion/webrtc/v3 v3.2.24/go.mod h1:1CaT2fcZzZ6VZA+O1i9yK2DU4EOcXVvSbWG9pr5jefs= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.10.0/go.mod h1:WJM3cc3yu7XKBKa/I8WeZm+V3eltZnBwfENSU7mdogU= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.18.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sevlyar/go-daemon v0.1.6 h1:EUh1MDjEM4BI109Jign0EaknA2izkOyi0LV3ro3QQGs= github.com/sevlyar/go-daemon v0.1.6/go.mod h1:6dJpPatBT9eUwM5VCw9Bt6CdX9Tk6UWvhW3MebLDRKE= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/templexxx/cpu v0.0.1/go.mod h1:w7Tb+7qgcAlIyX4NhLuDKt78AHA5SzPmq0Wj6HiEnnk= github.com/templexxx/cpu v0.0.7/go.mod h1:w7Tb+7qgcAlIyX4NhLuDKt78AHA5SzPmq0Wj6HiEnnk= github.com/templexxx/cpu v0.1.0 h1:wVM+WIJP2nYaxVxqgHPD4wGA2aJ9rvrQRV8CvFzNb40= github.com/templexxx/cpu v0.1.0/go.mod h1:w7Tb+7qgcAlIyX4NhLuDKt78AHA5SzPmq0Wj6HiEnnk= github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 h1:89CEmDvlq/F7SJEOqkIdNDGJXrQIhuIx9D2DBXjavSU= github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161/go.mod h1:wM7WEvslTq+iOEAMDLSzhVuOt5BRZ05WirO+b09GHQU= github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b h1:fj5tQ8acgNUr6O8LEplsxDhUIe2573iLkJc+PqnzZTI= github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b/go.mod h1:5XA7W9S6mni3h5uvOC75dA3m9CCCaS83lltmc0ukdi4= github.com/templexxx/xorsimd v0.4.1/go.mod h1:W+ffZz8jJMH2SXwuKu9WhygqBMbFnp14G2fqEr8qaNo= github.com/templexxx/xorsimd v0.4.2 h1:ocZZ+Nvu65LGHmCLZ7OoCtg8Fx8jnHKK37SjvngUoVI= github.com/templexxx/xorsimd v0.4.2/go.mod h1:HgwaPoDREdi6OnULpSfxhzaiiSUY4Fi3JPn1wpt28NI= github.com/tjfoc/gmsm v1.3.2/go.mod h1:HaUcFuY0auTiaHB9MHFGCPx5IaLhTUd2atbCFBQXn9w= github.com/tjfoc/gmsm v1.4.1 h1:aMe1GlZb+0bLjn+cKTPEvvn9oUEBlJitaZiiBwsbgho= github.com/tjfoc/gmsm v1.4.1/go.mod h1:j4INPkHWMrhJb38G+J6W4Tw0AbuN8Thu3PbdVYhVcTE= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xtaci/kcp-go v5.4.20+incompatible h1:TN1uey3Raw0sTz0Fg8GkfM0uH3YwzhnZWQ1bABv5xAg= github.com/xtaci/kcp-go v5.4.20+incompatible/go.mod h1:bN6vIwHQbfHaHtFpEssmWsN45a+AZwO7eyRCmEIbtvE= github.com/xtaci/kcp-go/v5 v5.6.1 h1:Pwn0aoeNSPF9dTS7IgiPXn0HEtaIlVb6y5UKWPsx8bI= github.com/xtaci/kcp-go/v5 v5.6.1/go.mod h1:W3kVPyNYwZ06p79dNwFWQOVFrdcBpDBsdyvK8moQrYo= github.com/xtaci/lossyconn v0.0.0-20190602105132-8df528c0c9ae/go.mod h1:gXtu8J62kEgmN++bm9BVICuT/e8yiLI2KFobd/TRFsE= github.com/xtaci/lossyconn v0.0.0-20200209145036-adba10fffc37 h1:EWU6Pktpas0n8lLQwDsRyZfmkPeRbdgPtW609es+/9E= github.com/xtaci/smux v1.5.15/go.mod h1:OMlQbT5vcgl2gb49mFkYo6SMf+zP3rcjcwQz7ZU7IGY= github.com/xtaci/smux v1.5.24 h1:77emW9dtnOxxOQ5ltR+8BbsX1kzcOxQ5gB+aaV9hXOY= github.com/xtaci/smux v1.5.24/go.mod h1:OMlQbT5vcgl2gb49mFkYo6SMf+zP3rcjcwQz7ZU7IGY= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= gitlab.com/yawning/edwards25519-extra v0.0.0-20231005122941-2149dcafc266 h1:IvjshROr8z24+UCiOe/90cUWt3QDr8Rt+VkUjZsn+i0= gitlab.com/yawning/edwards25519-extra v0.0.0-20231005122941-2149dcafc266/go.mod h1:K/3SQWdJL6udzwInHk1gaYaECYxMp9dDayniPq6gCSo= gitlab.com/yawning/obfs4.git v0.0.0-20231012084234-c3e2d44b1033 h1:UmuE3KA7vwWLvf+BJWPiecxixrsh913zf2EwnY6aGK8= gitlab.com/yawning/obfs4.git v0.0.0-20231012084234-c3e2d44b1033/go.mod h1:hWtv4VopVASgdVvnSbGB1EAC3zO+rHiauEnuNID9wT4= gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib v1.5.0 h1:rzdY78Ox2T+VlXcxGxELF+6VyUXlZBhmRqZu5etLm+c= gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib v1.5.0/go.mod h1:70bhd4JKW/+1HLfm+TMrgHJsUHG4coelMWwiVEJ2gAg= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= golang.org/x/arch v0.0.0-20190909030613-46d78d1859ac/go.mod h1:flIaEI6LNU6xOCD5PaJvn9wGP0agmIOqjrtsKGRguv4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191219195013-becbf705a915/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210317152858-513c2a44f670/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I= golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191126235420-ef20fe5d7933/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201201195509-5d6afe98e0b7/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ= golang.org/x/net v0.13.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200808120158-1030fc2bf1d9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210317225723-c4fcb01b228e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo= golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200425043458-8463f397d07c/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200808161706-5bf02b21f123/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU= gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= riseup-vpn-0.24.5+ds1/gui/000077500000000000000000000000001461742244100151665ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/gui/api.md000066400000000000000000000003041461742244100162560ustar00rootroot00000000000000# how to add an action to the api 1. declare it in `handlers.h` 2. define it in `handlers.cpp` 3. export it in `backend.go` 4. move to `pkg/backend/api.go` and implement what's needed from there riseup-vpn-0.24.5+ds1/gui/assets/000077500000000000000000000000001461742244100164705ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/gui/assets/icon/000077500000000000000000000000001461742244100174205ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/gui/assets/icon/ico/000077500000000000000000000000001461742244100201725ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/gui/assets/icon/ico/black/000077500000000000000000000000001461742244100212465ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/gui/assets/icon/ico/black/vpn_blocked.ico000066400000000000000000000126361461742244100242400ustar00rootroot00000000000000$$ ($H @2/200#&It|wwwwwwwwwwt}%(N40#&It|wwwwwwwwwwwwt}%(N4/#%Ht|wwwwwwwwwwwwwwt}%(N4/#%Ht|wwwwow@E9 8BGpxwwwu}%(N4/#%Ht|wwwwX^ ^ewwwu}%(N5/"%Gt|wwwwOU kswwwu}&)O5/"%Gt|wwwwbj 37kwwwwu}&)O5$'Lt}wwwwu}/ wwwwwu}&)Ot}wwwww=A~nvwwwwws|wwwwwbjcjwwwwwv~wwwwv~4dlwwwwwv~wwww?D emwwwwwvwwwdlPV gowwwwwvwww*-W14ew fnwwwwwvwww=B#&It|wfnwwwwwvwwwwpxwww  ?kswwwwwvwwwwwwww37j!@ nv *-W\ckswwwwwwvwwwwwwwX_9>w0w8;@|emkswwwwwwvwwwwwwwY`;@| >w >;@|emkswwwwwws|wwwwwwwY`;@| >w >;@|emkswwwwwt}&)Ou}wwwwwwY`;@| >w >;@|emkswwwwt}$'L0#&It|wwwwwY`;@| >w >;@|hpnvwwwu}%(N40#&It|wwwwY`;@| >w >;@|w<@|?Dwwwu}%(N40#&It|www/ jr;@| >w ><@|wwwwwu}%(N40#%Ht|wws{oww=A~!@w>BX_wwwwu}&)O40#%Ht|wwwwah.KQwwvwwwwu}&)O40#%Ht|wwwwwwwwwwwwu}&)O50#%Ht|wwwwwwwwwwv~),V502/2?p0000000000000000p?riseup-vpn-0.24.5+ds1/gui/assets/icon/ico/black/vpn_off.ico000066400000000000000000000126361461742244100234070ustar00rootroot00000000000000$$ ($H @?FO___ddd S+++444kkknnn3:+++###6CCC(((EEE"""222x4]]]]]]]]]]]]VVV>>>ddd^^^ddd^^^ddd^^^ddd^^^]]]^^^dddWWW]]]WWW]]]WWW]]]WWWddd^^^ddd^^^ddd^^^]]]]]]]]]]]]]]]WWW]]]WWW]]]WWW]]]WWW]]]WWW]]]WWWGGG|||yyyFFF;;;\\\uuuuuu[[[888(ro&(ZV&?riseup-vpn-0.24.5+ds1/gui/assets/icon/ico/black/vpn_on.ico000066400000000000000000000126361461742244100232510ustar00rootroot00000000000000$$ ($H @?FO=nT@tY S2&exڦxڦj!=.E}_wإxڦxڦxڦxڦx٥Gb3 ^xڦxڦxڦxڦxڦxڦxڦxڦ_:2&lŖxڦxڦxڦxڦxڦxڦxڦxڦxڦxڦmŖ)6+O&D4;lRKhY{fmŖp̜xڦvףp˛p˚eXzKh:jQ$B2(ro&(ZV&?riseup-vpn-0.24.5+ds1/gui/assets/icon/ico/black/vpn_wait_0.ico000066400000000000000000000126361461742244100240200ustar00rootroot00000000000000$$ ($H @?FO(v*| S6:BOOFAF-NOOOOO.3>OOOOOOOO? :6:GOOOOOOOOOOH,/6T[MOOOOOOOOOOOOJ26V]NOOOOOOOOOOOOOOJ*->CNOOOOOOOOOOOOOOOOFx JOOOOOOB,"en$ir0FOOOOOO=4:OO? "%CEDI ]eJOOOOO$ktNTOOO8 %( ),HOOOOL $'BOOO8(wJOOE[c?DOOOOO<OOOO8COOOOO)x7OOOOOOOOO8MOOOOO+.GMOOOOOOOOOL1///3OOOOOOA/6OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOON@?LOOOOOOA???DOOOOOOOOOL$ktOOOOOAIOOOOOOOOOPW BOOOOO,FOOOOOOOOOC 9OOON1FOOOOOOOOOO3 %)SZRY ! FOOOOOOOOOOO8/2C,HOOOOOOOOOOOOL0OU59:> _g8OOOGOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZa4IOOOOOOOOOOOOOOOOOOH3X_ JP't~2;CHJOOJJB:2'r|GM )sp')[W'?riseup-vpn-0.24.5+ds1/gui/assets/icon/ico/black/vpn_wait_1.ico000066400000000000000000000126361461742244100240210ustar00rootroot00000000000000$$ ($H @?FO(v*| S6:BOOFAF-NOOOOO.3>OOOOOOOO? :6:GOOOOOOOOOOH,/6T[MOOOOOOOOOOOOJ26V]NOOOOOOOOOOOOOOJ*->CNOOOOOOOOOOOOOOOOFx JOOOOOOC.%mv't~5KOOOOOO=4:OOOOOECH *zOOOOOO$ktNTOOOOO? "% 4OOOOOOL $'BOOOOI(vIOOE>OO?HOOOO<OOOOO#fo7OOOOOOO7 "FOOOOOOOOMV]OOOOOOO7 "FOOOOOOO@:OOOOOO8 "GOOOO=%mvOV ]e%mv?OOOO+/2 #+.04=OOOO59OOOOOO0MOOOOOOO04OOOOOOOGM+.OOOOOOOOO04OOOOOOO8*}OOOOOOOOOO58OOIOOON0 LOOOOOOOOOOOOO7 %(T[OU  ?OOOOOOOOOOOOOM !(+AOOOOOOOOOOOOOOOM2OV1526V]5MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZa4IOOOOOOOOOOOOOOOOOOH3X_ JP't~2;CHJOOJJB:2'r|GM )sp')[W'?riseup-vpn-0.24.5+ds1/gui/assets/icon/ico/black/vpn_wait_2.ico000066400000000000000000000126361461742244100240220ustar00rootroot00000000000000$$ ($H @?FO(v*| S6:BOOFAF-NOOOOO.3>OOOOOOOO? :6:GOOOOOOOOOOH,/6T[MOOOOOOOOOOOOJ26V]NOOOOOOOOOOOOOOJ*->CNOOOOOOOOOOOOOOOOFx JOOOOOOH@OO- ]e ]e ]e ^f@OO=4:OOOOOHT[HNOO=OOO$ktNTOOOOOANTOO2OOOOL $'BOOOOI(vJOO:?NOOOO<OOOOO!bj7OOOORY4OOOOOOOOOM Y`OOOOOZb9O-0?DOOOOOOOOO?;OOOOOOOO+OOOOOOOOO8EOOOOOOOO5IOOOOOOOO=?OOOOOOOO.MOOOOOOOOK&q{O<7OOOOO?D '*OOOOOOOOOOJP / HNOOOO6)xOOOOOOOOOOAHNOON/ JOOOOOOOOOOO$ktHNOO04 ?OOOOOOOOOOO: HNOO,/BOOOOOOOOOOOO+~/2/2/2/2+OO&q{7NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZa4IOOOOOOOOOOOOOOOOOOH3X_ JP't~2;CHJOOJJB:2'r|GM )sp')[W'?riseup-vpn-0.24.5+ds1/gui/assets/icon/ico/black/vpn_wait_3.ico000066400000000000000000000126361461742244100240230ustar00rootroot00000000000000$$ ($H @?FO(v*| S6:BOOFAF-NOOOOO.3>OOOOOOOO? :6:GOOOOOOOOOOH,/6T[MOOOOOOOOOOOOJ26V]NOOOOO=37MOOOOOOJ*->CNOOOOO= IOOOOOOOFx JOOOOO= #fo2IOOOOOO=4:OOOOOM!ckKOOOOO$ktNTOOOOOOO&q{ (+HOOOOL $'BOOOOLDOO&q{IG\d48NOOOO<OOOOO(wAOO&q{KOO(u~0OOOOOOOOOO"dlOOOEOOON),48OOOOOOOOOC:OOOOOOOO*}MOOOOOOOO;EOOOOOOOO5IOOOOOOOO>>OOOOOOOO.MOOOOOOOOK&oyOOOOOOOOAF*-OOOOOOOOOOIO COO@ AOO(u~*}OOOOOOOOOOB;O9AOO.KOOOOOOOOOOO2),l)\)\)\)\)\)\)\)\)\)\=k6-_)\)\)\)\)\)\)\)\)\)\)\)\6f,^)\)\)\)\)\)\)\)\)\)\)\)\)\)\7g,_)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\@nx7g)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\[4b)\)\)\)\)\)\)\ˮˮ)\)\)\)\)\)\)\)\)\)\)\ϴ)\)\)\)\)\)\)\Ȩ˭)\)\)\)\)\)\)\)\)\)\1bKv)\)\)\)\)\)\Ȩ˭)\)\)\)\)\)\)\)\)\)\[)\)\)\)\)\)\Ȩ˭)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\Ȩ˭)\)\)\)\)\)\)\)\)\)\)\)\)\Ȩ˭)\)\)\)\)\)\)\)\)\)\)\)\ˮˮˮˮ)\)\)\)\)\)\)\)\)\)\)\)\ˮγ)\)\ˮ˭)\)\)\)\)\)\)\)\)\)\)\)\ˮγ)\)\)\)\ˮ˭)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\ˮ˭)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\ˮγ)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\ˮγ)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\ˮγ)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\q;i)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\)\;ju̮z`Ju=k6f)\,_7g8hKvby̰(ro&(ZV&?riseup-vpn-0.24.5+ds1/gui/assets/icon/ico/white/vpn_wait_0.ico000066400000000000000000000126361461742244100240640ustar00rootroot00000000000000$$ ($H @?FO|S1 %r n3> <:! 6   $x 1uj$ B4K ;.(  Q 1 Q ' C Q/ T O gkkk_ 5kX 8: 4:::-  4 2 u$ 0N f$ a$ P0v jO " \ _eH. 1Jd)sp')[W'?riseup-vpn-0.24.5+ds1/gui/assets/icon/ico/white/vpn_wait_1.ico000066400000000000000000000126361461742244100240650ustar00rootroot00000000000000$$ ($H @?FO|S1 %r n3> <:! 6   $x /o[ B4K )~  :\ 1  (? : C S T&  T& 6L P" B: y@ YM i i\ i\ P{ ZQ  i T; 5 e[ \ _eH. 1Jd)sp')[W'?riseup-vpn-0.24.5+ds1/gui/assets/icon/ico/white/vpn_wait_2.ico000066400000000000000000000126361461742244100240660ustar00rootroot00000000000000$$ ($H @?FO|S1 %r n3> <:! 6   $x 9 s6 B4K A  4 c 1  C R \  M <:! 6  A  @ $x Ae B4K   1 * # C 3  i ) .J { G) [ => p  0 93 { 2I M3 n c3 Q fD MH @D  \ _eH. 1Jd)sp')[W'?riseup-vpn-0.24.5+ds1/gui/assets/icon/png/000077500000000000000000000000001461742244100202045ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/gui/assets/icon/png/black/000077500000000000000000000000001461742244100212605ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/gui/assets/icon/png/black/vpn_blocked.png000066400000000000000000000014531461742244100242570ustar00rootroot00000000000000PNG  IHDR$$hsBITO pHYs+tEXtSoftwarewww.inkscape.org< PLTE        ./0489> ? @!@!G%"H%#I&#L'$N(%O)&V,)W-*e41j73k73w>9|@;|@<~A=B=B>D?E@GBQKUOVP^X_X`Yc\e^hajbjcldmenfnfogphrjskskvnvnwoxp{s|s|t}t}u~vvwwz]tRNS/0245aIDAT8˵V@`ņ"VD,X"m-$n\2w;s65RTpȌ;`fJ҇7DݬCYyL7Wb~T>]E+54GZd34Qпx)<J >AvɆv@e(6C ? q(%A ,tD#ܣ2j}D}GR{(W'ћh2ǣ`!QuAD/6a碈m Iެ?XEġs[-u;?jma6qcZe8Sn754^2 ek㍪LbCUlIENDB`riseup-vpn-0.24.5+ds1/gui/assets/icon/png/black/vpn_off.png000066400000000000000000000016771461742244100234360ustar00rootroot00000000000000PNG  IHDR$$hsBITO pHYs+tEXtSoftwarewww.inkscape.org<PLTE """###(((+++222444888;;;>>>CCCEEEFFFGGGVVVWWW[[[\\\]]]^^^___dddkkknnnuuuyyy|||FtRNS&(346:?FOSVZorx⭭<_IDAT8˵GWPA {2,K41bCP"ﯻ$/ 72|漹&ӿlovN reIEQ) ~ &mN%G8?,A%+@~<6!$hR9UA%L|mpdm8rf>v1Z.g$v0mVlO"ĘUENSY@9!}bx5jf1WwqMY$pQ-?S.Ld7Mf8Qj:Rl;SmX88 РWFx0j?!⍏Vڈ M˜(4 kxD DDΰ\6Ngc.1,ZlRY1m2E$a^x6SV,TuɴbCm%եq`5+L.g< ,W8kssF!V,p}RJ4ZRc}5Sz5F \ -uNqNP^{[gd5HFPIENDB`riseup-vpn-0.24.5+ds1/gui/assets/icon/png/black/vpn_wait_0.png000066400000000000000000000024011461742244100240310ustar00rootroot00000000000000PNG  IHDR$$hsBITO pHYs+tEXtSoftwarewww.inkscape.org<LPLTE      ! %" '$ (% )% ,)-*.+/,2/6295:6>:C>D?FAIDMGPJTNUOWPYRZS[T]V_XaZc[e] g_ ne"ri$tk$|r'~t'v(w(x)|*,,-./01122334678889::;<³=Ʒ>ȹ?ɹ?ʺ?̼@ϿAABBCCCDEEFFGGHHHHIJJJLLLMMNNNOOC?TGtRNS')346:?FOSW[psxBIDAT8˵{LQ %{'Jރ`~#!D F%zhADg(%c"ʜ8L= ^ߓҵWбSgLOڻKrBH>$-9l&=sAǀ {FAHCMGPJTNUOVO]V_XaZe] of#tk$vm%|r'~t'v(z*|*}*+-..00223455577889:::;<³=ĵ=Ŷ>Ʒ>ȹ?ɹ?ʺ?ξ@ϿABCCEEFFFGGHHHIIJJKLLMMMNNNOO<GtRNS')346:?FOSW[psxBIDAT8c`:`䗔S6vpw3RcDU/եj@B5ٸg vTEDM˺k;Kݑhhk{QFfIv|@<I}>Ņ@ťgž=VO.=*jtwsObIE۰(QU^^5$՘>滻O:djJ,Cfun p쇫Wd$.ݻv=Kg3o5Hd-\{XP#%]c XtI.8 * XW=jD|QsUM&{ RF`uށV+d+j6$k0f*!'j6fgNaGU5Sy1{l9F2:o.-:؋Ew,`/qwWbYjYۈ+[T܀!EeR0!~aIENDB`riseup-vpn-0.24.5+ds1/gui/assets/icon/png/black/vpn_wait_2.png000066400000000000000000000023311461742244100240350ustar00rootroot00000000000000PNG  IHDR$$hsBITO pHYs+tEXtSoftwarewww.inkscape.org<(PLTE        '$ *' -*/,0-2/4062:6?:C>D?FAMGNHPJTNYR[T]V_X`YaZbZe] f^ jb!tk${q&|r'~t'v(x)|*~++--..//2223456789::;<<³=ô=Ʒ>ȹ?ʺ?˻@ξ@AABBCEFFGHHHIIIJJJKLMMNNNOO҅GtRNS')346:?FOSW[psxBIDAT8˵Wq*N,=lu*K)ن"1(dc6dx.sW `ZR *g f^r^KŇi/gIVz,iKeV>lȵmm~2'@E@zw &fZ^aZy+l 2gP[7Z>k|wIENDB`riseup-vpn-0.24.5+ds1/gui/assets/icon/png/black/vpn_wait_3.png000066400000000000000000000023721461742244100240430ustar00rootroot00000000000000PNG  IHDR$$hsBITO pHYs+tEXtSoftwarewww.inkscape.org<7PLTE        '$ *' +(,)-*/,627384:6A<C>FAMGOIPJTNVO]V_XaZd\kc!ld"of#tk$yo&{q&|r'~t'~u(v(w(|*}*-..0122234589::;;;<<³=ô=ĵ=Ʒ>Ǹ>ȹ?˻@ABBCCDEFFGGHHHIIJJKKLLLMMMMNNNOO}X33d-FN&L6ZU[Y~SsQ'S_%;zI稚-я['Cx-3a\0!݀㑪sKcl'qR͑6%W2nbiC}݇FST5AT); ^R{>Ed5nW-l>* d Ux${MAQ$=eeMD,.i Բ!g$I-ܿpz%IsbUK.39h\[Ÿ]6c_0ktds5ӛ1Gp̢s4dqJl-aw_a^Y{eF$+638HC LH;5,eӵ[Y14l> L4{`ÑAcIENDB`riseup-vpn-0.24.5+ds1/gui/assets/icon/png/white/000077500000000000000000000000001461742244100213245ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/gui/assets/icon/png/white/vpn_blocked.png000066400000000000000000000015011461742244100243150ustar00rootroot00000000000000PNG  IHDR$$hsBITO pHYs+tEXtSoftwarewww.inkscape.org<5PLTEC6D7D8E8G:G;H] P/Pт:HEwpGl 2~ ;&hXdQCZ~[_g!&! ьzGfF2ʦR*yrBl`)33*c Ug{Ari67v䘆qzP{,ވvy Ƨ38h"vP/ShpIENDB`riseup-vpn-0.24.5+ds1/gui/assets/icon/png/white/vpn_off.png000066400000000000000000000016661461742244100235000ustar00rootroot00000000000000PNG  IHDR$$hsBITO pHYs+tEXtSoftwarewww.inkscape.org<zPLTEfffggghhhiiikkkooopppqqqssstttuuuwww}}}?*AFtRNS&(346:?FOSVZorx⭭<\IDAT8˵GWPA {@ Ɔ5,`A翻$/ 72|漹˿lluOy|Xz'V5lv-A@Caf y'lGf6} e<"GWDA n *nA5q6o8a#Ԍ1GzINҸ9i( E!(C>ּcQq+}2T +Po }TREcXѡKy+_]nhf ErVR3f WmWbvRčYBB*6>N {lWniB}R_ L?NIENDB`riseup-vpn-0.24.5+ds1/gui/assets/icon/png/white/vpn_on.png000066400000000000000000000017031461742244100233320ustar00rootroot00000000000000PNG  IHDR$$hsBITO pHYs+tEXtSoftwarewww.inkscape.org<PLTE\)]*]+^,_,_-b1f6f6g7h8i;j;k=l>n@oAuJvK~UW[`bquyzÄȍʓ˔˔̗̕Λϝ׮دٰٲܸ޼ȏFtRNS&(346:?FOSVZorx⭭<WIDAT8GSAE1 sΈ92*T (b\0};Uwљk-V;fl2N*LI(h0f·[erxgwpJYۿD4 &G&C+mD 1*(6 k^|xa3>8/7Nec|P#njL}Vѓ&*/g҉lNR\+ sT\/frN . u'a#3=˂!}#S끐{Ay5JF=1VmIorhNr?7Q}IENDB`riseup-vpn-0.24.5+ds1/gui/assets/icon/png/white/vpn_wait_0.png000066400000000000000000000024011461742244100240750ustar00rootroot00000000000000PNG  IHDR$$hsBITO pHYs+tEXtSoftwarewww.inkscape.org<LPLTE  !"$%'(-./012458:;<>BCHJKNOPQTX\_adefgjknruv|؁؂كلچ܎ݐޔ KGtRNS')346:?FOSW[psxBIDAT8˵[TQAnFEu@k dDVDb ;?sBYWy{gIH+uة3qKK%9!ZtA\f6*o<-w[۾Ty {%E!& ߿wVآ] ؠ}WP ^kWKNI߰ENT-J$) m\$#wZt({Qd<<9BZI1m"g }?XZu!ԟ u+I|Aj5'C2w-ι%Iej=cJϜ.-sFpΏ}#[Dե.͋6' n]v\^i,gQK1IENDB`riseup-vpn-0.24.5+ds1/gui/assets/icon/png/white/vpn_wait_1.png000066400000000000000000000023541461742244100241050ustar00rootroot00000000000000PNG  IHDR$$hsBITO pHYs+tEXtSoftwarewww.inkscape.org<4PLTE  !"$%&()./156:;<>?@BCHJKLMPQSTYZ[\_deinory{|~كلچ܌܎ޓdGtRNS')346:?FOSW[psxBIDAT8˵WWQ+콣Cł% J`l,X^8΋IB&FլuΙη^iYeOp)Y9dŋHeF*ˏ\|{0l 2j-~R,uBwϿܓj3M۾d)#oDZ6k70#.]rhJ/dRgq>jG0*=7ƊkY?l8 gꔾ6?Z7 RIENDB`riseup-vpn-0.24.5+ds1/gui/assets/icon/png/white/vpn_wait_2.png000066400000000000000000000023251461742244100241040ustar00rootroot00000000000000PNG  IHDR$$hsBITO pHYs+tEXtSoftwarewww.inkscape.org<%PLTE  !$%(.123469:<>ABCDHJKMORWZ\_cdelmnprsyz|؁كلچڇ܎ߘ ;2GtRNS')346:?FOSW[psxBIDAT8˵wq{SE+QjŌE=PJh}|>/^sv8{ɟ>j Jy#SF&"w .U`am! &pTpۣv $Ehg\^goA5R{HNGiiSm{5,WV m> L4hNo2_1eP'IENDB`riseup-vpn-0.24.5+ds1/gui/assets/icon/png/white/vpn_wait_3.png000066400000000000000000000023551461742244100241100ustar00rootroot00000000000000PNG  IHDR$$hsBITO pHYs+tEXtSoftwarewww.inkscape.org<+PLTE  !#$%)*.01239<=>@ABCDGHIJKMQ[\_cdefinpr{|؂كلچڇۉ܎ޓߖߗWTGtRNS')346:?FOSW[psxBIDAT8˵Wq*%0ה)$cK5Jc߉ ks9Xye={XssdO/#65>tTV)pV] 4R%O +NNU25qGe.7@W:-ÿS5m.vW#^ o@9:èvSt" z[MI[iz&q[]'hp@ZSvNog}'NTc"( ((h#Jc(bburbrA,bDQ(2(Iq""2!lMr,HbHu)R(HȰb"((AX1`X1`eŐ{>;gI3\(H, b(\(bb),,8r))\ %,r!)]F,)!Zrr,Hr8ru)Xu(b,'2U,9iFYP`ZP9C>k|??^ PNQRPiFP9BG YLZ ZX9H1` LX9@1`ŃA!dH:g(ŠCQLY1@(K$RSCP1@.=698x`eXE1Gfv~W諷nCQH\SX19@ X9H1Ő냔E$p:1`Ń ZqLX1D9@P9BESCLY P`eP9@I RX1`ť1k QdQRP1ŏO,GAS p1e%9`eFq YFYYFP91`eSAS P3?wN]5 2\(pru!),,H-!,u25ė(\rr(bJu-a,)a\٬eX98,-F98#rLRÜ X1` qLQ$R_QߪYS~ X1` TŁ$PLX1`S$QNP9BE ph@  x$P`e9BEQNP1d::e ZH;u,,,-(Xrrr8u-((r\,/O|'>/#}w!J2bc8 5r%ĊJrc))8")$)ߙ̡A\"88,p#ȓXL#ub(bǩ·vnbOH H-K((-F-,2.) Ju!)&_.WC6E@ Lq qDr p9@ .9H9eJ9iLP:Ł!Xwgz}f9נ냮 X1BE  dBE X:  P9@Ő PchPzQx@eS YE`%1s> p`Ŕ@ ŔŐE :9@( e -S/Gϐ ;[~϶?K71e1`P9Hd1@VSX1@ p1BE$RrPxFAy@ǠgGiFP1eGeXee X1`e??vce(H#"\(q -\r(8p2(<]?=zޝO1P9e1BE !p1`~o/W~Oo1Xb,5(b,E΍#,-8 'Hr#8 (2@,8 untK$RYS?rύY^S1dE1` 9@ S YPtid1h11d1YyNyD1e:@Gp1ǗY YLYX@ P1 C$YyFe11:eNLX߷ ݾ3:$s _vw7l"(?|O__ѳ㿯gfۄ(c0r,p2TA,z:4 p1i X1D@ǁXqLp1yyCSX`e:NX`GqyG Ń YLX:Ŕep1`ŁX\Wx>N>Ϸ?J1I_?N}7L85"],"8 zz4E gGx偖P9`epeGNpeX1TeD9`G%Gqx9jE1eP`Gxw/>mFRrBE}wu), 2"ubcbOBzs~bb( (3!!( 9G-(" 'H( c3(Hr , 398((28c((,8-83='?O|oG}{((u(Hr(Bw9f<#XbAP Jcb(ʃ(r##),8 p#K/G庹ƸiDp1`7>3Ȱ2c,#/vcc 2,,#)i@Q 8 #8 KA(uK#( 2c2)$)AP))8#, b( ~}r|?puzĻZX1@.=tp@ǁXdedCSX1`g:Jz9偖QY ZQX P1ŐeGGe^s9G(Np11ąHUp1@끖p1h@8?__[1JkQLpiFRRQ Q=9P P8#c!J2t!, 2#8c2,b8p28#((#AHb(,#2b(ܣ,r2(?}M3(qpmbbf^b28=o<)G,98OH 2( B88],< "<ʜ#8< c4rb8І8⌰".\Hr2.A]F))8 rb֘#2oO\SŬ1`e%1C5 2 #<<#'B,s)'AoxK63z]fd\SmD$!JߵE>%R73aDF o;ؗОcSFv(SKaلuҗ)Ci0Rݩ FIEcЋ' lZ6f-q*_R_^cEƐUjLn#ݍZ_v JSj=Mp .(&Q1Q}ӕrO/Eߺ\SK9}[x։mnTaܼ CHJhkl \ʝ@Ohm*a-5ބmH}J' hVY%)pAjKhxrAhn[ 9*5&)ٟO*cc[ʶoКdx(}۴j@б* ZM;yiZW[m~ahU  MJPbcU"F%z|Q.:܇ gGݶ+\ԃ `fFm͙̫{RM7Mq:a4+o+oky6+p5pm|mj݋xvmΖۄĶ{xmm۷nݸ2o[~-¶W* 0@P`!1"2AqBap?,?煟coh8|J }9J;EU˅Q21垑2g}:sGSDUV[ 1v> $E*`]s#N+HZPˎn1OId0%y)$v?_uY#<҃t8i2icUeUp΋Z@w:u,&{l;?hkE k@NE/*K#^;vm&xM6!> m0"`{;:'4F:~XwO>]k[xYgxYgxYxbGH :…#`#U)!`1 "@AP#02Q?]rfmO Jz\VZɭZqdS x-ŚtVDž4NjFfoUiLBjs{Fq+L._ca=&̀ڵW^S>FSGNڝQBR+NҨAaڄ)ԑu@[#}O&.إZ\@ۿyzcj rP y:kqPEo,jVq拪v򓈹K p'S#_ "1&\X6 JpQQPS{RAaK5sn{UCAtm)ADŽԒ~A!1A"Qap#02`qBPR 34@brs?hPĪm"EY}ܑeA5eM/w!KapVSs)79$SV;朹(NGB7Qf/˒Y( 2N?(-W*0lFκ)rGc=(z5Ћ.DֳrL̐X&,M['ESU5wFΒ JShO127QOcUl|A2`e&ZZv+xio1joҨvWBLژ+cdlĘ%p b N$( a08 -hZcV=C*ލk0:TQHmk(rnɫ9a)M(3njː XеzrhPFmHڲLu=gXzґ^NEXI i|rD(2lQa.ۢısk!c],@$Rg %X6.(K* !10AQa@qP?!!JLBd&BBd&q2LN&̄&gg2a: '08!6q;M }O N&OgPSgBx!2d!9ΡB|NP>LIzMy!2!LM4Nfϊ|МO2lɳA BL6Bl!2S2u;Ng0;Ƈ p|oSLd&BqBs6|'N&M>N։BfL&L!:Gld&M2d|3&͝<\xɰ&q '2s_<!2C>9>!8Lٰ'z&Ρɐ> >gL: 5}ɓB|{1u9lO|&?'6aO6l! &c&M M'Oa6D!1wdq>a2!6!1}!6l&&Na8> 2|P5>&LL d!9N'2l&g: C!=2!2d>If!O 4By 6 d$)97ɓBlӉ!>9Bl&q>/Xů'3! | '3f2q &NfLB!>d!6 Ldl!L$6d!NfB|32q>8N'>NaLdϮM2g_ v&υ99|a)!8 YL!8AY;NfBdɳBɓ><Bc! kDٳΧgB dd٬~b+I~؈&L'|N&L dLx3'66s6|Sa }Aq'pH|]+IAPd!2l>>Yِ98&BB|LL'&v~_?f}ߌD*B98'2 &BB!6!1?w>&M1!2s{b3boڼOܩ{/?DL{2da.N&q2^L2&B2`N'N^ cY2s6gO9 & C?{O Ɍdq3>&L8;Bq>9&! '1PBdNa{6g" 5 d'SLkLM2lɰ2s;O>&g3! 4"d!LCGiV&4B&BaLz 6 ! ײBBl!2Ƹ3N':h [;d!.U"dɳ!9',dL|>0̟;\̓D hh 癐kf}3h'_d!< =6&&Bd5! !B6lُDɐ2! BL!Bw a6cDBdBqN'8 cY6cDq >&&d!AN&cƹ!|YC !6Zy6ZƹcDɓ&Φ̛6|D!6w<=!6l6l&5&N6l ͤ+7{o!>8l&3=ב!>w_ O;BdB2dD&Ac'.Y2olN >$!5 L!9661 d2|c!32d&A{Bl!6l&4Bd' dBy&4פc !O! ̝B2fA&͜2o {PKBx&aA! dƉD IpMSK<F?Ef$O$l퐄!2 4B'0]HM4Na85y|Jɯ!2ME?AVPBu8ɌcD' yBl=|?}7o N ِMhhk!.4M!d '!BlL*CLbN&4A'05a !LdK|Bl&L&A&B\Bd! aBlֈB&Bd58mIy<&Bd =a '2d1*ދa&a~u؄ɓ=q2NfB&dCa6[2lB%&d!9@s{QΡJN'S%ɓ'cXcf2ds6c5r 2'HA!2HBY9<5B BZDLBMq14 v#0O+_G3 I?+fMxƬ_hQa1~>cDBpO'-lٓ&C&zɐ2b!6 9&M^2d&Bq8!5!N߅|1~aXD3t)[i/o#ȍc(J6_ x5ԼBk'BD'y$&A&Bd&B Aa6gy1'ٓf_:@_g@'xO}!$?D%y?Z__xqKXBd&LhϢY2r!1BqAk&l!y1B&Lɍd L%yƿG;~D/ >V2pji/m픑5[0AN30 O&N!2w x&NƢhM哘Lx&Bd! cDɓa8 e^?/6$ Zl$/h'g&c'S I>hɰy RAd B l!B8 bɐ 2l}2'/U'cxgְO/ʋf}&L\̓!Or  B$&BcDB!B5Y51DB!Bٰh[2!Ľ~_DBd=cD?s+}! ̛LrB B O' Z'!6l!OBd!O6'ɭL|NLqe'_> ?Bq1g!5&cC؇j%!AY8&B 2dBcDAL'Bc]}! N&k&A&[q  7O*B M|hC Hh! 6 52221glY8&M '3aLk&LN&L8Ƥߝ<;Բ ޒc&N'5$B!1LdL! 4NY2LBd!vhBdֲsBaM匞uo VfԒDq| !2lƉ֪&4Bd։!BcY62Lk!2qNa<A=>2!k'd!B '2&{'4L^&L!2!!.B!22 & &L|gs!LB!2!Bd!2LjB!Lk%&CJM&2 B A= kFBY4AƲkDɐǐk ƈBbd!LN&BFO$MB y2M B!O $!BrB!1q91 Bq B!BMk&B I8͙A=k p=d&k>4A_&By&L!6d!L!2 1p!8!5x2' B!!< h&L!DBy% 2d!5&Mx86dɐ2dɓf&B!2&I!!C FAB 5 A~ CYBkD!Bh<1 B!2ٓg ̛;!B !B hhLh&= HBd!2!=&B d ĆLB!&Bf1!&BBZ ִL{ DaBy'p8 '3! KٓZɓa B)9&<A8d dƺ<'OfBf!9 ߼B!9! Bdɐ LxƉ&} ~G:4'!LΦB'Bw2'dBq`cٍY /&O_g>gǬ?̃ό|1p !%vEOr8ڪ#B`XXy ^*^"J<Ό:dff?@Ybw.ޖ%VN(Qt*D];Kx^(5Nz,K<ܹn Zb3K O]>M*λ<;>(3羦 ,Yf\=v+-;y8h*U{xUlQN3y(費?"4Wr((<2}q{jʝ҂{zq}~Z;UQq`YK:}ʌcuʴlzWץvbq:\Ï^V,}hLXc?*()\gavKs]%%DeM@XriSM$Q)|= 巊;6"|SYlM7EAm;IYr "6eR)l]d]u~qMo%_C4+%DY~3-N1AC@NY9n{=)u\Nގ?gRՋF4_wk1D+lRyS\鲷?CI\\1$zLtYմMM#/@XdPKࡉYPS􌦎pA;2O9;MQd0GHi23Jy?K*{K)lw^:^ƚi(f'?{ )տWqd1=ޖtМBӟWLGYrՉO|ЏA2~ہ 1['>;V^0{LD})DX,nUn3{t1L2;:y,ZhZ5n ד3-XZ4M/)2 UW䩿K=ۋl]l!eO'U5ɿϟ,S՗lKuM{9b;?tE)M|P׬0Xl^ $PE Վg̮Y@R Ih/<]~U%hVuODZ3A.% |甡\hۡ47GTEuf P: ʾ~_8[9ݡ4t8&eS<PTQu}~wrq~^wwȭ8Ѿ$?3 Y[[ȹ ON1:&3i kY%&EV#!1 AaqQ?{PWB(qz!EC7\E *؊W᭍q_YFYgTv<beYfy\\{7ˏËeXE Bḣl^Sgqe8lC稨NT<XZ\;pF.5>hǁ pVe;S4>Eǥ.tuS74YjY:ɅVqBN:Ph|%gnq48c;=f iaYN6"N9^93,G¦.fdsLt[/KY04l>s,!8٨g(hؔ7fc&%8/>f1|\uقcvWf"lN.ݞiبNˋ,\5~ñQ Gɓ},l,qp,Q} 6k`]n,:,F^ */7(ƢZ0$|Ye}.\1;ʼn˅Ћicm:%S :Y,Elg+.)|~*X衈eft*hBbgOX ň*<(Qys{ŃpnV8#cK˚u3m:/1\Yg>E5B*`TWb]XEBeu4[0Klo[Y6`Ob,%ٸGQ|ln]3;7 e6zcG2Bc5ZYj/{fF E1ɭJflB͙b6(+ |2l.QеEٔTy~Ʋlj6|j.1QeQ!:wCje?AhplEsqe7G#NEeKf rYLe6,Zxe].vd%ŋSw% .~>dy. BvdΣx,y6-dheJ|>&.)c> 鴆2ġpE~ t59JoBv}.{qyYv$2<;6'q3 lA  ♈EKƣ飱\Fv!eB.j.Qer'PRSbMloaGqe m^Ѕ+eYuJ>v/lYPYHCE5iE=] Fˡ(ȋQ! _,Qb38d=Q_./ئ[츸f"Yr"QҗM-Qv=ú<7.ź1 xv=тFb+ hڅؖK)CT зb+6z`J Lإucf[-[ye[,7 .+v-(!ƋN,SfͅVʼCEOq.M=OEPbQt\DY}ElXԣ,TuE6eÌ##x(ء:,nU]C(g%/ӨQc\ư6]śeK/'wg 6#FgČ B0X6'Hq^T'n.`"c8;)\-"Ez#镮 ѲgOV{Ǒ#'b>Bg"e.eБ[n}u:.ٽKY] ّ͉y;*e PWqp^b.wЬxw9X6T,²h#8HѝV-B(Kp*> 6\SCh,Qf<0e:#PNN (+#evX56bGыEX;TYGe!Ŋ6cfhEm 5+ +Je`&thP.&(Gqr=}1QPX+~U5Hj6],e^>p[Tb1w)Q_EE hCLk4#|)ǨyBWҞij8(َvhqhf;Q$΄U(4+)]PeBLf{5eT„2 ;HhGȳ(n>ƣ5R,>fo}VJ(Ѯ >hșəeF(QUb,XQBP$ȖMWر4v8Pφhe OeJ.( %`ymxɹqЎl(~~PдQJ*+2n*hcvh EYX: =T$(tЗ(ȖJ1CqT<1c+UQEf+膊ɋ*e ^α>5Cȅ*&2ت*VЌ8]Ƅ!`ElEV" 2QQQX+P[溊7*T3=#qQ"QfbS)Ph.e [0҆Ee=% t{(B(s/5BsEU1(;+%S*S(UY3VaYO*fQE(IJlTQ]WE 2J-v+(҄LHc( 01!@AQaqP`?#]vVjbP}{q hU.(BTZ.Tg'xy+D=5EbvMTT(>lVjާ 2}\2 >²nՋ_ el`UV5QW  "%kNs<84>oTwUp@+]ut1Y T*Eꪋ+aͪSv WHbYr=YufX:X, 6q &SBQPt Uu_h50` GUQWTQPcUM\\C Ej"00(uc`(57pbroLHa>\"hQ'滧5Vh#9C(Huזp"CЛiꊪnʩ?(_硃\7M!70Hc< ]UZ*OpгPĥ>6>@i@!hɨM@YFZ;ѦF u|&X~ƴН߱ *y!sLY25$h+#=y'V5D,> $wc2}g%e_HcB6t2 mz&;7 *ltkJ ! 7F*I'8yԣ^N D$ٜ4Dž96X)1fk ppŌkѮ">rNcd`!u3IF y*Q`po*25 /W(j쓘hz,4#gД4 vic8%q2U,1; D  eҮc싡(1& 8s|kphm_9_Ȕ) (%z"5=T4XD$F5HƖHEz$'$&Kס%45Wr%ǁJ%Ly?Arv%XteK.^ΒG%)4P_?Dm"j+4j8jȉLA0dcja Bg`k"zixsb菡%_C\5gDIvOh_1 3"U52sC'I,!hX4yd։z'I \4L AORςt:+f[M vM <>IF&Ř5;ٗ"Z#^z%5{D&2%ɷĦ6atOmMCHң`M!J"w"!kBCM$4 N |$8xgfY<|E6<"$doacF"dP[kƼUвxCWOX5"9M]CǒQm*x1)?C&GгFnJHp%j MqDaǁ=n ar6CnIq0<|tSk?5k8#^Hu܉:y{2u ,$y2d aI|& j yhrƠkzFDB#c?*L4Ng'4BWǁ`khk$FKcR&'$0&G3I9 `B;&?aSk Hk==dz]J5!џ\*$ D\2vΈyFl{i{8|MrtJ~ WB6cUeO&- 5 &CM7h<$!A_c.M-zy.^bGnW?3ДcY gcY#d$1ίJKx'G$DkcX\7HGDs5~ rGPp}I p5|xD| $#cQX%M0ƨ{G!G.2ƙ"ױ,lKx42rDzJGΰ84d8D\, ] e<< } M rJǜK&F;kit-W j8C#SF#dq ?65DX|(1DŽǗ&*qgyhx tp v$RF4LѤCO*?hxoDCO UD2f5cX4\ g6]]K QP]NcCF^ycFMO|{xD&t[u 3'硥ɵCC0 %!>UU].H5! N?IF5`klXUcXH2CY?#"#[&!0i A$B[c. bh$+Lh2FFNY% ƾ)ϓ!'Zp2O&LגGxN'%5ؓKv<1fF >ؐƆ'#MjƅC!8xPjQN .k( $ЙY&=1j#DF%K& "W!bt${Fd#D%8GNL^PdD0DǏIA6M Wszy & !LjL_I3169&YbjNt_0x]Ʃ]c^&pVƘp4M2L1硨7Y L_#S4hky1ѪL5,5Cj64ưIkjLcSl{DS&I>#fѨOƏ=p1r5ik60$CU',CDV< M5^H]:45QsѓY+L0E%Ģ[2C=\NґBEQj& G\hvƍldi{J64]y%5Ԇd5K/{]}48G FDEt={LQ`6;zx"{UD%e#$2k<2#yMOMFj}>̈XьEHǟ4GJ֠/O aT5I~t5x%[|]q )MT!#X_S$%F1jsc6r,0 d{k"WtG14H gcUVJ*iM bB$ǥ#B :<5}+'y`tGI%Ʀ_/DEL;DǑӟh2x2Ydk=1Yl?g%< vOVedk.FIDς$~q&JG}j &A\}M NH{C Sf5C iV?Ѿ0OXCSWНd~ƹ(5d\qD(H<66iJ7+ "b!~LL7tBdы5v5cI,]Ѝg{DdgcOf$<916D߃Z ЙD< xxX%Y'v4>t5WF G!'3ƣCbCYiD^wc^LA% <Ѯ,ɾbSf3|AFǚqmvF&*ֆ߁e#kxLh^`NL1`LBzFOȰ>W1Iv4524 |1H1Wc40%1> Ʈ"6D=&zO!d蔋hky:#CCTs)}d\ `k#\ GOTCNa`>z&d6\TLm>tb%^&īh%bY&9~BDF%r,dIMZp%fрTj=@_">ɍ F&1M frt4j"O,QBCW)UI[&<hZhV tŃX/8+ƅ&0-13}~3'ɁysF}d!6K05IHHA/|MJ5̐rGpk|clk)HDCO,X7jHx45tA5c4l[`< 175#&Y&᫁ƿFA#"!*pXy!㱨FdurFbXі tF{x;<*ΘY8<)FnC^ɟO`jeue (} `ko xKc&OHm HK:l ck=a IpL<<#lx<  NMtkb?g< hICɍwXZc$r f|"Sqᡫ#DC솰E#q$?K ׂd9z n,Bb'Iɭ&~|ci"1|kpH4FK;":wѧ/#_" x$zݨqDnm6#C*4 P x UE~ ;ކ" vL ЃX100Qh}c!?\"f<4f 16`P ŖF9lFIgЕp5]ceM`h%&/#Xqjd1-hlr͇Pm`t{cNƨq#Ja!!#??{5OɳC~T#ñ3f\ l=Pu&4ekD| `o:/&L鎌 A3M< N['TeM9W-c\ƶALJ&Y&Dρ#*CGɀܞ[l [J9KңehDKcQ%)h!8x 2N<2^ 7lL`8riLfg<" |DSAU ^&גv$ɂHi*L5F:pMEF36E !ЗPkzeA գGkiN]FHj7|%G5t% U335F=cU3Ta5U NN"M-ؒ\ N9QIЖdk*,3#WWD&%mY"CM#x;|xyx655bSϡOMINFa2V ]*J|lJd $IcКdWN_x\жkf f!A&>| $ؘ%hkD= .jB]{<"e hmdDtk"C aCJ>HX萓䝓JG^kcU4CǗL'&썽<*J&Z:LbdDyW)uQ} R%X dѓk&W#ĺ!8t4'= %ؓOF^DŽ0ѡ-CLHcRDEZőʣX#$ϡ6pZ&Ɠpy K%OwZ$dž2%%_F -"D 9 +ıaeV dletGcэ!< SV8`i ioDޅ>#.t5UGV ǗƞBB8ؖRH; K kIݑv%t4:4xx6 >_'vN v% A_ϑc05ȱICF^̖_bO^Y>G#\)k&'r51B t$2#Sz65xOa 4N]DL{#o#HKWa<|HdƇdƲ<4% 8Lw3D55Y!O'G5ysBD_~ iB f*6McMLnjwCjp5|yX_xQU@O$3=|>SDĖ QGK;$ODl~L/CFF~/F+{HkjgY0DϓcJ9*Ɇ&$I!"NbSܣ4.7cꉸLQ+쓌,$4U xC5{s)A{ 9$^U|`j Z`4 }( 2'F[ג#D-i akɶHzΆ>G._c> sR'j5בX6LCY*<8BO(?yhjfoC :TkaI'#kȕfE45x VᵑbML#\dkXCa'Pyxxݡoz:7 ]1a, Mēfρ 'Ўp/, =- DCYhk=i!t|2cǒJ`%} c$3 FǎE灨Ff jp=(`y -_[rGFs5lii:bjj2)1EgWCPj>~q#h\J2/CS)/#Y ѵ>ƞIUX.Lj%G'cXm!> `uY4y] 8#cYB&Ne$53f;G9BX q%G ؗEJ`4Hبr(qD< FЉ~0i: t (kF4~ѵY\X~DCؘR0V WCQD\Ư?-|S/z gG:^HlCc/sIiƊgCP8\ j:&1["_T9ȟN:5',hfKc5|hk&)ђ}$bUWƏFkcC^ǒ%Dm$D1C)<^25(VF]*kÒZ5)"E!#0+_IðLTDL$Ň M O I|LGȇY'K8W%zD#H5Đ{%e6ycG0m8dI4ѧ^ħE Vys;~<|Ѭ [Ӵ{#C%k$ %<ƶ?0I g8!Q#pc^a9CP2I?㏁H(𦉝t&9X&"dd#5!8fpDFli&g>JAHaobb䉸loF ̲{'D@KmO(٨Kp=i,т\Q4!BMưOOs3#d`xe`sLᑪi;U8aF} X)͈Z2"I];= U Pc6\ cY2!MjݣkTli8$5-?!+p5 > 0%gNE^u4A``{& 5C#FxD `ǂb$IFRM詝\ E힅mrDl‰C#?ciCPѦ1%O'2J6JLk j3FD(q.a;NSL7#"L &S0N 7z?%psj?c#ю78}7LjZ5V]L>d$F=`4[2Gp7ȖߡG!"g$\*RF4 bh'ZPk5FHtr0dk( \<*5rŖ2:}2=& ͒\"N'иp;U CYδ545_5jH8ΰr& B4-Ez>E_I9Zr`Ȟc~ S$Ғ2McLk1O#dP+ؙ GiC[ i&H7$olvdP6$LIPⷮ]%g- ,5ʓ6C5WFpLcSS.o#X-yhM3c c%.01b($b3_cdl?t4cS{CJ~HkD }55$%i`PG;>~F-6q,pOCOC$$6 lK>(Ս"k`=j/RCNƼ:( q>ISNyM#Dr Uyk}I/qzό `u㱤(j.ƴh׊xFJMLQVM?+U3vwv_۩Y^G^44ɥGI5jo(5X[Њ'}w\bCV3bCUѪpI5t[GAs ^08>[~ 1a]$yCW+er5Fa.籥rǞ#J 8H5 g  $kɋ}~tƢcYsXs5CYT&гp<Pl< aR+ѓ0r_4kYz|6A+Jt V )88ɇ'2<< M~%D+d֨XybXȗFT*CZY@wHk'$X']D5֩N fJ<k2~$p8ɠ碲i1h$ɱR3cF WPO"wIpD6`K&L%a|ڎK#kp560BQd}0J:18CY$E&a ,> =9v5!;#{B-o$QIHD~ȘD»Kx5_OdZhE 4dCR9dW6e5V&45y'່ƍj~4e?} (t'G' :$=tlMYJ</4R2$*4=2KN g΄rJǨ:;Ppgg"u䎲25*,%%(5gRĜ`d1FsG<ܕ^Q0eXKS3< xCXKc".~ 2` ƱeJ,:6'ꡬ(](RcSLyNDy%tj66Ax"$i1!CQ1xcYxVdIG 5Fٱo&}VF|M%Ӫz>V4|=<Z`?yMu%!$ndhבqL4G4L$<- |d}(2M<4DY>>DN#x] ٢?PyxoK= 5y]8%xciLl  nO ̏BE fK5s&9ߞƕM6hk}<44]*JȕxJ}Uh[@0I>'a!=4d$5LxsCJ^D 2?5D2DPՏɞX#CM"gIǂpCO< eMAoZl ^;U4&r=Ɲ]HKf1<06&L5u %.d3iX8yd^k F0M d&0E\[47QdIKo#k2,a< % j4`>E+M<'#cʿ#~R.йA@pV5Bռ9ش}m!2׷[/5v{n6":w᳍|(Br,>akδ5c\͍:"\=8a%+ IRj{Jlzd|M gpj6:4~xc$RWlGrd|2R6ިqѵ, З9NK匙x L2%10EHƌXm^+cB qT:5} %|A_Sc<po_ȅ 0xFqB[~̨!Ί\Z5W o1' =!}!):cN1i!2CKcPTCyINeqh%F c[/%4,,,< 4G;= 6E {#̈́>2Eb7둼$CC5*r!-WؕI4=-*!MO\M(J~rIiiN Ug 'Fy^M,bh0} x:"pwyx4^ƕnR)1!3Co*='Zc\gǭZEܭf_w@ɧnxJ+nz4?Q`yce|tD6x'kC'5]o64'|1k֎? fNPqO.GD.54Ƴ8%㒉\c#BX]1t6yXFsؗ)`klXr:ND5b7rega44O3w Iblϯǁ)d!I}= 7zn'lyl:jy])P~ ө?52H[!/#ѥؓ#V!X/x/UF+Ѷ65_ȉL1!1*fz32`%PlBעDř5)K:ҥ 5#|5ÓXP2#Y44skp~ݍO#98U?*TrgcY*= 'c]hxzyOUa*sNI |dX!p=g$Obs3Fʄؕ!#] 'F3@7P7&jGt55]"&2vFE|+YXHrJb-vcԃ^Mj=|C\ |Ljb kǎG#_45p|{"RCy<#\cDW/ g4$##Xݏ:S]}+'m|DbHyXx4ŧ1-:l , 'r$~ϐhdʣJ2F4L5n S&G9HvPhk0Rtk4T>\=ƣURIFI PSM6y(4oƉ號Sk#X75Pt$.i=yx * ѺKeHD+"_-i𾉺%3zuMƱزdğiwmom~МmbH2ZAKVȰU/%kцF5ְD ;+#X2SZFG򇓃O5<]NA6:"o{D0ᚋ$6qsDi$l٩GܙȻ'F$a_B7oG 3yKF+8CH*4x)7U4sjz'S(X#0bV:%YI&ĪqKlK,Ȟ4`ƛSHKJCX!mDOf ,R]dגO Q/EDhU6TJ(RhXlGgmI_>05y 5^1zoG LvWmن U|V[kmρ/zCKsƏpI:KqN_#Z"sFX0R 5$&S &huq_"fs:I2|-1 n*ib%PZ?F`:?Њ jo9'ˣh}$ڄCX Y-ZC՗cY g'nؕL #hh۶i <臓kC IPc( &G6Ɇ(ї:Z 56tX^< );4"._.f-GɎS'\{oR $L Sb-x\$I][9I\FiRTÊI""cQ>} 㴓jzdk>J^Et=L }COߢ94sDz)܍:c aIȿ: .:s# 5jxo#m8d"fY]k}O'0CX\ GZ֟Y.Si_/Up*u+ؓCW&$vh6Yw7/e٬;~#)ӾNL&Ɣ:CVcYMhӼ} \O 9[M#%9C^)(9F ?:mFa٦ȱyi rǺj:}!5"ʲ4iA|FFoGEk*4Nm6+Q ZGN9'i,!rcNb[{| %^%oZ`|;(`N߁4:^6:4suуx&`i|'a^?Rj}fK~ƻ0y"bm#Ft#Y=|=a[=~j!&pHNa7[~x@ZD솸> _$sTbAfOі ]נblh۲&Sm%%vibLKNIf/CGQsɐLס_#Qp5d(4ϡ##z[Ƴ"ZFi|aMJN c5$R*Lѓ{yU83W16v$xρۑȕp&5-m;s4l|较Cۚ8sC][?< hh\סAN͇>|Kр$8\Q)y|rC]>F9CS h2x!IFO""3Hy9sa~GIF"x ϳAƜ|gR'*Q*&IO2:iuQF8cp%0F%a Ҝ4%UW:Lgל a_bUpH<-hc>A+U 4>U4(4HJq+Hq .>{ON/("$t^kL&^ӢUt$*cFFJeF{o1$%ZKҖaO؎]# p"8(4{8W#IlM|{/8X&^ & `ؙm]5.IvF b* #LɑȑF8M3 =0p]Jid':C6*y8NFMrzCQD_~MMDDIi!  oU 1R)߂a< ȉxp5^xq`k (6{G&XJ3nC!]Ƽ+"2$dIyZpݯ)H9?ٵ[ 6ݝ!} d$h"^ 0V'JDQi)p5qY&[y =!Pmfn56*ёǓgX Uq$W""^X=C (.ZDР\o%bp:fXlߓlϑ|ѳ!.|&ƖdhI6:1FSCIXȥʬBodYY`rm}A- Uaz}GFLCxDb-# `kHxr%$v5FǷ<1&Fa&7fTD{Ix#z$`j1_dmAD!QE'F;CFї$]Ol*V5"D1G9FQp>HdΉ|.Jk$Ɛ!|`CM| U&LiD|w`lȍ1cgcC_GJlc 7 5Z4yY&6k]58&"Ccy)hCxB#">zL-.VGa]g\CNF1ЎYࣂ7gѦ-Ԣ9I~ sm[lUcttа]6J8|ɤQQ6d%*}1brݍ):xvCnK+#7j"wO&'F4i ^ɲe.pvUk$ֆ7x% >O'TtIx|p iH$f'`PAn~X| gQ(:hiDgQMͧ|̨ix MYLEe # < 6OL Jfl:)!k RV^:re///Yq P6(4=U /lg'M|hUقcGyC~FǗDlcV`/$63cfFIOTLeb\AH5LoxFLj/r.boGiCq\4-z_b\ߣ% ^ÅH~Kt<kIvcagaLJ͌YEׁ줙M(FcX0{@B(~Či7˘ȑhr*uOLz0{Y1c|4i8C25Vo[dE7CO'`=w#h%1{| =Q%K 2\e8CX2L0<ԘpWU cM5W 3'c,RjhjBd-]NFѐq ˬݣ6K#XF?k$2tSZP3,p4\ U&O#L48kx ~rٔЕ.O'MTExi!kCߒ(͘ԣM5*5Q4ao0I[X5אafZ*PiQf=m-_#~]"f {V8vDm`(j ^>L' K,$?go8aFckMɚϛ3g$=y^F8HY;PnF} L%0·GF%F0d܂ar8l8ɔ49l|_FN虅 M\ֳzB&_%c(=l*4hi\W$GB|p4Ӄd 9FfIv<:CQ9'y p':0bO#W9N^#C 0^ >2 \N M#KН}2"E4Rk,&5L̏ԃOiD5Sq >CCN`rKsJav Yi0ȓ?Qi iM|Epe5>9h,|켾j$oCfh:Fi^q/2M X8A&Fi%j%7+? ;>ƍ6z5&['g=1"g/2N~5?CuJDɊP4Ҝ($AL7+_b3g$Rc9dOL25q&Ў^'clz ccwl?VEx<$ &Y1 [hǢR jDUM GR?iơkE+HwIƆL *]3xY(5~WѤƟ'a(CǃC[!6$WȸEUGBX{%(^GS&_g|?/h&Q(q"'GCN4 >S/n"mt8FGnb 䨢"U1٦D9$ :!rx# d#(:(L >I!&|\kZ<6Fmt/cQXǑndJ --#ÁӼt5B|('Uhi %ofC˱C9:N'y">ӣAj hjo,!!4ȵےERUi`hμ 1'l51*>?6r4!6mЉ4aZ K5¬04LCF#,JA.t4 }𗟃 ێBx-9! u2!1tO%#S3kPHj]cByDfcOcKx?!F91WK&RA3_ҍuZkۣ^-J\R9%N6I9*0,4>;&1&Вdj#dL3/)!V<dyB'\I,~ɚ,:95}m jdD;0khjqH M 9< 䆍tƢDWNbzfrK{f [oM[f Dư>SG5V><ִ5ϑqoIct:9#ҡΆ_&k:' %wFb"MYST;K "9> z$cwh"+< \[ *p}5\2k:dI6d$p;p3Qƈ{jh:k$yj<:hb^ QF:?їU<xɅ+^Z4J WCBGV#8|!ky$WC\p@ٯ/k.93Ƀ1؎I9I `c吔L mQ cFj 4^dD[3;sU {*>ٌ[mo,ρ1Q|!:<k0pd472hp4}$,|Hn!eZ6Kы 5"Lk r) r"O\XuɚFcN>?p>ƆOPLXv="1X|B1X>Pߑ^ `cɤ\h F&6B٠ʣ]d$sʌiC~HiRc%И1;%~0ׂ&#Ill&e#X87ģJ|5=T$צ:KmG$c·a/(c!Lh"WKbM2F$sF?GH v?ІcJMQC= M,Ǖjk14IX'oL+)}_g=z2y[0O5<5[CKqhIBax3~.?WXBi|2G~yCٓr<8d'kDԙ2cn05^Ho#CpIL uPȎ玌nNi˨$y0'<d\0Ɨ ?|6J`J$4ߠEǖ6:Za/4š+$F?0D}4i,%>5IC9a#ς\JϡyLi/Cy oiG2~G\Z DZ<B˦5r4ȶXiA.cF h%~MwWEThCnJ+gq9(-`bgO:&rIFګ]QC#mF=Do F_ma)?ERh"IF3hKs%{CM= 角'RiR7 y*i23HUbx70Tjqdn%L5*`| .>%CTVF8> -C6v4qvC]!|d'B* `M4hy%*JtkșE8KG \ `I'уVc8G!J6LAi&X~lo41YYvma>QY|d9!k|)2TS7l 22`lRYG^<8dmy5dI>ƙ0x{5ix3"ǣq!y=KXhh cCW cEktG|\~ǃlipDUhrZ&vn]'Q7"k/#uCV(4DJn$=ɏ8K#M?= t8fi#Xd{B|5j|(סp0X*y[}\8lLtk5s+]l%M?A2̆Lhj9(K^$BKV*Mpy U (Ӗ$+u7Gif{-D oʶ 4f<(O$s6p ~GTq^Fr%j<%c)Ou!6?ɻ)1`xj,n%Bۺ#)6bM&#p+ō8D2mrQym#V M`ݐ:HшqGMcWj$5l%K%6B&v yjSd̵۝ D848Vaɟ#҃d#9%[FI1״F3a-/ JS.~ ї#䑩lK5 bm.t2 xz)i8G C1Ȋ]VDbkGlc["Iߑ^M  (= erTCWL (<4 M y0D >}iq4Ì)~cCt='?cHp6i;ӌ #&Rw\rbƈuˈMG 3YV <(8<ϱB~"kѢk:":&4‰J'н" g8|cBR'Ŀc6dl"[Z0Tn|!Qo#Ut>M'DU)= `I~DLӨӢ_lk8i\~FmceOӬ,KcYgpy+%'#^ yֆ64b䙃ІSELjkh^hρ6+cDk#l`ƇHJ |ފwDd} 0g#O~I%J<m x1.$H#{;DOR XX=4%!l06mS~  l#]!APtW#G)-}=*Xc^Ʃen#PydklA6L!r.FBSjBYi'_#x"Щa?CD߁y-hir1YFJ768o4$] yvHB_b]Όx`(NM6dJ5m "INHu c5Z S'L"5r:2_ђL$NEXN0Ϩ!>i*U5\;cO ۋ|4l n&a J28u佘b}?ؘG?1(} {i(O,i)w0ga2Wx ke5ƣ"f[XLr'ĄIHNOF0V*>7kOCJdDfI" k 88Jsx2 ȡ?Cc0LfcFAhdDy uk F2zC'٧Hhhʴi5hx7Lȯt2?%DV3 T<7oyQ^cc4I7H ӷf6&W5< im8d3p!jBi ^f3 L^jCGTD|8bpđOCd^L?a~H!]3,#MـgFX8Mn6gbhK4z,5 jy4P"'#!:ɇL]0t6iA$ha80c`:x--'UvKGC0BYsݘDSO%%RN09hpYXiFcS5K26hȑljqPOc35ddg1Xх5+ffNj*'cGkcQ`t|4ckїN3, gǂC'j#4NVH5&)(B>0H< }E줰B#Mz2]id2\tHƮƲ."9~Ik]& 1gaNd)`my "DevLEb4^[`ކ!`X-bh7=FoIHK:=߃a[F>!$ KC,xDM Qj Ljr5'&<iqДi .l58&pF$0Q]$htJ9yDl|:Ys $dc4&FC/P٬#w };3Q9_/#IxW#/cSl4(cdi$x 3{8t8~hkK+Klj6%C}ρAtiׂ(҃Ueh5x p$0 G&\} IބJd&bCY&?/d $5$^1J p0Jh;;CD$!2]`Y2=S Y<0<25az Uё|Lv$Hx"Lk2k|mN6Jqck:x葢^Ƙ_Mኛ_?-ѓHk>mTa|x+T505;g| X-R>ў~RLdH TӦbtc>Gdi+x炧k-\fi&~ 4L a#GxcJrl'uCF#CA ma`IJ "8/c|CXCNDׁ'J#<$Ap<.Ƣ"$GK?k"#M>X61^Gje} yE)p4m`(ѣӞG 5hU}K1ˊ48 E! C'$mӼPj5ؙ bw~;rLa ^:cdƲ!}/H4Lv?cA.GHL q:# >Dt*z=>؅F:}c=dlFy1YCỈv8偷Gd)$ВNߡ;С%5:Y矃M; G÷, ^RiREs:6N9pxid)b*yѿTБ&FI'5jE7G F4 %< /&I^ƗC hmٰZF+'cI*'2l5IL~8uOw 4DΐqX:d"| ?^"c/) "L#~?Xh`uGD]jxg?#Y L1)$^z mc DH~Of1oFQF2<I򖆸ԃ " 8(X5`Sc(.aCʵQh| vk(h)iDٿbqPг&IƸ0|HkUѶ'dko44-Bv4*cJƷ2" 8cThB2dCOg)Q.`k8epz0`S'ઢ&ᧃN!b$"n/Xn@ PƱrȥc 5 erAѧ6Zφ;}Aڨ{CNA }=,:*l&c'%I| dSB`2ɧO< kcA d^L`ab s>pk5g6o#Epy Rg#YC4:Gx O!"|2KbɧCR5[ P"53(dxhk#_%t<DQƟGyiL=#J{(w|3EQĉVp"y#̞ti(z} 6a NMQ31'q3ljiwSg$ȟBU JD5z'% OkyEi.OQOYֆ'd)9Xȑ8iԈy?djz?b]5k;՝{+?j6j &D5 i[Th7hb7=VCRp. !%[)cM;>FK*F+t9D.P걨%6KbXIьph?Dz"05N \9O< WL y2#K 5CWRJ5<:!"D !yh5!q?!d1jϡdmؖG5K ?Iۨ<CAD$lkk: A3Ae4Dlk= `c lDI<| LL !t~ | HQ1Gl*$/c#.Flyx S4# X:{$^攽dNKa~ bitmask/>${APPNAME}/" $RELEASE/$TARGET.app/Contents/Info.plist echo "[+] App is in" $RELEASE/$TARGET else # for MINGWIN or CYGWIN mv $RELEASE/bitmask.exe $RELEASE/$TARGET.exe fi } function buildDefault { echo "[+] Building BitmaskVPN" if [ "$LRELEASE" != "no" ] then $LRELEASE bitmask.pro fi if [ "$BUILD_GOLIB" == "yes" ] then buildGoLib fi buildQmake $MAKE -C $QTBUILD clean $MAKE -C $QTBUILD $MAKEFLAGS all renameOutput echo "[+] Done." } echo "[build.sh] VENDOR_PATH =" ${VENDOR_PATH} for i in "$@" do case $i in --skip-golib) BUILD_GOLIB="no" shift # past argument=value ;; --just-golib) BUILD_GOLIB="just" shift # past argument=value ;; *) # unknown option ;; esac done if [ "$BUILD_GOLIB" == "just" ] then buildGoLib else buildDefault fi riseup-vpn-0.24.5+ds1/gui/components/000077500000000000000000000000001461742244100173535ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/gui/components/About.qml000066400000000000000000000072211461742244100211420ustar00rootroot00000000000000import QtQuick import QtQuick.Controls import QtQuick.Controls.Material import "../themes/themes.js" as Theme ThemedPage { title: qsTr("About") Rectangle { anchors.horizontalCenter: parent.horizontalCenter width: root.appWidth * 0.9 height: root.appHeight - 100 radius: 10 color: "white" anchors { fill: parent margins: 10 } Column { id: aboutCol padding: 20 width: parent.width Text { textFormat: Text.RichText width: parent.width - 40 color: Theme.fontColor font.pixelSize: 12 wrapMode: Label.Wrap text: getText() anchors.horizontalCenter: parent.horizontalCenter onLinkActivated: Qt.openUrlExternally(link) } VerticalSpacer { visible: true height: 10 } Image { id: aboutIcon height: 60 source: customTheme.iconSplash fillMode: Image.PreserveAspectFit anchors.horizontalCenter: parent.horizontalCenter } Rectangle { anchors.top: aboutIcon.bottom width: 100 anchors.horizontalCenter: parent.horizontalCenter TextEdit { width: 100 font.pixelSize: 10 readOnly: true selectByMouse: true text: getVersion() } } VerticalSpacer { visible: true height: 50 } } // end column } // end rectangle function getText() { var _name = ctx ? ctx.appName : "vpn" var _provider = ctx ? ctx.provider : "unknown" var _donateURL = ctx ? ctx.donateURL : "" var _tosURL = ctx ? ctx.tosURL : "…" var _donateTXT = "" if (_donateURL) { //: donation text of the about dialog _donateTXT = qsTr( "

This service is paid for entirely by donations from users like you. Please donate.

").arg(_donateURL) } if (_provider == "Riseup") { // XXX this is a quick workaround. About-us should be parametrized too. _provider = "" + ctx.provider + "" } //: about dialog, screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png //: %1 -> application name //: %2 -> provider name //: %3 -> donation text if activated //: %4 -> terms of service let _txt = qsTr( "

%1 is an easy, fast, and secure VPN service from %2. %1 does not require a user account, keep logs, or track you in any way.

%3

By using this application, you agree to the Terms of Service. This service is provided as-is, without any warranty, and is intended for people who work to make the world a better place.

").arg(_name).arg(_provider).arg(_donateTXT).arg(_tosURL) return _txt } function getVersion() { var _name = ctx ? ctx.appName : "vpn" var _ver = ctx ? ctx.version : "unknown" //: screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png //: %1 -> application name //: %2 -> version string var _txt = qsTr("%1 version: \n%2").arg(_name).arg(_ver) return _txt } } riseup-vpn-0.24.5+ds1/gui/components/BoldLabel.qml000066400000000000000000000005161461742244100217100ustar00rootroot00000000000000import QtQuick import QtQuick.Controls import "../themes/themes.js" as Theme import "../themes" Label { color: "black" font { pixelSize: Theme.fontSize * 1.5 family: boldFontMonserrat.name bold: true } text: parent.text Accessible.name: text Accessible.role: Accessible.StaticText } riseup-vpn-0.24.5+ds1/gui/components/ErrorBox.qml000066400000000000000000000015701461742244100216330ustar00rootroot00000000000000import QtQuick import QtQuick.Controls import QtQuick.Effects import "../themes/themes.js" as Theme Item { id: errorBox width: parent.width property var errorText: "" anchors.horizontalCenter: parent.horizontalCenter anchors.top: connectionImage.bottom // TODO alert icon, by type Rectangle { id: labelWrapper color: "transparent" height: label.paintedHeight + Theme.windowMargin width: parent.width anchors.verticalCenter: parent.verticalCenter Label { id: label width: labelWrapper.width - Theme.windowMargin anchors.centerIn: parent text: errorBox.errorText //+ " " + "" + alertLinkText + "" horizontalAlignment: Text.AlignHCenter wrapMode: Text.Wrap font.pixelSize: Theme.fontSizeSmall } } } riseup-vpn-0.24.5+ds1/gui/components/FadeBehavior.qml000066400000000000000000000041241461742244100224060ustar00rootroot00000000000000/* MIT License Copyright (c) 2020 Pierre-Yves Siret Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ import QtQuick import QtQml Behavior { id: root property QtObject fadeTarget: targetProperty.object property string fadeProperty: "scale" property int fadeDuration: 300 property var fadeValue: 0 property string easingType: "Quad" property alias exitAnimation: exitAnimation property alias enterAnimation: enterAnimation SequentialAnimation { NumberAnimation { id: exitAnimation target: root.fadeTarget property: root.fadeProperty duration: root.fadeDuration to: root.fadeValue easing.type: root.easingType === "Linear" ? Easing.Linear : Easing["In"+root.easingType] } PropertyAction { } NumberAnimation { id: enterAnimation target: root.fadeTarget property: root.fadeProperty duration: root.fadeDuration to: target[property] easing.type: root.easingType === "Linear" ? Easing.Linear : Easing["Out"+root.easingType] } } } riseup-vpn-0.24.5+ds1/gui/components/Footer.qml000066400000000000000000000141441461742244100213300ustar00rootroot00000000000000import QtQuick import QtQuick.Controls import QtQuick.Controls.Material import QtQuick.Layouts import QtQuick.Effects import "../themes/themes.js" as Theme ToolBar { Material.background: customTheme.bgColor Material.foreground: "black" // TODO customize too Material.elevation: 0 visible: isFooterVisible() Item { id: footerRow width: root.width ToolButton { id: gwButton visible: true anchors { verticalCenter: parent.verticalCenter leftMargin: 10 left: parent.left verticalCenterOffset: 5 } icon { width: 20 height: 20 source: stackView.depth > 1 ? "" : "../resources/globe.svg" } HoverHandler { cursorShape: Qt.PointingHandCursor } onClicked: stackView.push("Locations.qml") } Image { id: lightning smooth: true visible: ctx != undefined & root.selectedGateway == "auto" width: 16 source: "../resources/lightning.svg" fillMode: Image.PreserveAspectFit anchors { left: gwButton.right leftMargin: -10 verticalCenterOffset: -6 } } MultiEffect { anchors.fill: lightning source: lightning colorizationColor: getLocationColor() colorization: 1.0 antialiasing: true } Label { id: locationLabel text: locationStr() color: getLocationColor() anchors { left: lightning.right verticalCenter: parent.verticalCenter verticalCenterOffset: 7 } MouseArea { cursorShape: Qt.PointingHandCursor anchors.fill: parent onClicked: stackView.push("Locations.qml") } } Item { Layout.fillWidth: true height: gwButton.implicitHeight } Image { id: bridge smooth: true visible: isBridgeSelected() width: 40 source: "../resources/bridge.svg" fillMode: Image.PreserveAspectFit anchors { verticalCenter: parent.verticalCenter verticalCenterOffset: 5 right: gwQuality.left rightMargin: 10 } } // TODO refactor with SignalIcon // This signal image renders particularly bad at this size. // https://stackoverflow.com/a/23449205/1157664 Image { id: gwQuality source: "../resources/reception-0@24.svg" width: 24 sourceSize.width: 24 smooth: false mipmap: true antialiasing: false anchors { right: parent.right verticalCenter: parent.verticalCenter verticalCenterOffset: 0 topMargin: 5 rightMargin: 20 } } MultiEffect { anchors.fill: gwQuality source: gwQuality colorizationColor: getSignalColor() colorization: 1.0 antialiasing: false } } function getSignalColor() { if (ctx && ctx.status == "on") { return "green" } else { return "black" } } StateGroup { state: ctx ? ctx.status : "off" states: [ State { name: "on" PropertyChanges { target: gwQuality source: "../resources/reception-4@24.svg" } }, State { name: "off" PropertyChanges { target: gwQuality source: "../resources/reception-0@24.svg" } } ] } function locationStr() { if (ctx && ctx.status == "on") { if (ctx.currentLocation && ctx.currentCountry) { let s = ctx.currentLocation + ", " + ctx.currentCountry /* if (root.selectedGateway == "auto") { s = "🗲 " + s } */ return s } } if (root.selectedGateway == "auto") { if (ctx && ctx.locations && ctx.bestLocation) { //return "🗲 " + getCanonicalLocation(ctx.bestLocation) return getCanonicalLocation(ctx.bestLocation) } else { return qsTr("Recommended") } } if (ctx && ctx.locations && ctx.locationLabels) { return getCanonicalLocation(root.selectedGateway) } } // returns the composite of Location, CC function getCanonicalLocation(label) { try { let loc = ctx.locationLabels[label] return loc[0] + ", " + loc[1] } catch(e) { return "unknown" } } function getLocationColor() { if (ctx && ctx.status == "on") { return "black" } else { // TODO darker gray return "gray" } } function hasMultipleGateways() { let provider = getSelectedProvider(providers) if (provider == "riseup") { return true } else { if (!ctx) { return false } return ctx.locations.length > 0 } } function getSelectedProvider(providers) { let obj = JSON.parse(providers.getJson()) return obj['default'] } function isBridgeSelected() { if (ctx && ctx.transport == "obfs4") { return true } else { return false } } function isFooterVisible() { if (drawerOn) { return false } if (stackView.depth > 1) { return false } return true } } riseup-vpn-0.24.5+ds1/gui/components/Header.qml000066400000000000000000000020001461742244100212460ustar00rootroot00000000000000import QtQuick import QtQuick.Controls import QtQuick.Dialogs import QtQuick.Controls.Material import "../themes/themes.js" as Theme ToolBar { visible: stackView.depth > 1 Material.foreground: Material.Black Material.background: customTheme.bgColor Material.elevation: 0 contentHeight: settingsButton.implicitHeight ToolButton { id: settingsButton anchors { left: parent.left // margin needed at least for the Locations panel leftMargin: 5 } font.pixelSize: Qt.application.font.pixelSize * 1.6 icon.source: "../resources/arrow-left.svg" HoverHandler { cursorShape: Qt.PointingHandCursor } onClicked: { if (stackView.depth > 1) { stackView.pop() } else { settingsDrawer.toggle() } } } Label { text: stackView.currentItem.title font.bold: true anchors.centerIn: parent } } riseup-vpn-0.24.5+ds1/gui/components/Help.qml000066400000000000000000000035501461742244100207610ustar00rootroot00000000000000import QtQuick import QtQuick.Controls import "../themes/themes.js" as Theme ThemedPage { title: qsTr("Help") property var issueTracker: "https://0xacab.org/leap/bitmask-vpn/issues" property var uninstall: "https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md" Column { anchors.centerIn: parent spacing: 10 Text { font.pixelSize: 14 textFormat: Text.RichText color: Theme.green anchors.horizontalCenter: parent.horizontalCenter text: getDummyLink(qsTr("Troubleshooting and support")) onLinkActivated: Qt.openUrlExternally(ctx.helpURL) HoverHandler { cursorShape: Qt.PointingHandCursor } } Text { font.pixelSize: 14 textFormat: Text.RichText color: Theme.green anchors.horizontalCenter: parent.horizontalCenter text: getDummyLink(qsTr("Report a bug")) onLinkActivated: Qt.openUrlExternally(issueTracker) HoverHandler { cursorShape: Qt.PointingHandCursor } } Text { font.pixelSize: 14 textFormat: Text.RichText color: Theme.green anchors.horizontalCenter: parent.horizontalCenter text: getDummyLink(qsTr("How to uninstall")) onLinkActivated: Qt.openUrlExternally(uninstall) HoverHandler { cursorShape: Qt.PointingHandCursor } } /* XXX needs implementation in the backend Button { anchors.horizontalCenter: parent.horizontalCenter text: qsTr("Open logs") } */ } function getDummyLink(text) { return "" + text + "" } } riseup-vpn-0.24.5+ds1/gui/components/Home.qml000066400000000000000000000001361461742244100207560ustar00rootroot00000000000000import QtQuick import QtQuick.Controls import QtQuick.Effects Page { StatusBox { } } riseup-vpn-0.24.5+ds1/gui/components/Icon.qml000066400000000000000000000002601461742244100207540ustar00rootroot00000000000000import QtQuick import QtQuick.Layouts import "../themes/themes.js" as Theme Image { sourceSize.height: 24 sourceSize.width: 24 fillMode: Image.PreserveAspectFit } riseup-vpn-0.24.5+ds1/gui/components/InitErrors.qml000066400000000000000000000023341461742244100221700ustar00rootroot00000000000000import QtQuick import QtQuick.Controls import QtQuick.Effects ErrorBox { state: "noerror" states: [ State { name: "noerror" when: root.error == "" PropertyChanges { target: splashProgress visible: true } PropertyChanges { target: splashErrorBox visible: false } }, State { name: "nohelpers" when: root.error == "nohelpers" PropertyChanges { target: splashProgress visible: false } PropertyChanges { target: splashErrorBox errorText: qsTr("Could not find helpers. Please check your installation") visible: true } }, State { name: "nopolkit" when: root.error == "nopolkit" PropertyChanges { target: splashSpinner visible: false } PropertyChanges { target: splashErrorBox errorText: qsTr("Could not find polkit agent.") visible: true } } ] } riseup-vpn-0.24.5+ds1/gui/components/LightLabel.qml000066400000000000000000000006431461742244100221000ustar00rootroot00000000000000import QtQuick import QtQuick.Controls import "../themes/themes.js" as Theme Text { font.pixelSize: Theme.fontSize - 2 font.family: Theme.fontFamily color: Theme.fontColor width: parent.width * 0.80 text: parent.text horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter wrapMode: Text.Wrap Accessible.role: Accessible.StaticText Accessible.name: text } riseup-vpn-0.24.5+ds1/gui/components/Locations.qml000066400000000000000000000266761461742244100220420ustar00rootroot00000000000000import QtQuick import QtQuick.Controls import QtQuick.Layouts import QtQuick.Effects import "../themes/themes.js" as Theme /* TODO [ ] corner case: manual override, not full list yet [x] persist bridges [ ] persist manual selection [ ] display the location we know [ ] corner case: user selects bridges with manual selection (I think the backend should discard any manual selection when selecting bridges... unless the current selection provides the bridge, in which case we can maintain it) */ ThemedPage { id: locationPage title: qsTr("Select Location") // TODO add ScrollIndicator // https://doc.qt.io/qt-5.12//qml-qtquick-controls2-scrollindicator.html //: this is in the radio button for the auto selection property var autoSelectionLabel: qsTr("Automatically use best connection") //: Location Selection: label for radio buttons that selects manually property var manualSelectionLabel: qsTr("Manually select") //: A little display to signal that the clicked gateway is being switched to property var switchingLocationLabel: qsTr("Switching gateway…") //: Subtitle to explain that only bridge locations are shown in the selector property var onlyBridgesWarning: qsTr("Only locations with bridges") property bool switching: false ButtonGroup { id: locsel } Rectangle { id: autoBox width: root.width * 0.90 height: 90 radius: 10 color: "white" anchors { horizontalCenter: parent.horizontalCenter top: parent.top margins: 10 } Rectangle { anchors { fill: parent margins: 10 } Rectangle { id: recommendedHeader height: 20 Label { id: recommendedLabel //: Location Selection: label for radio button that selects automatically text: qsTr("Recommended") font.weight: Font.Bold font.bold: true } Image { id: lightning smooth: true width: 16 source: "../resources/lightning.svg" fillMode: Image.PreserveAspectFit verticalAlignment: Image.AlignVCenter anchors { left: recommendedLabel.right top: parent.top leftMargin: 5 topMargin: 2 //verticalCenterOffset: 3 } } MultiEffect { anchors.fill: lightning source: lightning colorizationColor: "black" colorization: 1.0 antialiasing: true } } WrappedRadioButton { id: autoRadioButton text: getAutoLabel() ButtonGroup.group: locsel checked: false anchors { top: recommendedHeader.bottom leftMargin: -5 } HoverHandler { cursorShape: Qt.PointingHandCursor } onClicked: { root.selectedGateway = "auto" console.debug("Selected gateway: auto") backend.useAutomaticGateway() } } } } Rectangle { id: manualBox visible: root.locationsModel.length > 0 width: root.width * 0.90 radius: 10 color: Theme.fgColor height: getManualBoxHeight() anchors { horizontalCenter: parent.horizontalCenter top: autoBox.bottom margins: 10 } ScrollView { id: frame clip: true anchors.fill: parent ScrollBar.vertical.policy: ScrollBar.AlwaysOff Flickable { id: flickable contentHeight: getManualBoxHeight() width: parent.width ScrollIndicator.vertical: ScrollIndicator { size: 5 contentItem: Rectangle { implicitWidth: 5 implicitHeight: 100 color: "grey" } } Rectangle { anchors { fill: parent margins: 10 } Label { id: manualLabel text: manualSelectionLabel font.bold: true } Label { id: bridgeWarning text: onlyBridgesWarning color: "gray" visible: isBridgeSelected() wrapMode: Text.Wrap font.pixelSize: Theme.fontSize - 3 anchors { topMargin: 5 top: manualLabel.bottom } } ColumnLayout { id: gatewayListColumn width: parent.width spacing: 1 anchors { topMargin: 10 top: getManualAnchor() } Repeater { id: gwManualSelectorList width: parent.width model: root.locationsModel RowLayout { width: parent.width WrappedRadioButton { text: getLocationLabel(modelData) location: modelData ButtonGroup.group: locsel checked: false enabled: locationPage.switching ? false : true HoverHandler { cursorShape: Qt.PointingHandCursor } onClicked: { if (ctx.status == "on") { locationPage.switching = true } root.selectedGateway = location backend.useLocation(location) } } Item { Layout.fillWidth: true } Image { height: 30 width: 30 smooth: true visible: isBridgeSelected() fillMode: Image.PreserveAspectFit source: "../resources/bridge.svg" Layout.alignment: Qt.AlignRight Layout.rightMargin: 10 } SignalIcon { quality: getSignalFor(modelData) Layout.alignment: Qt.AlignRight Layout.rightMargin: 20 } } } } } } //flickable } // scrollview } // manualbox StateGroup { states: [ State { when: locationPage.switching && ctx.status != "on" PropertyChanges { target: manualLabel text: switchingLocationLabel } }, State { when: ctx != undefined && ctx.status == "on" PropertyChanges { target: manualLabel text: manualSelectionLabel } StateChangeScript { script: { locationPage.switching = false } } } ] } function getAutoLabel() { let l = autoSelectionLabel /* There's been some discussion about whether to include this. An argument is that it is not 100% sure that we're going to connect to this "recommended" gateway. However, it's fair to tell the user what's likely to be the recomended location, to make a better choice. ALso, we can implement a warning if finally connecting to a different location. That said, all is made worse by the fact that menshen will not return the "right" location if we're connecting from the vpn, a proxy etc... For that we need to modify menshen to accept a location parameter. Disabling the hint for now, but some agreement needs to be done on android + desktop about this behavior. if (ctx && ctx.locations && ctx.bestLocation) { let best = ctx.locationLabels[ctx.bestLocation] let label = best[0] + ", " + best[1] l += " (" + label + ")" } */ return l } function getLocationLabel(location) { if (!ctx) { return "" } let l = ctx.locationLabels[location] return l[0] + ", " + l[1] } function getManualBoxHeight() { let h = Math.min( root.locationsModel.length * 35, root.appHeight - autoBox.height - 100 ) if (bridgeWarning.visible) { h += bridgeWarning.height } return h + 50 } function getSignalFor(location) { // this is an ad-hoc solution for the no-menshen, riseup case. // when menshen is deployed we'll want to tweak the values for each bucket. let load = ctx.locations[location] switch (true) { case (load > 0.5): return "good" case (load > 0.25): return "medium" default: return "low" } } function getLocationColor() { if (ctx && ctx.status == "on") { return "black" } else { // TODO darker gray return "gray" } } function isBridgeSelected() { if (ctx && ctx.transport == "obfs4") { return true } else { return false } } function getManualAnchor() { if (isBridgeSelected()) { return bridgeWarning.bottom } else { return manualLabel.bottom } } Component.onCompleted: { if (root.selectedGateway == "auto") { autoRadioButton.checked = true } else { let match = false for (var i = 1; i < locsel.buttons.length; i++) { let b = locsel.buttons[i] if (b.location == root.selectedGateway) { match = true b.checked = true } } } } } riseup-vpn-0.24.5+ds1/gui/components/MainView.qml000066400000000000000000000106401461742244100216060ustar00rootroot00000000000000import QtQuick import QtQuick.Controls import QtQuick.Dialogs import QtQuick.Controls.Material import QtQuick.Layouts import "../themes/themes.js" as Theme Page { StackView { id: stackView anchors.fill: parent initialItem: Home {} } NavigationDrawer { id: settingsDrawer Rectangle { anchors.fill: parent color: "white" ListView { focus: true currentIndex: -1 anchors.fill: parent model: navModel delegate: ItemDelegate { width: parent.width text: model.text visible: { if (isDonationService) {return true} return model.text != qsTr("Donate") } highlighted: ListView.isCurrentItem icon.color: "transparent" icon.source: model.icon onClicked: { settingsDrawer.toggle() model.triggered() } } } } } ListModel { id: navModel ListElement { text: qsTr("Preferences") icon: "../resources/tools.svg" triggered: function() { stackView.push("Preferences.qml") } } ListElement { text: qsTr("Donate") icon: "../resources/donate.svg" triggered: function() { Qt.openUrlExternally(ctx.donateURL) } } ListElement { text: qsTr("Help") icon: "../resources/help.svg" triggered: function() { stackView.push("Help.qml") } } // -> can link to another dialog with report bug / support / contribute / FAQ ListElement { text: qsTr("About") icon: "../resources/about.svg" triggered: function() { stackView.push("About.qml") } } ListElement { text: qsTr("Quit") icon: "../resources/quit.svg" triggered: function() { Qt.callLater(backend.quit) } } } // end listmodel header: Header { id: header } footer: Footer { id: footer } Keys.onPressed: { // shortcuts for avid users :) // bug: doesnt work until the stack is pushed once if (event.key == Qt.Key_G && stackView.depth == 1) { console.debug("Open Locations") stackView.push("Locations.qml") } } Dialog { id: donateDialog width: root.appWidth title: qsTr("Please donate!") standardButtons: Dialog.Yes | Dialog.No Text { id: donateText width: 300 wrapMode: Text.Wrap horizontalAlignment: Text.AlignHCenter anchors { topMargin: 20 bottomMargin: 40 horizontalCenter: parent.horizontalCenter } font.pixelSize: 12 text: qsTr("This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now?") } Label { id: donateURL anchors { top: donateText.bottom topMargin: 20 horizontalCenter: parent.horizontalCenter } font.pixelSize: 14 textFormat: Text.RichText text: getLink(ctx) onLinkActivated: Qt.openUrlExternally(ctx.donateURL) } Image { height: 40 source: "../resources/donate.svg" fillMode: Image.PreserveAspectFit anchors { topMargin: 20 top: donateURL.bottom bottomMargin: 50 horizontalCenter: parent.horizontalCenter } } onAccepted: Qt.openUrlExternally(ctx.donateURL) } function getLink(ctx) { if (!ctx) { return "" } let url = ctx.donateURL return "" + url + "" } Component.onCompleted: { root.openDonateDialog.connect(donateDialog.open) } } riseup-vpn-0.24.5+ds1/gui/components/MaterialButton.qml000066400000000000000000000061621461742244100230250ustar00rootroot00000000000000import QtQuick import QtQuick.Templates as T import QtQuick.Controls import QtQuick.Controls.impl import QtQuick.Controls.Material import QtQuick.Controls.Material.impl import "../themes/themes.js" as Theme T.Button { id: control implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, implicitContentWidth + leftPadding + rightPadding) implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, implicitContentHeight + topPadding + bottomPadding) topInset: 6 bottomInset: 6 padding: 12 horizontalPadding: padding - 4 spacing: 6 icon.width: 24 icon.height: 24 icon.color: !enabled ? Material.hintTextColor : flat && highlighted ? Material.accentColor : highlighted ? Material.primaryHighlightedTextColor : Material.foreground Material.elevation: flat ? control.down || control.hovered ? 2 : 0 : control.down ? 8 : 2 Material.background: flat ? "transparent" : undefined contentItem: IconLabel { spacing: control.spacing mirrored: control.mirrored display: control.display icon: control.icon text: control.text font: control.font color: !control.enabled ? control.Material.hintTextColor : control.flat && control.highlighted ? control.Material.accentColor : control.highlighted ? control.Material.primaryHighlightedTextColor : "black" } background: Rectangle { implicitWidth: 68 implicitHeight: control.Material.buttonHeight radius: 4 border.color: "black" border.width: 1 color: !control.enabled ? control.Material.buttonDisabledColor : control.highlighted ? control.Material.highlightedButtonColor : Theme.buttonColor PaddedRectangle { y: parent.height - 4 width: parent.width height: 4 radius: 2 topPadding: -2 clip: true visible: control.checkable && (!control.highlighted || control.flat) color: control.checked && control.enabled ? control.Material.accentColor : control.Material.secondaryTextColor } // The layer is disabled when the button color is transparent so you can do // Material.background: "transparent" and get a proper flat button without needing // to set Material.elevation as well layer.enabled: true // control.enabled && control.Material.buttonColor.a > 0 /* this is trouble in the canned Qt version for snaps, so let's pass for now layer.effect: ElevationEffect { elevation: control.Material.elevation } */ Ripple { clipRadius: 2 width: parent.width height: parent.height pressed: control.pressed anchor: control active: control.down || control.visualFocus || control.hovered color: control.flat && control.highlighted ? control.Material.highlightedRippleColor : control.Material.rippleColor } } } riseup-vpn-0.24.5+ds1/gui/components/MaterialCheckBox.qml000066400000000000000000000070321461742244100232350ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL3$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see http://www.qt.io/terms-conditions. For further ** information use the contact form at http://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 3 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPLv3 included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 3 requirements ** will be met: https://www.gnu.org/licenses/lgpl.html. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 2.0 or later as published by the Free ** Software Foundation and appearing in the file LICENSE.GPL included in ** the packaging of this file. Please review the following information to ** ensure the GNU General Public License version 2.0 requirements will be ** met: http://www.gnu.org/licenses/gpl-2.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick import QtQuick.Templates as T import QtQuick.Controls.Material import QtQuick.Controls.Material.impl T.CheckBox { id: control implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, implicitContentWidth + leftPadding + rightPadding) implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, implicitContentHeight + topPadding + bottomPadding, implicitIndicatorHeight + topPadding + bottomPadding) spacing: 4 padding: 4 verticalPadding: padding + 2 indicator: CheckIndicator { // XXX modified left offset to align with headers x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) - 4 : control.leftPadding + (control.availableWidth - width) / 2 y: control.topPadding + (control.availableHeight - height) / 2 control: control Ripple { x: (parent.width - width) / 2 y: (parent.height - height) / 2 width: 28; height: 28 z: -1 anchor: control pressed: control.pressed active: control.down || control.visualFocus || control.hovered color: control.checked ? control.Material.highlightedRippleColor : control.Material.rippleColor } } contentItem: Text { leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0 rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0 text: control.text font: control.font color: control.enabled ? control.Material.foreground : control.Material.hintTextColor elide: Text.ElideRight verticalAlignment: Text.AlignVCenter } } riseup-vpn-0.24.5+ds1/gui/components/MaterialRadioButton.qml000066400000000000000000000070471461742244100240070ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL3$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see http://www.qt.io/terms-conditions. For further ** information use the contact form at http://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 3 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPLv3 included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 3 requirements ** will be met: https://www.gnu.org/licenses/lgpl.html. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 2.0 or later as published by the Free ** Software Foundation and appearing in the file LICENSE.GPL included in ** the packaging of this file. Please review the following information to ** ensure the GNU General Public License version 2.0 requirements will be ** met: http://www.gnu.org/licenses/gpl-2.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick import QtQuick.Templates as T import QtQuick.Controls.Material import QtQuick.Controls.Material.impl T.RadioButton { id: control implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, implicitContentWidth + leftPadding + rightPadding) implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, implicitContentHeight + topPadding + bottomPadding, implicitIndicatorHeight + topPadding + bottomPadding) spacing: 4 padding: 4 verticalPadding: padding + 2 indicator: MaterialRadioIndicator { // XXX modified left offset to align with headers x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) - 4 : control.leftPadding + (control.availableWidth - width) / 2 y: control.topPadding + (control.availableHeight - height) / 2 control: control Ripple { x: (parent.width - width) / 2 y: (parent.height - height) / 2 width: 18; height: 18 z: -1 anchor: control pressed: control.pressed active: control.down || control.visualFocus || control.hovered color: control.checked ? control.Material.highlightedRippleColor : control.Material.rippleColor } } contentItem: Text { leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0 rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0 text: control.text font: control.font color: control.enabled ? control.Material.foreground : control.Material.hintTextColor elide: Text.ElideRight verticalAlignment: Text.AlignVCenter } } riseup-vpn-0.24.5+ds1/gui/components/MaterialRadioIndicator.qml000066400000000000000000000046471461742244100244530ustar00rootroot00000000000000/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL3$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see http://www.qt.io/terms-conditions. For further ** information use the contact form at http://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 3 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPLv3 included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 3 requirements ** will be met: https://www.gnu.org/licenses/lgpl.html. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 2.0 or later as published by the Free ** Software Foundation and appearing in the file LICENSE.GPL included in ** the packaging of this file. Please review the following information to ** ensure the GNU General Public License version 2.0 requirements will be ** met: http://www.gnu.org/licenses/gpl-2.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick import QtQuick.Controls.Material import QtQuick.Controls.Material.impl Rectangle { id: indicator implicitWidth: 18 implicitHeight: 18 radius: width / 2 border.width: 2 border.color: !control.enabled ? control.Material.hintTextColor : control.checked || control.down ? control.Material.accentColor : control.Material.secondaryTextColor color: "transparent" property Item control Rectangle { x: (parent.width - width) / 2 y: (parent.height - height) / 2 // XXX overridden size width: 8 height: 8 radius: width / 2 color: parent.border.color visible: indicator.control.checked || indicator.control.down } } riseup-vpn-0.24.5+ds1/gui/components/MotdBox.qml000066400000000000000000000027301461742244100214440ustar00rootroot00000000000000import QtQuick import QtQuick.Controls import QtQuick.Effects import "../themes/themes.js" as Theme Item { id: motdBox width: parent.width property var motdText: "" property var motdLink: "" property var url: "" anchors.horizontalCenter: parent.horizontalCenter Rectangle { id: labelWrapper color: "transparent" height: label.paintedHeight + Theme.windowMargin width: parent.width anchors.verticalCenter: parent.verticalCenter Label { id: label width: labelWrapper.width - Theme.windowMargin anchors.centerIn: parent text: motdBox.motdText horizontalAlignment: Text.AlignHCenter wrapMode: Text.Wrap font.pixelSize: Theme.fontSizeSmall - 2 onLinkActivated: Qt.openUrlExternally(link) HoverHandler { cursorShape: Qt.PointingHandCursor } } Label { id: link color: Theme.green width: labelWrapper.width - Theme.windowMargin anchors.top: label.bottom anchors.topMargin: 10 text: motdBox.motdLink horizontalAlignment: Text.AlignHCenter wrapMode: Label.Wrap font.pixelSize: Theme.fontSizeSmall onLinkActivated: Qt.openUrlExternally(link) HoverHandler { cursorShape: Qt.PointingHandCursor } } } } riseup-vpn-0.24.5+ds1/gui/components/NavigationDrawer.qml000066400000000000000000000121041461742244100233300ustar00rootroot00000000000000// (c) Evgenij Legotskoj https://evileg.com/en/post/192/ // a reimplementation of Drawer to workaround a problem with overlays // in the Qt version packaged with the snaps. import QtQuick import QtQuick.Window Rectangle { id: panel function show() { open = true; drawerOn = true; } function hide() { open = false; drawerOn = false; } function toggle() { open = open ? false : true; drawerOn = open; } property bool open: false property int position: Qt.LeftEdge readonly property bool _rightEdge: position === Qt.RightEdge readonly property int _closeX: _rightEdge ? _rootItem.width : - panel.width readonly property int _openX: _rightEdge ? _rootItem.width - width : 0 readonly property int _minimumX: _rightEdge ? _rootItem.width - panel.width : -panel.width readonly property int _maximumX: _rightEdge ? _rootItem.width : 0 readonly property int _pullThreshold: panel.width/2 readonly property int _slideDuration: 260 readonly property int _openMarginSize: 20 property real _velocity: 0 property real _oldMouseX: -1 property Item _rootItem: parent on_RightEdgeChanged: _setupAnchors() onOpenChanged: completeSlideDirection() width: Math.min(root.width, root.height) / 3 * 2 height: root.height x: _closeX z: 10 function _setupAnchors() { _rootItem = parent; shadow.anchors.right = undefined; shadow.anchors.left = undefined; mouse.anchors.left = undefined; mouse.anchors.right = undefined; if (_rightEdge) { mouse.anchors.right = mouse.parent.right; shadow.anchors.right = panel.left; } else { mouse.anchors.left = mouse.parent.left; shadow.anchors.left = panel.right; } slideAnimation.enabled = false; panel.x = _rightEdge ? _rootItem.width : - panel.width; slideAnimation.enabled = true; } function completeSlideDirection() { if (open) { panel.x = _openX; } else { panel.x = _closeX; Qt.inputMethod.hide(); } } function handleRelease() { var velocityThreshold = 5 if ((_rightEdge && _velocity > velocityThreshold) || (!_rightEdge && _velocity < -velocityThreshold)) { panel.open = false; completeSlideDirection() } else if ((_rightEdge && _velocity < -velocityThreshold) || (!_rightEdge && _velocity > velocityThreshold)) { panel.open = true; completeSlideDirection() } else if ((_rightEdge && panel.x < _openX + _pullThreshold) || (!_rightEdge && panel.x > _openX - _pullThreshold) ) { panel.open = true; panel.x = _openX; } else { panel.open = false; panel.x = _closeX; } } function handleClick(mouse) { if ((_rightEdge && mouse.x < panel.x ) || mouse.x > panel.width) { open = false; drawerOn = false; } } onPositionChanged: { if (!(position === Qt.RightEdge || position === Qt.LeftEdge )) { console.warn("SlidePanel: Unsupported position.") } } Behavior on x { id: slideAnimation enabled: !mouse.drag.active NumberAnimation { duration: _slideDuration easing.type: Easing.OutCubic } } NumberAnimation on x { id: holdAnimation to: _closeX + (_openMarginSize * (_rightEdge ? -1 : 1)) running : false easing.type: Easing.OutCubic duration: 200 } MouseArea { id: mouse parent: _rootItem y: _rootItem.y width: open ? _rootItem.width : _openMarginSize height: _rootItem.height onPressed: if (!open) holdAnimation.restart(); onClicked: handleClick(mouse) drag.target: panel drag.minimumX: _minimumX drag.maximumX: _maximumX drag.axis: Qt.Horizontal drag.onActiveChanged: if (active) holdAnimation.stop() onReleased: handleRelease() z: open ? 1 : 0 onMouseXChanged: { _velocity = (mouse.x - _oldMouseX); _oldMouseX = mouse.x; } } Rectangle { id: backgroundBlackout parent: _rootItem anchors.fill: parent opacity: 0.5 * Math.min(1, Math.abs(panel.x - _closeX) / _rootItem.width/2) color: "black" } Item { id: shadow anchors.left: panel.right anchors.leftMargin: _rightEdge ? 0 : 10 height: parent.height Rectangle { height: 10 width: panel.height rotation: 90 opacity: Math.min(1, Math.abs(panel.x - _closeX)/ _openMarginSize) transformOrigin: Item.TopLeft gradient: Gradient{ GradientStop { position: _rightEdge ? 1 : 0 ; color: "#00000000"} GradientStop { position: _rightEdge ? 0 : 1 ; color: "#2c000000"} } } } } riseup-vpn-0.24.5+ds1/gui/components/Preferences.qml000066400000000000000000000250621461742244100223340ustar00rootroot00000000000000import QtQuick import QtQuick.Controls import QtQuick.Layouts import QtQuick.Controls.Material import QtQuick.Effects import QtCore import "../themes/themes.js" as Theme ThemedPage { title: qsTr("Preferences") Settings { id: settings property string locale: locale } ScrollView { clip: true anchors { fill: parent } Rectangle { implicitHeight: getBoxHeight() + 20 implicitWidth: root.appWidth width: root.appWidth * 0.80 // FIXME - just the needed height height: getBoxHeight() radius: 10 color: "white" anchors { // fill: parent right: parent.right left: parent.left top: parent.top margins: 10 } ColumnLayout { id: prefCol width: root.appWidth * 0.80 Rectangle { id: turnOffWarning visible: false height: turnOffWarningMsg.height width: parent.width color: "white" Label { id: turnOffWarningMsg color: "red" text: qsTr("Turn off the VPN to make changes") width: prefCol.width wrapMode: Text.WordWrap } Layout.topMargin: 10 Layout.leftMargin: 10 Layout.rightMargin: 10 } RowLayout { Layout.topMargin: 10 Layout.leftMargin: 10 Layout.rightMargin: 10 Label { id: languageLabel text: qsTr("Language") font.bold: true } Icon { id: languageIcon sourceSize.height: 20 sourceSize.width: 20 source: "../resources/language.svg" } } ComboBox { id: languageComboBox Layout.leftMargin: 10 Layout.rightMargin: 10 Layout.preferredWidth: 240 model: locales textRole: 'name' valueRole: 'locale' Material.elevation: 0 Component.onCompleted: { currentIndex = indexOfValue(settings.locale) } onActivated: { backend.setLocale(currentValue) stackView.pop("Preferences.qml") } } Label { id: circumLabel text: qsTr("Censorship circumvention") font.bold: true Layout.topMargin: 10 Layout.leftMargin: 10 Layout.rightMargin: 10 } Label { text: qsTr("These techniques can bypass censorship, but are slower. Use them only when needed.") color: Material.foreground visible: true wrapMode: Text.Wrap font.pixelSize: Theme.fontSize - 3 Layout.leftMargin: 10 Layout.rightMargin: 10 Layout.preferredWidth: 240 } MaterialCheckBox { id: useBridgesCheckBox enabled: areBridgesAvailable() checked: false text: qsTr("Use obfs4 bridges") // TODO refactor - this sets wrapMode on checkbox contentItem: Label { text: useBridgesCheckBox.text font: useBridgesCheckBox.font horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter leftPadding: useBridgesCheckBox.indicator.width + useBridgesCheckBox.spacing wrapMode: Label.Wrap } Layout.leftMargin: 10 Layout.rightMargin: 10 HoverHandler { cursorShape: Qt.PointingHandCursor } onClicked: { // TODO there's a corner case that needs to be dealt with in the backend, // if an user has a manual location selected and switches to bridges: // we need to fallback to "auto" selection if such location does not // offer bridges useBridges(checked) useUDP.enabled = !checked } } Label { text: qsTr("Traffic is obfuscated to bypass blocks") color: useBridgesCheckBox.enabled ? Material.foreground : Material.hintTextColor visible: true wrapMode: Text.Wrap font.pixelSize: Theme.fontSize - 5 Layout.leftMargin: 36 Layout.rightMargin: 15 Layout.bottomMargin: 5 Layout.topMargin: -5 Layout.preferredWidth: 220 } MaterialCheckBox { id: useSnowflake text: qsTr("Use Snowflake") enabled: false checked: false HoverHandler { cursorShape: Qt.PointingHandCursor } Layout.leftMargin: 10 Layout.rightMargin: 10 Layout.preferredWidth: 240 onClicked: { doUseSnowflake(checked) } } Label { text: qsTr("Snowflake needs Tor installed in your system") color: useSnowflake.enabled ? Material.foreground : Material.hintTextColor visible: true wrapMode: Text.Wrap font.pixelSize: Theme.fontSize - 5 Layout.leftMargin: 36 Layout.rightMargin: 15 Layout.bottomMargin: 5 Layout.topMargin: -5 Layout.preferredWidth: 220 } Label { text: qsTr("Transport") font.bold: true Layout.leftMargin: 10 Layout.rightMargin: 10 Layout.topMargin: 8 } Label { text: qsTr("UDP can make the VPN faster. It might be blocked on some networks.") width: parent.width color: Material.foreground visible: true wrapMode: Text.Wrap font.pixelSize: Theme.fontSize - 3 Layout.leftMargin: 10 Layout.rightMargin: 10 Layout.preferredWidth: 240 } MaterialCheckBox { id: useUDP text: qsTr("Use UDP if available") enabled: false checked: false Layout.leftMargin: 10 Layout.rightMargin: 10 HoverHandler { cursorShape: Qt.PointingHandCursor } onClicked: { doUseUDP(checked) useBridgesCheckBox.enabled = areBridgesAvailable() } } } } } StateGroup { state: ctx ? ctx.status : "off" states: [ State { name: "on" PropertyChanges { target: turnOffWarning visible: true } PropertyChanges { target: useBridgesCheckBox enabled: false } PropertyChanges { target: useUDP enabled: false } }, State { name: "starting" PropertyChanges { target: turnOffWarning visible: true } PropertyChanges { target: useBridgesCheckBox enabled: false } PropertyChanges { target: useUDP enabled: false } }, State { name: "off" PropertyChanges { target: turnOffWarning visible: false } PropertyChanges { target: useBridgesCheckBox enabled: true } PropertyChanges { target: useUDP enabled: true } } ] } function areBridgesAvailable() { // FIXME check if provider offers it let providerSupport = true return providerSupport && !useUDP.checked } function useBridges(value) { if (value == true) { backend.setTransport("obfs4") } else { backend.setTransport("openvpn") } } function doUseUDP(value) { backend.setUDP(value) } function doUseSnowflake(value) { backend.setSnowflake(value) } function getBoxHeight() { return prefCol.height + 15 } Component.onCompleted: { if (ctx && ctx.offersUdp == "false") { useUDP.enabled = false } if (ctx && ctx.offersUdp && ctx.udp == "true") { useUDP.checked = true } if (ctx && ctx.transport == "obfs4") { useBridgesCheckBox.checked = true useUDP.enabled = false } // disabled for now, will be on next release /* if (ctx && ctx.hasTor == "true") { useSnowflake.enabled = true } if (ctx && ctx.hasTor && ctx.snowflake == "true") { useSnowflake.checked = true } */ } } riseup-vpn-0.24.5+ds1/gui/components/SignalIcon.qml000066400000000000000000000031251461742244100221150ustar00rootroot00000000000000import QtQuick import QtQuick.Controls import QtQuick.Layouts import QtQuick.Effects import "../themes/themes.js" as Theme Item { id: signalIcons property var quality: "good" Image { id: icon height: 16 width: 16 // one of: good, medium, low StateGroup { state: quality states: [ State { name: "good" PropertyChanges { target: icon source: "../resources/reception-4.svg" } }, State { name: "medium" PropertyChanges { target: icon source: "../resources/reception-2.svg" } }, State { name: "low" PropertyChanges { target: icon source: "../resources/reception-0.svg" } } ] } } MultiEffect { anchors.fill: icon source: icon colorizationColor: getQualityColor() colorization: 1.0 antialiasing: true } function getQualityColor() { // I like this better than with states switch (quality) { case "good": return Theme.signalGood case "medium": return Theme.signalMedium case "low": return Theme.signalLow default: return Theme.signalGood } } } riseup-vpn-0.24.5+ds1/gui/components/Splash.qml000066400000000000000000000150631461742244100213250ustar00rootroot00000000000000import QtQuick import QtQuick.Controls import QtQuick.Effects import "../themes/themes.js" as Theme Page { id: splash property int timeoutInterval: qmlDebug ? 600 : 1600 property alias errors: splashErrorBox ToolButton { id: closeButton visible: false anchors { right: parent.right //rightMargin: -10 } icon.source: "../resources/close.svg" HoverHandler { cursorShape: Qt.PointingHandCursor } onClicked: { loader.source = "components/MainView.qml" } } Column { width: parent.width * 0.8 anchors.horizontalCenter: parent.horizontalCenter anchors.topMargin: 24 MotdBox { id: motd visible: false anchors { top: parent.top topMargin: 100 bottomMargin: 30 } } VerticalSpacer { id: motdSpacer visible: false height: 100 } VerticalSpacer { id: upperSpacer visible: true height: root.height * 0.25 } Image { id: connectionImage height: 180 width: parent.width anchors.horizontalCenter: parent.horizontalCenter source: customTheme.iconSplash fillMode: Image.PreserveAspectFit } VerticalSpacer { id: middleSpacer visible: true height: root.height * 0.05 } ProgressBar { id: splashProgress width: appWidth * 0.8 - 60 indeterminate: true anchors.horizontalCenter: parent.horizontalCenter } InitErrors { id: splashErrorBox } } // end Column Image { id: motdImage visible: false height: 100 anchors.horizontalCenter: parent.horizontalCenter anchors.bottom: parent.bottom anchors.bottomMargin: 50 source: customTheme.iconSplash fillMode: Image.PreserveAspectFit } Timer { id: splashTimer } function hasMotd() { return needsUpgrade() || (ctx && !isEmptyMotd(ctx.motd)) } function getUpgradeText() { return qsTr("There is a newer version available. ") + qsTr("Make sure to uninstall the previous one before running the new installer.") } function getUpgradeLink() { return "" + qsTr("UPGRADE NOW") + ""; } function getLinkURL() { return "https://downloads.leap.se/RiseupVPN/" + Qt.platform.os + "/" } function needsUpgrade() { if (ctx && isTrue(ctx.canUpgrade)) { if (qmlDebug) { return true } let platform = Qt.platform.os //DEBUG ------------------------------------------------------------------- //if (platform == "windows" || platform == "osx" || platform == "linux" ) { //DEBUG ------------------------------------------------------------------- if (platform == "windows" || platform == "osx") { return true } } return false } function showMotd() { // XXX this is not picking locales configured by LANG or LC_ALL // Need to fix this; probably also with allowing to select translation // manually on runtime. let isUpgrade = false let lang = Qt.locale().name.substring(0,2) let messages = JSON.parse(ctx.motd) let platform = Qt.platform.os let textEn = "" let textLocale = "" let link = "" if (needsUpgrade()) { isUpgrade = true; textLocale = getUpgradeText(); link = getUpgradeLink(); } else { // TODO fallback in case upgrade has no text console.debug("configured locale: " + lang) console.debug("platform: " + Qt.platform.os) for (let i=0; i < messages.length; i++) { let m = messages[i] if (m.platform == "all" || m.platform == platform) { for (let k=0; k < m.text.length; k++) { if (m.text[k].lang == lang) { textLocale = m.text[k].str break } else if (m.text[k].lang == "en") { textEn = m.text[k].str } } break } } } if (isUpgrade) { upperSpacer.height = 100 } else { // TODO get proportional to textLocale/textEn upperSpacer.height = 50 } //connectionImage.height = 100 connectionImage.visible = false motdImage.visible = true middleSpacer.visible = false splashProgress.visible = false motd.visible = true motdSpacer.visible = true motd.motdText = textLocale ? textLocale : textEn motd.motdLink = link motd.url = getLinkURL() // FIXME if no text, just skip to main view closeButton.visible = true } function delay(delayTime, cb) { splashTimer.interval = delayTime splashTimer.repeat = true splashTimer.triggered.connect(cb) splashTimer.start() } function loadMainViewWhenReady() { if (!isEmpty(root.error)) { return } if (ctx && isTrue(ctx.isReady) || qmlDebug) { splashTimer.stop() if (hasMotd()) { console.debug("show motd"); showMotd(); } else { loader.source = "components/MainView.qml" } } else { if (!splashTimer.running) { console.debug('delay...') delay(500, loadMainViewWhenReady) } } } Timer { interval: timeoutInterval running: true repeat: false onTriggered: { loadMainViewWhenReady() } } Component.onCompleted: { } function isTrue(val) { return val == "true"; } function isEmpty(val) { return val==undefined ? true : val.length == 0; } function isEmptyMotd(motd) { let m = JSON.parse(motd) let first = m[0] if (first == undefined) { return true } return isEmpty(first.text) } } riseup-vpn-0.24.5+ds1/gui/components/StatusBox.qml000066400000000000000000000120521461742244100220220ustar00rootroot00000000000000import QtQuick import QtQuick.Controls import QtQuick.Effects import QtQuick.Layouts import QtQuick.Templates as T import QtQuick.Controls.impl import QtQuick.Controls.Material import QtQuick.Controls.Material.impl import "../themes/themes.js" as Theme Item { id: statusbox anchors.fill: parent VPNState { id: vpn } Rectangle { color: customTheme.bgColor anchors.fill: parent } Rectangle { id: statusBoxBackground color: customTheme.fgColor height: 300 radius: 10 antialiasing: true anchors { fill: parent margins: 20 bottomMargin: 30 } border { color: Theme.accentOff width: 4 } } ToolButton { id: settingsButton objectName: "settingsButton" font.pixelSize: Qt.application.font.pixelSize * 1.6 opacity: 1 anchors { top: parent.top left: parent.left topMargin: Theme.windowMargin + 5 leftMargin: Theme.windowMargin + 5 } HoverHandler { cursorShape: Qt.PointingHandCursor } onClicked: { settingsDrawer.toggle() } Icon { id: settingsImage width: 16 height: 16 anchors.centerIn: settingsButton source: "../resources/gear-fill.svg" } } Rectangle { id: statusLabelWrapper height: 45 anchors { top: statusBoxBackground.top topMargin: 25 horizontalCenter: parent.horizontalCenter } BoldLabel { id: connectionState anchors.top: parent.top anchors.horizontalCenter: parent.horizontalCenter horizontalAlignment: Text.AlignHCenter FadeBehavior on text { } } Label { id: snowflakeTip anchors.top: connectionState.bottom anchors.horizontalCenter: parent.horizontalCenter anchors.topMargin: 20 horizontalAlignment: Text.AlignHCenter text: qsTr("This can take several minutes") font.pixelSize: Theme.fontSize * 0.8 visible: isSnowflakeOn() } ProgressBar { id: snowflakeProgressBar anchors.top: snowflakeTip.bottom anchors.horizontalCenter: parent.horizontalCenter visible: isSnowflakeOn() value: 0 } Label { id: snowflakeTag anchors.top: snowflakeProgressBar.bottom anchors.horizontalCenter: parent.horizontalCenter horizontalAlignment: Text.AlignHCenter visible: isSnowflakeOn() } } Column { id: col width: parent.width * 0.8 anchors.horizontalCenter: parent.horizontalCenter VerticalSpacer { id: spacerPreImg visible: true height: 120 } // TODO this can be synced with opacity serial animation, see // https://doc.qt.io/qt-5/qml-qtquick-animatedimage.html#example-usage // If you want to customize your asset, here's how: // convert -delay 50 -loop 0 ravens2_*.png ravens.gif AnimatedImage { id: connectionImage height: 160 width: parent.width speed: 0.8 source: customTheme.iconOff anchors.horizontalCenter: parent.horizontalCenter fillMode: Image.PreserveAspectFit OpacityAnimator on opacity{ id: fadeIn from: 0.5; to: 1; duration: 1000 } onStatusChanged: { playing = (status == AnimatedImage.Ready) fadeIn.start() } } VerticalSpacer { id: spacerPostImg visible: true height: 20 Layout.alignment: Qt.AlignBottom } MaterialButton { id: toggleVPN // FIXME - this is a workaround. It will BREAK with i18n width: 100 spacing: 8 anchors.horizontalCenter: parent.horizontalCenter Layout.alignment: Qt.AlignBottom font { pixelSize: Theme.buttonFontSize capitalization: Font.Capitalize family: lightFont.name bold: false } HoverHandler { cursorShape: Qt.PointingHandCursor } onClicked: { if (vpn.state === "on" | vpn.state === "starting") { backend.switchOff() } else if (vpn.state === "off") { vpn.startingUI = true backend.switchOn() } else { console.debug("unknown state") } } } } function isSnowflakeOn() { return ctx != undefined && ctx.snowflake == "true" && ctx.snowflakeProgress != "100" } } riseup-vpn-0.24.5+ds1/gui/components/Style.qml000066400000000000000000000004311461742244100211640ustar00rootroot00000000000000import "themes.js" as Theme Item { property alias fontFoo: fontFooLoader.name readonly property color colourBlackground: "#efefef" // TODO use theme.background FontLoader { id: fontFooLoader source: "qrc:/resources/fonts/Oxanium-Bold.ttf" } } riseup-vpn-0.24.5+ds1/gui/components/Systray.qml000066400000000000000000000050001461742244100215370ustar00rootroot00000000000000import QtQuick import QtQuick.Controls import Qt.labs.platform as Labs Labs.SystemTrayIcon { visible: systrayVisible property alias statusItem: statusItem menu: Labs.Menu { id: systrayMenu Labs.MenuItem { id: statusItem text: qsTr("Checking status…") enabled: false } Labs.MenuItem { id: vpnSystrayToggle text: getConnectionText() enabled: isConnectionTextEnabled() onTriggered: { if (ctx.status == "off") { backend.switchOn() } else if (ctx.status == "on") { backend.switchOff() } } } Labs.MenuSeparator {} Labs.MenuItem { text: qsTr("Donate") onTriggered: Qt.openUrlExternally(ctx.donateURL) } Labs.MenuSeparator {} Labs.MenuItem { id: showAppItem //: Part of the systray menu; show or hide the main app window text: isVisible() ? qsTr("Hide") : qsTr("Show") onTriggered: { if (isVisible()) { root.hide() } else { root.bringToFront() } } } Labs.MenuItem { //: Part of the systray menu; quits the application text: qsTr("Quit") onTriggered: { backend.quit() } } } function isVisible() { return root.visibility != 0 && root.visibility != 3 } function getConnectionText() { if (!ctx) { return "" } else if (ctx.status == "off") { // Not Turn on, because we will can later append "to " if (ctx.locations && ctx.bestLocation) { return qsTr("Connect to") + " " + getCanonicalLocation(ctx.bestLocation) } else { return qsTr("Connect") } } else if (ctx.status == "on") { return qsTr("Disconnect") } return "" } function isConnectionTextEnabled() { if (!ctx) { return false } return ctx.status == "off" || ctx.status == "on" } // returns the composite of Location, CC function getCanonicalLocation(label) { try { let loc = ctx.locationLabels[label] return loc[0] + ", " + loc[1] } catch(e) { return "unknown" } } } riseup-vpn-0.24.5+ds1/gui/components/ThemedPage.qml000066400000000000000000000002561461742244100220740ustar00rootroot00000000000000import QtQuick import QtQuick.Controls import "../themes/themes.js" as Theme Page { Rectangle { color: customTheme.bgColor anchors.fill: parent } } riseup-vpn-0.24.5+ds1/gui/components/VPNButtonBase.qml000066400000000000000000000027631461742244100225300ustar00rootroot00000000000000 /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ import QtQuick import QtQuick.Controls import QtQuick.Layouts import "../themes/themes.js" as Theme RoundButton { id: root property var visualStateItem: root property var uiState: Theme.uiState property var loaderVisible: false property var handleKeyClick: function () { clicked() } focusPolicy: Qt.StrongFocus Keys.onPressed: { if (loaderVisible) { return } if (event.key === Qt.Key_Return || event.key === Qt.Key_Space) visualStateItem.state = uiState.statePressed } Keys.onReleased: { if (loaderVisible) { return } if (event.key === Qt.Key_Return || event.key === Qt.Key_Space) { visualStateItem.state = uiState.stateDefault } if (event.key === Qt.Key_Return) handleKeyClick() } Accessible.role: Accessible.Button Accessible.onPressAction: handleKeyClick() Accessible.focusable: true onActiveFocusChanged: { if (!activeFocus) return visualStateItem.state = uiState.stateDefault if (vpnFlickable && typeof (vpnFlickable.ensureVisible) !== "undefined") return vpnFlickable.ensureVisible(visualStateItem) } background: Rectangle { color: "transparent" } } riseup-vpn-0.24.5+ds1/gui/components/VPNMouseArea.qml000066400000000000000000000016201461742244100223320ustar00rootroot00000000000000import QtQuick import "../themes/themes.js" as Theme MouseArea { id: mouseArea property var targetEl: parent property var uiState: Theme.uiState property var onMouseAreaClicked: function () { parent.clicked() } //function changeState(stateName) { // if (mouseArea.hoverEnabled) // targetEl.state = stateName; //} anchors.fill: parent hoverEnabled: true cursorShape: !hoverEnabled ? Qt.ForbiddenCursor : Qt.PointingHandCursor //onPressed: { // console.debug("button pressed") //changeState(uiState.statePressed) //} //onEntered: changeState(uiState.stateHovered) //onExited: changeState(uiState.stateDefault) //onCanceled: changeState(uiState.stateDefault) /* onReleased: { if (hoverEnabled) { changeState(uiState.stateDefault); onMouseAreaClicked(); } } */ } riseup-vpn-0.24.5+ds1/gui/components/VPNState.qml000066400000000000000000000224331461742244100215360ustar00rootroot00000000000000import QtQuick import QtQuick.Controls import "../themes/themes.js" as Theme StateGroup { property var initializing: "initializing" property var off: "off" property var on: "on" property var starting: "starting" property var stopping: "stopping" property var failed: "failed" property bool startingUI: false state: ctx ? ctx.status : off states: [ State { name: initializing }, State { when: ctx != undefined && ctx.snowflakeProgress != "0" && ctx.snowflakeProgress != "100" // TODO animate image PropertyChanges { target: connectionState text: qsTr("Setting up") font.pixelSize: Theme.fontSize * 1 } PropertyChanges { target: snowflakeProgressBar value: parseInt(ctx.snowflakeProgress)/100 } PropertyChanges { target: snowflakeTag text: getSnowflakeTag() } PropertyChanges { target: statusBoxBackground border.color: Theme.accentConnecting } PropertyChanges { target: connectionImage source: Theme.iconSnowflake anchors.horizontalCenter: parent.horizontalCenter } }, State { when: ctx != undefined && ctx.status == "off" && startingUI == true PropertyChanges { target: connectionState text: qsTr("Connecting") font.pixelSize: Theme.fontSize * 1.5 } PropertyChanges { target: statusBoxBackground border.color: Theme.accentConnecting } PropertyChanges { target: connectionImage source: customTheme.iconConnecting anchors.horizontalCenter: parent.horizontalCenter } PropertyChanges { target: toggleVPN enabled: false // XXX this is a fake cancel, won't do anything at this point. We need // to queue this action for when the openvpn process becomes available. text: ("Cancel") } PropertyChanges { target: systray tooltip: toHuman("connecting") icon.source: icons["wait"] } PropertyChanges { target: systray.statusItem text: toHuman("connecting") } }, State { name: "off" PropertyChanges { target: connectionState text: qsTr("Unsecured\nConnection") font.pixelSize: Theme.fontSize * 1.5 visible: true } PropertyChanges { target: statusBoxBackground border.color: Theme.accentOff } PropertyChanges { target: connectionImage source: customTheme.iconOff } PropertyChanges { target: toggleVPN enabled: true text: qsTr("Turn on") } PropertyChanges { target: systray icon.source: icons["off"] } PropertyChanges { target: systray.statusItem text: toHuman("off") } StateChangeScript { script: { console.debug("status off") } } }, State { name: on PropertyChanges { target: connectionState text: qsTr("Secured\nConnection") font.pixelSize: Theme.fontSize * 1.5 visible: true } PropertyChanges { target: statusBoxBackground border.color: Theme.accentOn } PropertyChanges { target: connectionImage source: customTheme.iconOn } PropertyChanges { target: toggleVPN enabled: true text: qsTr("Turn off") } PropertyChanges { target: systray tooltip: toHuman("on") icon.source: icons["on"] } PropertyChanges { target: systray.statusItem text: toHuman("on") } StateChangeScript { script: { vpn.startingUI = false } } }, State { name: starting PropertyChanges { target: connectionState text: qsTr("Connecting") font.pixelSize: Theme.fontSize * 1.5 visible: true } PropertyChanges { target: statusBoxBackground border.color: Theme.accentConnecting } PropertyChanges { target: connectionImage source: customTheme.iconConnecting anchors.horizontalCenter: parent.horizontalCenter } PropertyChanges { target: toggleVPN enabled: true text: qsTr("Cancel") } PropertyChanges { target: systray tooltip: toHuman("connecting") icon.source: icons["wait"] } PropertyChanges { target: systray.statusItem text: toHuman("connecting") } StateChangeScript { script: { vpn.startingUI = false } } }, State { name: stopping /* this transition is bad. let's just remove the status switch... PropertyChanges { target: connectionState text: "Switching\nOff" } PropertyChanges { target: connectionImage source: "../resources/ravens.svg" anchors.horizontalCenter: parent.horizontalCenter } */ PropertyChanges { target: statusBoxBackground border.color: Theme.accentConnecting } PropertyChanges { target: systray tooltip: toHuman("stopping") icon.source: icons["wait"] } PropertyChanges { target: systray.statusItem text: toHuman("stopping") } }, State { name: failed } ] transitions: [ Transition { to: on ColorAnimation { target: statusBoxBackground duration: 500 } }, Transition { to: off ColorAnimation { target: statusBoxBackground duration: 500 } }, Transition { to: starting ColorAnimation { target: statusBoxBackground duration: 500 } }, Transition { to: stopping ColorAnimation { target: statusBoxBackground duration: 500 } } ] function toHuman(st) { switch (st) { case "off": //: %1 -> application name return ctx ? qsTr("%1 off").arg(ctx.appName) : qsTr("off") case "on": //: %1 -> application name return qsTr("%1 on").arg(ctx.appName) case "connecting": //: %1 -> application name return qsTr("Connecting to %1").arg(ctx.appName) case "stopping": //: %1 -> application name return qsTr("Stopping %1").arg(ctx.appName) case "failed": //: %1 -> application name return qsTr("%1 blocking internet").arg( ctx.appName) // TODO failed is not handled yet } } function getSnowflakeTag() { switch (ctx.snowflakeTag) { case 'conn_pt': return qsTr("pluggable transport connection") case 'conn_done': return qsTr("connection done") case 'handshake': return qsTr("doing handshake") case 'handshake_done': return qsTr("handshake done") case 'onehop_create': return qsTr("creating one-hop connection") case 'requesting_status': return qsTr("requesting status") case 'loading_status': return qsTr("loading status") case 'loading_keys': return qsTr("loading keys") case 'requesting_descriptors': return qsTr("requesting descriptors") case 'loading_descriptors': return qsTr("loading descriptors") case 'circuit_create': return qsTr("creating circuit") case 'done': return qsTr("done") default: return ctx.snowflakeTag } } } riseup-vpn-0.24.5+ds1/gui/components/VPNToggle.qml000066400000000000000000000200001461742244100216630ustar00rootroot00000000000000 /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ import QtQuick import QtQuick.Controls import "../themes/themes.js" as Theme VPNButtonBase { id: toggleButton property var connectionRetryOverX: VPNController.connectionRetry > 1 property var toggleColor: Theme.vpnToggleDisconnected property var toolTipTitle: "" Accessible.name: toolTipTitle function handleClick() { toolTip.close() if (VPNController.state !== VPNController.StateOff) { return VPN.deactivate() } return VPN.activate() } onClicked: handleClick() // property in VPNButtonBase {} visualStateItem: toggle //state: VPNController.state height: 32 width: 60 radius: 16 hoverEnabled: false onActiveFocusChanged: { if (!focus && toolTip.visible) { toolTip.close() } } /* states: [ State { name: VPNController.StateInitializing PropertyChanges { target: cursor anchors.leftMargin: 4 } PropertyChanges { target: toggle color: "#9E9E9E" border.color: Theme.white } PropertyChanges { target: toggleButton toggleColor: Theme.vpnToggleDisconnected } }, State { name: VPNController.StateOff PropertyChanges { target: cursor anchors.leftMargin: 4 } PropertyChanges { target: toggle color: "#9E9E9E" border.color: Theme.white } PropertyChanges { target: toggleButton //% "Turn VPN on" toolTipTitle: qsTrId("vpn.toggle.on") } }, State { name: VPNController.StateConnecting PropertyChanges { target: cursor anchors.leftMargin: 32 color: "#998DB2" } PropertyChanges { target: toggle color: "#387E8A" border.color: Theme.ink } PropertyChanges { target: toggleButton //% "Turn VPN off" toolTipTitle: qsTrId("vpn.toggle.off") toggleColor: Theme.vpnToggleConnected } }, State { name: VPNController.StateConfirming PropertyChanges { target: cursor anchors.leftMargin: 32 color: connectionRetryOverX ? "#FFFFFF" : "#998DB2" } PropertyChanges { target: toggle color: "#387E8A" border.color: Theme.ink } PropertyChanges { target: toggleButton //% "Turn VPN off" toolTipTitle: qsTrId("vpn.toggle.off") toggleColor: Theme.vpnToggleConnected } }, State { name: VPNController.StateOn PropertyChanges { target: cursor anchors.leftMargin: 32 } PropertyChanges { target: toggle color: "#3FE1B0" border.color: Theme.ink } PropertyChanges { target: toggleButton toolTipTitle: qsTrId("vpn.toggle.off") toggleColor: Theme.vpnToggleConnected } }, State { name: VPNController.StateDisconnecting PropertyChanges { target: cursor anchors.leftMargin: 4 } PropertyChanges { target: toggle color: "#CECECE" border.color: Theme.white } PropertyChanges { target: toggleButton toolTipTitle: qsTrId("vpn.toggle.on") toggleColor: Theme.vpnToggleDisconnected } }, State { name: VPNController.StateSwitching PropertyChanges { target: cursor anchors.leftMargin: 32 color: "#998DB2" } PropertyChanges { target: toggle color: "#387E8A" border.color: Theme.ink } PropertyChanges { target: toggleButton toggleColor: Theme.vpnToggleConnected } } ] transitions: [ Transition { ParallelAnimation { NumberAnimation { target: cursor property: "anchors.leftMargin" duration: 200 } ColorAnimation { target: cursor duration: 200 } } } ] // Focus rings VPNFocusBorder { id: focusHandler anchors.fill: toggle anchors.margins: -4 radius: height / 2 border.color: toggleColor.focusBorder color: "transparent" opacity: toggleButton.activeFocus && (VPNController.state === VPNController.StateOn || VPNController.state === VPNController.StateOff) ? 1 : 0 VPNFocusOutline { id: vpnFocusOutline anchors.fill: focusHandler focusedComponent: focusHandler setMargins: -6 radius: height / 2 border.width: 7 color: "transparent" border.color: toggleColor.focusOutline opacity: 0.25 } } // Faint outline visible on hover and press Rectangle { id: hoverPressHandler color: "#C2C2C2" state: toggle.state opacity: { if (state === uiState.stateDefault || toggleButton.activeFocus) return 0; if (state === uiState.stateHovered) return 0.2; if (state === uiState.statePressed) return 0.3; } z: -1 anchors.fill: toggle radius: height / 2 anchors.margins: -5 PropertyAnimation on opacity { duration: 200 } } */ function toggleClickable() { return VPN.state === VPN.StateMain && (VPNController.state === VPNController.StateOn || VPNController.state === VPNController.StateOff || (VPNController.state === VPNController.StateConfirming && connectionRetryOverX)) } // Toggle background color changes on hover and press VPNUIStates { itemToFocus: toggleButton itemToAnchor: toggle colorScheme: toggleColor radius: height / 2 setMargins: -7 showFocusRings: false opacity: toggleClickable() ? 1 : 0 z: 1 Behavior on opacity { PropertyAnimation { property: "opacity" duration: 100 } } } Rectangle { id: cursor height: 24 width: 24 radius: 12 anchors.left: parent.left anchors.top: parent.top anchors.topMargin: 4 z: 2 } VPNMouseArea { id: mouseArea targetEl: toggle anchors.fill: toggle hoverEnabled: toggleClickable() cursorShape: Qt.PointingHandCursor } VPNToolTip { id: toolTip text: toolTipTitle } background: Rectangle { id: toggle Component.onCompleted: state = uiState.stateDefault border.width: 0 anchors.fill: toggleButton radius: height / 2 Behavior on color { ColorAnimation { duration: 200 } } } } riseup-vpn-0.24.5+ds1/gui/components/VerticalSpacer.qml000066400000000000000000000001171461742244100227740ustar00rootroot00000000000000import QtQuick Rectangle { color: "transparent" width: parent.width } riseup-vpn-0.24.5+ds1/gui/components/WrappedRadioButton.qml000066400000000000000000000013141461742244100236420ustar00rootroot00000000000000import QtQuick import QtQuick.Controls import QtQuick.Controls.Material import QtQuick.Controls.Material.impl import "../themes/themes.js" as Theme MaterialRadioButton { id: control width: parent.width property var location /* this works for the pointer, but breaks the onClick connection XXX need to dig into RadioButton implementation. MouseArea { anchors.fill: parent cursorShape: Qt.PointingHandCursor } */ contentItem: Label { text: control.text font: control.font horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter leftPadding: control.indicator.width + control.spacing wrapMode: Label.Wrap } } riseup-vpn-0.24.5+ds1/gui/gui.qrc000066400000000000000000000115261461742244100164660ustar00rootroot00000000000000 main.qml qtquickcontrols2.conf themes/themes.js themes/theme-riseup.js themes/Riseup.qml themes/theme-calyx.js themes/Calyx.qml themes/Bitmask.qml themes/ThemeObject.qml components/MainView.qml components/ThemedPage.qml components/Splash.qml components/FadeBehavior.qml components/Home.qml components/Header.qml components/Footer.qml components/About.qml components/MaterialRadioButton.qml components/MaterialRadioIndicator.qml components/WrappedRadioButton.qml components/MaterialCheckBox.qml components/StatusBox.qml components/Systray.qml components/Help.qml components/Locations.qml components/SignalIcon.qml components/Preferences.qml components/BoldLabel.qml components/LightLabel.qml components/VPNButtonBase.qml components/VPNMouseArea.qml components/VerticalSpacer.qml components/Icon.qml components/MaterialButton.qml components/VPNState.qml components/InitErrors.qml components/ErrorBox.qml components/MotdBox.qml components/NavigationDrawer.qml resources/icon-noshield.svg resources/location.svg resources/settings.svg resources/power.svg resources/language.svg resources/lightning.svg resources/close.svg resources/donate.svg resources/tools.svg resources/help.svg resources/about.svg resources/bridge.svg resources/gear-fill.svg resources/reception-0.svg resources/reception-2.svg resources/reception-4.svg resources/reception-0@24.svg resources/reception-4@24.svg resources/arrow-left.svg resources/globe.svg resources/spy.gif resources/quit.svg resources/alert.svg resources/angle-right.svg resources/snowflake.svg resources/ravens.svg resources/ravens.gif resources/riseup-icon.svg resources/calyx/calyx-shield-green.png resources/calyx/calyx-hand.png resources/calyx/calyx-red-shield.png resources/calyx/calyx-yellow-shield.png resources/bitmask/splash_logo.png resources/bitmask/state_connected.png resources/bitmask/state_connecting.png resources/bitmask/state_disconnected.png resources/fonts/Poppins-Regular.ttf resources/fonts/Poppins-Bold.ttf resources/fonts/Montserrat-SemiBold.ttf resources/fonts/Roboto-Regular.ttf resources/fonts/Roboto-Bold.ttf assets/icon/png/black/vpn_off.png assets/icon/png/black/vpn_on.png assets/icon/png/black/vpn_wait_0.png assets/icon/png/black/vpn_wait_1.png assets/icon/png/black/vpn_wait_2.png assets/icon/png/black/vpn_wait_3.png assets/icon/png/white/vpn_off.png assets/icon/png/white/vpn_on.png assets/icon/png/white/vpn_wait_0.png assets/icon/png/white/vpn_wait_1.png assets/icon/png/white/vpn_wait_2.png assets/icon/png/white/vpn_wait_3.png assets/img/bird.jpg providers/providers.json riseup-vpn-0.24.5+ds1/gui/handlers.cpp000066400000000000000000000026661461742244100175040ustar00rootroot00000000000000#include #include #include #include #include "handlers.h" #include "lib/libgoshim.h" GoString toGoStr(QString s) { const char *c = s.toUtf8().constData(); return (GoString){c, (long int)strlen(c)}; } Backend::Backend(QObject *parent) : QObject(parent) { } void Backend::setLocale(QString locale) { emit this->localeChanged(locale); } QString Backend::getVersion() { return QString(GetBitmaskVersion()); } void Backend::switchOn() { SwitchOn(); } void Backend::switchOff() { SwitchOff(); } void Backend::donateAccepted() { DonateAccepted(); } void Backend::donateSeen() { DonateSeen(); } void Backend::useLocation(QString label) { UseLocation(toGoStr(label)); } void Backend::useAutomaticGateway() { UseAutomaticGateway(); } void Backend::setTransport(QString transport) { SetTransport(toGoStr(transport)); } void Backend::setUDP(bool udp) { SetUDP(udp); } void Backend::setSnowflake(bool snowflake) { SetSnowflake(snowflake); } QString Backend::getTransport() { return QString(GetTransport()); } void Backend::login(QString username, QString password) { Login(toGoStr(username), toGoStr(password)); } void Backend::resetError(QString errlabel) { ResetError(toGoStr(errlabel)); } void Backend::resetNotification(QString label) { ResetNotification(toGoStr(label)); } void Backend::quit() { Quit(); emit this->quitDone(); } riseup-vpn-0.24.5+ds1/gui/handlers.h000066400000000000000000000021141461742244100171350ustar00rootroot00000000000000#ifndef HANDLERS_H #define HANDLERS_H #include #include #include "qjsonmodel.h" #include "lib/libgoshim.h" #if defined(_WIN32) || defined(WIN32) || defined(__CYGWIN) || defined(__MINGW32__) #define OS_WIN #endif GoString toGoStr(QString s); class QJsonWatch : public QObject { Q_OBJECT public: signals: void jsonChanged(QString json); }; class Backend : public QObject { Q_OBJECT public: explicit Backend(QObject *parent = 0); signals: void quitDone(); void localeChanged(QString locale); public slots: QString getVersion(); void switchOn(); void switchOff(); void donateAccepted(); void donateSeen(); void useLocation(QString username); void useAutomaticGateway(); void setTransport(QString transport); void setUDP(bool udp); void setSnowflake(bool snowflake); QString getTransport(); void login(QString username, QString password); void resetError(QString errlabel); void resetNotification(QString label); void quit(); void setLocale(QString locale); }; #endif // HANDLERS_H riseup-vpn-0.24.5+ds1/gui/i18n/000077500000000000000000000000001461742244100157455ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/gui/i18n/base.ts000066400000000000000000000437321461742244100172400ustar00rootroot00000000000000 About About <p>This service is paid for entirely by donations from users like you. <a href="%1">Please donate</a>.</p> donation text of the about dialog %1 version: %2 screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -> application name %2 -> version string Footer Recommended Help Help Troubleshooting and support Report a bug How to uninstall InitErrors Could not find helpers. Please check your installation Could not find polkit agent. Locations Select Location Automatically use best connection this is in the radio button for the auto selection Manually select Location Selection: label for radio buttons that selects manually Switching gateway… A little display to signal that the clicked gateway is being switched to Only locations with bridges Subtitle to explain that only bridge locations are shown in the selector Recommended Location Selection: label for radio button that selects automatically MainView Donate Preferences Help About Quit Please donate! This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now? Preferences Preferences Turn off the VPN to make changes Language Censorship circumvention These techniques can bypass censorship, but are slower. Use them only when needed. Use obfs4 bridges Traffic is obfuscated to bypass blocks Use Snowflake Snowflake needs Tor installed in your system Transport UDP can make the VPN faster. It might be blocked on some networks. Use UDP if available Splash There is a newer version available. Make sure to <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">uninstall</a> the previous one before running the new installer. UPGRADE NOW StatusBox This can take several minutes Systray Checking status… Donate Hide Part of the systray menu; show or hide the main app window Show Quit Part of the systray menu; quits the application Connect to Connect Disconnect VPNState Setting up Connecting Unsecured Connection Turn on Secured Connection Turn off Cancel %1 off %1 -> application name off %1 on %1 -> application name Connecting to %1 %1 -> application name Stopping %1 %1 -> application name %1 blocking internet %1 -> application name pluggable transport connection connection done doing handshake handshake done creating one-hop connection requesting status loading status loading keys requesting descriptors loading descriptors creating circuit done VPNSwitch main : a fast and secure VPN. Powered by Bitmask. Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means). Enable Web API. Install helpers (Linux only, requires sudo). Use obfs4 to obfuscate the traffic, if available in the provider. Enable autostart. Web API port (default: 8080) Start the VPN, either 'on' or 'off'. riseup-vpn-0.24.5+ds1/gui/i18n/main_de.ts000066400000000000000000000460711461742244100177210ustar00rootroot00000000000000 About About Über <p>This service is paid for entirely by donations from users like you. <a href="%1">Please donate</a>.</p> donation text of the about dialog <p>Dieser Service wird ausschließlich über Spenden von Nutzer:innen wie dir finanziert. <a href="%1"> Bitte spende</a>.</p> %1 version: %2 screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -> application name %2 -> version string %1 Version: %2 Footer Recommended Empfohlen Help Help Hilfe Troubleshooting and support Fehlersuche und Unterstützung Report a bug Melden einer Softwarefehler How to uninstall Wie deinstallieren InitErrors Could not find helpers. Please check your installation Helfer wurden nicht gefunden. Bitte überprüfe deine Installation. Could not find polkit agent. Polkit Agent wurde nicht gefunden. Locations Select Location Wähle Standort Automatically use best connection this is in the radio button for the auto selection Benutze automatisch die beste Verbindung Manually select Location Selection: label for radio buttons that selects manually Manuell auswählen Switching gateway… A little display to signal that the clicked gateway is being switched to Gateways wechseln… Only locations with bridges Subtitle to explain that only bridge locations are shown in the selector Nur Standorte mit Brücken Recommended Location Selection: label for radio button that selects automatically Empfohlen MainView Donate Spenden Preferences Einstellungen Help Hilfe About Über Quit Beenden Please donate! Bitte spende! This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now? Dieser Service wird ausschließlich von Nutzer:innen wie dir finanziert. Die Kosten zum Betrieb des VPNs beträgt durchschnittlich 5 USD pro Person jeden Monat, aber jeder kleiner Beitrag hilft. Möchtest du jetzt spenden? Preferences Preferences Einstellungen Turn off the VPN to make changes Schalte das VPN aus, um Änderungen vornehmen zu können. Language Sprache Censorship circumvention Umgehung von Zensur These techniques can bypass censorship, but are slower. Use them only when needed. Diese Techniken können Zensur umgehen, sind jedoch langsamer. Nutze sie nur, wenn es nötig ist. Use obfs4 bridges Benutze obfs4 Brücken Traffic is obfuscated to bypass blocks Verkehr ist verschleiert, um Blockaden zu umgehen Use Snowflake Snowflake verwenden Snowflake needs Tor installed in your system Snowflake erfordert eine Tor-Installation in Ihrem System Transport Übertragungen UDP can make the VPN faster. It might be blocked on some networks. UDP kann das VPN schneller machen. In manchen Netzwerken wird es geblockt. Use UDP if available Nutze UDP, falls verfügbar Splash There is a newer version available. Es ist eine neuere Version verfügbar. Make sure to <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">uninstall</a> the previous one before running the new installer. Stelle sicher, dass du die vorherige Version <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">deinstallierst</a>, bevor du das neue Installationsprogramm ausführst. UPGRADE NOW JETZT AKTUALISIEREN StatusBox This can take several minutes Dies kann einige Minuten in Anspruch nehmen Systray Checking status… Überprüfe Status... Donate Spenden Hide Part of the systray menu; show or hide the main app window Verstecken Show Anzeigen Quit Part of the systray menu; quits the application Beenden Connect to Verbinden mit Connect Verbinden Disconnect Trennen VPNState Setting up Einrichtung Connecting Verbinde Unsecured Connection Ungesicherte Verbindung Turn on Einschalten Secured Connection Gesicherte Verbindung Turn off Ausschalten Cancel Abbrechen %1 off %1 -> application name %1 aus off aus %1 on %1 -> application name %1 an Connecting to %1 %1 -> application name Verbinde mit %1 Stopping %1 %1 -> application name Stoppe %1 %1 blocking internet %1 -> application name %1 blockiert Internet pluggable transport connection Austauschbare Übertragungsverbindung connection done Verbindung hergestellt doing handshake Handshake wird durchgeführt handshake done Handshake durchgeführt creating one-hop connection One-hop Verbindung wird erstellt requesting status Status wird abgefragt loading status Status wird geladen loading keys Schlüssel werden geladen requesting descriptors Deskriptoren werden abgefragt loading descriptors Deskriptoren werden geladen creating circuit Kreislauf wird erstellt done abgeschlossen VPNSwitch main : a fast and secure VPN. Powered by Bitmask. : ein schnelles und sicheres VPN. Unterstützt von Bitmask. Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means). Zeige nicht das Systray Icon an (nützlich in Verbindung mit Gnome Shell extension oder um das VPN mit anderen Mitteln zu steuern). Enable Web API. Web API aktivieren. Install helpers (Linux only, requires sudo). Installiere Helfer (Nur für Linux, benötigt sudo). Use obfs4 to obfuscate the traffic, if available in the provider. Verwende obfs4, um den Datenverkehr zu verschleiern, sofern der Provider dies anbietet. Enable autostart. Autostart wird aktiviert. Web API port (default: 8080) Web API Port (standardmäßig: 8080) Start the VPN, either 'on' or 'off'. Starte das VPN, entweder 'an' oder 'aus'. riseup-vpn-0.24.5+ds1/gui/i18n/main_el.ts000066400000000000000000000517241461742244100177320ustar00rootroot00000000000000 About About Σχετικά <p>This service is paid for entirely by donations from users like you. <a href="%1">Please donate</a>.</p> donation text of the about dialog <p>Αυτή η υπηρεσία πληρώνεται εξ' ολοκλήρου από τις δωρεές που κάνουν χρήστες σαν κι εσένα.. <a href="%1">Παρακαλούμε κάνε μια δωρεά</a>.</p> %1 version: %2 screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -> application name %2 -> version string Έκδοση %1: %2 Footer Recommended Προτεινόμενη Help Help Βοήθεια Troubleshooting and support Αντιμετώπιση προβλημάτων και υποστήριξη Report a bug Αναφορά σφάλματος How to uninstall Πως να απεγκαταστήσεις InitErrors Could not find helpers. Please check your installation Δεν μπόρεσαν να βρεθούν βοηθοί. Παρακαλώ έλεγξε την εγκατάστασή σου Could not find polkit agent. Δεν μπόρεσε να βρεθεί polkit agent. Locations Select Location Επιλογή τοποθεσίας Automatically use best connection this is in the radio button for the auto selection Να χρησιμοποιείται αυτόματα η καλύτερη σύνδεση Manually select Location Selection: label for radio buttons that selects manually Χειροκίνητη επιλογή Switching gateway… A little display to signal that the clicked gateway is being switched to Η πύλη αλλάζει… Only locations with bridges Subtitle to explain that only bridge locations are shown in the selector Μόνο τοποθεσίες με γέφυρες Recommended Location Selection: label for radio button that selects automatically Προτεινόμενη MainView Donate Δωρεά Preferences Προτιμήσεις Help Βοήθεια About Σχετικά Quit Έξοδος Please donate! Παρακαλώ κάνε μια δωρεά! This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now? Τα έξοδα αυτής της υπηρεσίας καλύπτονται εξ' ολοκλήρου από δωρεές χρηστών σαν κι εσένα. Το λειτουργικό κόστος του VPN είναι περίπου 5 δολάρια (ΗΠΑ) ανά άτομο ανά μήνα, αλλά ακόμα και μικρότερα ποσά μας βοηθούν. Θα ήθελες να κάνεις μια δωρεά τώρα; Preferences Preferences Προτιμήσεις Turn off the VPN to make changes Απενεργοποίησε το VPN για να κάνεις αλλαγές Language Censorship circumvention Παράκαμψη λογοκρισίας These techniques can bypass censorship, but are slower. Use them only when needed. Αυτές οι τεχνικές μπορούν να παρακάμψουν τεχνικές λογοκρισίας, αλλά είναι πιο αργές. Χρησιμοποιήστε τις μόνο όποτε χρειάζεται. Use obfs4 bridges Χρήση γεφυρών obfs4 Traffic is obfuscated to bypass blocks Η κίνηση δεδομένων αποκρύπτεται για τη παράκαμψη μπλοκαρισμάτων Use Snowflake Χρήση Snowflake Snowflake needs Tor installed in your system Για το Snowflake χρειάζεται να έχεις εγκατεστημένο το Tor Transport Μεταφορά UDP can make the VPN faster. It might be blocked on some networks. Το UDP μπορεί να κάνει το VPN γρηγορότερο. Ίσως να μπλοκάρεται σε κάποια δίκτυα. Use UDP if available Χρήση UDP αν είναι διαθέσιμο Splash There is a newer version available. Υπάρχει μια νεότερη διαθέσιμη έκδοση. Make sure to <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">uninstall</a> the previous one before running the new installer. Θα χρειαστεί να <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">απεγκαταστήσεις</a> τη προηγούμενη έκδοση πριν εκτελέσεις το καινούριο πρόγραμμα εγκατάστασης. UPGRADE NOW ΑΝΑΒΑΘΜΙΣΗ ΤΩΡΑ StatusBox This can take several minutes Systray Checking status… Έλεγχος κατάστασης... Donate Δωρεά Hide Part of the systray menu; show or hide the main app window Απόκρυψη Show Εμφάνιση Quit Part of the systray menu; quits the application Έξοδος Connect to Σύνδεση σε Connect Σύνδεση Disconnect Αποσύνδεση VPNState Setting up Connecting Συνδέεται Unsecured Connection Μη ασφαλής σύνδεση Turn on Ενεργοποίηση Secured Connection Ασφαλής σύνδεση Turn off Απενεργοποίηση Cancel Ακύρωση %1 off %1 -> application name %1 ανενεργό off ανενεργό %1 on %1 -> application name %1 ενεργό Connecting to %1 %1 -> application name Συνδέεται στο %1 Stopping %1 %1 -> application name Το %1 σταματάει %1 blocking internet %1 -> application name %1 μπλοκάρει το διαδίκτυο pluggable transport connection connection done doing handshake handshake done creating one-hop connection requesting status loading status loading keys requesting descriptors loading descriptors creating circuit done VPNSwitch main : a fast and secure VPN. Powered by Bitmask. : ένα γρήγορο και ασφαλές VPN. Με την υποστήριξη του Bitmask. Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means). Να μην εμφανίζεται το εικονίδιο στη μπάρα κατάστασης (χρήσιμο σε συνδυασμό με την επέκταση Gnome Shell ή για τον έλεγχο του VPN με άλλα μέσα). Enable Web API. Ενεργοποίηση Web API. Install helpers (Linux only, requires sudo). Εγκατάσταση βοηθών (μόνο για Linux, απαιτείται sudo). Use obfs4 to obfuscate the traffic, if available in the provider. Χρήση obfs4 για την απόκρυψη και συσκότιση της κίνησης, αν είναι διαθέσιμο από τον πάροχο. Enable autostart. Disable autostart for the next run. Απενεργοποίηση αυτόματης εκκίνησης στην επόμενη εκτέλεση. Web API port (default: 8080) Θύρα Web API (προκαθορισμένη: 8080) Start the VPN, either 'on' or 'off'. Εκκίνηση του VPN, είτε "ενεργό" είτε "ανενεργό". riseup-vpn-0.24.5+ds1/gui/i18n/main_es-rAR.ts000066400000000000000000000457561461742244100204330ustar00rootroot00000000000000 About About Acerca de <p>This service is paid for entirely by donations from users like you. <a href="%1">Please donate</a>.</p> donation text of the about dialog <p>El costo de este servicio se paga con donaciones de usuarios como vos. <a href="%1">Por favor, doná</a>.</p> %1 version: %2 screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -> application name %2 -> version string Versión de %1: %2 Footer Recommended Recomendado Help Help Ayuda Troubleshooting and support Resolución de problemas y soporte Report a bug Reportar un fallo How to uninstall Cómo desinstalar InitErrors Could not find helpers. Please check your installation No se pudieron encontrar los programas auxiliares. Por favor, comprobá tu instalación Could not find polkit agent. No se pudo encontrar el agente polkit. Locations Select Location Elegí la ubicación Automatically use best connection this is in the radio button for the auto selection Usar la mejor conexión automáticamente Manually select Location Selection: label for radio buttons that selects manually Seleccionado manualmente Switching gateway… A little display to signal that the clicked gateway is being switched to Cambiando de gateway... Only locations with bridges Subtitle to explain that only bridge locations are shown in the selector Sólo ubicaciones con puentes Recommended Location Selection: label for radio button that selects automatically Recomendado MainView Donate Donar Preferences Preferencias Help Ayuda About Acerca de Quit Quitar Please donate! ¡Se agradece una donación! This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now? Este servicio se paga por completo con donaciones de usuarios como vos. Mantener la VPN funcionando cuesta unos USD 5 por persona y por mes, pero cada monedita vale. ¿Querés hacer una donación? Preferences Preferences Preferencias Turn off the VPN to make changes Apagá la VPN para hacer cambios Language Censorship circumvention Evasión de la censura These techniques can bypass censorship, but are slower. Use them only when needed. Estas técnicas pueden evitar la censura, pero son más lentas. Activalas sólo cuando lo necesites. Use obfs4 bridges Usar puentes obfs4 Traffic is obfuscated to bypass blocks Ofusca el tráfico para saltar bloqueos Use Snowflake Usar Snowflake Snowflake needs Tor installed in your system Snowflake necesita Tor instalado en el sistema Transport Transporte UDP can make the VPN faster. It might be blocked on some networks. UDP puede hacer a la la VPN más rápida. Algunas redes pueden estar bloqueándolo. Use UDP if available Usar UDP si está disponible Splash There is a newer version available. Hay una versión más nueva disponible. Make sure to <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">uninstall</a> the previous one before running the new installer. Por favor, <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">desistalá</a>la versión anterior antes de ejecutar el nuevo instalador. UPGRADE NOW ACTUALIZAR AHORA StatusBox This can take several minutes Esto puede llevar varios minutos Systray Checking status… Comprobando estado... Donate Donar Hide Part of the systray menu; show or hide the main app window Ocultar Show Mostrar Quit Part of the systray menu; quits the application Quitar Connect to Conectar a Connect Conectar Disconnect Desconectar VPNState Setting up Estableciendo Connecting Conectando Unsecured Connection Conexión Insegura Turn on Activar. Secured Connection Conexión Segura Turn off Desactivar. Cancel Cancelar %1 off %1 -> application name %1 desactivado off desactivado %1 on %1 -> application name %1 conectado Connecting to %1 %1 -> application name Conectando a %1 Stopping %1 %1 -> application name Deteniendo %1 %1 blocking internet %1 -> application name %1 bloqueando Internet pluggable transport connection conexión de transporte conectable connection done conexión realizada doing handshake haciendo negociación handshake done negociación realizada creating one-hop connection creando conexión de un salto requesting status solicitando estado loading status cargando estado loading keys cargando claves requesting descriptors solicitando descriptores loading descriptors cargando descriptores creating circuit creando circuito done hecho VPNSwitch main : a fast and secure VPN. Powered by Bitmask. : una VPN rápida y segura. Potenciada por Bitmask. Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means). No mostrar el icono en la bandeja del sistema (útil en conjunto con las extensiones de Intérprete de Comandos de Gnome, o para controlar la VPN por otros medios). Enable Web API. Habilitar API Web. Install helpers (Linux only, requires sudo). Instalar programas auxiliares (sólo en Linux, requiere sudo). Use obfs4 to obfuscate the traffic, if available in the provider. Usar obfs4 para ofuscar el tráfico, si está disponible en el proveedor. Enable autostart. Habilitar autoarranque. Web API port (default: 8080) Puerto para la API Web (por defecto: 8080) Start the VPN, either 'on' or 'off'. Iniciar la VPN, 'activada' o bien, 'deactivada'. riseup-vpn-0.24.5+ds1/gui/i18n/main_es.ts000066400000000000000000000461011461742244100177320ustar00rootroot00000000000000 About About Acerca de <p>This service is paid for entirely by donations from users like you. <a href="%1">Please donate</a>.</p> donation text of the about dialog <p>El costo de este servicio se paga con donaciones de usuarios como tú. <a href="%1">Por favor, dona</a>.</p> %1 version: %2 screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -> application name %2 -> version string Versión de %1: %2 Footer Recommended Recomendado Help Help Ayuda Troubleshooting and support Resolución de problemas y soporte Report a bug Reportar un fallo How to uninstall Cómo desinstalar InitErrors Could not find helpers. Please check your installation No se pudieron encontrar los programas auxiliares. Por favor, comprueba tu instalación Could not find polkit agent. No se pudo encontrar el agente polkit. Locations Select Location Elige ubicación Automatically use best connection this is in the radio button for the auto selection Usar la mejor conexión automáticamente Manually select Location Selection: label for radio buttons that selects manually Selección manual Switching gateway… A little display to signal that the clicked gateway is being switched to Cambiando de gateway... Only locations with bridges Subtitle to explain that only bridge locations are shown in the selector Sólo ubicaciones con puentes Recommended Location Selection: label for radio button that selects automatically Recomendado MainView Donate Donar Preferences Preferencias Help Ayuda About Acerca de Quit Cerrar Please donate! ¡Se agradece una donación! This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now? Este servicio se costea a puro donaciones de usuarias como tú. Mantener la VPN funcionando cuesta unos 5 USD por persona y mes, pero cada contribución es valiosa. ¿Quieres hacer una donación? Preferences Preferences Preferencias Turn off the VPN to make changes Apaga la VPN para hacer cambios Language Censorship circumvention Anti-censura These techniques can bypass censorship, but are slower. Use them only when needed. Estas técnicas pueden evitar la censura, pero son más lentas. Activalas sólo cuando lo necesites. Use obfs4 bridges Usar puentes obfs4 Traffic is obfuscated to bypass blocks Ofusca el tráfico para saltar bloqueos Use Snowflake Usar Snowflake Snowflake needs Tor installed in your system Snowflake necesita Tor instalado en el sistema Transport Transporte UDP can make the VPN faster. It might be blocked on some networks. Con UDP la VPN jala más rápido. Algunas redes pueden estar bloqueándolo. Use UDP if available Usar UDP cuando se pueda Splash There is a newer version available. Hay una versión más nueva disponible. Make sure to <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">uninstall</a> the previous one before running the new installer. Por favor, <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">desistala</a>la versión anterior antes de lanzar el nuevo instalador. UPGRADE NOW ACTUALIZAR AHORA StatusBox This can take several minutes Systray Checking status… Comprobando estado... Donate Donar Hide Part of the systray menu; show or hide the main app window Ocultar Show Mostrar Quit Part of the systray menu; quits the application Cerrar Connect to Connectar a Connect Conectar Disconnect Desconectar VPNState Setting up Connecting Conectando Unsecured Connection Conexión Insegura Turn on Encender Secured Connection Conexión Segura Turn off Apagar Cancel Cancelar %1 off %1 -> application name %1 off off off %1 on %1 -> application name %1 conectada Connecting to %1 %1 -> application name Conectando a %1 Stopping %1 %1 -> application name Deteniendo %1 %1 blocking internet %1 -> application name %1 bloqueando Internet pluggable transport connection connection done doing handshake handshake done creating one-hop connection requesting status loading status loading keys requesting descriptors loading descriptors creating circuit done VPNSwitch main : a fast and secure VPN. Powered by Bitmask. : una VPN rápida y segura. Usando Bitmask. Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means). No mostrar el ícono en la bandeja del sistema (útil en conjunto con las extensiones de Intérprete de Comandos Gnome, o para controlar la VPN por otros medios). Enable Web API. Habilitar API Web. Install helpers (Linux only, requires sudo). Instalar programas auxiliares (sólo en Linux, requiere sudo). Use obfs4 to obfuscate the traffic, if available in the provider. Usar obfs4 para ofuscar el tráfico, si está disponible en el proveedor. Enable autostart. Disable autostart for the next run. Deshabilitar arranque automático para la siguiente ejecución. Web API port (default: 8080) Puerto para la API Web (por defecto: 8080) Start the VPN, either 'on' or 'off'. Iniciar la VPN, 'on' o bien, 'off'. riseup-vpn-0.24.5+ds1/gui/i18n/main_es_ES.ts000066400000000000000000000462101461742244100203220ustar00rootroot00000000000000 About About Acerca de <p>This service is paid for entirely by donations from users like you. <a href="%1">Please donate</a>.</p> donation text of the about dialog <p>Este servicio sólo se costea con donaciones de usuarios como tú. <a href="%1">Por favor, dona</a>.</p> %1 version: %2 screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -> application name %2 -> version string Versión de %1: %2 Footer Recommended Recomendado Help Help Ayuda Troubleshooting and support Resolución de problemas y soporte Report a bug Informar de un fallo How to uninstall Cómo desinstalar la aplicación InitErrors Could not find helpers. Please check your installation No se pudieron encontrar los programas auxiliares. Por favor, comprueba tu instalación Could not find polkit agent. No se pudo encontrar el agente polkit. Locations Select Location Cambiar localización Automatically use best connection this is in the radio button for the auto selection Usar la mejor conexión Manually select Location Selection: label for radio buttons that selects manually Selección manual Switching gateway… A little display to signal that the clicked gateway is being switched to Cambiando de gateway... Only locations with bridges Subtitle to explain that only bridge locations are shown in the selector Sólo localizaciones con puentes Recommended Location Selection: label for radio button that selects automatically Recomendado MainView Donate Donar Preferences Preferencias Help Ayuda About Acerca de Quit Salir Please donate! ¡Se agradece una donación! This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now? Este servicio sólo se costea con donaciones de usuarias como tú. Mantener a flote la VPN cuesta unos 5 euros por persona y mes, pero cada contribución es valiosa. ¿Quieres hacer una donación? Preferences Preferences Preferencias Turn off the VPN to make changes Desactiva la VPN para hacer cambios Language Censorship circumvention Circumvención de censura These techniques can bypass censorship, but are slower. Use them only when needed. Estas técnicas pueden evitar la censura, pero son más lentas. Actívalas sólo cuando lo necesites. Use obfs4 bridges Usar puentes obfs4 Traffic is obfuscated to bypass blocks El tráfico será ofuscado para saltar bloqueos Use Snowflake Usar Snowflake Snowflake needs Tor installed in your system Snowflake necesita Tor instalado en el sistema Transport Transporte UDP can make the VPN faster. It might be blocked on some networks. Con UDP la VPN puede ir más rápido. Podría estar bloqueado en algunas redes. Use UDP if available Usar UDP cuando se pueda Splash There is a newer version available. Hay disponible una versión nueva. Make sure to <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">uninstall</a> the previous one before running the new installer. Asegúrate de <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">desinstalar</a> la versión anterior antes de lanzar el nuevo instalador. UPGRADE NOW ACTUALIZAR AHORA StatusBox This can take several minutes Systray Checking status… Comprobando estado... Donate Donar Hide Part of the systray menu; show or hide the main app window Ocultar Show Mostrar Quit Part of the systray menu; quits the application Salir Connect to Connectar a Connect Conectar Disconnect Desconectar VPNState Setting up Connecting Conectando Unsecured Connection Conexión Insegura Turn on Activar Secured Connection Conexión Segura Turn off Desactivar Cancel Cancelar %1 off %1 -> application name %1 desconectada off off %1 on %1 -> application name %1 on Connecting to %1 %1 -> application name Conectando a %1 Stopping %1 %1 -> application name Deteniendo %1 %1 blocking internet %1 -> application name %1 bloqueando Internet pluggable transport connection connection done doing handshake handshake done creating one-hop connection requesting status loading status loading keys requesting descriptors loading descriptors creating circuit done VPNSwitch main : a fast and secure VPN. Powered by Bitmask. : una VPN rápida y segura. Potenciada por Bitmask. Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means). No mostrar el ícono en la bandeja del sistema (útil en conjunto con las extensiones de Intérprete de Comandos Gnome, o para controlar la VPN por otros medios). Enable Web API. Habilitar la Web API. Install helpers (Linux only, requires sudo). Instalar programas auxiliares (sólo en Linux, requiere sudo). Use obfs4 to obfuscate the traffic, if available in the provider. Usar obfs4 para ofuscar el tráfico, si está disponible con el proveedor. Enable autostart. Disable autostart for the next run. Deshabilitar arranque automático para la siguiente ejecución. Web API port (default: 8080) Puerto para la API Web (por defecto: 8080) Start the VPN, either 'on' or 'off'. Iniciar la VPN, 'conectada' o bien, 'desconectada'. riseup-vpn-0.24.5+ds1/gui/i18n/main_et.ts000066400000000000000000000445141461742244100177410ustar00rootroot00000000000000 About About Info <p>This service is paid for entirely by donations from users like you. <a href="%1">Please donate</a>.</p> donation text of the about dialog <p>Selle teenuse eest makstakse täielikult sinusuguste kasutajate poolt tulnud vabatahtlike annetustega <a href="%1">Palun anneta</a>.</p> %1 version: %2 screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -> application name %2 -> version string Footer Recommended Help Help Troubleshooting and support Report a bug How to uninstall InitErrors Could not find helpers. Please check your installation Could not find polkit agent. Polkit agenti ei leitud. Locations Select Location Automatically use best connection this is in the radio button for the auto selection Manually select Location Selection: label for radio buttons that selects manually Switching gateway… A little display to signal that the clicked gateway is being switched to Only locations with bridges Subtitle to explain that only bridge locations are shown in the selector Recommended Location Selection: label for radio button that selects automatically MainView Donate Anneta Preferences Help About Info Quit Välju Please donate! This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now? Preferences Preferences Turn off the VPN to make changes Language Censorship circumvention These techniques can bypass censorship, but are slower. Use them only when needed. Use obfs4 bridges Traffic is obfuscated to bypass blocks Use Snowflake Snowflake needs Tor installed in your system Transport UDP can make the VPN faster. It might be blocked on some networks. Use UDP if available Splash There is a newer version available. Make sure to <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">uninstall</a> the previous one before running the new installer. UPGRADE NOW StatusBox This can take several minutes Systray Checking status… Donate Anneta Hide Part of the systray menu; show or hide the main app window Show Quit Part of the systray menu; quits the application Välju Connect to Connect Disconnect VPNState Setting up Connecting Unsecured Connection Turn on Lülita sisse Secured Connection Turn off Lülita välja Cancel Loobu %1 off %1 -> application name %1 väljas off %1 on %1 -> application name %1 sees Connecting to %1 %1 -> application name Ühendumine rakendusega %1 Stopping %1 %1 -> application name %1 peatamine %1 blocking internet %1 -> application name %1 - internet blokeeritud pluggable transport connection connection done doing handshake handshake done creating one-hop connection requesting status loading status loading keys requesting descriptors loading descriptors creating circuit done VPNSwitch main : a fast and secure VPN. Powered by Bitmask. : kiire ja turvaline VPN. Kasutatud tarkvara on Bitmask. Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means). Enable Web API. Install helpers (Linux only, requires sudo). Use obfs4 to obfuscate the traffic, if available in the provider. Kui see on teenusepakkuja poolt saadaval, siis kasuta liikluse peitmiseks teeki obfs4. Enable autostart. Disable autostart for the next run. Keela järgmisel käivitamisel automaatne käivitamine. Web API port (default: 8080) Start the VPN, either 'on' or 'off'. riseup-vpn-0.24.5+ds1/gui/i18n/main_fa_IR.ts000066400000000000000000000457371461742244100203210ustar00rootroot00000000000000 About About ‫‫درباره‬ <p>This service is paid for entirely by donations from users like you. <a href="%1">Please donate</a>.</p> donation text of the about dialog <p>هزینه این سرویس از طریق کمک مالی کاربرانی مثل شما پرداخت می‌شود. <a href="%1">لطفاً کمک مالی کنید</a>.</p> %1 version: %2 screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -> application name %2 -> version string Footer Recommended توصیه می‌شود Help Help کمک Troubleshooting and support Report a bug How to uninstall InitErrors Could not find helpers. Please check your installation ابزار کمکی پیدا نشدند. لطفاً برنامه نصب شده را چک کنید. Could not find polkit agent. رابط polkit پیدا نشد. Locations Select Location Automatically use best connection this is in the radio button for the auto selection Manually select Location Selection: label for radio buttons that selects manually Switching gateway… A little display to signal that the clicked gateway is being switched to Only locations with bridges Subtitle to explain that only bridge locations are shown in the selector Recommended Location Selection: label for radio button that selects automatically توصیه می‌شود MainView Donate حمایت از ما Preferences تنظیمات Help کمک About ‫‫درباره‬ Quit خروج Please donate! This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now? Preferences Preferences تنظیمات Turn off the VPN to make changes Language Censorship circumvention These techniques can bypass censorship, but are slower. Use them only when needed. Use obfs4 bridges از پل‌های obfs4 استفاده شود Traffic is obfuscated to bypass blocks Use Snowflake Snowflake needs Tor installed in your system Transport UDP can make the VPN faster. It might be blocked on some networks. Use UDP if available Splash There is a newer version available. Make sure to <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">uninstall</a> the previous one before running the new installer. UPGRADE NOW StatusBox This can take several minutes Systray Checking status… در حال بررسی وضعیت... Donate حمایت از ما Hide Part of the systray menu; show or hide the main app window Show Quit Part of the systray menu; quits the application خروج Connect to Connect اتصال Disconnect VPNState Setting up Connecting Unsecured Connection Turn on روشن کردن Secured Connection Turn off خاموش کردن Cancel انصراف %1 off %1 -> application name %1 خاموش off %1 on %1 -> application name %1 روشن Connecting to %1 %1 -> application name در حال اتصال به %1 Stopping %1 %1 -> application name متوقف کردن %1 %1 blocking internet %1 -> application name %1 اینترنت را متوقف کرده pluggable transport connection connection done doing handshake handshake done creating one-hop connection requesting status loading status loading keys requesting descriptors loading descriptors creating circuit done VPNSwitch main : a fast and secure VPN. Powered by Bitmask. : یک VPN سریع و امن. قدرت گرفت از Bitmask. Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means). آیکون را در نوارسیستم نشان نده (مناسب برای استفاده با افزونه پوسته گنوم، یا کنترل VPN با روش‌های دیگر). Enable Web API. فعال کردن API وب. Install helpers (Linux only, requires sudo). نصب ابزار کمکی (فقط در لینوکس، نیاز به sudo دارد). Use obfs4 to obfuscate the traffic, if available in the provider. برای مخفی سازی ترافیک از obfs4 استفاده کند، اگر توسط ارائه کننده فراهم شده باشد. Enable autostart. Disable autostart for the next run. شروع اتوماتیک را در اجرای بعد غیر فعال کن. Web API port (default: 8080) پورت API وب (پیشفرض: 8080) Start the VPN, either 'on' or 'off'. شروع VPN، یا 'روشن' یا 'خاموش'. riseup-vpn-0.24.5+ds1/gui/i18n/main_fi.ts000066400000000000000000000457601461742244100177330ustar00rootroot00000000000000 About About Ohjelmasta <p>This service is paid for entirely by donations from users like you. <a href="%1">Please donate</a>.</p> donation text of the about dialog <p>Tämä palvelu maksetaan kokonaan kaltaistesi käyttäjien lahjoituksilla. <a href="%1">Ole hyvä ja lahjoita</a>.</p> %1 version: %2 screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -> application name %2 -> version string Versio %1:ta: %2 Footer Recommended Suositeltu Help Help Ohje Troubleshooting and support Vianmääritys ja tuki Report a bug Ilmoita viasta How to uninstall Kuinka poistaa asennus InitErrors Could not find helpers. Please check your installation Auttajia ei löytynyt. Tarkista asennuksesi Could not find polkit agent. Polkit-agenttia ei löytynyt. Locations Select Location Valitse sijainti Automatically use best connection this is in the radio button for the auto selection Käytä automaattisesti parasta yhteyttä Manually select Location Selection: label for radio buttons that selects manually Valitse manuaalisesti Switching gateway… A little display to signal that the clicked gateway is being switched to Vaihdetaan yhdyskäytävää. Only locations with bridges Subtitle to explain that only bridge locations are shown in the selector Vain sijainnit, joissa on siltoja Recommended Location Selection: label for radio button that selects automatically Suositeltu MainView Donate Lahjoita Preferences Asetukset Help Ohje About Ohjelmasta Quit Poistu Please donate! Ole hyvä ja lahjoita! This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now? Tämä palvelu maksetaan kokonaan kaltaistesi käyttäjien lahjoituksilla. VPN:n käyttökustannukset ovat noin 5 USD henkilöä kohden kuukaudessa, mutta jokaisella pienellä on merkitystä. Haluatko lahjoittaa nyt? Preferences Preferences Asetukset Turn off the VPN to make changes Kytke VPN pois päältä tehdäksesi muutoksia Language Censorship circumvention Sensuurin kiertäminen These techniques can bypass censorship, but are slower. Use them only when needed. Nämä tekniikat voivat ohittaa sensuurin, mutta ovat hitaampia. Käytä niitä vain tarvittaessa. Use obfs4 bridges Käytä obfs4-siltoja Traffic is obfuscated to bypass blocks Liikenne on hämärtynyt ohittamaan lohkot Use Snowflake Käytä Snowflakea Snowflake needs Tor installed in your system Snowflake tarvitsee Tor-selaimen asennettuna järjestelmääsi Transport Kuljetus UDP can make the VPN faster. It might be blocked on some networks. UDP voi tehdä VPN:stä nopeamman. Se voi olla estetty joissakin verkoissa. Use UDP if available Käytä UDP:tä, jos mahdollista Splash There is a newer version available. Saatavilla on uudempi versio. Make sure to <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">uninstall</a> the previous one before running the new installer. Varmista, että<a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">poistat</a>edellisen ennen uuden asennusohjelman suorittamista. UPGRADE NOW Päivitä nyt StatusBox This can take several minutes Tämä saattaa kestää useita minuutteja Systray Checking status… Tarkistetaan tilaa. Donate Lahjoita Hide Part of the systray menu; show or hide the main app window Piilota Show Näytä Quit Part of the systray menu; quits the application Poistu Connect to Yhdistä tähän Connect Yhdistä Disconnect Katkaise yhteys VPNState Setting up Asetetaan Connecting Yhdistetään Unsecured Connection Suojaamaton yhteys Turn on Kytke päälle Secured Connection Turvattu yhteys Turn off Kytke pois päältä Cancel Peruuta %1 off %1 -> application name %1 pois päältä off ei käytössä %1 on %1 -> application name %1 päällä Connecting to %1 %1 -> application name Yhdistetään %1:een Stopping %1 %1 -> application name Pysäytetään %1 %1 blocking internet %1 -> application name %1 estämässä internetin pluggable transport connection kytkettävä kuljetusliitäntä connection done yhteys tehty doing handshake tekemässä kädenpuristusta handshake done kädenpuristus tehty creating one-hop connection luodaan yhden hypyn yhteys requesting status pyydetään tilaa loading status Ladataan tila loading keys ladataan avaimet requesting descriptors pyydetään kuvauksia loading descriptors ladataan kuvauksia creating circuit luodaan piiri done valmis VPNSwitch main : a fast and secure VPN. Powered by Bitmask. : nopea ja turvallinen VPN. Voimanlähteenä Bitmask. Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means). Älä näytä järjestelmäpalkkikuvaketta (hyödyllinen yhdessä Gnome Shell -laajennuksen kanssa tai VPN:n ohjaamiseen muilla tavoilla). Enable Web API. Ota Web API käyttöön. Install helpers (Linux only, requires sudo). Asenna apuohjelmat (vain Linux, vaatii ’sudo)’. Use obfs4 to obfuscate the traffic, if available in the provider. Käytä obfs4:ää liikenteen hämärtämiseen, jos se on saatavilla palveluntarjoajalta. Enable autostart. Ota automaattinen käynnistys käyttöön. Web API port (default: 8080) Web API -portti (oletus: 8080) Start the VPN, either 'on' or 'off'. Käynnistä VPN, joko "päällä" tai "pois päältä". riseup-vpn-0.24.5+ds1/gui/i18n/main_fr.ts000066400000000000000000000465351461742244100177450ustar00rootroot00000000000000 About About À propos <p>This service is paid for entirely by donations from users like you. <a href="%1">Please donate</a>.</p> donation text of the about dialog <p>Ce service est entièrement financé par les dons d’utilisateurs tels que vous. <a href="%1">Veuillez faire un don</a>.</p> %1 version: %2 screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -> application name %2 -> version string %1 version : %2 Footer Recommended Recommandé Help Help Aide Troubleshooting and support Dépannage et assistance Report a bug Signaler un bogue How to uninstall Comment désinstaller InitErrors Could not find helpers. Please check your installation Impossible de trouver les aides. Veuillez vérifier votre installation Could not find polkit agent. Impossible de trouver l’agent polkit Locations Select Location Choisir un emplacement Automatically use best connection this is in the radio button for the auto selection Utiliser automatiquement la meilleure connexion Manually select Location Selection: label for radio buttons that selects manually Sélectionner manuellement Switching gateway… A little display to signal that the clicked gateway is being switched to Changement de passerelle… Only locations with bridges Subtitle to explain that only bridge locations are shown in the selector Seulement les emplacements avec des ponts Recommended Location Selection: label for radio button that selects automatically Recommandé MainView Donate Faire un don Preferences Préférences Help Aide About À propos Quit Fermer Please donate! Veuillez faire un don. This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now? Ce service est entièrement financé par les dons d’utilisateurs tels que vous. L’exploitation du RPV coûte approximativement 5 $ US par personne et par mois, mais chaque geste compte. Souhaitez-vous faire un don maintenant ? Preferences Preferences Préférences Turn off the VPN to make changes Désactiver le RPV pour effectuer des changements Language Censorship circumvention Contournement de la censure These techniques can bypass censorship, but are slower. Use them only when needed. Ces techniques peuvent contourner la censure, mais sont plus lentes. Ne les utiliser qu’au besoin. Use obfs4 bridges Utiliser des ponts obfs4 Traffic is obfuscated to bypass blocks Le trafic est brouillé pour contourner les blocages Use Snowflake Utiliser Snowflake Snowflake needs Tor installed in your system Snowflake a besoin que Tor soit installé sur votre système Transport Transport UDP can make the VPN faster. It might be blocked on some networks. L’UDP peut accélérer le RPV. Il pourrait être bloqué sur certains réseaux. Use UDP if available Utiliser l’UDP si disponible Splash There is a newer version available. Une version plus récente est proposée. Make sure to <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">uninstall</a> the previous one before running the new installer. Assurez-vous de <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">désinstaller</a> la version précédente avant de lancer le nouveau programme d’installation. UPGRADE NOW METTRE À NIVEAU MAINTENANT StatusBox This can take several minutes Systray Checking status… Vérification de l’état… Donate Faire un don Hide Part of the systray menu; show or hide the main app window Cacher Show Afficher Quit Part of the systray menu; quits the application Fermer Connect to Se connecter à Connect Se connecter Disconnect Se déconnecter VPNState Setting up Connecting Connexion Unsecured Connection Connexion non sécurisée Turn on Activer Secured Connection Connexion sécurisée Turn off Désactiver Cancel Annuler %1 off %1 -> application name %1 est désactivée off désactivé %1 on %1 -> application name %1 est activée Connecting to %1 %1 -> application name Connexion à %1 Stopping %1 %1 -> application name Arrêt de %1 %1 blocking internet %1 -> application name %1 bloque Internet pluggable transport connection connection done doing handshake handshake done creating one-hop connection requesting status loading status loading keys requesting descriptors loading descriptors creating circuit done VPNSwitch main : a fast and secure VPN. Powered by Bitmask.  : un RPV rapide et sécurisé. Propulsé par Bitmask. Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means). Ne pas afficher l’icône de la zone de notification (utile combiné à l’extension Gnome Shell ou pour contrôler le RPV par d’autres moyens). Enable Web API. Activer l’API Web. Install helpers (Linux only, requires sudo). Installer les aides (Linux seulement, « sudo » est requis). Use obfs4 to obfuscate the traffic, if available in the provider. Utiliser obfs4 pour brouiller le trafic, si proposé par le fournisseur. Enable autostart. Disable autostart for the next run. Désactiver le démarrage automatique pour la prochaine exécution. Web API port (default: 8080) Port de l’API Web (par défaut : 8080) Start the VPN, either 'on' or 'off'. Démarrer le RPV, soit Activer soit Désactiver riseup-vpn-0.24.5+ds1/gui/i18n/main_hu.ts000066400000000000000000000450231461742244100177410ustar00rootroot00000000000000 About About Névjegy <p>This service is paid for entirely by donations from users like you. <a href="%1">Please donate</a>.</p> donation text of the about dialog <p>Ez a szolgáltatás teljesen olyan felhasználók támogatásából fizetett, mint Ön. <a href="%1">Kérjük támogasson</a>.</p> %1 version: %2 screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -> application name %2 -> version string Footer Recommended Ajánlott Help Help Súgó Troubleshooting and support Report a bug How to uninstall InitErrors Could not find helpers. Please check your installation Nem találhatók segítők. Kérjük ellenőrizze a telepítését Could not find polkit agent. Nem található a polkit ügynök. Locations Select Location Automatically use best connection this is in the radio button for the auto selection Manually select Location Selection: label for radio buttons that selects manually Switching gateway… A little display to signal that the clicked gateway is being switched to Only locations with bridges Subtitle to explain that only bridge locations are shown in the selector Recommended Location Selection: label for radio button that selects automatically Ajánlott MainView Donate Támogatás Preferences Beállítások Help Súgó About Névjegy Quit Kilépés Please donate! This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now? Preferences Preferences Beállítások Turn off the VPN to make changes Language Censorship circumvention These techniques can bypass censorship, but are slower. Use them only when needed. Use obfs4 bridges obfs4 hidak használata Traffic is obfuscated to bypass blocks Use Snowflake Snowflake needs Tor installed in your system Transport UDP can make the VPN faster. It might be blocked on some networks. Use UDP if available Splash There is a newer version available. Make sure to <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">uninstall</a> the previous one before running the new installer. UPGRADE NOW StatusBox This can take several minutes Systray Checking status… Állapot ellenőrzése... Donate Támogatás Hide Part of the systray menu; show or hide the main app window Show Quit Part of the systray menu; quits the application Kilépés Connect to Connect Disconnect VPNState Setting up Connecting Unsecured Connection Turn on Bekapcsolás Secured Connection Turn off Kikapcsolás Cancel Mégse %1 off %1 -> application name %1 ki off %1 on %1 -> application name %1 be Connecting to %1 %1 -> application name Kapcsolódás ide: %1 Stopping %1 %1 -> application name %1 leállítása %1 blocking internet %1 -> application name %1 blokkolja az internetet pluggable transport connection connection done doing handshake handshake done creating one-hop connection requesting status loading status loading keys requesting descriptors loading descriptors creating circuit done VPNSwitch main : a fast and secure VPN. Powered by Bitmask. : gyors és biztonságos VPN. A Bitmask-kal hajtva. Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means). A tálca ikon elrejtése (hasznos a Gnome Shell kiterjesztéssel együtt, vagy ha a VPN-t más módon vezérli). Enable Web API. Web API engedélyezés. Install helpers (Linux only, requires sudo). Segítők telepítése (csak Linux, sudo-t igényel). Use obfs4 to obfuscate the traffic, if available in the provider. Az obfs4 használata a forgalom obfuszkálására, ha elérhető a szolgáltatónál. Enable autostart. Disable autostart for the next run. Autostart tiltása a következő futtatásnál. Web API port (default: 8080) Web API port alapértelmezett: 8080) Start the VPN, either 'on' or 'off'. VPN indítása 'be' vagy 'ki'. riseup-vpn-0.24.5+ds1/gui/i18n/main_it.ts000066400000000000000000000456261461742244100177520ustar00rootroot00000000000000 About About Informazioni <p>This service is paid for entirely by donations from users like you. <a href="%1">Please donate</a>.</p> donation text of the about dialog <p>Questo servizio è finanziato interamente da donazioni di utenti come te. <a href="%1">Dona anche tu</a>.</p> %1 version: %2 screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -> application name %2 -> version string %1 versione: %2 Footer Recommended Raccomandate Help Help Aiuto Troubleshooting and support Risoluzione dei problemi e assistenza Report a bug Segnala un problema How to uninstall Come disinstallare InitErrors Could not find helpers. Please check your installation Impossibile trovare helpers. Si prega di controllare l'installazione Could not find polkit agent. Impossibile trovare agente polkit. Locations Select Location Imposta la Località Automatically use best connection this is in the radio button for the auto selection Usa automaticamente la connessione migliore Manually select Location Selection: label for radio buttons that selects manually Seleziona manualmente Switching gateway… A little display to signal that the clicked gateway is being switched to Cambio gateway... Only locations with bridges Subtitle to explain that only bridge locations are shown in the selector Solo località con bridge Recommended Location Selection: label for radio button that selects automatically Raccomandate MainView Donate Dona Preferences Preferenze Help Aiuto About Informazioni Quit Esci Please donate! Fai una donazione! This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now? Questo servizio è interamente pagato da donazioni di utenti come te. Il costo della VPN è approssimativamente di 5 USD al mese a persona, ma ogni piccola goccia conta. Vuoi donare ora? Preferences Preferences Preferenze Turn off the VPN to make changes Spegni la VPN per applicare le modifiche Language Censorship circumvention Elusione della censura These techniques can bypass censorship, but are slower. Use them only when needed. Queste tecniche possono bypassare la censura, ma rallentano la connessione. Usale solo quando necessario. Use obfs4 bridges Utilizza bridges obfs4 Traffic is obfuscated to bypass blocks Il traffico è offuscato per bypassare i blocchi Use Snowflake Usa Snowflake Snowflake needs Tor installed in your system Snowflake richiede che sia installato Tor nel sistema Transport Trasporto UDP can make the VPN faster. It might be blocked on some networks. UDP può velocizzare la VPN. Potrebbe venir bloccato in alcune reti. Use UDP if available Utilizza UDP se disponibile Splash There is a newer version available. E' disponibile una nuova versione. Make sure to <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">uninstall</a> the previous one before running the new installer. Assicurati di <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">disinstallare</a> l'installazione precedente prima di eseguire quella nuova. UPGRADE NOW AGGIORNA ADESSO StatusBox This can take several minutes Questa operazione può richiedere diversi minuti. Systray Checking status… Controllo dello stato in corso... Donate Dona Hide Part of the systray menu; show or hide the main app window Nascosto Show Mostra Quit Part of the systray menu; quits the application Esci Connect to Connetti a Connect Connetti Disconnect Disconnetti VPNState Setting up Impostazione in corso Connecting Connessione in corso Unsecured Connection Connessione non sicura Turn on Accendi Secured Connection Connessione sicura Turn off Spegni Cancel Annulla %1 off %1 -> application name %1 spento off spento %1 on %1 -> application name %1 acceso Connecting to %1 %1 -> application name Connessione a %1 Stopping %1 %1 -> application name Arresto di %1 in corso %1 blocking internet %1 -> application name %1 sta bloccando internet pluggable transport connection connection done connessione eseguita doing handshake handshake in corso handshake done handshake eseguito creating one-hop connection requesting status richiesta stato in corso loading status caricamento stato loading keys caricamento chiavi requesting descriptors richiesta descrittori loading descriptors caricamento descrittori creating circuit creazione circuito done fatto VPNSwitch main : a fast and secure VPN. Powered by Bitmask. : una VPN veloce e sicura. Powered by Bitmask. Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means). Non mostrare l'icona nel vassoio di sistema (utile insieme a l'estensione di Gnome Shell o per controllare la VPN in altri modi). Enable Web API. Abilita API Web. Install helpers (Linux only, requires sudo). Installa helpers (solo Linux, richiede sudo). Use obfs4 to obfuscate the traffic, if available in the provider. Usa obfs4 per offuscare il traffico, se disponibile nel provider. Enable autostart. Abilita avvio automatico. Web API port (default: 8080) Porta API web (default: 8080) Start the VPN, either 'on' or 'off'. Avvia la VPN, 'on' o 'off'. riseup-vpn-0.24.5+ds1/gui/i18n/main_lt.ts000066400000000000000000000462421461742244100177500ustar00rootroot00000000000000 About About Apie <p>This service is paid for entirely by donations from users like you. <a href="%1">Please donate</a>.</p> donation text of the about dialog <p>Ši paslauga yra pilnai apmokama iš tokių pačių naudotojų, kaip jūs, paaukojimų. <a href="%1">Prašome paaukoti</a>.</p> %1 version: %2 screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -> application name %2 -> version string %1 versija: %2 Footer Recommended Rekomenduojama Help Help Žinynas Troubleshooting and support Nesklandumų šalinimas ir palaikymas Report a bug Pranešti apie klaidą How to uninstall Kaip pašalinti programą InitErrors Could not find helpers. Please check your installation Nepavyko rasti pagelbiklių. Patikrinkite savo diegimą Could not find polkit agent. Nepavyko rasti polkit agento. Locations Select Location Pasirinkti vietą Automatically use best connection this is in the radio button for the auto selection Automatiškai naudoti geriausią ryšį Manually select Location Selection: label for radio buttons that selects manually Pasirinkti rankiniu būdu Switching gateway… A little display to signal that the clicked gateway is being switched to Perjungiamas tinklų sietuvas… Only locations with bridges Subtitle to explain that only bridge locations are shown in the selector Tik vietos su tinklų tiltais Recommended Location Selection: label for radio button that selects automatically Rekomenduojama MainView Donate Paaukoti Preferences Nuostatos Help Žinynas About Apie Quit Išeiti Please donate! Prašome paaukoti! This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now? Ši paslauga yra pilnai apmokama iš lėšų, kurias paaukoja tokie naudotojai, kaip jūs. VPN aptarnavimo kaina vienam žmogui siekia maždaug 5 JAV dolerius per mėnesį, bet yra vertinamas kiekvienas centas. Ar norite paaukoti dabar? Preferences Preferences Nuostatos Turn off the VPN to make changes Norėdami atlikti pakeitimus, išjunkite VPN Language Censorship circumvention Cenzūros apėjimas These techniques can bypass censorship, but are slower. Use them only when needed. Šios technikos gali apeiti cenzūrą, bet yra lėtesnės. Naudokite jas tik tada, kai prireikia. Use obfs4 bridges Naudoti obfs4 tinklų tiltus Traffic is obfuscated to bypass blocks Duomenų srautas yra maskuojamas, kad būtų apeiti blokavimai Use Snowflake Naudoti „Snowflake“ Snowflake needs Tor installed in your system „Snowflake“ reikalauja, kad jūsų sistemoje būtų įdiegtas „Tor“ Transport Perdavimas UDP can make the VPN faster. It might be blocked on some networks. UDP gali padaryti VPN greitesnį. UDP kai kuriuose tinkluose gali būti blokuojamas. Use UDP if available Jei prieinama, naudoti UDP Splash There is a newer version available. Yra prieinama naujesnė versija. Make sure to <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">uninstall</a> the previous one before running the new installer. Prieš paleisdami diegimo programą, įsitikinkite, kad <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">pašalinote</a> ankstesnę versiją. UPGRADE NOW NAUJINTI DABAR StatusBox This can take several minutes Systray Checking status… Tikrinama būsena… Donate Paaukoti Hide Part of the systray menu; show or hide the main app window Slėpti Show Rodyti Quit Part of the systray menu; quits the application Išeiti Connect to Prisijungti prie Connect Prisijungti Disconnect Atsijungti VPNState Setting up Connecting Jungiamasi Unsecured Connection Neapsaugotas ryšys Turn on Įjungti Secured Connection Apsaugotas ryšys Turn off Išjungti Cancel Atsisakyti %1 off %1 -> application name %1 išjungta off išjungta %1 on %1 -> application name %1 įjungta Connecting to %1 %1 -> application name Jungiamasi prie %1 Stopping %1 %1 -> application name Stabdoma %1 %1 blocking internet %1 -> application name %1 blokuoja internetą pluggable transport connection connection done doing handshake handshake done creating one-hop connection requesting status loading status loading keys requesting descriptors loading descriptors creating circuit done VPNSwitch main : a fast and secure VPN. Powered by Bitmask. : greitas ir saugus VPN. Veikia su Bitmask. Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means). Nerodyti sistemos dėklo piktogramos (praverčia su Gnome apvalkalo plėtiniu arba siekiant kitokiu būdu valdyti VPN). Enable Web API. Įjungti saityno API. Install helpers (Linux only, requires sudo). Įdiegti pagelbiklius (tik Linux, reikalauja sudo). Use obfs4 to obfuscate the traffic, if available in the provider. Naudoti obfs4, siekiant maskuoti duomenų srautą, jei prieinama iš teikėjo. Enable autostart. Disable autostart for the next run. Išjungti automatinį paleidimą kitam paleidimui. Web API port (default: 8080) Saityno API prievadas (numatytasis: 8080) Start the VPN, either 'on' or 'off'. Paleisti VPN, arba „on“, arba „off“. riseup-vpn-0.24.5+ds1/gui/i18n/main_nl.ts000066400000000000000000000457641461742244100177520ustar00rootroot00000000000000 About About Over <p>This service is paid for entirely by donations from users like you. <a href="%1">Please donate</a>.</p> donation text of the about dialog <p>Deze dienst wordt volledig gefinancierd door donaties van gebruikers zoals jij.<a href="%1">Gelieve te doneren</a>.</p> %1 version: %2 screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -> application name %2 -> version string %1 versie: %2 Footer Recommended Aanbevolen Help Help Help Troubleshooting and support Probleemoplossing en ondersteuning Report a bug Rapporteer een bug How to uninstall Hoe te de-installeren InitErrors Could not find helpers. Please check your installation Kon de helpertoepassing niet vinden. Controleer je installatie. Could not find polkit agent. Kon geen polkit-agent vinden. Locations Select Location Selecteer locatie Automatically use best connection this is in the radio button for the auto selection Automatisch de beste verbinding gebruiken Manually select Location Selection: label for radio buttons that selects manually Manueel selecteren Switching gateway… A little display to signal that the clicked gateway is being switched to Gateway wisselen… Only locations with bridges Subtitle to explain that only bridge locations are shown in the selector Alleen locaties met bridges Recommended Location Selection: label for radio button that selects automatically Aanbevolen MainView Donate Doneren Preferences Voorkeuren Help Help About Over Quit Stoppen Please donate! Doneer alsjeblieft! This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now? Deze dienst wordt volledig gefinancierd met donaties van gebruikers zoals jij. Het kost ongeveer 5$ per persoon per maand, maar ieder beetje helpt. Wil je nu doneren? Preferences Preferences Voorkeuren Turn off the VPN to make changes Schakel de VPN uit om te wijzigen Language Censorship circumvention Censuur omzeilen These techniques can bypass censorship, but are slower. Use them only when needed. Deze techniek kan censuur omzeilen, maar is ook trager. Gebruik het alleen wanneer noodzakelijk. Use obfs4 bridges Gebruik een obfs4 bridge Traffic is obfuscated to bypass blocks Verkeer is versluierd om blokkades te omzeilen Use Snowflake Gebruik Snowflake Snowflake needs Tor installed in your system Tor moet op je systeem geïnstalleerd zijn voor Snowflake Transport Transport UDP can make the VPN faster. It might be blocked on some networks. UDP kan een VPN sneller maken. Het kan geblokkeerd zijn op sommige netwerken. Use UDP if available Gebruik UDP wanneer beschikbaar Splash There is a newer version available. Er is een nieuwe versie beschikbaar. Make sure to <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">uninstall</a> the previous one before running the new installer. Zorg ervoor dat je de vorige versie <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">deïnstalleert</a> voor je de nieuwe versie start. UPGRADE NOW UPGRADE NU StatusBox This can take several minutes Systray Checking status… Status controleren… Donate Doneren Hide Part of the systray menu; show or hide the main app window Verbergen Show Tonen Quit Part of the systray menu; quits the application Stoppen Connect to Verbinden met Connect Verbinden Disconnect Verbinding verbreken VPNState Setting up Connecting Verbinden Unsecured Connection Onbeveiligde Verbinding Turn on Inschakelen Secured Connection Beveiligde Verbinding Turn off Uitschakelen Cancel Annuleren %1 off %1 -> application name %1 uit off uit %1 on %1 -> application name %1 aan Connecting to %1 %1 -> application name Verbinden met %1 Stopping %1 %1 -> application name Stoppen %1 %1 blocking internet %1 -> application name %1 blokkeert het internet pluggable transport connection connection done doing handshake handshake done creating one-hop connection requesting status loading status loading keys requesting descriptors loading descriptors creating circuit done VPNSwitch main : a fast and secure VPN. Powered by Bitmask. : een snelle en veilige VPN. Powered by Bitmask. Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means). Toon het systray icoontje niet (handig in combinatie met Gnome Shell extensie, of om VPN op een andere manier te bedienen). Enable Web API. Web API activeren. Install helpers (Linux only, requires sudo). Helpertoepassing installeren (enkel voor Linux, vereist sudo). Use obfs4 to obfuscate the traffic, if available in the provider. Gebruik obfs4 om je verkeer te versluieren, als het beschikbaar is biji de provider. Enable autostart. Disable autostart for the next run. Autostart uitschakelen voor de volgende keer. Web API port (default: 8080) Web API poort (standard: 8080) Start the VPN, either 'on' or 'off'. Start VPN, 'aan' of 'uit'. riseup-vpn-0.24.5+ds1/gui/i18n/main_pl.ts000066400000000000000000000447641461742244100177530ustar00rootroot00000000000000 About About O Aplikacji <p>This service is paid for entirely by donations from users like you. <a href="%1">Please donate</a>.</p> donation text of the about dialog <p>Ta usługa jest w całości opłacana przez datki od użytkowników takich jak Ty. <a href="%1">Rozważ datek</a>.</p> %1 version: %2 screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -> application name %2 -> version string Footer Recommended Rekomendowane Help Help Pomoc Troubleshooting and support Report a bug How to uninstall InitErrors Could not find helpers. Please check your installation Nie udało się znaleźć pomocników. Sprawdź swoją instalację Could not find polkit agent. Nie udało się znaleźć agenta polkit. Locations Select Location Automatically use best connection this is in the radio button for the auto selection Manually select Location Selection: label for radio buttons that selects manually Switching gateway… A little display to signal that the clicked gateway is being switched to Only locations with bridges Subtitle to explain that only bridge locations are shown in the selector Recommended Location Selection: label for radio button that selects automatically Rekomendowane MainView Donate Darowizna Preferences Ustawienia Help Pomoc About O Aplikacji Quit Zamknij Please donate! This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now? Preferences Preferences Ustawienia Turn off the VPN to make changes Language Censorship circumvention These techniques can bypass censorship, but are slower. Use them only when needed. Use obfs4 bridges Używaj mostów obfs4 Traffic is obfuscated to bypass blocks Use Snowflake Snowflake needs Tor installed in your system Transport UDP can make the VPN faster. It might be blocked on some networks. Use UDP if available Splash There is a newer version available. Make sure to <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">uninstall</a> the previous one before running the new installer. UPGRADE NOW StatusBox This can take several minutes Systray Checking status… Sprawdzanie statusu... Donate Darowizna Hide Part of the systray menu; show or hide the main app window Show Quit Part of the systray menu; quits the application Zamknij Connect to Connect Połącz Disconnect VPNState Setting up Connecting Unsecured Connection Turn on Włącz Secured Connection Turn off Wyłącz Cancel Anuluj %1 off %1 -> application name %1 wyłączony off %1 on %1 -> application name %1 włączony Connecting to %1 %1 -> application name Łączenie z %1 Stopping %1 %1 -> application name Zatrzymywanie %1 %1 blocking internet %1 -> application name %1 blokuje internet pluggable transport connection connection done doing handshake handshake done creating one-hop connection requesting status loading status loading keys requesting descriptors loading descriptors creating circuit done VPNSwitch main : a fast and secure VPN. Powered by Bitmask. : szybki i bezpieczny VPN. Obsługiwany przez Bitmask. Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means). Nie wyświetlaj ikony paska zadań (przydatne w połączeniu z rozszerzeniem Gnome Shell lub do kontrolowania VPN w inny sposób). Enable Web API. Włącz Web API. Install helpers (Linux only, requires sudo). Zainstaluj pomocniki (wyłącznie Linux, wymaga sudo). Use obfs4 to obfuscate the traffic, if available in the provider. Używaj obfs4, aby ukryć ruch, jeśli dostępny u dostawcy. Enable autostart. Disable autostart for the next run. Wyłącz autostart dla następnego uruchomienia. Web API port (default: 8080) Port Web API (domyślny: 8080) Start the VPN, either 'on' or 'off'. Uruchom VPN, 'włączony' lub 'wyłączony'. riseup-vpn-0.24.5+ds1/gui/i18n/main_pt-rBR.ts000066400000000000000000000457171461742244100204450ustar00rootroot00000000000000 About About Sobre <p>This service is paid for entirely by donations from users like you. <a href="%1">Please donate</a>.</p> donation text of the about dialog <p>Este serviço é inteiramente financiado por doações de pessoas como você. <a href="%1">Por favor, faça uma doação</a>.</p> %1 version: %2 screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -> application name %2 -> version string %1 versão: $2 Footer Recommended Recomendado Help Help Ajuda Troubleshooting and support Resolução de problemas e suporte Report a bug Reportar um bug How to uninstall Como desinstalar InitErrors Could not find helpers. Please check your installation Não foi possível encontrar "helpers". Por favor, verifique sua instalação Could not find polkit agent. Não foi possível encontrar um agente polkit. Locations Select Location Selecione um Local Automatically use best connection this is in the radio button for the auto selection Use a melhor conexão automaticamente Manually select Location Selection: label for radio buttons that selects manually Selecionar manualmente Switching gateway… A little display to signal that the clicked gateway is being switched to Trocando gateway... Only locations with bridges Subtitle to explain that only bridge locations are shown in the selector Apenas locais com bridges Recommended Location Selection: label for radio button that selects automatically Recomendado MainView Donate Fazer uma doação Preferences Preferências Help Ajuda About Sobre Quit Sair Please donate! Por favor, faça uma doação! This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now? Este serviço é inteiramente financiado por doações de pessoas como você. O custo de rodar uma VPN é de aproximadamente 5 USD por pessoa todo mês, mas qualquer coisinha ajuda. Você quer doar agora? Preferences Preferences Preferências Turn off the VPN to make changes Desligue a VPN para fazer alterações Language Censorship circumvention Driblando a censura These techniques can bypass censorship, but are slower. Use them only when needed. Estas técnicas podem driblar censura, mas são mais lentas. Use-as somente quando necessário. Use obfs4 bridges Usar bridges obfs4 Traffic is obfuscated to bypass blocks O tráfego é ofuscado para atravessar bloqueios Use Snowflake Usar Snowflake Snowflake needs Tor installed in your system Snowflake precisa do Tor instalado no seu sistema Transport Transporte UDP can make the VPN faster. It might be blocked on some networks. UDP pode tornar a VPN mais rápida. Mas pode ser bloqueado em algumas redes. Use UDP if available Usar UDP se possível Splash There is a newer version available. Há uma nova versão disponível. Make sure to <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">uninstall</a> the previous one before running the new installer. Tenha certeza de <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">desinstalar</a> a versão anterior antes de executar o novo instalador. UPGRADE NOW ATUALIZE AGORA StatusBox This can take several minutes Isto pode demorar vários minutos Systray Checking status… Verificando o estado... Donate Fazer uma doação Hide Part of the systray menu; show or hide the main app window Esconder Show Mostrar Quit Part of the systray menu; quits the application Sair Connect to Conectar a Connect Conectar Disconnect Desconectar VPNState Setting up Configurando Connecting Conectando Unsecured Connection Conexão Insegura Turn on Ligar Secured Connection Conexão Segura Turn off Desligar Cancel Cancelar %1 off %1 -> application name %1 desligado off desligado %1 on %1 -> application name %1 ligado Connecting to %1 %1 -> application name Conectando a %1 Stopping %1 %1 -> application name Parando %1 %1 blocking internet %1 -> application name %1 bloqueando Internet pluggable transport connection conexão de transporte plugável connection done conexão terminada doing handshake fazendo handshake handshake done handshake terminado creating one-hop connection criando conexão de um estágio requesting status solicitando estado loading status carregando estado loading keys carregando chaves requesting descriptors requisitando descritores loading descriptors carregando descritores creating circuit criando circuito done pronto VPNSwitch main : a fast and secure VPN. Powered by Bitmask. : uma VPN rápida e segura. Baseada em Bitmask. Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means). Não mostrar ícone na bandeja (útil para uso conjunto com a extensão para Gnome Shell, ou para controlar a VPN por outros meios). Enable Web API. Habilitar API Web. Install helpers (Linux only, requires sudo). Instalar arquivos auxiliares (somente para Linux, requer sudo). Use obfs4 to obfuscate the traffic, if available in the provider. Usar obfs4 para ofuscar o tráfego, caso esteja disponível no provedor. Enable autostart. Habilitar auto inicialização. Web API port (default: 8080) Porta para API Web (padrão: 8080) Start the VPN, either 'on' or 'off'. Iniciar VPN, pode ser 'ligado' ou 'desligado'. riseup-vpn-0.24.5+ds1/gui/i18n/main_ru.ts000066400000000000000000000506161461742244100177570ustar00rootroot00000000000000 About About О проекте <p>This service is paid for entirely by donations from users like you. <a href="%1">Please donate</a>.</p> donation text of the about dialog <p>Этот сервис поддерживается только благодаря таким людям, как вы. <a href="%1">Пожалуйста, пожертвуйте</a>.</p> %1 version: %2 screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -> application name %2 -> version string Версия %1: %2 Footer Recommended Рекомендовано Help Help Помощь Troubleshooting and support Решение проблем и поддержка Report a bug Сообщить об ошибке How to uninstall Как удалить InitErrors Could not find helpers. Please check your installation Не удалось найти помощников. Пожалуйста, проверьте вашу установку Could not find polkit agent. Не удалось найти агент polkit. Locations Select Location Выбор локации Automatically use best connection this is in the radio button for the auto selection Автоматически использовать лучшее соединение Manually select Location Selection: label for radio buttons that selects manually Выбор вручную Switching gateway… A little display to signal that the clicked gateway is being switched to Переключение шлюза… Only locations with bridges Subtitle to explain that only bridge locations are shown in the selector Только локации с мостами Recommended Location Selection: label for radio button that selects automatically Рекомендовано MainView Donate Пожертвуйте Preferences Настройки Help Помощь About О проекте Quit Выход Please donate! Пожалуйста, пожертвуйте! This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now? Этот сервис поддерживается только благодаря таким людям, как вы. Стоимость VPN — примерно 5$/мес/чел., но нам важен каждый цент. Хотите пожертвовать прямо сейчас? Preferences Preferences Предпочтений Turn off the VPN to make changes Выключите VPN для изменений Language Язык Censorship circumvention Обход цензуры These techniques can bypass censorship, but are slower. Use them only when needed. Эти способы позволяют обойти цензуру, но замедляют соединение. Используйте по необходимости. Use obfs4 bridges Использовать мосты obfs4 Traffic is obfuscated to bypass blocks Трафик обфусцирован для обхода блокировок Use Snowflake Использовать Snowflake Snowflake needs Tor installed in your system Требуется наличие Tor в системе Transport Транспорт UDP can make the VPN faster. It might be blocked on some networks. UDP может ускорить VPN. В некоторых сетях UDP блокируется. Use UDP if available Использовать UDP, если доступно Splash There is a newer version available. Доступна новая версия. Make sure to <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">uninstall</a> the previous one before running the new installer. Перед запуском новой программы установки обязательно <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">удалите</a> предыдущую. UPGRADE NOW ОБНОВИТЬСЯ СЕЙЧАС StatusBox This can take several minutes Это может занять несколько минут Systray Checking status… Проверка статуса… Donate Пожертвуйте Hide Part of the systray menu; show or hide the main app window Скрыть Show Показать Quit Part of the systray menu; quits the application Выйти Connect to Подключиться к Connect Установить соединение Disconnect Отключить VPNState Setting up Настройка Connecting Подключение Unsecured Connection Соединение не защищено Turn on ВКЛ Secured Connection Защищено Соединение Turn off ВЫКЛ Cancel Отменить %1 off %1 -> application name Статус %1: включено off выключено %1 on %1 -> application name Статус %1: выключено Connecting to %1 %1 -> application name Подключение к %1 Stopping %1 %1 -> application name Остановка %1 %1 blocking internet %1 -> application name %1 блокирует интернет pluggable transport connection подключаемое транспортное соединение connection done соединение выполнено doing handshake рукопожатие handshake done рукопожатие выполнено creating one-hop connection создание одношагового соединения requesting status статус запроса loading status статус загрузки loading keys загрузка ключей requesting descriptors запрос дескрипторов loading descriptors загрузка дескрипторов creating circuit создание цепи done ok VPNSwitch main : a fast and secure VPN. Powered by Bitmask. : быстрый и безопасный VPN. При поддержке Bitmask. Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means). Не показывать значок в системном трее (полезно при использовании расширения Gnome Shell или для управления VPN другими способами). Enable Web API. Включить Web API. Install helpers (Linux only, requires sudo). Установить помощники (только для Linux, требуется sudo). Use obfs4 to obfuscate the traffic, if available in the provider. Для обфускации трафика использовать obfs4, если он доступен у провайдера. Enable autostart. Включить автозапуск. Web API port (default: 8080) Порт Web API (по умолчанию: 8080) Start the VPN, either 'on' or 'off'. Запустить VPN, выбрав "вкл." или "выкл.". riseup-vpn-0.24.5+ds1/gui/i18n/main_th.ts000066400000000000000000000545621461742244100177500ustar00rootroot00000000000000 About About เกี่ยวกับ <p>This service is paid for entirely by donations from users like you. <a href="%1">Please donate</a>.</p> donation text of the about dialog <p>บริการนี้ได้รับเงินบริจาคทั้งหมดจากผู้ใช้เช่นคุณ. <a href="%1">กรุณาบริจาค</a>.</p> %1 version: %2 screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -> application name %2 -> version string %1 รุ่น: %2 Footer Recommended เเนะนำ Help Help ช่วยเหลือ Troubleshooting and support การเเก้ไขปัญหาเเละการสนับสนุน Report a bug เเจ้งข้อผิดพลาดที่พบ How to uninstall วิธียกเลิกการติดตั้ง InitErrors Could not find helpers. Please check your installation ไม่สามารถค้นหาตัวช่วย. กรุณาตรวจสอบการติดตั้งของคุณ Could not find polkit agent. ไม่พบตัวแทนพูลคิท Locations Select Location เลือกสถานที่ตั้ง Automatically use best connection this is in the radio button for the auto selection เลือกการเชื่อมต่อที่ดีที่สุดโดยอัตโนมัติ Manually select Location Selection: label for radio buttons that selects manually เลือกด้วยตนเอง Switching gateway… A little display to signal that the clicked gateway is being switched to สลับเกตเวย์ Only locations with bridges Subtitle to explain that only bridge locations are shown in the selector เฉพาะบางที่ตั้งที่ใช้กับทางเชื่อมได้ Recommended Location Selection: label for radio button that selects automatically เเนะนำ MainView Donate บริจาค Preferences การตั้งค่า Help ช่วยเหลือ About เกี่ยวกับ Quit ออก Please donate! กรุณาบริจาค! This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now? บริการนี้ได้รับการจ่ายเเล้วทั้งหมดโดยการบริจาคจากผู้ใช้เช่นคุณ ค่าใช้จ่ายในการใช้งานวีพีเอ็นอยู่ที่ประมาณ 5 ดอลล่าห์ ต่อคนต่อเดือน แต่ทุกๆ ดอลล่าห์เเม้เล็กน้อยเเต่มีค่า คุณต้องการบริจาคตอนนี้หรือไม่? Preferences Preferences การตั้งค่า Turn off the VPN to make changes ปิด VPN เพื่อทำการเปลี่ยนเปลง Language Censorship circumvention หลีกเลี่ยงการปิดกั้น These techniques can bypass censorship, but are slower. Use them only when needed. ในทางเทคนิคสามารถช่วยให้หลีกเลี่ยงการปิดกั้น, เเต่จะทำให้ช้า. ใช้เฉพาะเมื่อต้องการเท่านั้น. Use obfs4 bridges ใช้ทางเชื่อม obfs4 Traffic is obfuscated to bypass blocks ข้อมูลการจราจรจะถูกทำให้สับสนเพื่อหลีกเลี่ยงการปิดกั้น Use Snowflake ใช้ Snowflake Snowflake needs Tor installed in your system Snowflake ต้องการให้ Tor ถูกติดตั้งบนระบบปฎิบัติการของคุณ Transport การขนส่งข้อมูล UDP can make the VPN faster. It might be blocked on some networks. UDP สามารถทำให้ VPN เร็วกว่าเดิม.เเต่มักจะถูกปิดกั้นในบางเครือข่าย Use UDP if available ใช้ UDP ถ้าสามารถใช้ได้ Splash There is a newer version available. ไม่มีรุ่นใหม่ให้ปรับปรุง Make sure to <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">uninstall</a> the previous one before running the new installer. ทำให้เเน่ใจว่า <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">ถูกถอนการติดตั้ง</a> ก่อนจะเรียกใช้การติดตั้งใหม่. UPGRADE NOW อัปเกรดเดี๋ยวนี้ StatusBox This can take several minutes การดำเนินการนี้อาจใช้เวลาหลายนาที Systray Checking status… กำลังตรวจสอบสถานะ Donate บริจาค Hide Part of the systray menu; show or hide the main app window ซ่อน Show แสดง Quit Part of the systray menu; quits the application ออก Connect to เชื่อมต่อไปที่ Connect เชื่อมต่อ Disconnect ตัดการเชื่อมต่อ VPNState Setting up กำลังตั้งค่า Connecting กำลังติดต่อ Unsecured Connection การเชื่อมต่อไม่ปลอดภัย Turn on เปิด Secured Connection การเชื่อมต่อปลอดภัย Turn off ปิด Cancel ยกเลิก %1 off %1 -> application name %1 ปิด off ปิด %1 on %1 -> application name %1 เปิด Connecting to %1 %1 -> application name กำลังเชื่อมต่อไปที่ %1 Stopping %1 %1 -> application name กำลังหยุด %1 %1 blocking internet %1 -> application name %1 กำลังปิดกั้นอินเตอร์เน็ต pluggable transport connection การ้ชื่อมต่อการส่งข้อมูลเเบบสามารถถอดออกได้ connection done การเชื่อมต่อเสร็จสิ้น doing handshake กำลังทำ Handshake handshake done Handshake เสร็จสิ้น creating one-hop connection กำลังสร้างการเชื่อมต่อเเบบหนึ่งจุด requesting status กำลังร้องขอสถานะ loading status กำลังดึงสถานะ loading keys กำลังดึงคีย์ requesting descriptors กำลังร้องขอรายละเอียด loading descriptors กำลังดึงรายละเอียด creating circuit กำลังสร้างวงจรเส้นทาง done สำเร็จ VPNSwitch main : a fast and secure VPN. Powered by Bitmask. : วีพีเอ็นเร็วเเละปลอดภัย. ขับเคลื่อนโดยบิตเเมส Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means). อย่าแสดงไอคอนบนถาดสถานะระบบ (มีประโยชน์เมื่อรวมกับส่วนขยายจีโนมเชล หรือเพื่อควบคุมวีพีเอ็นด้วยวิธีอื่น) Enable Web API. เปิดใช้งานเว็บเอพีไอ Install helpers (Linux only, requires sudo). ติดตั้งตัวช่วยเหลือ (ลินุกซ์เท่านั้น, ร้องขอการเข้าถึงสิทธิราก). Use obfs4 to obfuscate the traffic, if available in the provider. ใช้โอบีเอฟเอส4เพื่อให้การสื่อสารสับสนซ้อบซ้อน, ถ้าสามารถใช้ได้ในผู้ให้บริการ Enable autostart. เปิดใช้งานการทำงานอัตโนมัติ Web API port (default: 8080) พอร์ตเว็บเอพีไอ (ค่าเริ่มต้น: 8080) Start the VPN, either 'on' or 'off'. เริ่ม VPN ไม่ว่าจะเป็น "เปิด" หรือ "ปิด" riseup-vpn-0.24.5+ds1/gui/i18n/main_tr.ts000066400000000000000000000464521461742244100177610ustar00rootroot00000000000000 About About Hakkında <p>This service is paid for entirely by donations from users like you. <a href="%1">Please donate</a>.</p> donation text of the about dialog <p>Bu hizmetin bedeli, sizin gibi kullanıcıların bağışlarıyla sağlanıyor. <a href="%1">Lütfen bağış yapın</a>.</p> %1 version: %2 screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -> application name %2 -> version string %1 sürüm: %2 Footer Recommended Önerilen Help Help Yardım Troubleshooting and support Sorun giderme ve destek Report a bug Bir hata bildirin How to uninstall Nasıl kaldırılır InitErrors Could not find helpers. Please check your installation Yardımcılar bulunamadı, lütfen kurulumunuzu denetleyin. Could not find polkit agent. polkit uygulaması bulunamadı. Locations Select Location Konum seçin Automatically use best connection this is in the radio button for the auto selection Otomatik olarak en iyi bağlantı kullanılsın Manually select Location Selection: label for radio buttons that selects manually El ile seçin Switching gateway… A little display to signal that the clicked gateway is being switched to Ağ geçidi değiştiriliyor… Only locations with bridges Subtitle to explain that only bridge locations are shown in the selector Yalnız köprü ile ulaşılan konumlar Recommended Location Selection: label for radio button that selects automatically Önerilen MainView Donate Bağış yapın Preferences Ayarlar Help Yardım About Hakkında Quit Çık Please donate! Lütfen bağış yapın! This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now? Bu hizmet tamamen sizin gibi kullanıcıların bağışları sayesinde sunulabiliyor. Bir VPN ağını işletme maliyeti, kişi başına aylık 5 dolar civarındadır, ancak her katkı değerlidir. Siz de bağış yapmak ister misiniz? Preferences Preferences Ayarlar Turn off the VPN to make changes Değişiklik yapmak için VPN bağlantısını kapatın Language Censorship circumvention Sansürü aşma These techniques can bypass censorship, but are slower. Use them only when needed. Bu yöntemler sansürü aşabilir, ancak yavaştır. Yalnız gerek duyduğunuz zaman kullanın. Use obfs4 bridges obfs4 köprüleri kullanılsın Traffic is obfuscated to bypass blocks Engelleri aşmak için trafik gizlenir Use Snowflake Snowflake kullanılsın Snowflake needs Tor installed in your system Snowflake için sisteminizde Tor kurulu olması gerekir Transport Taşıyıcı UDP can make the VPN faster. It might be blocked on some networks. UDP, VPN bağlantısını daha hızlı yapabilir. Bazı ağlarda engellenmiş olabilir. Use UDP if available Olabiliyorsa UDP kullanılsın Splash There is a newer version available. Yeni bir sürüm yayınlanmış. Make sure to <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">uninstall</a> the previous one before running the new installer. Yeni kurulumu başlatmadan önce lütfen önceki kurulumu <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">kaldırdığınızdan</a> emin olun. UPGRADE NOW ŞİMDİ YÜKSELT StatusBox This can take several minutes Systray Checking status… Durum denetleniyor… Donate Bağış yapın Hide Part of the systray menu; show or hide the main app window Gizle Show Görüntüle Quit Part of the systray menu; quits the application Çık Connect to Şuraya bağlan Connect Bağlantı kur Disconnect Bağlantıyı kes VPNState Setting up Connecting Bağlantı kuruluyor Unsecured Connection Güvenilmez bağlantı Turn on Secured Connection Güvenilir bağlantı Turn off Kapat Cancel Vazgeç %1 off %1 -> application name %1 kapalı off kapalı %1 on %1 -> application name %1 açık Connecting to %1 %1 -> application name %1 ile bağlantı kuruluyor Stopping %1 %1 -> application name %1 durduruluyor %1 blocking internet %1 -> application name %1 interneti engelliyor pluggable transport connection connection done doing handshake handshake done creating one-hop connection requesting status loading status loading keys requesting descriptors loading descriptors creating circuit done VPNSwitch main : a fast and secure VPN. Powered by Bitmask. : hızlı ve güvenilir bir VPN. Bitmask tarafından sunuluyor. Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means). Sistem çubuğu simgesi görüntülenmesin (Gnome kabuk eklentisiyle birlikte ya da VPN bağlantısını başka şekillerde denetlemek için kullanışlıdır) Enable Web API. Web API kullanılsın Install helpers (Linux only, requires sudo). Yardımcıları kur (yalnız Linux üzerinde ve sudo gereklidir) Use obfs4 to obfuscate the traffic, if available in the provider. Trafiği gizlemek için obfs4 kullanılsın. Yalnız hizmet sağlayıcıda kullanılabiliyorsa Enable autostart. Disable autostart for the next run. Sonraki çalıştırmada otomatik başlatma devre dışı bırakılsın Web API port (default: 8080) Web API kapı numarası (varsayılan: 8080) Start the VPN, either 'on' or 'off'. VPN bağlantısını başlat, 'açık' veya 'kapalı'. riseup-vpn-0.24.5+ds1/gui/i18n/main_ug.ts000066400000000000000000000462351461742244100177460ustar00rootroot00000000000000 About About ھەققىدە <p>This service is paid for entirely by donations from users like you. <a href="%1">Please donate</a>.</p> donation text of the about dialog <p>بۇ مۇلازىمەتنىڭ چىقىمىنى سىزگە ئوخشاش سېخى خەير-ساخاۋەتچىلەر ئۈستىگە ئالغان. <a href="%1">قېنى ئىئانە قىلىڭ</a>. </p> %1 version: %2 screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -> application name %2 -> version string Footer Recommended تەۋسىيە Help Help Troubleshooting and support Report a bug How to uninstall InitErrors Could not find helpers. Please check your installation ياردەمچىنى تاپالمىدىم. توغرا قاچىلىدىڭىزمۇ تەكشۈرۈڭ Could not find polkit agent. پولكىت ئاگېنتىسىنى تاپالمدىدىم. Locations Select Location Automatically use best connection this is in the radio button for the auto selection Manually select Location Selection: label for radio buttons that selects manually Switching gateway… A little display to signal that the clicked gateway is being switched to Only locations with bridges Subtitle to explain that only bridge locations are shown in the selector Recommended Location Selection: label for radio button that selects automatically تەۋسىيە MainView Donate ئىئانە Preferences Help About ھەققىدە Quit چىقىش Please donate! This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now? Preferences Preferences Turn off the VPN to make changes Language Censorship circumvention These techniques can bypass censorship, but are slower. Use them only when needed. Use obfs4 bridges Obfs4 كۆۋرۈكلىرىنى ئىشلىتىڭ Traffic is obfuscated to bypass blocks Use Snowflake Snowflake needs Tor installed in your system Transport UDP can make the VPN faster. It might be blocked on some networks. Use UDP if available Splash There is a newer version available. Make sure to <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">uninstall</a> the previous one before running the new installer. UPGRADE NOW StatusBox This can take several minutes Systray Checking status… ھالىتى تەكشۈرىلىۋاتىدۇ… Donate ئىئانە Hide Part of the systray menu; show or hide the main app window Show Quit Part of the systray menu; quits the application چىقىش Connect to Connect Disconnect VPNState Setting up Connecting Unsecured Connection Turn on ئېتىش Secured Connection Turn off ئېچىش Cancel بىكار قىلىش %1 off %1 -> application name %1 ئېتىش off %1 on %1 -> application name %1 ئېچىش Connecting to %1 %1 -> application name گە ئۇلىنىۋاتىدۇ %1 Stopping %1 %1 -> application name توختىدى%1 %1 blocking internet %1 -> application name %1 ئىنتېرنېت تاقالغان pluggable transport connection connection done doing handshake handshake done creating one-hop connection requesting status loading status loading keys requesting descriptors loading descriptors creating circuit done VPNSwitch main : a fast and secure VPN. Powered by Bitmask. تېز ھەم بىخەتەر VPN بىتماسك تەرىپىدىن سۇنۇلىدۇ. Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means). سېستىما تەگلىكىدە سىن رەسىمنى كۆرسەتمە (Gnome پوستى كېڭەيتىلمىلىرى، ياكى باشقا ئۇشۇلدا VPNنى كونترول قىلىشتەك ھەر ئىككى ئىشتا قوللىنىشچان) Enable Web API. ئاكتىپلاشWeb API. Install helpers (Linux only, requires sudo). ياردمچى قاچىلاش (پەقەتلا لىناكىس ئۈچۈن، لازىم sudo). Use obfs4 to obfuscate the traffic, if available in the provider. ئەگەر تەمىنلىگۈچىدە بولسا، obfs4 نى قاتناشنى مۈجىمەللەشتۈرۈشكە ئىشلىتىش. Enable autostart. Disable autostart for the next run. كېيىنكى قېتىم باشلىتىلغاندا ئاپتۇماتىك قوزغىتىشنى چەكلەش Web API port (default: 8080) Web API پورتى (ئەستىكىسى: 8080) Start the VPN, either 'on' or 'off'. VPN باشلات، مەيلى "ئوچۇق" ياكى "ئېتىك" بولسۇن riseup-vpn-0.24.5+ds1/gui/i18n/main_zh-rTW.ts000066400000000000000000000451501461742244100204610ustar00rootroot00000000000000 About About 關於 <p>This service is paid for entirely by donations from users like you. <a href="%1">Please donate</a>.</p> donation text of the about dialog <p>本服務完全依賴與您一樣的使用者共同捐助來運作。<a href="%1">請捐助本服務</a>。</p> %1 version: %2 screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -> application name %2 -> version string %1 版本: %2 Footer Recommended (建議) Help Help 幫助 Troubleshooting and support 疑難排解與支援 Report a bug 回報錯誤 How to uninstall 如何解除安裝 InitErrors Could not find helpers. Please check your installation 找不到協助程式。請檢查您的安裝 Could not find polkit agent. 找不到 polkit 代理程式。 Locations Select Location 選擇地理位置 Automatically use best connection this is in the radio button for the auto selection 自動使用最佳的連線 Manually select Location Selection: label for radio buttons that selects manually 手動選擇 Switching gateway… A little display to signal that the clicked gateway is being switched to 正在切換閘道... Only locations with bridges Subtitle to explain that only bridge locations are shown in the selector 只會顯示支援橋接的地理位置 Recommended Location Selection: label for radio button that selects automatically (建議) MainView Donate 捐助 Preferences 偏好設定 Help 幫助 About 關於 Quit 退出 Please donate! 請捐助! This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now? 本服務完全依賴與您一樣的使用者共同捐助來運作。執行 VPN 的費用大約為每人每月 5 美元,但任何一點捐助都很有幫助。請問您願意捐助嗎? Preferences Preferences 偏好設定 Turn off the VPN to make changes 關閉 VPN 以進行修改 Language 語言 Censorship circumvention 規避網路審查 These techniques can bypass censorship, but are slower. Use them only when needed. 這些技術能規避網路審查,但速度較慢。請僅於需要時使用。 Use obfs4 bridges 使用 obfs4 橋接 Traffic is obfuscated to bypass blocks 已混淆流量以規避網路封鎖 Use Snowflake 使用 Snowflake Snowflake needs Tor installed in your system Snowflake 需要在您的系統上安裝 Tor Transport 傳輸 UDP can make the VPN faster. It might be blocked on some networks. UDP 能讓 VPN 更快速,但可能在某些網路上被封鎖。 Use UDP if available 可用時使用 UDP Splash There is a newer version available. 有更新版本。 Make sure to <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">uninstall</a> the previous one before running the new installer. 在執行新的安裝程式前,請務必 <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">解除安裝</a>。 UPGRADE NOW 立刻升級 StatusBox This can take several minutes 這可能會花幾分鐘 Systray Checking status… 正在檢查狀態... Donate 捐助 Hide Part of the systray menu; show or hide the main app window 隱藏 Show 顯示 Quit Part of the systray menu; quits the application 退出 Connect to 連線到 Connect 連線 Disconnect 中斷連缐 VPNState Setting up 正在準備 Connecting 正在連接 Unsecured Connection 不安全的 連線 Turn on 啟用 Secured Connection 安全 連線 Turn off 關閉 Cancel 取消 %1 off %1 -> application name %1 已關閉 off %1 on %1 -> application name %1 已啟用 Connecting to %1 %1 -> application name 正在連線到 %1 Stopping %1 %1 -> application name 正在停止 %1 %1 blocking internet %1 -> application name %1 正在封鎖網路 pluggable transport connection 可插拔式傳輸連線 connection done 連線完成 doing handshake 正在交握 handshake done 交握完成 creating one-hop connection 正在建立單一節點跳躍 (one-hop) 連線 requesting status 正在請求狀態 loading status 正在載入狀態 loading keys 正在載入金鑰 requesting descriptors 正在請求描述元 loading descriptors 正在載入描述元 creating circuit 正在建立迴路 done 完成 VPNSwitch main : a fast and secure VPN. Powered by Bitmask. :快速而安全的 VPN。由 Bitmask 提供。 Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means). 不要顯示工作列圖示 (適合搭配 Gnome Shell 延伸模組,或以其他方式控制 VPN 時使用)。 Enable Web API. 啟用 Web API。 Install helpers (Linux only, requires sudo). 安裝協助程式 (僅限 Linux,須使用 sudo)。 Use obfs4 to obfuscate the traffic, if available in the provider. 如果服務提供者支援,使用 obfs4 以混淆流量。 Enable autostart. 啟用自動啟動。 Web API port (default: 8080) Web API 連接埠 (預設:8080) Start the VPN, either 'on' or 'off'. 啟動 VPN,「開啟」或「關閉」。 riseup-vpn-0.24.5+ds1/gui/i18n/main_zh.ts000066400000000000000000000450141461742244100177460ustar00rootroot00000000000000 About About 关于 <p>This service is paid for entirely by donations from users like you. <a href="%1">Please donate</a>.</p> donation text of the about dialog <p>此服务的费用完全由像您一样的用户捐助支付。<a href="%1">请捐助此服务</a>。</p> %1 version: %2 screenshot https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/screenshots/about.png %1 -> application name %2 -> version string %1 版本: %2 Footer Recommended 推荐 Help Help 帮助 Troubleshooting and support 疑难解答和支持 Report a bug 报告漏洞 How to uninstall 如何卸载 InitErrors Could not find helpers. Please check your installation 无法找到帮助程序。请检查您的安装 Could not find polkit agent. 无法找到 Polkit 代理。 Locations Select Location 选择位置 Automatically use best connection this is in the radio button for the auto selection 自动使用最佳连接 Manually select Location Selection: label for radio buttons that selects manually 手动选择 Switching gateway… A little display to signal that the clicked gateway is being switched to 切换网关中… Only locations with bridges Subtitle to explain that only bridge locations are shown in the selector 仅使用网桥的位置 Recommended Location Selection: label for radio button that selects automatically 推荐 MainView Donate 捐助 Preferences 首选项 Help 帮助 About 关于 Quit 退出 Please donate! 请捐助! This service is paid for entirely by donations from users like you. The cost of running the VPN is approximately 5 USD per person every month, but every little bit counts. Do you want to donate now? 此服务的费用完全由像您一样的用户捐助支付。VPN 的运营成本大约为每人每月 5 美元,开销须精打细算。您是否立刻捐助此服务? Preferences Preferences 首选项 Turn off the VPN to make changes 关闭 VPN 进行更改 Language 语言 Censorship circumvention 审查规避 These techniques can bypass censorship, but are slower. Use them only when needed. 该技术可规避审查,但速度较慢,请仅在需要时使用。 Use obfs4 bridges 使用 Obfs4 网桥 Traffic is obfuscated to bypass blocks 对通信进行混淆以规避屏蔽 Use Snowflake 使用 Snowflake Snowflake needs Tor installed in your system Snowflake 需要在系统上安装 Tor Transport 传输 UDP can make the VPN faster. It might be blocked on some networks. UDP 可令 VPN 更快,但是可能在某些网络上被屏蔽。 Use UDP if available 可用时使用 UDP Splash There is a newer version available. 有较新版本可用。 Make sure to <a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">uninstall</a> the previous one before running the new installer. 在运行新的安装程序之前,请确保<a href="https://0xacab.org/leap/bitmask-vpn/-/blob/main/docs/uninstall.md">卸载</a>之前的版本。 UPGRADE NOW 立刻升级 StatusBox This can take several minutes 这可能会花几分钟 Systray Checking status… 正在检查状态… Donate 捐助 Hide Part of the systray menu; show or hide the main app window 隐藏 Show 显示 Quit Part of the systray menu; quits the application 退出 Connect to 连接至 Connect 连接 Disconnect 中断连接 VPNState Setting up 准备中 Connecting 正在连接 Unsecured Connection 不安全 连接 Turn on 开启 Secured Connection 安全 连接 Turn off 关闭 Cancel 取消 %1 off %1 -> application name %1 关闭 off 关闭 %1 on %1 -> application name %1 开启 Connecting to %1 %1 -> application name 正在连接至 %1 Stopping %1 %1 -> application name 正在停止 %1 %1 blocking internet %1 -> application name %1 正在屏蔽互联网 pluggable transport connection 可插拔传输连接 connection done 连接完成 doing handshake 正在握手 handshake done 握手完成 creating one-hop connection 正在建立单跳连接 requesting status 正在请求状态 loading status 正在加载状态 loading keys 正在加载密钥 requesting descriptors 正在请求描述符 loading descriptors 正在加载描述符 creating circuit 正在建立链路 done 完成 VPNSwitch main : a fast and secure VPN. Powered by Bitmask. :快速安全的 VPN。由 Bitmask 提供技术支持。 Do not show the systray icon (useful together with Gnome Shell extension, or to control VPN by other means). 不显示系统托盘图标(与 Gnome Shell 扩展一起使用时很有用,或用于通过其他方式控制 VPN)。 Enable Web API. 启用 Web API。 Install helpers (Linux only, requires sudo). 安装帮助程序(仅限 Linux,需使用 sudo)。 Use obfs4 to obfuscate the traffic, if available in the provider. 使用 obfs4 混淆通信(如果提供商提供)。 Enable autostart. 启用自启动。 Web API port (default: 8080) Web API 端口(默认:8080) Start the VPN, either 'on' or 'off'. 启动 VPN,“开启”或“关闭”。 riseup-vpn-0.24.5+ds1/gui/main.cpp000066400000000000000000000261741461742244100166300ustar00rootroot00000000000000#include #include #include #include #include #include #include #include #include #include #include #include "handlers.h" #include "qjsonmodel.h" #include "lib/libgoshim.h" /* Hi! I'm Troy McClure and I'll be your guide today. You probably remember me from blockbusters like "here be dragons" and "darling, I wrote a little contraption". */ QJsonWatch *qw = new QJsonWatch; /* onStatusChanged is the C function that we register as a callback with CGO. It pulls a string serialization of the context object, than we then pass along to Qml via signals. */ void onStatusChanged() { char *ctx = RefreshContext(); emit qw->jsonChanged(QString(ctx)); free(ctx); } std::string getEnv(std::string const& key) { char const* val = getenv(key.c_str()); return val == NULL ? std::string() : std::string(val); } QString getProviderConfig(QJsonValue info, QString provider, QString key, QString defaultValue) { for (auto p: info.toArray()) { QJsonObject item = p.toObject(); if (item["name"].toString().toLower() == provider.toLower() && item[key].toString() != "") { return item[key].toString(); } } return defaultValue; } QList getAvailableLocales() { QString localePath = ":/i18n"; QDir dir(localePath); QStringList fileNames = dir.entryList(QStringList("*.qm")); QList locales; for (int i = 0; i < fileNames.size(); ++i) { // get locale extracted by filename QString localeName; localeName = fileNames[i]; // "de.qm" localeName.truncate(localeName.lastIndexOf('.')); // "de" if (localeName == "base") { localeName = "en"; } else { // remove main_ prefix localeName = localeName.mid(5); } QLocale locale = QLocale(localeName); QString name = QLocale::languageToString(locale.language()); QVariantMap localeObject; localeObject.insert("locale", localeName); localeObject.insert("name", name); locales.push_back(localeObject); } return locales; } auto handler = [](int sig) -> void { printf("\nCatched signal(%d): quitting\n", sig); QApplication::quit(); }; #ifndef OS_WIN void catchUnixSignals(std::initializer_list quitSignals) { sigset_t blocking_mask; sigemptyset(&blocking_mask); for (auto sig : quitSignals) sigaddset(&blocking_mask, sig); struct sigaction sa; sa.sa_handler = handler; sa.sa_mask = blocking_mask; sa.sa_flags = 0; for (auto sig : quitSignals) sigaction(sig, &sa, nullptr); } #endif int main(int argc, char **argv) { Backend backend; QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QApplication::setApplicationVersion(backend.getVersion()); // There's a legend about brave coders than, from time to time, have the urge to change // the app object to a QGuiApplication. Resist the temptation, oh coder // from the future, or otherwise ye shall be punished for long hours wondering // why yer little systray resists to be displayed. QApplication app(argc, argv); app.setQuitOnLastWindowClosed(false); app.setAttribute(Qt::AA_UseHighDpiPixmaps); QObject::connect(&app, &QApplication::aboutToQuit, []() { qDebug() << ">>> Quitting, bye!"; Quit(); }); #ifdef OS_WIN signal(SIGINT, handler); signal(SIGTERM, handler); #else catchUnixSignals({SIGINT, SIGTERM}); #endif /* load providers json */ QFile providerJson (":/providers.json"); providerJson.open(QIODevice::ReadOnly | QIODevice::Text); QJsonModel *providers = new QJsonModel; QByteArray providerJsonBytes = providerJson.readAll(); providers->loadJson(providerJsonBytes); QJsonValue defaultProvider = providers->json().object().value("default"); QJsonValue providersInfo = providers->json().object().value("providers"); QString appName = getProviderConfig(providersInfo, defaultProvider.toString(), "applicationName", "BitmaskVPN"); QString organizationDomain = getProviderConfig(providersInfo, defaultProvider.toString(), "providerURL", "riseup.net"); QApplication::setApplicationName(appName); QApplication::setOrganizationDomain(organizationDomain); QCommandLineParser parser; parser.setApplicationDescription( appName + QApplication::translate( "main", ": a fast and secure VPN. Powered by Bitmask.")); parser.addHelpOption(); parser.addVersionOption(); parser.addOptions({ { {"n", "no-systray"}, QApplication::translate("main", "Do not show the systray icon (useful " "together with Gnome Shell " "extension, or to control VPN by other means)."), }, { {"w", "web-api"}, QApplication::translate( "main", "Enable Web API."), }, { {"i", "install-helpers"}, QApplication::translate( "main", "Install helpers (Linux only, requires sudo)."), }, { {"o", "obfs4"}, QApplication::translate( "main", "Use obfs4 to obfuscate the traffic, if available in the provider."), }, { {"a", "enable-autostart"}, QApplication::translate( "main", "Enable autostart."), }, }); QCommandLineOption webPortOption("web-port", QApplication::translate("main", "Web API port (default: 8080)"), "port", "8080"); parser.addOption(webPortOption); // FIXME need to add note for the translation, on/off shouldn't be translated. QCommandLineOption startVPNOption("start-vpn", QApplication::translate("main", "Start the VPN, either 'on' or 'off'."), "status", ""); parser.addOption(startVPNOption); parser.process(app); bool hideSystray = parser.isSet("no-systray"); bool availableSystray = true; bool installHelpers = parser.isSet("install-helpers"); bool webAPI = parser.isSet("web-api"); QString webPort = parser.value("web-port"); bool version = parser.isSet("version"); bool obfs4 = parser.isSet("obfs4"); bool enableAutostart = parser.isSet("enable-autostart"); QString startVPN = parser.value("start-vpn"); if (version) { qDebug() << backend.getVersion(); exit(0); } if (startVPN != "" && startVPN != "on" && startVPN != "off") { qDebug() << "Error: --start-vpn must be either 'on' or 'off'"; exit(0); } if (hideSystray) qDebug() << "Not showing systray icon because --no-systray option is set."; if (installHelpers) { qDebug() << "Will try to install helpers with sudo"; InstallHelpers(); exit(0); } #ifdef Q_OS_UNIX if (getuid() == 0) { qDebug() << "Please don't run as root. Aborting."; exit(0); } #endif if (!QSystemTrayIcon::isSystemTrayAvailable()) { qDebug() << "No systray icon available."; availableSystray = false; } /* set window icon */ /* this one is set in the vendor.qrc resources, that needs to be passed to the project */ /* there's something weird with icons being cached, need to investigate */ if (appName == "CalyxVPN") { qDebug() << "setting calyx logo"; app.setWindowIcon(QIcon(":/vendor/calyx.svg")); } else if (appName == "RiseupVPN") { app.setWindowIcon(QIcon(":/vendor/riseup.svg")); } else if (appName == "BitmaskVPN") { app.setWindowIcon(QIcon(":/vendor/bitmask.svg")); } QSettings settings; QString locale = settings.value("locale", QLocale().name()).toString(); settings.setValue("locale", locale); /* load translations */ QTranslator translator; translator.load(QLocale(locale), QLatin1String("main"), QLatin1String("_"), QLatin1String(":/i18n")); app.installTranslator(&translator); QQmlApplicationEngine engine; QQmlContext *ctx = engine.rootContext(); QJsonModel *model = new QJsonModel; // FIXME use qgetenv QString desktop = QString::fromStdString(getEnv("XDG_CURRENT_DESKTOP")); QString debug = QString::fromStdString(getEnv("DEBUG")); /* the backend handler has slots for calling back to Go when triggered by signals in Qml. */ ctx->setContextProperty("backend", &backend); /* set the json model, load providers.json */ ctx->setContextProperty("jsonModel", model); ctx->setContextProperty("providers", providers); ctx->setContextProperty("desktop", desktop); // we're relying on the binary name, for now, to switch themes ctx->setContextProperty("flavor", QString::fromStdString(argv[0])); /* set some useful flags */ ctx->setContextProperty("systrayVisible", !hideSystray); ctx->setContextProperty("systrayAvailable", availableSystray); ctx->setContextProperty("qmlDebug", debug == "1"); ctx->setContextProperty("locales", getAvailableLocales()); //XXX we're doing configuration via config file, but this is a mechanism //to change to Dark Theme if desktop has it. //qputenv("QT_QUICK_CONTROLS_MATERIAL_VARIANT", "Dense"); //QQuickStyle::setStyle("Material"); engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); /* connect the jsonChanged signal explicitely. In the lambda, we reload the json in the model every time we receive an update from Go */ QObject::connect(qw, &QJsonWatch::jsonChanged, [model](QString js) { model->loadJson(js.toUtf8()); }); QObject::connect(&backend, &Backend::localeChanged, [&app, &translator, &engine, &settings](QString locale) { settings.setValue("locale", locale); app.removeTranslator(&translator); translator.load(QLocale(locale), QLatin1String("main"), QLatin1String("_"), QLatin1String(":/i18n")); app.installTranslator(&translator); engine.retranslate(); }); /* connect quitDone signal, exit app */ QObject::connect(&backend, &Backend::quitDone, []() { QApplication::quit(); }); /* register statusChanged callback with CGO */ const char *stCh = "OnStatusChanged"; GoString statusChangedEvt = {stCh, (long int)strlen(stCh)}; SubscribeToEvent(statusChangedEvt, (void *)onStatusChanged); /* we send json as bytes because it breaks as a simple string */ QString QProvidersJSON(providers->json().toJson(QJsonDocument::Compact)); /* let the Go side initialize its internal state */ InitializeBitmaskContext( toGoStr(defaultProvider.toString()), (char*)providerJsonBytes.data(), providerJsonBytes.length(), obfs4, !enableAutostart, toGoStr(startVPN)); /* if requested, enable web api for controlling the VPN */ if (webAPI) EnableWebAPI(toGoStr(webPort)); if (engine.rootObjects().isEmpty()) return -1; /* kick off your shoes, put your feet up */ return app.exec(); } riseup-vpn-0.24.5+ds1/gui/main.qml000066400000000000000000000113611461742244100166270ustar00rootroot00000000000000import QtQuick import QtQuick.Controls import QtQuick.Dialogs import QtQuick.Controls.Material import QtQuick.Layouts import "./components" ApplicationWindow { id: root visible: true property int appHeight: 460 property int appWidth: 280 property alias customTheme: themeLoader.item property bool drawerOn: false width: appWidth minimumWidth: appWidth maximumWidth: appWidth height: appHeight minimumHeight: appHeight maximumHeight: appHeight title: ctx ? ctx.appName : "" Material.accent: Material.Green property var ctx property var error: "" // TODO can move properties to some state sub-item to unclutter property bool isDonationService: false property bool showDonationReminder: false property var locationsModel: [] // TODO get from persistance property var selectedGateway: "auto" // FIXME get svg icons property var icons: { "off": "qrc:/assets/icon/png/white/vpn_off.png", "on": "qrc:/assets/icon/png/white/vpn_on.png", "wait": "qrc:/assets/icon/png/white/vpn_wait_0.png", "blocked": "qrc:/assets/icon/png/white/vpn_blocked.png" } signal openDonateDialog() FontLoader { id: lightFont source: "qrc:/poppins-regular.ttf" } FontLoader { id: boldFont source: "qrc:/poppins-bold.ttf" } FontLoader { id: boldFontMonserrat source: "qrc:/monserrat-bold.ttf" } FontLoader { id: robotoFont source: "qrc:/roboto.ttf" } FontLoader { id: robotoBoldFont source: "qrc:/roboto-bold.ttf" } Loader { id: loader asynchronous: true anchors.fill: parent } Loader { id: themeLoader source: loadTheme() } Systray { id: systray } Connections { target: jsonModel function onDataChanged() { let j = jsonModel.getJson() if (qmlDebug) { console.debug(j) } ctx = JSON.parse(j) if (ctx != undefined) { locationsModel = getSortedLocations() } if (ctx.errors) { console.debug("errors, setting root.error") root.error = ctx.errors } else { root.error = "" } if (ctx.donateURL) { isDonationService = true } if (ctx.donateDialog == 'true') { showDonationReminder = true } if (isAutoLocation()) { root.selectedGateway = "auto" } } } function getSortedLocations() { let obj = ctx.locations var arr = [] for (var prop in obj) { if (obj.hasOwnProperty(prop)) { arr.push({ "key": prop, "value": obj[prop] }) } } arr.sort(function (a, b) { return a.value - b.value }).reverse() return Array.from(arr, (k,_) => k.key); } function isAutoLocation() { // FIXME there's something weird going on with newyork location... // it gets marked as auto, which from europe is a bug. let best = ctx.locationLabels[ctx.bestLocation] if (best == undefined) { return false } return (best[0] == ctx.currentLocation) } function bringToFront() { // FIXME does not work properly, at least on linux if (visibility == 3) { showNormal() } else { show() } raise() requestActivate() } function loadTheme() { var arr if (Qt.platform.os == "windows") { arr = flavor.split("\\") } else { arr = flavor.split("/") } var providerFlavor = arr[arr.length-1] console.debug("flavor: " + providerFlavor) if (providerFlavor.startsWith("riseup-vpn") || providerFlavor == "RiseupVPN") { return "qrc:/themes/Riseup.qml" } else if (providerFlavor.startsWith("calyx-vpn") || providerFlavor == "CalyxVPN") { return "qrc:/themes/Calyx.qml" } else if (providerFlavor.startsWith("bitmask-vpn") || providerFlavor == "BitmaskVPN") { return "qrc:/themes/Bitmask.qml" } else { // we should do a Default theme, with a fallback // mechanism return "qrc:/themes/Riseup.qml" } } onSceneGraphError: function (error, msg) { console.debug("ERROR while initializing scene") console.debug(msg) } Component.onCompleted: { loader.source = "components/Splash.qml" } } riseup-vpn-0.24.5+ds1/gui/providers/000077500000000000000000000000001461742244100172035ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/gui/providers/providers.json000066400000000000000000000146231461742244100221210ustar00rootroot00000000000000{ "default": "riseup", "providers": [ { "name": "Riseup", "applicationName": "RiseupVPN", "binaryName": "riseup-vpn", "auth": "anon", "authEmptyPass": false, "providerURL": "riseup.net", "tosURL": "https://riseup.net/tos", "helpURL": "https://riseup.net/support", "askForDonations": true, "donateURL": "https://riseup.net/vpn/donate", "apiURL": "https://api.black.riseup.net/", "apiVersion": 3, "geolocationAPI": "https://api.black.riseup.net:9001/json", "caCertString": "-----BEGIN CERTIFICATE-----\nMIIFjTCCA3WgAwIBAgIBATANBgkqhkiG9w0BAQ0FADBZMRgwFgYDVQQKDA9SaXNl\ndXAgTmV0d29ya3MxGzAZBgNVBAsMEmh0dHBzOi8vcmlzZXVwLm5ldDEgMB4GA1UE\nAwwXUmlzZXVwIE5ldHdvcmtzIFJvb3QgQ0EwHhcNMTQwNDI4MDAwMDAwWhcNMjQw\nNDI4MDAwMDAwWjBZMRgwFgYDVQQKDA9SaXNldXAgTmV0d29ya3MxGzAZBgNVBAsM\nEmh0dHBzOi8vcmlzZXVwLm5ldDEgMB4GA1UEAwwXUmlzZXVwIE5ldHdvcmtzIFJv\nb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC76J4ciMJ8Sg0m\nTP7DF2DT9zNe0Csk4myoMFC57rfJeqsAlJCv1XMzBmXrw8wq/9z7XHv6n/0sWU7a\n7cF2hLR33ktjwODlx7vorU39/lXLndo492ZBhXQtG1INMShyv+nlmzO6GT7ESfNE\nLliFitEzwIegpMqxCIHXFuobGSCWF4N0qLHkq/SYUMoOJ96O3hmPSl1kFDRMtWXY\niw1SEKjUvpyDJpVs3NGxeLCaA7bAWhDY5s5Yb2fA1o8ICAqhowurowJpW7n5ZuLK\n5VNTlNy6nZpkjt1QycYvNycffyPOFm/Q/RKDlvnorJIrihPkyniV3YY5cGgP+Qkx\nHUOT0uLA6LHtzfiyaOqkXwc4b0ZcQD5Vbf6Prd20Ppt6ei0zazkUPwxld3hgyw58\nm/4UIjG3PInWTNf293GngK2Bnz8Qx9e/6TueMSAn/3JBLem56E0WtmbLVjvko+LF\nPM5xA+m0BmuSJtrD1MUCXMhqYTtiOvgLBlUm5zkNxALzG+cXB28k6XikXt6MRG7q\nhzIPG38zwkooM55yy5i1YfcIi5NjMH6A+t4IJxxwb67MSb6UFOwg5kFokdONZcwj\nshczHdG9gLKSBIvrKa03Nd3W2dF9hMbRu//STcQxOailDBQCnXXfAATj9pYzdY4k\nha8VCAREGAKTDAex9oXf1yRuktES4QIDAQABo2AwXjAdBgNVHQ4EFgQUC4tdmLVu\nf9hwfK4AGliaet5KkcgwDgYDVR0PAQH/BAQDAgIEMAwGA1UdEwQFMAMBAf8wHwYD\nVR0jBBgwFoAUC4tdmLVuf9hwfK4AGliaet5KkcgwDQYJKoZIhvcNAQENBQADggIB\nAGzL+GRnYu99zFoy0bXJKOGCF5XUXP/3gIXPRDqQf5g7Cu/jYMID9dB3No4Zmf7v\nqHjiSXiS8jx1j/6/Luk6PpFbT7QYm4QLs1f4BlfZOti2KE8r7KRDPIecUsUXW6P/\n3GJAVYH/+7OjA39za9AieM7+H5BELGccGrM5wfl7JeEz8in+V2ZWDzHQO4hMkiTQ\n4ZckuaL201F68YpiItBNnJ9N5nHr1MRiGyApHmLXY/wvlrOpclh95qn+lG6/2jk7\n3AmihLOKYMlPwPakJg4PYczm3icFLgTpjV5sq2md9bRyAg3oPGfAuWHmKj2Ikqch\nTd5CHKGxEEWbGUWEMP0s1A/JHWiCbDigc4Cfxhy56CWG4q0tYtnc2GMw8OAUO6Wf\nXu5pYKNkzKSEtT/MrNJt44tTZWbKV/Pi/N2Fx36my7TgTUj7g3xcE9eF4JV2H/sg\ntsK3pwE0FEqGnT4qMFbixQmc8bGyuakr23wjMvfO7eZUxBuWYR2SkcP26sozF9PF\ntGhbZHQVGZUTVPyvwahMUEhbPGVerOW0IYpxkm0x/eaWdTc4vPpf/rIlgbAjarnJ\nUN9SaWRlWKSdP4haujnzCoJbM7dU9bjvlGZNyXEekgeT0W2qFeGGp+yyUWw8tNsp\n0BuC1b7uW/bBn/xKm319wXVDvBgZgcktMolak39V7DVO\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIBYjCCAQigAwIBAgIBATAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxMRUFQIFJv\nb3QgQ0EwHhcNMjExMTAyMTkwNTM3WhcNMjYxMTAyMTkxMDM3WjAXMRUwEwYDVQQD\nEwxMRUFQIFJvb3QgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQxOXBGu+gf\npjHzVteGTWL6XnFxtEnKMFpKaJkA/VOHmESzoLsZRQxt88GssxaqC01J17idQiqv\nzgNpedmtvFtyo0UwQzAOBgNVHQ8BAf8EBAMCAqQwEgYDVR0TAQH/BAgwBgEB/wIB\nATAdBgNVHQ4EFgQUZdoUlJrCIUNFrpffAq+LQjnwEz4wCgYIKoZIzj0EAwIDSAAw\nRQIgfr3w4tnRG+NdI3LsGPlsRktGK20xHTzsB3orB0yC6cICIQCB+/9y8nmSStfN\nVUMUyk2hNd7/kC8nL222TTD7VZUtsg==\n-----END CERTIFICATE-----", "timeStamp": "2024-02-26 18:14:59" }, { "name": "RiseupBeta", "applicationName": "RiseupVPN", "binaryName": "riseup-vpn", "auth": "anon", "authEmptyPass": false, "providerURL": "float.hexacab.org", "tosURL": "https://float.hexacab.org/", "helpURL": "https://float.hexacab.org/", "askForDonations": true, "donateURL": "https://riseup.net/vpn/donate", "apiURL": "https://api.float.hexacab.org:4430/", "apiVersion": 3, "geolocationAPI": "https://menshen.float.hexacab.org/json", "caCertString": "-----BEGIN CERTIFICATE-----\nMIIFjTCCA3WgAwIBAgIBATANBgkqhkiG9w0BAQ0FADBZMRgwFgYDVQQKDA9SaXNl\ndXAgTmV0d29ya3MxGzAZBgNVBAsMEmh0dHBzOi8vcmlzZXVwLm5ldDEgMB4GA1UE\nAwwXUmlzZXVwIE5ldHdvcmtzIFJvb3QgQ0EwHhcNMTQwNDI4MDAwMDAwWhcNMjQw\nNDI4MDAwMDAwWjBZMRgwFgYDVQQKDA9SaXNldXAgTmV0d29ya3MxGzAZBgNVBAsM\nEmh0dHBzOi8vcmlzZXVwLm5ldDEgMB4GA1UEAwwXUmlzZXVwIE5ldHdvcmtzIFJv\nb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC76J4ciMJ8Sg0m\nTP7DF2DT9zNe0Csk4myoMFC57rfJeqsAlJCv1XMzBmXrw8wq/9z7XHv6n/0sWU7a\n7cF2hLR33ktjwODlx7vorU39/lXLndo492ZBhXQtG1INMShyv+nlmzO6GT7ESfNE\nLliFitEzwIegpMqxCIHXFuobGSCWF4N0qLHkq/SYUMoOJ96O3hmPSl1kFDRMtWXY\niw1SEKjUvpyDJpVs3NGxeLCaA7bAWhDY5s5Yb2fA1o8ICAqhowurowJpW7n5ZuLK\n5VNTlNy6nZpkjt1QycYvNycffyPOFm/Q/RKDlvnorJIrihPkyniV3YY5cGgP+Qkx\nHUOT0uLA6LHtzfiyaOqkXwc4b0ZcQD5Vbf6Prd20Ppt6ei0zazkUPwxld3hgyw58\nm/4UIjG3PInWTNf293GngK2Bnz8Qx9e/6TueMSAn/3JBLem56E0WtmbLVjvko+LF\nPM5xA+m0BmuSJtrD1MUCXMhqYTtiOvgLBlUm5zkNxALzG+cXB28k6XikXt6MRG7q\nhzIPG38zwkooM55yy5i1YfcIi5NjMH6A+t4IJxxwb67MSb6UFOwg5kFokdONZcwj\nshczHdG9gLKSBIvrKa03Nd3W2dF9hMbRu//STcQxOailDBQCnXXfAATj9pYzdY4k\nha8VCAREGAKTDAex9oXf1yRuktES4QIDAQABo2AwXjAdBgNVHQ4EFgQUC4tdmLVu\nf9hwfK4AGliaet5KkcgwDgYDVR0PAQH/BAQDAgIEMAwGA1UdEwQFMAMBAf8wHwYD\nVR0jBBgwFoAUC4tdmLVuf9hwfK4AGliaet5KkcgwDQYJKoZIhvcNAQENBQADggIB\nAGzL+GRnYu99zFoy0bXJKOGCF5XUXP/3gIXPRDqQf5g7Cu/jYMID9dB3No4Zmf7v\nqHjiSXiS8jx1j/6/Luk6PpFbT7QYm4QLs1f4BlfZOti2KE8r7KRDPIecUsUXW6P/\n3GJAVYH/+7OjA39za9AieM7+H5BELGccGrM5wfl7JeEz8in+V2ZWDzHQO4hMkiTQ\n4ZckuaL201F68YpiItBNnJ9N5nHr1MRiGyApHmLXY/wvlrOpclh95qn+lG6/2jk7\n3AmihLOKYMlPwPakJg4PYczm3icFLgTpjV5sq2md9bRyAg3oPGfAuWHmKj2Ikqch\nTd5CHKGxEEWbGUWEMP0s1A/JHWiCbDigc4Cfxhy56CWG4q0tYtnc2GMw8OAUO6Wf\nXu5pYKNkzKSEtT/MrNJt44tTZWbKV/Pi/N2Fx36my7TgTUj7g3xcE9eF4JV2H/sg\ntsK3pwE0FEqGnT4qMFbixQmc8bGyuakr23wjMvfO7eZUxBuWYR2SkcP26sozF9PF\ntGhbZHQVGZUTVPyvwahMUEhbPGVerOW0IYpxkm0x/eaWdTc4vPpf/rIlgbAjarnJ\nUN9SaWRlWKSdP4haujnzCoJbM7dU9bjvlGZNyXEekgeT0W2qFeGGp+yyUWw8tNsp\n0BuC1b7uW/bBn/xKm319wXVDvBgZgcktMolak39V7DVO\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIBYjCCAQigAwIBAgIBATAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxMRUFQIFJv\nb3QgQ0EwHhcNMjExMTAyMTkwNTM3WhcNMjYxMTAyMTkxMDM3WjAXMRUwEwYDVQQD\nEwxMRUFQIFJvb3QgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQxOXBGu+gf\npjHzVteGTWL6XnFxtEnKMFpKaJkA/VOHmESzoLsZRQxt88GssxaqC01J17idQiqv\nzgNpedmtvFtyo0UwQzAOBgNVHQ8BAf8EBAMCAqQwEgYDVR0TAQH/BAgwBgEB/wIB\nATAdBgNVHQ4EFgQUZdoUlJrCIUNFrpffAq+LQjnwEz4wCgYIKoZIzj0EAwIDSAAw\nRQIgfr3w4tnRG+NdI3LsGPlsRktGK20xHTzsB3orB0yC6cICIQCB+/9y8nmSStfN\nVUMUyk2hNd7/kC8nL222TTD7VZUtsg==\n-----END CERTIFICATE-----", "timeStamp": "2024-02-26 18:14:59" } ] }riseup-vpn-0.24.5+ds1/gui/qjsonmodel.cpp000066400000000000000000000234711461742244100200540ustar00rootroot00000000000000/* * The MIT License (MIT) * * Copyright (c) 2011 SCHUTZ Sacha * Copyright (c) 2020 Kali Kaneko * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ #include #include #include #include #include "qjsonmodel.h" std::mutex mtx; QJsonTreeItem::QJsonTreeItem(QJsonTreeItem *parent) { mParent = parent; } QJsonTreeItem::~QJsonTreeItem() { qDeleteAll(mChilds); } void QJsonTreeItem::appendChild(QJsonTreeItem *item) { mChilds.append(item); } QJsonTreeItem *QJsonTreeItem::child(int row) { return mChilds.value(row); } QJsonTreeItem *QJsonTreeItem::parent() { return mParent; } int QJsonTreeItem::childCount() const { return mChilds.count(); } int QJsonTreeItem::row() const { if (mParent) return mParent->mChilds.indexOf(const_cast(this)); return 0; } void QJsonTreeItem::setKey(const QString &key) { mKey = key; } void QJsonTreeItem::setValue(const QString &value) { mValue = value; } void QJsonTreeItem::setType(const QJsonValue::Type &type) { mType = type; } QString QJsonTreeItem::key() const { return mKey; } QString QJsonTreeItem::value() const { return mValue; } QJsonValue::Type QJsonTreeItem::type() const { return mType; } QJsonTreeItem* QJsonTreeItem::load(const QJsonValue& value, QJsonTreeItem* parent) { QJsonTreeItem * rootItem = new QJsonTreeItem(parent); rootItem->setKey("root"); if ( value.isObject()) { //Get all QJsonValue childs for (QString key : value.toObject().keys()){ QJsonValue v = value.toObject().value(key); QJsonTreeItem * child = load(v,rootItem); child->setKey(key); child->setType(v.type()); rootItem->appendChild(child); } } else if ( value.isArray()) { //Get all QJsonValue childs int index = 0; for (QJsonValue v : value.toArray()){ QJsonTreeItem * child = load(v,rootItem); child->setKey(QString::number(index)); child->setType(v.type()); rootItem->appendChild(child); ++index; } } else { rootItem->setValue(value.toVariant().toString()); rootItem->setType(value.type()); } return rootItem; } //========================================================================= QJsonModel::QJsonModel(QObject *parent) : QAbstractItemModel(parent) , mRootItem{new QJsonTreeItem} { mHeaders.append("key"); mHeaders.append("value"); } QJsonModel::QJsonModel(const QString& fileName, QObject *parent) : QAbstractItemModel(parent) , mRootItem{new QJsonTreeItem} { mHeaders.append("key"); mHeaders.append("value"); load(fileName); } QJsonModel::QJsonModel(QIODevice * device, QObject *parent) : QAbstractItemModel(parent) , mRootItem{new QJsonTreeItem} { mHeaders.append("key"); mHeaders.append("value"); load(device); } QJsonModel::QJsonModel(const QByteArray& json, QObject *parent) : QAbstractItemModel(parent) , mRootItem{new QJsonTreeItem} { mHeaders.append("key"); mHeaders.append("value"); loadJson(json); } QJsonModel::~QJsonModel() { delete mRootItem; } bool QJsonModel::load(const QString &fileName) { QFile file(fileName); bool success = false; if (file.open(QIODevice::ReadOnly)) { success = load(&file); file.close(); } else success = false; return success; } bool QJsonModel::load(QIODevice *device) { return loadJson(device->readAll()); } bool QJsonModel::loadJson(const QByteArray &json) { mtx.lock(); auto const& jdoc = QJsonDocument::fromJson(json); bool ok = false; if (!jdoc.isNull()) { beginResetModel(); delete mRootItem; if (jdoc.isArray()) { mRootItem = QJsonTreeItem::load(QJsonValue(jdoc.array())); mRootItem->setType(QJsonValue::Array); } else { mRootItem = QJsonTreeItem::load(QJsonValue(jdoc.object())); mRootItem->setType(QJsonValue::Object); } endResetModel(); emit dataChanged(QModelIndex(), QModelIndex(), {}); ok = true; } if (!ok) { qDebug()<(index.internalPointer()); switch (role) { case Roles::KeyRole: return item->key(); case Roles::ValueRole: return item->value(); case Qt::DisplayRole: { if (index.column() == 0) return QString("%1").arg(item->key()); else if (index.column() == 1) return QString("%1").arg(item->value()); else return QString(""); } case Qt::EditRole: { if (index.column() == 1) return QString("%1").arg(item->value()); else return QString(""); } default: return QVariant(); } return QVariant(); } bool QJsonModel::setData(const QModelIndex &index, const QVariant &value, int role) { int col = index.column(); if (Qt::EditRole == role) { if (col == 1) { QJsonTreeItem *item = static_cast(index.internalPointer()); item->setValue(value.toString()); emit dataChanged(index, index, {Qt::EditRole}); return true; } } return false; } QVariant QJsonModel::headerData(int section, Qt::Orientation orientation, int role) const { if (role != Qt::DisplayRole) return QVariant(); if (orientation == Qt::Horizontal) { return mHeaders.value(section); } else return QVariant(); } QModelIndex QJsonModel::index(int row, int column, const QModelIndex &parent) const { if (!hasIndex(row, column, parent)) return QModelIndex(); QJsonTreeItem *parentItem; if (!parent.isValid()) parentItem = mRootItem; else parentItem = static_cast(parent.internalPointer()); QJsonTreeItem *childItem = parentItem->child(row); if (childItem) return createIndex(row, column, childItem); else return QModelIndex(); } QModelIndex QJsonModel::parent(const QModelIndex &index) const { if (!index.isValid()) return QModelIndex(); QJsonTreeItem *childItem = static_cast(index.internalPointer()); QJsonTreeItem *parentItem = childItem->parent(); if (parentItem == mRootItem) return QModelIndex(); return createIndex(parentItem->row(), 0, parentItem); } int QJsonModel::rowCount(const QModelIndex &parent) const { QJsonTreeItem *parentItem; if (parent.column() > 0) return 0; if (!parent.isValid()) parentItem = mRootItem; else parentItem = static_cast(parent.internalPointer()); return parentItem->childCount(); } int QJsonModel::columnCount(const QModelIndex &parent) const { Q_UNUSED(parent) return 2; } Qt::ItemFlags QJsonModel::flags(const QModelIndex &index) const { int col = index.column(); auto item = static_cast(index.internalPointer()); auto isArray = QJsonValue::Array == item->type(); auto isObject = QJsonValue::Object == item->type(); if ((col == 1) && !(isArray || isObject)) { return Qt::ItemIsEditable | QAbstractItemModel::flags(index); } else { return QAbstractItemModel::flags(index); } } QJsonDocument QJsonModel::json() const { mtx.lock(); auto v = genJson(mRootItem); QJsonDocument doc; if (v.isObject()) { doc = QJsonDocument(v.toObject()); } else { doc = QJsonDocument(v.toArray()); } mtx.unlock(); return doc; } QJsonValue QJsonModel::genJson(QJsonTreeItem * item) const { auto type = item->type(); int nchild = item->childCount(); if (QJsonValue::Object == type) { QJsonObject jo; for (int i = 0; i < nchild; ++i) { auto ch = item->child(i); auto key = ch->key(); jo.insert(key, genJson(ch)); } return jo; } else if (QJsonValue::Array == type) { QJsonArray arr; for (int i = 0; i < nchild; ++i) { auto ch = item->child(i); arr.append(genJson(ch)); } return arr; } else { QJsonValue va(item->value()); return va; } } QHash QJsonModel::roleNames() const { QHash roles; roles[Roles::KeyRole] = "key"; roles[Roles::ValueRole] = "value"; return roles; } QByteArray QJsonModel::getJson() { return ((QJsonDocument)(this->json())).toJson(); } riseup-vpn-0.24.5+ds1/gui/qjsonmodel.h000066400000000000000000000071361461742244100175210ustar00rootroot00000000000000/* * The MIT License (MIT) * * Copyright (c) 2011 SCHUTZ Sacha * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ #ifndef QJSONMODEL_H #define QJSONMODEL_H #include #include #include #include #include #include #include class QJsonModel; class QJsonItem; class QJsonTreeItem { public: QJsonTreeItem(QJsonTreeItem * parent = nullptr); ~QJsonTreeItem(); void appendChild(QJsonTreeItem * item); QJsonTreeItem *child(int row); QJsonTreeItem *parent(); int childCount() const; int row() const; void setKey(const QString& key); void setValue(const QString& value); void setType(const QJsonValue::Type& type); QString key() const; QString value() const; QJsonValue::Type type() const; static QJsonTreeItem* load(const QJsonValue& value, QJsonTreeItem * parent = 0); protected: private: QString mKey; QString mValue; QJsonValue::Type mType; QList mChilds; QJsonTreeItem * mParent; }; //--------------------------------------------------- class QJsonModel : public QAbstractItemModel { Q_OBJECT enum Roles { KeyRole = Qt::UserRole + 1, ValueRole }; public: explicit QJsonModel(QObject *parent = nullptr); QJsonModel(const QString& fileName, QObject *parent = nullptr); QJsonModel(QIODevice * device, QObject *parent = nullptr); QJsonModel(const QByteArray& json, QObject *parent = nullptr); virtual ~QJsonModel(); bool load(const QString& fileName); bool load(QIODevice * device); bool loadJson(const QByteArray& json); QVariant data(const QModelIndex &index, int role) const Q_DECL_OVERRIDE; bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) Q_DECL_OVERRIDE; QVariant headerData(int section, Qt::Orientation orientation, int role) const Q_DECL_OVERRIDE; QModelIndex index(int row, int column,const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE; QModelIndex parent(const QModelIndex &index) const Q_DECL_OVERRIDE; int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE; int columnCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE; Qt::ItemFlags flags(const QModelIndex &index) const Q_DECL_OVERRIDE; QJsonDocument json() const; QHash roleNames() const Q_DECL_OVERRIDE; Q_INVOKABLE QByteArray getJson(); private: QJsonValue genJson(QJsonTreeItem *) const; QJsonTreeItem * mRootItem; QStringList mHeaders; }; #endif // QJSONMODEL_H riseup-vpn-0.24.5+ds1/gui/qtquickcontrols2.conf000066400000000000000000000001771461742244100213710ustar00rootroot00000000000000[Default] Font\Family=Poppins [Controls] Style=Material [Material] Theme=Light Variant=Dense [Material\Font] Family=Poppins riseup-vpn-0.24.5+ds1/gui/resources/000077500000000000000000000000001461742244100172005ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/gui/resources/about.svg000066400000000000000000000050411461742244100210330ustar00rootroot00000000000000 riseup-vpn-0.24.5+ds1/gui/resources/alert.svg000066400000000000000000000011471461742244100210330ustar00rootroot00000000000000 riseup-vpn-0.24.5+ds1/gui/resources/angle-right.svg000066400000000000000000000007531461742244100221270ustar00rootroot00000000000000 riseup-vpn-0.24.5+ds1/gui/resources/arrow-left.svg000066400000000000000000000004671461742244100220120ustar00rootroot00000000000000 riseup-vpn-0.24.5+ds1/gui/resources/bitmask/000077500000000000000000000000001461742244100206325ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/gui/resources/bitmask/splash_logo.png000066400000000000000000000313551461742244100236610ustar00rootroot00000000000000PNG  IHDR  bKGD pHYsNN1tIME )Q~ IDATxyt]}￿}t-Y ["$vMP$ iLҴaHIھ z}ﵕMod;I!4H$"0guej?δϹJb09߰oB!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!Byw"l7vՀ6`YMA*ŬTȦ,[m'Ls`Ò-CP[> sV4MhJz4}&85mf hQeɖ^KGnX`95s=p;wzٺo?F8ݪ$R^fu)@olu@z`[|EΘ H^ q$u7ސZyLzb.Gow;/_v-ly ;LHpN<^`8 K5+cUj5-3D*BylpgPtd+v3{٦g SR8שɵfL:䅩cMNї/~{hֻ{H?كo_q_lZUwWF+LV|&}J!zl17Dx2{K~boG8A_'9WԜWh6{ע 0[- k~|z=~u =8g9oJ<mTQS#P(RCc, \Ȩ=P#k1 /qk n)}؟Zo. K v̴̑q"f^S`9er{R#ZzoB$"(ԭ9N?MˇN{_y5|(@SX?vA-1+9|q1EAd#jxsTʍ^Ƭzo7r%7.<7.+7e}ToA߷Jv㿙RcZV†_tm/4 P5׫T. o\%r%#Kxz3]U\ M5*5 OƟכ[qcLӏﳄkӬt[u+43K{fxŒ(Ӝ[|0Gw|$O <{?`j,KscMmb bݴ_vb=9T7.z}郫ylq̸l؞q-TxH(kX9{,N}tlk$[x J+edYd\tX Sz gS- l~RWJc}JmkAxacۂ¬Jx>GwFݯN68SYn Bē\|~HX:lJu Y[}EqYPs ZɚAB4Six4|&H [+p+[FR6vFY*q_VnX9):2Oao<JxyoTFp}XzF ~ v|)/at W1+޹ }߇t;MBt~ؾ͚ lkG6]60oO>;p7k%6v;oe#!3 ,Ou}tcuХ;/IJ~ X b*ڇ*af0Q1$faxir)MCs>wqgi]v|Ω*DSe z ΅-'s68ՀܨZژw9V7J-J' (m fhBPD>_M\D}j{1 !_,ľ/`BDZ+8ZaI/7 ĚT ğ}A80$g* 6_\̏ӵB8."jEBʐ'F-}fI^IЖ:NqtUYy^ ]R^_(&g ^ k<"^/⨭8ݯ#S׷P?awdd5Kg,U#džMUٿ]N;~3yM"2Ьxdۻж:pETSW_@U;8hkXur̗? A~wdj5m(@gmʞt62% "PcBU!bpwf׋Q?vZsv^Lf*,m6s 2C- dݼ=]MY-0A"YImE}_줵I+4RtvWأ&YD ']WQxf7n 3 L0jȚ^9L]nwrbHFgX,k4}grLɵfqYF3f\ #y=]yiɂgĿOT-KRߒ0^]'[qb/le1!bFpv/ƀŋEY0_b1!2h;B1w@}a#&bdJ $SjE4(UÇ23&y(rϹٺ]2 fNsLbJ ~*,8 $ X _,_4/r1MW'YGݑ9{K) 3P _%v< ?/;?iΤJϣ1dM>>r jeTZϝ\'GguƲR+G8p_k"zᴳ9VEh~-cMY>.N(ؘ&x箅n\{X.jbeI©g90M✑"ْ]iZ]Zpji95ߴPDž{'e4t}d4]< LTR- )Et+`Hm4>wj8뿹&'%| M ֡Y{bñT8 ;btuP+ >#6 /1 Rey.hG+[>ܖk= XThiސj?qY2 De7$g>[s/?^u M Ư7%{53DYM6FETi^59/Ѹ $&QEεcTz܉1og{Q32X'X'_K4z|AOp0&L%w'k.Y0*;<~Dza^]Zks?،,zkyk[|GBOZޓ?1Aѳ`[T0"1P~c]'`ia`B>h\h=7PVC]`줵|Y*2 bb-X Fy` dž] AFʨ cc14zʃA۩Mq FmO^0SBWb>`"xxA+B IdX-N3$'.?Lps5Y tخ㾨6SHR,WƍJkGVM2`;l%T1݌y?&7"Yu1ĀH+ރVw;P| a1xpn :U2! D=N0p߂9AI4v̺ jx۽P-K?9֎H]uOIܲc+U Ry}#KosZ/BEDTZ˜jz-sr =zP4?9r.lEk;}ݪ#ڐ*} ]ӊ9|OCCz} C5Wμ!!vR a^r4 uLv}׬8Qg[;jStwnhc#VSjB_,/ZHn?~Cvi,Y>4 N'ORwozӿȶ6Ժ7Ce#0 @ꩰ,)JO%+?0it{C,P[>lEټ }ԂקVϗX:y7BTjYI]O Caܛ$(?Dbl>܌0F-.>:]rnç+J˦!Eǿv%\;_܏~܎jdL]-|5&o B8!Wy$ qfIokFoڧvsst2\;wu9t'hQ2|W5Q.aeH[鬥`ԍ[ ~<9lkNQMK 7W WZ1͋b(v$&W96Ma 3AV.1A0j;:F8`t7:~?>}ӷ|79vKͷ_[.>۫ߞz;鋏?T;ZEM,0%B-WO3;5yxkUѦ/lM0Rv[$ r,ajp?DM5VYZWড়oK(`m7lx+]j|ngOD]b㤏tv`q:E5R8A 8P3:ugAW[&MfGXv'hr|+CLǰ _XEX6{ n~eˮLikNZ?J͇w'Khyq]Z@g՗*b>0C##q׭g̀2/>tS;JTU.vץ ߔ؝`EVU$M*JV-DI7:3cK*3$F:/ ΘxvAԤS!,5e&''ͤ+Z¬N0Yx~gjve53vCiݱv//KmO0:iE83?^muy1{yNdn~͙nǡГ0rcfTE!0'EV,Y.@fk|遗W}mn&u󌻾X5@tuuU80Pijc@PVX+MA$%>Km7U7nM];$]S[@’F|$-!.͌8(xj,|"GOcnIXELq xe{u^Mb=s8ۭ{bi 磯S[ݰLr\/)<=)qyri)$-=Gh"Tk4I[N|y, HXț52I3A[$} v+ȒAa2a1sy#Twk:׫mi>9+SXE@.+t*p(? q-۶||~4ZA,$*~n'*bgNVrY$K7 Tj&H'fGⷍ'Z/ `6Ա ԓ>H gsw^E&#ƍ#dqBɲ׭<ŖŁ@KѺؙ!F;O+bMWת0lR22/S=f,&$jg75CO܍eT.睑$B~t]w n;#]oޱFnNn9-zr(sɎʼn{(=LB&̐cyj+ă3J|N~  L77uE6wBFr"K݈X֏5+ȢdɩU!(6֚] <meFcڿ_?'N=1V/yr?qQr\-w.mGlI 3$W8Qtr s澺Trj1CWN}`]/`VjXeG'F`e!qԽZ Whk]qnxng'L,x #kD$p[?.0!t(@\ڋdvL&aѭ(6tڂGA=L:MǾ┑9q0_#DXK4:cZԿTHToFI@"^+enXV!Vvn݌[*d5 *uߖz+}(GR_NaKiQ K݈Qv63@ +W\kjw=:x[O۶k[vTrRy-|ioˈ/2hƬ= ^"K/La -i{/wx ~0j`6AݿSo#wWr0*9i9]nbv\HqSJNP F[#ϻݽ+Z1.6cnIDATzdߎފ7w\S[7Jӹ]{hdxpM*=W}%f9ݯ$X7_qG8LO{PT=&b~et1~j4V]g;.ߪcf7J9{f7Z r cº?A -7G|C׍K"tļ] C ˮtznU_r{^t_P_~{HnHC0nFIcrwd %"  |nvLCBN7]EoGM,03K?N.X+Nh*HX9+oumu-?΂?r:bL31^RW]7ѩۨHTkac_`lۋ9"y=# fDCׯOhj9xzK74Q# KW0}9gbXC՟8Ef3EAIpozN2R,<]L,Jץ3|er}h!tV])zODR^I۔Bm1󋦗1he&ӅuGVĭ7}-V߿~BT7ՍJ_7ٯiï_&M WQDw/`TV@x w $[F_D+t&l>,03D= Lqx_Ge wghhIJKEKwMiՆn iqat<eۮ:ֆ."{NLGEqq)&26L (b!;XAh3g5jˑ: >]6rZ߈=yb}j&p9_XA~@V0X+VX,gcD37NӨ)֠Q N:9׎`}{̒֊'6"528[ICX-&JC5 {&kMcK*´;D[rhkDXDُ՟\+5ܹpmNil  hd&lW tݴ7hP+^܋=z"nk|m0N6Ib{J6/IB7'Z@4}W+ KUc%cSG9 s(u-ר PjqtaQ[bu`5wl_v>ڱb] 7 П_|% '7CCR9|1ʗ+tElՊGY%'> \Eu>X{Jf6Gkp̸-< M/Cwk.gRXj=Zn9{?2"uXfijNrKP*}^ jh+>g]}6PԘ ߾e &&խP]1W+p. oLKXqLd xUpk믫5+$J$V%G"pc61zLGʐ dE4* mvmPvEV4m_j?~~=#f,^[D0F".VQwIF my?<;(8 W(t쌞Ն~ࣳ;44_uHK;:}XqyhX=GV]j<" "t4ZX U2I`\TZ6VR^vVcz'rok(]K(NQ%1*fIy#>ev3*O;YGGRƏK_9젽G߰W5/} yIG>dzjY&k@]{eq"7]~}en럙a,cKzQNn+s`q_dhY" +JS-W@_KO.l,7/E"Γ^eaMmOUcE3a2ժov%i$?6 رz'72Qڲ f(@HYN<;g7yI/,##jz: ~B5e5/~fb6C )TYio\0S&O6]6?Xt%K- Й\=Twz<`dLc,|vߥhw5 Eכv4nGnn%w5&ۮ-,BT--n$!z]b*mgC:PUƸ$B"Px_F@v)KWj6AkA*Cp݇eݻ/VPZ"mP_C":u٦B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!$喊CIENDB`riseup-vpn-0.24.5+ds1/gui/resources/bitmask/state_connected.png000066400000000000000000001347511461742244100245150ustar00rootroot00000000000000PNG  IHDR%i, pHYs  sRGBgAMA a~IDATx}^E̽{5/BoA,"6p.XXD] + *`CV@N IH3sܹ}/$J$}̝;s7͌0|ŋD'+ȍ x ' { jًDN{)%}S+R#._(|TRSb- HʔԹm4@ bV;'JUrUtA=c D 67PbP (T ̂!f&:嬿ҺVKr?M+i 2%A:"]tEqHRY@,hF^Tb/]()/.Ry{{ž8O%J|K!PxrR RKX+iP"F0Z_cBfew1G}q`(fri ?Ky|.{ž8 +pv ߫*P A/yn$O|\2)_ϩn*ڤ/tXk@0<Q(4!7\њqB (HFxip#5`LAVZϪ0N`'`#eЉ3{z'~lQ%o~V'ǃJ=hdY1(dS- j-Ep¼ijPz ߥ*-y҃# 7 8d>j# uwޟ;FIDJiNc@Vʋ!(k2\-'tg2оbKhd*̗IĹ}xxro%-*7>`$)iY6ڵdn]XҺ%*N)i =t+:P4`rN=N{# 8Bo^C6ݖ֬^.2A~FOd ؁L"S%O١=LŲkdž=N[+(y۾OqN⠖SU]AX?ҢI%↦(%H{R&F8Vx,y*8Ֆh]aS1 N`N'bP>TӁN0ܶXQuݤ_%Q kN ae|%!-genjP N t"EGgOrW9 #G J|/kocah^TuAiuu=8[ZU}uRFс{bY/)Œv j4d{ ΡYuET:[Py=J&(+hWL(&.@CEW>ZN0]Z'<+.` =kjjqqq 9-KGę~Љ]C{/yOf֤R_Xjj1,N2E*GL>RuL#50j*'J朒ePש."_\/yͼȹFtpzT^vw4g% ݉,ME 8XVCJiYY2@}&y/kSjW|TjDHZ%YЃ#/=P6+'bcw]>co^6n3I\+-/{q+o"- ,-H$S#&7XU$SCx-y_G#Ay_mӧʇ?`S=9MEo a=Xh]c/(^ 84DILѝ97߼lIh֥w檌78/.^[:%%@] ;P|fZ1ntYﺚ]%ygwϜyfNCf;X[DAp(@s#ǮV`l,N$MxF*o+;=e4o]ᕃXhpj̩&q> -NcNO#67H{Vs4VLS Rs'u3݁8UJLV[._%{\^L|1Mg"ӫϣX)~Zsyذˠ佢\{Q_}x\ҟ@ͩ@na#rp@*}Ws5N\ d;"xSĂ]\'۲6DC]*Gq'/d'~ñ'C'0oB'PD1(p 2%#9V1D[+Ji!!LC<}?R}A87;aHZi)o"&| ry7C~[iiS<,*(a<׾mބ71&lf"3c>Vv)ù*!!\QOUt#L2tZLMQ㖙i:)h7pO1E(8T+{8'dFƤ_H`o"5 Ywiҭd%ziqIZ|N,ɌƄoؼfn6}I~[@";,x`K1+/ G[U޶0ú *(yws޳Kj\*<5vkĒLS1{S̽Ny|HtXs ]g/d )Sʈ"ȃX(хCb {/rw=1 aع3&)R1hbA)$znV(UR9t3~$l2C$YUADsc) A췸BA:oc?o4'BS55]-={Wz$.%u~0VqkOK :veehȢr:⸞DJS~m(ϴ-<`F.qhи\ *GmnD j)Z[0̂Y ݶG|HwK*ѬƁD4P)5#9;&4zpi2MGhQ0j/^ƬߡYeJVIi:twrL#z‡H\0.6Ry<O ASniW@ɻS{7C%];}\X=Xɲzc+exRb$#72euސ4\iFin %Hj@碓A\ԔiNό*oHs]䕜D;+neYgݭ$kFJ”"h$YQ1&]fi )(tc^2PbBd*MIq!޸M'i{j7%%4v6ZtmQ:P(;?HA9>gp>ŗ*bS崸82v] gy<˧?VHg d'OV8ZJ5=:qFьbO9Aҽֵ}?/ER$&3E<*#X0}6_n!0~11oKn~;Mn;p/pVOUxwQB_TE&ui} Ujߤx&8BS>3Ni L./iul }Y+*t_u^ iL}C֢VcfN-#EjGCyC@'Ѥ:fh#=G4N$$Tw&' wxzJ>{ڜ^_3NVo}/֙˗/}> |_>N'H0-P'r}ؔ zǙdsZݓ{_8htSJݎPa-&-S 4zeN3\lT^"|䉿{yd_ լy? /QVk1r=CRXu&6Mtモu 'oi";:ܙRL3&Y A:)ym.* r86#>7=5㪌Gm&#AZIR*vb\+S 48W/@=N`4K[8@mLp M|eУUgLD仴sڕuNLp 햾;NpY~&OeNNĵJ%/KOVذi7k:*wJ¹}}W=pZ 1Qje M壝uPeDᔇg\+"1 UzrbT\h'%țֺNO=cP `[0°hD "^M&0Hmn+1ё&3!rpTp-d}AHM>;L\I6^*DaS NxYbYPZ]3 ~%yӺ^v"OM*nR\iH]@kW“Tyf:2-HwaR\A߳A$qNAP$yLKB򝼹\hlQ Z{OoQ),ihHƸ#8in[ԁC]U+K8,uBe8ʋՏ=S:9#;@}h,FY8j Hl0WU6, #B"3)M8IiĨF}maAFKgI)d )k6E%bHz$K:G_ֲ/#x&?_jUn>_CuΪ\D+eg&80aغ`\\K3?+g3NgVuvD3yug<ϕSM[O"_|w- bGea?7MˮH:G0Z9ĎVw@zk5bP#T;Ct'NviU$V/+NϼHuI/hO/Miw=ưw13rtAi{U`HC-Yo\)EacWo,:Sv%>%O_n7Rlf&k&#7&K<-m\ T!5;iv9]Jϝh7A扺ArekGXYeX$[(ZMfxi"3[Ɲkgʠ"( w}*=ӄJ=0}S*Jnj٢(Y$έw3x$I| nɷ&VVNY 3m{ r dDۓ l:"ӧiU8L[mZ8 9o1 1ieI40"g.{f'$WIk9e, 󑉭&ELTz"Y$:J0JQg޼yx≘QJ)A!r[|x㶙#nֱ\{uJ#d2G0[,؉̚ Q]װذ*V:TVڵɗyzD1W N2$\"nS^a%s(;z䭜rgGCo7&%P#46iς$?+=P, QPb6n1Ż͍Pn>;N=zF4mĵؚ虖.qD[,QHMGrYn'$R,lZJvxaOjHkݑYر @ 1kaDzKEP[$3]'ɯB+1'byBw r;dD/푉X anCbd-~#O2L#fԅ4DuoYA4:9 AE 䧸)^K_搘u ISNbtS2I$uR3>&$0C%sbvo(p ,D+C4kԑQL>r| ƍ _V4ls 7)D2:W5E"f(xRAϤk/qK?Fqn^x!?4:k<;iQ ȣ,nJJW#" rɨ!Eb^䝂N\nT2rSĭPp(&dE2p`pԑsoIȸ1w=η =myW/6"Fp# iȽ&A}`uCc K4Hq(DbQ,rvRz׵,=ڼDrmj262?H)uزm6~HH;eLM#]\*~Pq/vXu=%TZky&Zz:RmƓ2v*Y953!96ѥÅ Yb(>g}<كBCs.yVU u*!KR iRG`0^4TIꅠh#fO!Ś^kG4 V v@L4\#=]#R*ϡ^&g<ݒGDFU v&RN;4rLrJ2a"yIpbZhVǻTun?y###1 %.#F% "̏S,7pLZƎu*ǟ˵#O#,y2䜭a;m;gaEM17%tT>FBǜɶ$YHHT?WK $yㆪNbdžR;qy'f*}!y܀vJG4]s%p+L MMHNFt*Լ2a,D4T=!yn=Nr f8,A:&["38SIF/pá%8M)wMn#%dL-FX4=1L'D:9Tνhg|7.:񤯮DP{%\"yN+ YF8Dc4[ #x L#;DL3Ƙ[F:3Z,<Sb"C{\?Vq,ISVNM}?? &߮0\TM۵.+g*Ԥ܌LrS%f5d[r&B-2@DdQS 6bPMȭ0N-7.,:M0Kh4Sq2WY54Xܰ.cUnILw5ep}cɗCE ʘ)Nrt) $@ܡ$k;Ѕ(%$$!w߾g&A#LL®诈wz@#{@&Dq'&uboM|qFQ{Jd]9}d)R׬tUx]阔À`E$>U);"e>-eK&3q2~ۡXb@ge:j*Џ%r8n=~6t,iϞ1`@=ZWjd(FL**B8J_;@&+wb;Kk%#?=t^Srd~u2L\ !2 f *_8l19P7/$0(ZUbw-_i_vJ~f,' ]Z>4T{@md8pebٳ I'uKPH&X@J7GՏ/%m&]#mQtLlEKiFIS}T2y%tۡYe+$a Ro {326SztPL1I B̶$>8nD k3Ps(5GIuiҶY62uFuWEJ-}iLQVNaNG2=1d:t؊JaA2MJqU2`F!'x:%Ed(4 =$J ~k^@G2nA :cpZZa˰ZҤFq>GI$Oxha\`z]ʪxt'1q ϭXhj|Abյޡ'E$d& Ȧ8>յƂ" NZ/U9%U;fWOA9eIJ&$p':1c#mP)|f1}'1ə' 44Z!4a 0NpADC#ٺR0+1|m9pxԁHX繼pUNj4UC(I4H竈#V@<>oeXOH?(\vXrLw}9a =Jw$J/} !3%]̜@тo;K{cP*`1pAsL9eł4q,Vmmoj{y53$'" E~Ҡ,PRz4Cj%LYH1b5- tHNIg'њ(;L+#D^=tޘQ LR I4iq+@Dydo &tAYeu5 vB$ U*C4Ed[j0\R!^<7  >Vo?ЌBr ԐᮍBE^0i@b \@%6mڄ]3gRz;Tu{if;YKXo2*R;7`z]m_9ܒ)4XO \`>Ge>U/4qo1wCy6ռh[b)- *QP i0XG\ϤC\Ff)Ni8:K2 |Nh涱ca9Hۥ2pӦs!Iֻ|@P;(䠞;Eg͸aL iu>5KZ f@l'fUb^:$.ʹ5+jA) ; ojxꡚof\OpHL *:S&1yL54I%Ϻ)!9/iMG:K񔻽73Sʨ~yG0:#δh.Q.QތHhD.*9ϫx~eW`+{ۃPl?lc9}@u?^ "1?(*5wbִPt%D)GkM#Z=uPKVOÛS^c=r3m֨5⑕%}T2"_c -]MsIjҕD8u$qRw2n 2V2%I l6v0ݚG Q ܒ/ qCF. Hzx;h‰|!W^%+A05|i*67QS(W kwTzHTXh7^ӟ^G{== J˖-3CP/Y\R-EͪM#VF5hD>  D?pH/C_hb`ݾaÊox+_Mp`A0s߹sg陵h̥bqVwS͆/%%f  BWr-*GbQW[2:^X19ke8irn6ZYzG.sXgϢQ;Y.6YƮagӲԦ/rOQ9:/*WlEEcFɯ}?-~(<ʊa'I#d{mA 'C-9GTfz7m朶7X_=;hXVWwΰi#@=Jl #E:\7pC~Æ ,":*UibteRa k^Rt{k}WN|3yA=){o_s9VEiHQ-UՏp;HKq8lamYCҍ[贫qbkRע{k㦔.O]%i;-|yt)dД\9gߜR{5OK1k@To7oXq}[oWwz/ڌ 4[fz'擞=uy?oKNy4b ܋Z6lDjBsC_<ХWSs-:6*mgϞ][y//'=6(Ibw|EgI,m:#9fykf Z@_1k(fS@0kÆ_o\.h }A%3ytZ{Gz3yA?gB^TEP (KиZ3nkzи$:>"N)˽_ w!}}L*u)@*?K9--e44UF}E.],@̷ 绒zۓIɷD@ѷRrr7F[5 >\_q[ֲ[go"q]tSgMHHtO mshg>cq' 'AbUZkN}Ŝ8tv͛A#h-_ 5uKԎBCo!EX᠔U;I ,7dlGVoSScN8$ P_I~oOwq!mK$n:s3' )y_ @B0ޏ<*(qcRɫ뺑1=lH+}E ʻ7}>7hS@iV{pZ#h*dqk/uRTNfoRI˦ãaz&ADQ'/#g WQ"t(J_yYM^f.&ubm~ M&N6,s da ādpEsv+b /WlA(v@(_h1:Ţ!h6dž-йjsP>/NshXN$!8ݹyL~'6۫{i(KN^P2+)E蕐$um>߫K/ƛL.WFKkG9!m_1 {hQKm@ݠP ͞,ݿyw]ziNhyF###:3g-[Xr# Tؘn n#Co?K?ՑNNMs%j}k㶣Pcz81ɴ1u!5󎘣ʶKv}l[q\ss 1`r=Q |fM-=麝Ħ :''-( w@;e߲nB9 D"hQHbKrENA@зg,虁J?;X?\(޼iy-jO)S0fiJSN*K"{P4ӹn91p| K7mVxOrE G"MJWY∰ZѴi06M@ uV'@9c5\9.! j*( 41!M#$mD;kWoy3f?_Sτ*8uޒr+`܏ڒjgD Zff J pu%t@?'.Ioxi| l!ܩ̔9)B$_M+t=,qPf\׎RRbx.Ěnq_2T-f߻^a>uխ !W2j.@ D$HLyb0>1 Q t%MСG"(i I2P'}@ʣxw[+>Wpn bf( Sg-+b޺qڦFJ&AH`$Hu7rpH[E:sygika{\G*o~tH-ioۘsŃQT1w$&oY-k^/~q4`FQhGG#Ȯ@kTxx0rܸ ZI_>އ_~>.1p\A-mXƇ֡|RO -9 ޖ3PA6,xÊxH+SZs͹I@]^]@Ϧs$7;g1wn)l]PvE7SO}5x Px^8rIbN4~tV*M`'&&,==3fП,ʇM8%A Th@0QsPˆuI}_܉kZ?Rמc?7թgv ^4x5~j| Nl߾ٲЊ4(v >7¦QPٮķwUHZqhitGCCW 0# @v7FFP FS݈T.-Z]J{rA吃"|Z9/}q͞q|'8|Klsӫz- ?&$ Nc:mqTLM+9%6'ܚ$$][[ŤI}Hi%٭Kp9;ՙTVN9) `PV?P^/ a݆+yʫ5lth DCCC!9 `q#0>rNDEв'Nn,]lck˸nѦWdn)I{wy%젇>In,3ftJwsq;dĆQݶۺ'n1FE`-BEt/iŶ0:>~kp9*mt&j7j6"rIȏ3:4hTPAiB⛟sw3N>2tK} nHΚp &y^ 'se(íZA #T2xl Iz 8'iY}Q~WsgRi%ꍖ 3k׏\uҟ0fz-9 fgOOO867g>Q` {6C.+(087bI\Uu"jo8ToKa?wvOx4Y֚L+A|2d=q7`Vض:%?] a@ 嘃P14BˏG'v(&>[o= .D@aPZkPjr3G58heHD4׼j uOtg|Wyw7?W~/9%+McpM !j =Z~R:Fّo(<#S0 }}O {$hSdVI"3fPe-G*Xؼd+XSNxвK4^ V_%oB]*2!c64`~nY[bEY ͛BoŴ_ߚ3b@x@GC O", hHQXT(cLmڀK!=smo7q9N_"ڤ#j|־SSP \r,io-jYPʇqf=#^.DޭaJ-m)7 tA!0hQk% 6t4,&PzFŻ+`[tu 3ÈVV\sL H^G.0Z;>/NZy1=̉ 㰃tȿ*{7$(Ik+]J^(+iҦqlk |I\7;]|-0)։3UK`Ɲ|rW8'2˫ݬ('z̈i30՞@{O!׳O?S+Y&Љq  bt-.BY !IQ˝Oz ϧ[3Te: =~RFk#4 7||~&*0("8ISWJSyȹ8rVG2P^C_W~>MkJ 0hCR!r)ߐ:['K$jpT;PdJϴ8 3ֻϮ7abJb1x_ V7#UqL md1In^3ZŠɴ}8X3cvu2APz|`+j{\FrRz6yiZwppk<~l SMdBw1JNW|UN< E}*8{2 5m]..;Z8:75,&`|ij $MDuno7tLA';`5 ziG[ ۔f8Th j2nI['?ИuT9("i0zYڿ5(L0EB@B;7tιWxq6as2\*l^.%+fd=N׹4,< }Z1JEL)ZW|Koޗ~:~_3tad@:tt 'NN8w#([W8 J5JVY) eFɊ-Z\J==c+' fV}'ݮtF'3}s^UOɣ Wsi|gD5[|ЁZ`g.ScDϾbߗCHӮwfW?ߒ ?%M|KKDa$8V7^a \ 1$ni~}"b呧r;--uJ]OH\N< #ׁGNiZsOEKto{;tPH7Y¥/\ȟ0'w~CI-bfTfaj GqAzkp( >-N܌МIpݘ- )]Nah(mʓyfl.B.;/N@$e) H+Wo[vVWTvB!^E+zBRMh /{!0֢`cnoyw4m_`]t Pm$`׎O49hA0UMȵuZ~Q17b^T1׬kG4PڡJ;8X4Z2J'sq>Ҁ;AgΜfX61£`nmmC-]4 | PH5uMP%=?I5 /3s L)iĺ{f E_yv<;6ݖdi+I jt:k&Qy^4Z3X5Efh{0$3 Ekf@ (}kwכ>MHkt3Tf Qo} DxW)P,%Pu,wlLh'J åluskC6nPSd'-r۠X{B<6>HtN>meG$OkN|~gşۄ+lr|0u(8Gx::9H<.$U&ugZgep#[8 e\ZCb5;@Fw_\N/k[Bn)x>$fVr'aP8EƩ{^ Ebo `cf_ÞQXp>~1iV*$-ݍ+$Ŵ8aug??&bT C܍yȫE:AӖ:t.='/IуA'77u G?zCoL$ۊn}>72Smrږ$y18=sK# $&7dg-lBhD=甧#S$)^9=u7)WC[ Hy/~ҏIЄ8*bN8g޸oDJ=\#E82m׍F0Cծ J ۚ%Q_7aκBCPXfAmQD.p YB'2 Z\# ;]$'c0TdAC5*[sMgqEoe:tU69 "8|%{g7.i+=.JOQ%}1^ɂ i$ԦPNƸxzV40z\O19{f`_>z΢߹{=>s-놅云Յc'KՓ5wklΆ[3mkަgA*ٱu݋+"tƀdm`У7n/|f ]pDhKM8șRd+ⶮƍ`gᴷ${KqJڗYV=׀$QK 2[1P b>O̫Rj}+B,}7?x~{>KJӚ*3f4A=iQ o/Ŷm`\ο(>rw|voj6@ g;@'w8ZJdwfqw^$!'h1.7G}U,Mr7yad#zg"ROZ`z ԡH`#6ԉy{ٷ)+ HOE;8`f՛|#,kH6.)i$in_4“¶/;QLt'iKJ5)L9e1sW/(7焚ߋUAEu"j(HsGN\ѩ/OOր ?b.ێc+U[m2:E{ hRpiaÆ %W-u PpHFnNtԉ%K+=Z/E\\E |puxP xtɭ0i&wg=u`hAկꭉVWGbqad4vN<=-rɝx90;,OiJNOL}&3 4$)ל|%pF}H7I{巜"ͦ~m) +%A_?{ϛݫo".Khۥ]`wY8bAӱٳgW7mĢrZ JAP JDƆn%\BPHj ŠhDG+i#il 6U?7W1.>v9<8lXp,-$T*UQCa$to"g:6Hw`YdcO 7QCǘ4ɮ@uMzjg^H2̖3`Nɏ9-@3 }x~A;9@BhnK*_/}+N0"ͅr:>>^@qipqGoꐶL4H`fciӂ"F8J!ij hvTtc}_o ޾n V7Z9Nsk\Jqt4rx}5߆dq}.OnweZ;0k= $>Ie\c?y[W>uY61)<NБ͉+2o Qa{fۚpxZ?@q?bۖq"j{6Toa-|+,b$x-ă`(Nk,(! !JŞБuzB&dHgEqgPhXi]7.Fmm};ϩ04ӧOG AIO%}HD9ԯ~ukVt0҂=RA|@.bW_/r6Eǃ#I|\2܏f^*&~sC=jɋ#w){N+ʗBG0AHNkt6im)~ɨHq;o/]'SУ.XII1AV&\{F_p+q8c=Ho7N[)nGd4GHrVx$↲*kqϤuܔ羛DaH1h]Ǽ[s'"Ȫi٠кe˖evy]webp V8g LSJayfW!-g4oԳN Giz{mћ!HW;֕Ȣgx0oK-~1/obOdBgXд,su$xٓHQcUU})`lZSSp^+i#g뇖pFz6j@ASbma+WɶUMe=`6[q,ockP,:LIqJ41W+KO`92=}< AcW{R ߀GB[T󆫆tk`O- څF=k}dd."ȿGlS,)+<@}i](9̵"{H_ᴟ儴S`}L{G2驴Hs9w #E$MZ| m;j-1RO6@x`#M~6<_18E͝;6`%wvR1ƸI썠/+W2Rw4"7x%֊<Ԕіem@!kK)BZ#ycB ?/cr{^?yʏJv@ԵXq 3 uXlHtypE`(f=>̻dw6gq< ;ǣ/`5ZF`9g~p=Z'zJ6ȃ-rŶMvXۮh;l,-]~_-2ͷA]oYD7ю[+k)+Ń+ZReOci<;"P=Ї@?g_|M; 7W5\rŷ.OQn }!1O=/:ltChg̺Xb>mKOlgsr\d1EsX\w<t8erm!Qc M=]Ј Lxll[` X{;pE{?AlbkOeQ rÆ/ 65Fn7^Ci{wmiM7;z1u;$Oz[/K\&)`Cc;,(!)@|Yx&j[8QLiE'm({qM=E|%v$v]]?Y$Aѹ^P KaPWFXlZ ӭt [Դ~GkTFO›pGQH@ p: (ihM\ZDt| n,Z4Ҋ#[*e&isCzs\ >=o~WHD szzmmh+_br̦m|Ӷ`Nѱ͈+Zm ΝֶP`)~yldSzVbXDQ8#"?!Z4{kPsO;Z¢J|+iA}hٗ/y >g ŗǕk.5: d}ҏM s.!']yϤcĕ g=KZFcGj.JN_կ&a 55E3ET{?xT{G/<8W5.6dOC'վyF@^m%t"Pp׶k}Wu|/e s+AٿD}/#QJW-Xժ~hypd+rG5| #rƭgAG".?g<?v˄;[__8"[#<r^E<>F@4HiE;6H1I-Z  sjZ"NAPkۑGo1#U1G An߾UDJ}:p1f]y_R"\D8NjxXs0ɦ]AhQOPڳ׈{Ș_L+8"7r`o~L$-?`( n@Ls?pGc~ZC^=Gv@RqDmtQs|I,LmF6itR6gTT𑗔K{m3/HmyT5?d=m LO&$礪_|L1] i3K+`eqaL>Un"aiBf@?ph0} }X+2dn:v3f@$%\+n΃ B[lKd'*qsr8GJe\%z`>Qnr?C_φ/xE?]H0$xJ,~;7m8*~@fe@:,-YBNȧx1:I┴GyGXܬNE>rm>9)Ffg"SN[yisT\6R?t%gZWCE>ԺO_8{x+M|H/=;:{F; yqqxsE WVLYPdf^yB8Οq5D*{X! M!4k*>YkzdRT/$h_u;tZxE~P߫+M53~xPX? "qVU->5X=wh s\ԍΦ8su81/%?ctiyL'3 0PMs>L5k.lR9ߧo|~=i&CWkl1 (R.5C󶟋IȂhҔlgܹyKVTezp3rSrL!Enij<:ll4K>ala[WMNA O<ѿ nePK씏\{^7ƩA|ꪚȅ,Ld%uvDCDeL!ЈiΉOk/.GrNʀ]9u⌐##-mPwWO#`dfT!%Qr9h5꜆6<ӣ\N.n:N=u.cNns7}.qXdbj9]"adW{jWdhjНVD4K;7W'\gƷ(4;͔nP*70xg.vSs. o;oIUSGqDV|.0L»{}͚oac߈5Y[3RnCF"=çU^Dn☐XNJ=4҃mymw38Sm_tO'k@qEkc_Z l+z "u6:A4Zbk;r6 Qq^"(hNGk+R< vR ])!K,Zm]4ҒH}sl4n*#e1}&CgkE&`}HO朔z㥲׈0aP^W OD`+_"ڝZ;Kw۸hBt:݁2VlcG/䒰V5=[E74l]%Ie"t+[+60KsknHWIҠE=cdlF4^ȵZτ Wi_?bѥ̘;Q>t|i*;# Hpw{xaAK/h(^W*)ÔAhSU- 6 Vw(\Έ.9sOaO&وVj0qLY5Mr}{/V[)s!NOջB.u?~ ?w07,5LvepfnWwZ-E=cDqZ`'B򸬅[!NN1D\=$2$Xނ3W o>+@B0 (D"Fg.{ vʓ "lJ'5Μ+@m4WWn*UU4$@ @:4kHǷihBoC{Sm @L])ʤ:zbY&as>=f{erG-ntYf*i&י[p{fGh/zE8gSj@V(&Z$6-5?_] Bp]9o'v#xfa!3&ibpPÀTVۑh! *P(TWG@/Cjw9}K[Ge>"zN8{zt3s47122ANI=ܚJٳ ""U[z-m35wg;pP,lauI/1~jt5!' |Ѯh}e)4 uD9]*2=Ty:_,4Y ^R߇b1I\_XLs;S.dC?<8~YDr\`Ms겥iK#*ml;xv؁R 09`pb7S@} x84ڊ;Ǜ_Vm6[O~fNa*$[Y:b)fN=fDF7f4oK=oS7݁z000P{;>Kj`)p wܼxGb+|+&F?i5 $YhQAyfqAl;0bFLrGF7Ż宖4ԝ9uêBQV!֊$}L.@:#c>t֩|t?FY$Q}hnOf7i߇ L$o$ځfw9AP;WoiEtA#:l( Ef245NpTLwK`FW^Ok(RUPbwЯ Я+ן0{;8ʄh FX7-6 Op8@Z7-~00=g#7Jv6pI:. .rIv`(up.C1eD~E="[Lκ鑸BB SH]̶+;x9 3򋻚! `F}@⯂wmjQi=0mEg;)szsu0&ձLtnqźn1AY@w4fuˣ&Av ! O8ԟj7|)ŽR.+% K'Iep[At{= ZouH=(3kyIۓ!8M[`eڰL{ʬ⼔ @䛡 ~ILz"ZɉP;5'^2bG$%zCs)zP͓N􆒌[L8mF8kK~Ŝ-}  %˗/ǂ 4_R~Ofc+U=t-1>*OLR pK:YedB8 5i ZB@wZS\.Ur=:@qԶq瘖D:&pQX8JK$D1itHn$79GY9o,){b3-a!<cr5q ek&"eMUI%wVJ*Il9Sz*#r'1rĥ!ymWmX&qA\S\z" m)=-1)KK<`[7E-3Ql(򘽧}"V; e/䢫˛@gLR䑀-!Iꉺ[?.9$Yr#[=-{=pNGx`+ Zh!QI <'G{N7Gδ[{+Crsޡ#ﻣَtQұ7<&nz2!t8{[{{zbi;rɆGzGK\r"-7$z(Jh$>y. ]M}?+\'4@sQ;_}ۚK*n澧F%e05L=/)EW!gc>qWG=#myfv--/v3"pe ~p5kN{KQ5}3QW[1\oV!hlG@C^VBo<tIGAazAi\pċ@x|}_uZR.BETE9OlޞYؔ ה7 q] He!ؔSa7J-BIf-]'4^r{8B Qt&)"K7Gڿ/= ^}l.I hF~Q5P[nVb.L-)ܺ9496 vf {=/<ٟeqI :;3-@d[ZqWkɌko^ m9&vp$/$z!:E*2Linហg9J}v)}'m63{mx[V; a{xL&/^Rެ3i TS ťn<"> H;b#dVUE7ooKE0mmQ-Zaъ؞vL(t;V0ɽe:z" .(&K6c4-b~[[!JI8s`4`;1z3*] 75쯕t]]GJλH g}=1p;ޕӷ  U}h¤Si*[VK}Wח%>892xxxpnv̤+@K7Bys*f,a~"4;ݺ4:6įMx5]?I$tDHˤM(!:k#L NhFӊC&̆|9>sq3ۇ,"$諕/$4>[xZy@[KM9?KGTn.  sBnXܾ݀uwԛqDp,!Wo_C^)29z"Cr(^4TvVfpjw*S[4@~k;}.guF̢xGGPhTOaOԚm[myn\;YѱX׼ܓO;xfM:|ɴRf-VY]X^a (luh'%&Nk tl,\)&XEB|JjMSNAoza{n_4L}S EC߇/Bضf|^$HH,!-ޠ[ATqݹ\|ˇރW-4Am0tޫ>&QWfKԍ84Ry808J5Ҳ9t9ZKN9 Z !~[;~i2F zMs}aZHy9ߠY"Q3 p\ڊ7mWwwuc=y$W3{{GϘV^3j z !\FҏmiU;.ɤ,vI.thˑwӔZP+knknBonMv5v4Fiz @e{^6cьsc4@1JK%yi'v1TtomZ H5.7sKH1uNi+ƍbX=#4 9WFb8BƏr|!pehׂ)?]7+v:JG`9J,Km?P1b,#n_Uː=qpc80*L<&>p.Xɹk,>yGuJJ'SzvVLTmZ=[~c2Quu}p:'o:S^Z"V hH*$NtȴdL#L+J.2e)^W)}iimx鞻7|k@D&=b@/m"H *\^ѯGkmQ%`747V+q JX֎=>s%r/W۟]feNL#ᬜ|҄|7Gܗ饃y?R!V̻y)svfoJuX7?y^ K,iZ*$][ã%qZ,ơS%.O={}}7|D8(YT/_JǔZXzIa9ӈu9kW!У~EÁN/ {)hiCْr8iS=`&NȲ2ң$'?3Q>Q<z'qZRhyS ?p+>+GLcon цAIm@ 0+N8!^lNC+޶rh!qaP'Q0, &˞c:z<9ly 4`9|p\qs3RAo*]ͫ8U EGMlO?i%&4VIxѫ{8^/ιaNiq rKi:y&ЉP)x4hK4XGu;= >%ꟸ7芽n-J3. ͒1qE]_mpw`<0YwM_i}N\s*sbz%rt`5  RWzs(pǬH7 U[ jhjj-+lWp}.:Kvy2yZ-'ә]o\S>%e5g^\5[Y@ZjyG 2)J5ã)R(Ag. 2{ѩ9b=qW ޿|ϨB+4t5s `;%tnx~ߤL`J=SE|}~gfjӹ;+9ZMjpͣ$1+iW}P o}o.b"Q F0f`llIri Jӕ?;=wS\S^{<~=kh@S;ЌM;g:CNF.]v''&eTܴ;iz 5QfTs^yr+ ΝH( 5km9 mP4=e} nƱwT3/Z_bը[b% Og{I6E VtW N N?=9v 0KgIԠI>)GZtȲ1ʛPCDNz WzAG`RZߴ[twFzUfҵ'Wp15H|M}Ѵ~FHkӆFrD `<9"&9`0 3`~>oiȱ7 qIuVnܼ-_쒿ܷnM@@HlKI :E"BRL?.Cp "\rdISt5E,jl>;~q}ϷmcɴSfSp~.מΫ$ #sad!-=c_X#pGV}/aA]@Sc& fhY] n`F_Mhh]veV/F@{ne.{jV6&dKwEXxh^T A*M\ ;+Poy}.~V,Av<&Ej5C(t"ꅗX,>bB̕V 7ȸȊȑԁǏ23/P[iF/7qhͨ\Fu:j k4 e[q Qgב:묳!pO ^oOnY~u2Wއ~WoAQ7HNV(5]kժM遮С+lWn#la@x Fު'qpӿH'GQa3Y:aH@gHCkHH1I4v$Ty:|349ߟHwݱǿ3wڀִvĶʕ+3@XrJ>m"^+Nd|hS/߷w >[`@JE2AZҞ`]<\ΩJ< vEhV\K;rM (U<~ovL{]$mU p0@l%RL1]!U6jhgx5xb.z~Ma>Sm}}}5PRi1 ):rJ^C7V7h b>N30QzlߍUc-:|g 9H{ <(D1qZXsYs DA(<0 G"9eЖTY8i;m=`hRN.ƘR}ՙ;z9졑c$&rC0hl%K=OvO0ٳgZ߭ *Nt͛F{]R.P10jg͢[jmĴҀv晑jzjҵjSbڷ'Ј{֧:L92| Ѧz8_J7r@GMCppKfWD_$\S;38Ӗd5i5&c)OIi*6XSʠ_h$MZn{k4vp\4ʍ[|.eF4;r"vdk5- BE$=W 85I7zߺtSD Ӡjuz/6D+>Jъ~ݳ麴>1x2uJ+a*}0zuKЎsp4`"x^[ (z,%K+'Q. 0҄E9au}v~}@ "u^({Zp*kygg!<sI?Ǯ|Y߭|$*̆Q<;;OW"nAAgZoE:+IuRi^V}uJ$E6GZgRLJ@OmKOL[=9I"Ne*ÒMk`гdZ1<#Uo8w/˪RI Nh#MkEw*਍b(,(,yqwnm/=1F0ԥH[e{fW0kE8R}ך<רZS._xlP@o/hkLŰ\;JycZ~NsZu]ؾ"FuXϼmVɗ.F8VozE?y^荍5@T#dH@qlj`iK9 1tKdۻ5]`[{-hl[tρ>4m/ѣEiУxKtRĴ5UWp%y4 ] z}!6y:Ks tio|$z!HPl*F=ߓSw݅q1~m.DŽ=C?A~/拸FU2V#/B'YsRmr9yu|gW=-Y2aV-CW:4<-|18g<0Q6@<Z ?h6t&:@shh .^8>蠃ԓLT +e*A=1"xݳ)`!&5̪gBσB rnwL:-jGI +Y4: ;pJ 0[ب?8=¹._|6:qʻ8#:( 1ա5ln۶-ĩ!1)NVi+~?='G959{u/BY7<.-ԑv@SR>n8@;>*چ*E^ *mFY^0yy&<7(?-J?8}A@o8߁CB@B8 v8n Ц]Z ۳rLV-NmNP/HlXTч<]TyDu =_$8˧b `‘ՒEx/Y1uCq旤-^ACPɬh7?xwnpC=5 hDOa]KUA:*\ȧٳz2YŮp)|p{-L7ͺBЎ{ohѢ-۬e!9p{Sߎ;ܽpzχޡ}R;b@+3O C_lڏ] (PS @Ij Lxh秝//BnDX7s~jhp L=Wt'1L(@ϓ0weX dݜ{wGhߣlC+gܼz9BEwh3 fH.OEQmWL^N\.ѯ E?5nS:e`2LDjFg\1ah;ECiP`  8WD :wٚ!f*e{+-+6@ HF4ʕ(7/xg))L)(۾ݛιt&)aA:Bja[ +J]5 ^#xs?P lꯣIV"Y&bK 6lؠs/ (\G^#>ꙚFíXo^sy`ӐhoM7(c=CG-e׽MaMųOCRgfCn%w/>擨'Cl5O?$2hiժUh4+(g`_s.0a@wl_uབྷ%DKekx4xAI_Tو0MkaNӟIΐaM\s=py4wCi4@H/c'zЫX!#i9sϏ YHXw 'Ζhnx]w/ċ99yY|.$;V6>ˮ AXQ ,+cfS09:[WKkZ}^Θw2r\Qz۱ܯ?}`ؕmٮ)M_C8-MkB&EC] tE;JG||}?Lә!C# LB'fkw8_蒷-4%5();gߺuc5x.JU߭wo5]G)7N1&^qn߾gx8_Q~[GG=[ +W8嘆&`!I$.-@u_iiN'B/[V}Bj0bxۨ7okAb-X* ޫ}݇ɏG!Xȷ Oh k߿~xٲs:9C ~ "2rh3Y/ן;:<Oyىuan}um:4Vi}W@?k}>WHWo=ÊAe;<!M0O?ƍx>#(-GxXm= Ayy{ pM5 ŢsNҗ Oj^iq6?ͬӔ{ ^( IJ00,LW+ڱK.9mhowv=b1 Ȅx≼$6P":s~{z N5Qm4q\1%!{C:? hcVˁN kIvwt0[gi:&>Ҙ>}zmPjt~0в'8u@o0zuᬟs&9m,Yg)?to U4h!03v_ Pҗ'}^gBi/n|'%jHШEGyOxl{^̋hhxvRQ{Yu@x)_ZL]6\QJ? IJRB?IKNa!⎴-[qEBgX:9sfn˖- \)PzDpB/̛?xn"P-[ `9,<8%fqHv\X9]pʊvf[}烨fwqk㞍~*wG%ǹyVЧ)np=iljC@0o#iHsGf([lcOXv!].p lWyҗ,=haUϝDG3٭_|On řYW=8 wꙘ,dpN|ÑNpvMW}?l-kqu(^  #.(^E>Jjfo@?dTDY/u\|=Aܕ܅mC㛯]+n}0H3Z`0T۩"a- hgU@CCiSsaSƺjr&E2=^LG\{1iʑ)˙#>!8!ܥњ%{/5m|uٟ'!5zYORp1h ơa M!4ЍG;dG5j@$&]]]4Q kbDPG-HzO4aڟ-ҖKғ7AӎDșq8.'RV cRYTsPR)Wי_r>7Xh=rAzmK"ѓ+@$+h=V1Wմ(J"$ @~=3gΌ*Ť xO q~(~`PDCnX>&X`#)yt 5P[D(QRh=5m~@WubyE=== `{ \a}bzJ}r͠0N3Ap!&spA2 z"ݣ4EOH4TN^n~\B7 =u{ Y Tj=sIZ9 vex&#Q huXE r< 8 @4]h4]рn/fs"}x졯^5>SJjw=՞9(Sg=ݧl؃鐝i䞰'-!U&.IENDB`riseup-vpn-0.24.5+ds1/gui/resources/bitmask/state_connecting.png000066400000000000000000001337171461742244100247030ustar00rootroot00000000000000PNG  IHDR!_ pHYs  sRGBgAMA adIDATx}%EvUw|_ AAP I ,*ּ""`BI% a!{rϩ{0( aj۷9 UMɫ8]tSd*3IsigڙL]Ϻ)=ovҫzPOL]T>ז"/&v»9%QyG8]aS&;Hn&o1|Wb(y?SN >?6䟘^q&tOuqjYCyI0'NV0G?=δ3|9Nb֋lδb>ϟ{+:o^&tU?| 2`k)kHOCiNPpRH,qxYcYV[՞_XTS 2n[+^V&$?TH<=@SgbEs[f<9iv"H*~j+ikgo v$j+()]qNumgz$zPwv Op$O*"J)yi(2$wИ ̈3}[)}YK]"+#"'gOncJxA')dQ>;|c< RyTiҝ=q_6ohG)MJ̛: PspB ('Lⷔܭ_6ĩOpKu|c%H/ !:3 *qgQ#;Xtik(Zu2q2% T"Y~Gy؇7`3/?᣻Fv%H? %2|VdP1P=̇S"nmB $k0s9GFGA?ʄ襗0g]B$:?4T0W0\! C&19ފEtd(W?Šnj?=Oب(2ȌΈ0#wzv#JLSӉ%vrSL` zF-GӸ8SE@1S|2e9w'!-9 4|Vygߪrcoԧ&xaBx/ʕߴ<2?s.&⳨ĭvzRS0uSH)Oq3gG< T4dal^ >)Ό/^;=j; %|SN1OMwR*1Mx.?"S9Lp=Y7C&P,e8I ;׋޷-8Ycsw{̈́Uuٕ~[{~:m%sT؝6u+6V47j -yxE@۴NDdzID%ZbȌr>KаiK+wT3|ؤ?'0ʡfQp[W ~ܙ⩞jx)Ǚ4JGBÏ xAxԃy'S7OSDC<@H/w1If7~qvys6ǘN4Ս4)i Ǖ'Nfb*=~ 39TmxNxd0'%y)/mAe##;}HFb7+l;x 5}S|К" QDT˒hy฿xD }x^c"v8wNΘD q;ҎZZ<q|t!D#%QsZ9$HNi+]'>q 3fBVw~ڝZ>O>OZc`Xc5Ceu?mpe(1ک&)`J q FCWi{sVݶSU{zf+5 BX٩!,E[`B6kd-!]"PU(N}.;ƃP}fxzK\)|WSjxYrvt3!{a~j8}PJ=J2A%Phnr :Umh /-! pTgtJw.z*v,dUw'6MjӐ85:ϴ2e.R-Cr1`>&(Iy`.ֆ^cV?"&MT#ЋWQ|eIjZ βMlucDk>pDC;ʄifqWMggбo]ypġRŘ -pᘉ> qpaBaD&ua^i> |^S+rBGiCҸB SRG!5R2wF$ATmD)NJ}g>=߿lt_9FL+5F{CO-X v)ktD,ŐkK%UX"JoQhHkU"4ʍ QݛļT%HljY"F2h7I]F@mύ~bNfJFVv}c-x@=!MQ|pSܡBԨc9%2~=Ҧ# y.ҌQhc˵KfE–<##}tzlGю2!+VN(hqWP}U*ɇ1B2inԏÈD k);k2l(Ȫ%K^O W5`4v$qя3ڥ"gvdFjWw2tJr+jD Rj(t~E6![iZ?IfSXnBԔ Jy8ca R#ϸ U\{ #0!̓+e :i@AT Oӡ~tYsa95Qn6}FKEBR}=ˆHXv[@yz⪥r]TӪz׍[Ȍxŭ+;sחeiRDÊ4l>2|JT 3M[1EѶOڤ[-q\*24ۡz62c|bVm| 1!_.[PC` ^ݾOǻic#-N_HjrUcPљ:qKyc:3xbYqwOT}.8 ۬I=C 7XC )|f?y>r$d玏x nxL)W{|4f ᷈l 1N}8&ImD'Q2^-Z IdD{sH-nH1Ce+}p'P @C/Ą V~ϱ ,[P2󾟣{ A m8T9&"DS xGBN #e1TO e!F<7P1F02'l >HT۪߷ycA}rbW,Ń do*}4+\N&6p{$&'JjB2  K{K)mz)Q IH!JqN )>%QVۃͣ5s,oL(;n+䱗^wEC/Ą~3rѓ|Ư.PPLNF_zq?u2V}W.R"Gw,  ՖdL>q*a[6ޭF`S|wOqC '~sz_ hD2ML - "8AjDM7BڱVuP2늇l7/Od;cTys,On r'+_y.!o.@-@d\?A'mY)\1 4G )ldJzDJ#m=,\#:ji FITTض#ٝWc'F~cCfdޔ=ܽGs7֏{MB95;=i/Q*$f>NpT;\q X|F8B8hV"AnCc U^\{H6IHBVnΫ`'[C4gDHQj9 K۫cG](:كy.4H_Oh}E)Z(!%Fk~S Ʈicܹ'*u&Ej1S^&pJH=g ބ*kjf,ѓZRkQukXswn!bṡXNU;Mh$Q0QRz*04L5BhB.  u.11p|33-x«̘(~b$q\]4T X߹LK#a5&n08+T)I p])aD!',RNyen3>(FʋDLC(hk er)픋.]BJڲwk|Кf9;&Ixұ>ehHt<ʬofpj&F4W.(Rl!D^tN2T SF?nKeC<0QLA8_V!V(WR3&G96u'%oY6dЕe{LA1!AVCcQdwji3nЁ%ش\p2=<3aEL&L|PT<X%cpf@bFPFbhH@P9) S$HL/3)Z2&ha,P er܆6HCڳm.uK!ŌX.Wo݉jS|%r|o泮A7yy|](&`(4\&ՐdI 2`NT<cJBqSfDԘFLH<0pr%`); JvPɺ8-# sV]aYV'xgɋZ:G]~ tE ugi֯57iFqȧ{ ˫L/>(=?#R6T`hu}R<םz(`|i6hF 5!D馺3u~5:Q/-hp;( l%g+ɚ&%uG״59լ ͤ+_&Q3n?}'GiղS[2xY7oޖիW״ G/yOHߌ'msBҤጵmndpW`Ҁ&Dkr*p YM<CMg:ifPP1@xFqY54}Vd4Pzq`3^ "+}`7*Izꢧ_:fߋ._!2ivfc>:=c`H׎yh:RM_gOM ʒ4AHxps]U<Ѷ' @h (^Kƚ:mşnaЉ1KZ}瓟#n(*@C.HX͆K¦fIMASܓS-$y!KE>G1nA כ}C˽2a4UNm%̰߂{͞={ *ɄDIׯZT'ۜy`o)xZ nqwXBIT (@ &ܞC5"P(ՌE"(u1HNj1dIj i.!zbyRO2*gNuu,g$#ٓh#3P80>Bi[.ifc54qR/ms;_6[2 IwϛgtWh Qay32ҦP"*h؛У3:jMt̆sc4%\lM"FfQ %N P4M3 VCQ)c]f& U_؎ 12YrRyhBch`K CHW=EqFb;٧P6 R ~zƜTz:*%I'y( 4@OU:1ShH*w2Y pZ2PN:Q 뵔WMq ^[7̋6$Jj[f6&ȀHK|Unq%RJeBXWR_ݺ\HUQɲ=[G?/CCbS``8 *PHvNX%[T JhT#W=>L`p/V0HW# =qidP)WCh\ LJ72!zN)!`hs"F^K *Z5нFwTW $;?!HXmZ%KvgRIST4JӖ+i۳kk:H HO6mxZ{kLyLXHuھy3tcSq naf~yE\ DT 'nKgԛiM%'ֽqC{n0wqk#e0T^FUʚڌȐ5֫IKʥEReNuWjc<$v< Dzl|&!Jn̤mꙃ Z"M ǫ +7]RZ83qIˤ+]|,EHj^pSj\B3AAFGA\0!4HhPcK_y_;R ASq}Zh}gtq `{?we 6^1aRX`菘sUDڈZ&%1j`@VB%/`$z̠fCk\5h25OD̖=|y#7ڡ,C$b0%Qg62#0>cOV56x~s'~yx ?&Kz=%β2>s~{#BFӰg8i±᤾Fj%Uva#àz@Ir:aP*@x@N ~GEhd_JZMU>Id%&l{r" RRtF3JьsKn8lMZ`)D1 c4mBrH[,cJ NɨzH̡VJF1XMhݱUVA'#;j޼2LQLN#wmiL(g $p*z*Z *WkødfB 7CdT>B H\KBN_u_^M4FjWhf]YB)HnX)J‘y;l65$0hYB林\N&z{ ,5S50n9fW1D{$DmFXDFy<0$!BcY=9N![| T ?nW!;ĕ$Q"eN UHGpU3TlhIzt1ƞB;~Ns]0".g ?̼V47w?>EvńW_-P.TH`ZF,gդ"$Č!Jm _iZ5,ե陒0 6i,Un))QzfSV P]!uN[bƆ(L3ZP\J 7,Ɣ|,`$)9"QIȺJUD K=*˭x=1Nrؘ-~_ژhcGM(&Ԙt17Dc픵utr3pB-4 qC\?9!*|45٥Lu IpD8SC2*^:@KSiO aHg>!k&9XE Z {>pqհS߭F@sfnHA>ţh< a0Gf3H=|nq.{xH8KԛC8=$3RBuMqU>b c`E\Y՘|aT_*M-IT(͍B1qxDc:tձV#;TJ7تA-Jf=K)slΝ4oMкJc{^[I!GL%^Z"DZF$LvqZ?+ڄ,Xmk˕42!li\@MfLH7Pa=jH3K+鰄\䵴cH#^pr;yC{NNeDKM4PpCI ^('Ij0'mLNM 7%үFBBFol6h٧4!JTRvps\e&edUDM48>Qz9 ː֢)DI|GDd!p"(,% K}kgS$,!E4rvHX&TTWleDiNa'm V'mZamGxIh6aǷBŠRkm!s׿uJeګlpG Iϥ!B 55s` MFL2^KswtVP[\g|D xbRHBH& <`ckI%FR*դhjV1I$9 '[qC9 q++ei74(pC)EK#$2ȅ,1IB)LLuO著ހlI&q+Q+٣6̰xf"Q]^JOg X]Fp`/i~D@O0pʲL\$ IݞE6Xb<0ђ"N4:F_glz\'*3Hs~P̈́f̘q זj>$v$ 71bj\ȇHNzJuy$ߨ$G3Pu 6[yxudR*XLNڭΪ\9fV dLԏβ ]m'!XLYã!5E: ]j~Rn0EK W|C)Y19ױF*xyzfy!$ 3N@ YHNo%=1ҹ3m`_HDd~ywlLv~ ޱmT,=s8!n C% TIV_Cx5m58H v3&b›5ć_"5zzFǼ]co?xiҘ7M Ӟx"וx9&zS>K}L^{CeǚM}!qu%S=9gKH]gĩ31y4ko:#s=$\E,hkp-lcWb YD#jqo%_2)׏c4xY+ֶ=+jskd_jQ%۩\`jS3t`\!gdT,&^m.zQT^0MɖQwr^K6<ԁDگvΧn,b}:(=3A_#K] Q$tag}'HhPHjmQ`DE;e@ڣttt ^e>tBx75(&#$`6L~`I TTD7c" hUV(Qxom~[pA;fcW9vLVjM=Г=a#rKYg`H[ "GӪɧCc*JM C[*",ymP@ 8.%RmLjH'Qϡ%ɨ}f, ;>Ƒ%(%j|mTsӦjϮ;r%8T_^:bOoZ_hQJzN)#$DFj zEoA:Ə#޷=xl>AF^PYݤO[d U4!ԅ7>G_*OݨJi92!z6AV P>eRAwoU7. D"T6p5(sNsO-/A<9}7r/hx5t s Q0pӰ5@ז`s99P WHҞO*hj[R޸:X%lB%aP%UV$^,J0@Cg/Rմ9>beyJ"%)ʏUl?gד ym~i^`%(dO.4+3Ƴnn6+FE>U*Ч)D {I׼AUҹyqgqGѱ˳Zr{^%rO69v1!V* B jaɱjG\˄&A+:&8%^u:!IJY@SjQʺA7䰷n%= tYfjM/_f[RDR[!՟ڋ%𐑰d  #u(CoEp,e0H`$ziF˨+/|,|VE㕶6^1_Y# nϭ6֮WɇF f>ȀzkK&Ae1 Xb!Ia$7JJL/_Z/~9{y' Kۓ-/;yb!*"/j Af·l6K">~dÆ 7uCVic:i%7*#wirh`g`_u UW;$NX+ *00t,{F|O;4CޢEgyFIBI \'~S(…t@6no댌$>1+!gfϼ̻9kAT2W+ў[Swm)kTD[Z9[ Im6098B!ѭbwv΢u ϘZoxآDlL6+U_EZ$Z71 R/$sgsv%ծ@}+Z惨O/M-_=[6ej0tn\`Ho(]u|7X!w@;Bx%iZѣ Mk+4%Fd"A??}Qb%jOfW6k >d6=B3?eEG GʣdBħI`;/?RL lX:ӿ O bQ^cS#90dM E-ki5S@HBC "U%m#o].sZ3m@zcԣeSDb )3ax:vbv^9؏$G;N$42_w׭]'>JoX] P9[l)H iY~ENSSS4$hci_\4 iӲ.E K9'؉܊;vp8cMC)=-,7 G3!T)iiӹx~LkOqL{؃5 .cJjư+{x*s.\ F*L &+0*`ACdJ]K)`S@32?!% Oޒ7}FȌvkhFiOZ]Ӕ|~MAESBMVG )D1 c1Y,B &ål3 DQXmPv&G UpBdV$vmL/P5H]j\Nqbޣ[,\*bڦc!A{%v|`hc6-P"D;ec# m"_TRʐ )h9/Yӏ|# keqNm^n6̬w} 檎;xI!6"Hi@RTO[Y?d]Ґ!¾i.[:VSN(#A'E]L?ZLHb AEDAx FAdծ+I/ f刼 T' 7>G;ߖ˧oJu2:ܧnS>TKv![Lz)e>~׃}c{ GŒJ ΨL!Ɩ~ !r-ۡJ#m3k A,|\E> \K֍u^Z>Z ǀl@綕20 h/4`80 EK*`ө=U)U!}`n+4[5 ^61׀M#*ݼ|pvz}C0-^Nn]#st|ʬQ<ƔI  {s:O6uf6;f@bYL-" !|5Rno&65➅|۽(g=*yJ"vHP{^WBb$@Cۨ{H(à.0o!9P* e>Xv[-k3sLSC[$"R,L+ep)Gm yDA_-׌4`}^ \otyK "Ɣ+fu[NFl%F7bs,J3rz.jW%AYG) `U#d\L,+} t`ݡcŖ|eߺwް§vBP"@H.0'v03$XR4ZT8ox=0c=*:(m9匏ob_?&CS~r8ľBRcMuP'KnLTr0$J$! BYg~'6J>ԬЬ ߺ^o0&1Nϟ_C_IJ0o D>Iij'"q0_uw~rP%5FTn6 ae)/]" %FG~ǖ;@bNK16 Y,kԷX(S'?4 CO9ݘ,nܣg2…Ē#od7c|p/>{婍p,]`2%GDkkko O"^H()Bt2sF$P=|O}Y U $ "?i!nfx&j^EW$zIӛg./F"KM|fD!K!5>[O! T>BQ+$Pףvn7H% cO*FY `J Pvvxz-=m`B7t|?vH=g tc[V_YC?ʝ`Dܹs8~:9U2薃!ڌN=\:-^xlc'[{?uVn_+Sžf-9/p`M>>:?n(Y]Z0X%MR&x XhFaۀ϶j3Q*ԣMY-~ǂںL^KC6ʱcm'M-SGm8߻u?峇虷D,Z<~xrMLOXcORّҾ뛓O>NJ:FtD$8C#ϋc2ƽjԜL8 .4M`h P߼O#HG/S7…7UsM7_~~ 7?+xʭш5'"tQbz]zZ`n')S-FN[6>匬m1ہP/5U\ 1Ƒ[Ts"\B39ixTp,‡"!/ϴ*0Ϳ!f٤ q[U~WekDs҆ٳg#,a+C2`t_?cß~|Yy dž-+9PѪݳ&~py? 4"jJ Xp+ ςo94jb#[kPA<>j'?&QRlEG^c0DUzJglF3 z}/p\[ŸIP_ LϏs=U ;8NjQ~?gbk*&0LK`0L]~wGr4Lx=O d:P*vQӰ!5$eږ,6$H ;Rı靅=++ΐѯmFNgM_-\Y6Q]P,hĴ`3$'n{> ;@Uo2F",9NbRytPC`%#3 .@$ta1V ;UaA~DC{[L^̊sRNwzk[lY7_ONUUB-оoTI4|IB 7e2_fG4>ҩߐDB"eHuAm۩?ۙ>/͚d^M T[$D2!*Q[0Q,&ch\!C>ɂogRn+ߚۍݝ_09Ȕug"͢4>v£?w0>佃#{7_WOE[9M[ 'I*gvGUC %z1_fo&sOcMS0[yқ&FZdxޒE#V]XCAdpLO1c{O9$Z;=%o۩ᵪ%roym<:112KC6Uzz_L LԚNȢT=rG}K`O}f盈o6!e0i&Iq1amV7I?,Rm-ZT:bTqxpMg>b|a9=, ㎝8G>ٸD{:E "hE I* <0.`4 t|G6T>n#cս&TnA[ '֌BBBbR34j_ 6V<"Ty޲0AGSmu;S |}۽0懱$ccor˪]U/X].?L^` :YhJ}Gz]1-w{sv2O7ZrEM鍫b8yl;2܉6=&ÓL -8TydP{ȆeƋvgQA+ p/_NрڌqG;6C8!<0ۼy+c4@LdFn9J߿;G`*,DEO\3[F`Qo(!! {;n2.y%^'AC,ewPѺ t4 @v0׺h!#?$ۃIPFS,J(#ˆk~G/^' VgBxƩX$ct448ӂ9͓֮"OoYC>+s'%@e8Tk߯FPHem.*`2O9ddx~GNY(c؆6kJֵ84lSUϫ5RRT44jfaG<x6V1cBu|TBoa հUP>YbԾ!|s{ݢL?nȄ6>g!A).Jq]d{RBZ=K؅|CXG ZIɨQ26r *\܍]JJ˖7N}LG=C5hHh8V8*ro],!'yD*,"BUIrL5ck=$=H*f6(BٝQw.6EiDF`mMj ~Qqyܦ ~dEհ9;9Kq'ܣ3Bv8_g~e^SD`ܿzblL.w W~u#\=tA mB$ctnkrEd8dHtHp.˷-|~*E ӧd_1ro$mEM6&T6bC", Dԙ[SWf.Q׫ECM@PK9 poڊXhV@%a̴#jW:-;F`vѶ[oRCz7D@?y@;`7Bն7'U/ѿ~ J #a6q"(첄&1pƾMJYt,߫ ʴ4]o~kCo` q<$|\=66nqZxm(ex6' ]ʶ7H¹Y_O-5dw70!i]=7 sYY~=WF Mסa/|稍miM?(V|b߁޶&\CE# Xxj{,&6S՞6a:J_V}咓pRŗ7hBn,Am϶S-ԦX0G[o%9|mt<湏G%7>8ڗ(/ek9A BV=T\ KLMw%fGZpsZR0n5Ml݊ a]АOQLUЫ]UNkI/Kv|Q8=1T߫ߔ)9ÒK'TcbH6aNQ3\bgH#zyI@vқR[KCjnecT+3^ļ^S?QO|Út'Z+*(q`[@ cdY|Ucd`g10ϫ3CU2Mے Kﺫ^ ytxj $v!}N]JڸXRd)72E˝|Q?ۻ {kѮGaϞ鞛k9Tvfv*Ź7Wӕei qX$|BVd 1+X2Őr $\}+@G(_1#M+, ᰬYr?Nv=H_h'…4ٛItbe[oiMe??7pB $ڃW} kcqo@| 7\_sz q<ВhJDqڝK.7* "SjUlO5=tzi5vA1_(Uג',.Ie0555yYdBF0!\ >Q8|?V:؅*\DOۼ>hEC?hæopP\TAMdvY0pA39g+ky[&otåd'-2tB^76W4-4}،ӔzbD7ʤVhU*T,δddNvL5^›%ѕQi_|xJ1&v4bFmtZZX fZ\?_.s^On +:{N2 A#w[td4 %HyDpn{U Kq`>YsR܂jSR?Ye4s=&kYX*}H]4,cd֮IJB)fI !G2(C::ӜԔ j6߂QVvjo=oiWE -n%vi#,vS̡f5יEE߳q lKZUc&U,Kqx(-5LIy/@dV ̯BkV4rU.lRϏ=4=A~7p]up g) N?`'6唍P}:UϋcgX1K z`Pa?bҳDtf'ժ]UL@:2 K. Ly:ᶊ򐜕T֐F5Ӗ.]vhYKۺsݶCB^ǒO|d"q  jI=|c@,lZkeHX%ۡEhfZI܆0 %kz4Y@x8,d \.ʾ`c۸By-y̓{R}Nu(op:7emw{23Z>?J^{Uѱ_┄e]**Xs">DD@2`SK96 6@(C,땴;+͙Nyp˻L  ˠ&4ezA7 Ny4|/[>o'2ۛlweZS|F}N6seW=k]=C南9ڿS (lIh-XAec33sS9-P/$dbo5V*ы\mysT91vD^_onER ^G#D0~د c06i*j^b[3O~<ŀ0-]o6ʇCl0B0ʻ!7110g:>u_#2ݻ?cN;=bl|MnYN-y:񑃇C\YJ[o%rGN5'l]$ |h:ב~!|6]>9;DK,N2ѐ>G"4{󷒒8#&Md<5ףlumf*Ig 2?v葼ҹW;}bɘs ɉ+:>^KW]w>LmMկdfMJm Dx+wb} hOm{_a y4{Kr^i_ se_n DbMqU2jՈK n'ƇQF]+ x^ήt2PRinJZ%aQսி _+ARg{g5&]e[} y [~C\1=LЖOΊ)d~_nJ>soJX%4(m-a=5i3+oFѯ4cH9Pj|MϬdh&Y}{0}bMK[,њ9eSw\dKOy-蕊ىDV;%+]2koJ5o꾗XSۜ8#4%CY^`, h\l[\vr̴5|0l)_}z9T׶io}oll F}n)j5=~@. ybJy߂[ɫ3ћ// 4>7&ˆBm]sM>a,@%(7 $DIA{!$2BK˰ yx=DxDB2򉁢df>U@GN}ue; =K09gv5CgNs@UAu]Wep:i_tE$C@ BH!qRkrvjkh {y[k@j.[x>y{[^e`iqQ?+|#OXuL]f̘N*a@Yen7%粛D8x?|o[HČ!Ajۘ_SrG;_PVOBɼr?[2+aI~G߳mU,@fzD{ficlDM]3?"}39d&Se^_MfB4"4MD_Ko!3|&6S<>طYoc9'x]jqNLX+`_r+ȫ }p?_ `[vzC#-r<D$mOH&kG ոqO@rg h8cf}_< Rk2tXG4L(Jgcv]r*<,Kbo_S q::p@?FcLi4)MlQ'#،.sm25O_9d.m ;#a[>>m!Ѿ20LVd@^ Se8ƭD< wF B"J)tڭ_8%V ugy$&.~gF6}?Eh>`>y;1SrK/ЉyF'rCXR> cqޠ*ܞeH䯏?~]t Q2!ls]}駟nw}^dB ߪ mlezL>fыJ,;ZHӠpZм>qܛG7bƫ¢G= D|vӲ; eLv>.8= }3*x OC{n[&eLh85P%e ˼1r(7^y]ggx^}΄-ؖYфc>+5SSP#޴C-/eb563'jOd7i"L^א1 cbxꚕM89˙H"B Kn{(ݼ|i $LBqL i*aawܶ}P?LwpIy/M&Mv(F++W,=q}ߡ2ߚdE!q/\4*@bq;&2vMAK,lZagbt)TǼ9"v ԶVH)]uU~.+4a1)k%grM|0δ%ºknhHH"6YGNGUZ)bvTVRSOTkMMgRFL+t;QJ:Mձ(DgZs;+#^ +ttsz:"TvҗC+;Lm [x"l}y^%տ)Eu{7ƣхkV -IU2}`\lWf9O>n[,`>T..'MPJ)a.>.Nv]+dJ:~GBfA{<ΓkYpwF( U=m"*&&dgGZE.,Y*tWO-|sOjk>ӚF庵Z=)?OܷpEr!# o˼:MY4({ NHA'Iǝ=@@[2AOC=+gkAW0S*5F y iX,ʈ!HfDe0VM&T˺joHk|6* >^%ni'Ids6> 0U=1&Sۙl'=j\ md|uHD>4q\UFlZ7qlWqU;oB]ZmyĈ&Aw&Ԩl~%?ٳadt*_%RIip^_qmސF UM瞼ϐ$>{k\r4: cvC4zK*o~#J2|'.[T-`v,*Z d%X"AJY'ErY $rDzƳJL7}prs4C*P[L׭Њcfe;~u3g eD 'f5A25Qٕ@Wj+%B&Hx6F$<50͎qTG޶Nۗ+86_3~K9$D=ˬԖum>1:{"(Dֱq)`s # U <߽BL;ĄdrZZZ2###S=gO[pߟ,ؖ5GVCY.G~{v@Pѽz͛ *s佦S^, [Y4Qh؃S'M .꘶HhHk g$,-PNQ?53}$ 1M4Uhʔ|Sn%8GPSh*{@vĎ#Dmy&"T(Z qms{c=p.L#knʶ3^Zնj^s-=Rճ5D~ iȖiBE<爉>˾{o-iX,*[Kvaz1LHS|>[(d2|=tʴgC{٫zɲcoԑR5:jXFkCKOe7صOlD3"Gthmٚ{OmM 7bv`( 3I<1b4ȂL#?&5 vRR$kԂFGKsR3dAq˱MGnnݟ,gRs-ΝWۦq2T=x! R?QqNa-zDzں0i Uߋ|uIsO"ڈhwiAGV!O B"OPC}Z?˻m(= ټ3eRcE13oZ|'Ntkɔ+3[SV$X{[ɲ0BRu m||dŔlд2]MzȸWW4~Mni4gjC+ESNLl+F|p@8[a導9ꍭj ò=5}Yv#9E '| |W1(uԜ{.tU8u]Μ{ލŽ|i zQo<{@C`Jm(K9*J;w|>od9_- z!{y`~ۖ`N$=M irhD\$zv%AT$(%$G3)PRKDy>IMj0LqADr*$E>?n^:k[äv&K.ɋI2u[hl􇉎NդTcǎ1e-\"ɉ]}YKb^y׌1A }g&҉В}Ml;jp-|(X9z#j;u.u96m=A0q'$>^>\?J/ w\!d 1_3fgi2"6b˯{Ϳx j0}BKI@ ~ᐒ!XI!!LIEpMd^NyMi$,e`tci5T"Nj|L2\oreΡ[#yn6bLih\*_;P{ۜD["?)xTVe{:!@H#^qb aZ +6K (&\#6UG `DF\:}]P-+Z졜%צ]{ω' q54Pk 8>zUD1UHգ `-I$U>%!{"Vb)x<_m&uWsPL޳{o3@z \YEl' j>eeo:( Ǒ (HSS4(Wyfڽ Zgo-4Z?I%'Xv#'TKuR5jLMU S0bdb1ﷇ<#5#+Z-5Y/>lDj1EH8 @KA!~]#ە˿sՃm%DBBAWG0R~W_Qκ;UF1֤8nݡC_v{UO$uH)j𴗠yLrP]7@xyG wI푰,QkcMȲr<) 5e&MGwɀ%_Oy؆+^(CL(C!D}Tp &2ǟ;x"%o!@鄿Fe7z_=IT!ϛ($n $ ۮLF|7&9]` ~# X,&Qqr!l-yޒ i2u6SڽseSB䥇e jvNrD79iB!\/6S9&J9@D҇/e${B#(WGr E3ĤX57L2>xǀ֢ 66Taؽ;,TlV (jxӆR+ى;scݾ7S J46ܝBoL"h]( IctXQ ',`z]slҿ@a.+6}eOb٪K„VzXHYgo/8ϟ:lu+2TJ]?y3 !*(<@te0skM#>U$h}M]`Mr*c9_3fTP W fS* ˏGC>ǚ3N>IaQ0yt^78#\ҫMa#fC|8Af7gq࠮ uqʨD?tw籧" ժ$ MӪ@mPR(]H')Ku-N;4 eZPQ^N;@h`J$kej }##ܭp,a;P2TUG& b'*fd^}FʑyUxԣa] $bv%w z" T0Ӵ42YmC@\7Lް'2zR2!޲삷T6ei?ƞ) &ѷ'^lLby]9Wf0xY&S%*MT2ER|!Ww=7*nQj3*Ԫo>nӪIɀ<TakD~˖-h_:׀KB#/AƷ"wR2#䜂ޭ_~;Z/ K3=/ ^$$$HV$+Vˀ2{i&e1*2{b_We IEJ(u6 u<T6Y<*<OV  rRhta`JP~ܮ Cz%ן_[+IK1`8v`x 3%LZ|A;NR;<??}g*֭D?u*`k>suFtF`HP/ RF%h~X825FER2/5hҠA*)3SAVI,E~`:GK,aˊo>~y72 JoKN//R*2eJ=gTmRNi׊HF%x \V_Tc&f7Q -f`\ j(J[)Kߢ^l<k9骄QOunC 33bx+~Oc~eqƍ+>.CBc" O\XWMR^V xYB!(.$\O9/Yw{zDK lEԞC23MwvtH:1c)LTޔVoA•h]*L.e^Őu9U4_k#gBxۻIF CC¿ MM0Tpn뛉{ >i9N&Z5iH'`'|9z:tR.xH{^9JV_:P)  *??|Ö1@%#|kR {߻I]+x.ϘU^;c`dZX^+>x *^X# >l0|?$3h[h.6L~7{ P]~sG`>A}̞=j@B* Dc?❝/Jd͸[.-z ~ #͆yO吋ĭՒ.IēJ>Δ$JQh]d"' 0R\KCfVaی$cɕC>wfU+\zׅ^T+|ԆR ť̀GiJ؊*'>6Z'ք0=3|u׈Cc] 3iGRTRy=hWE@bFh7r8L=Ye@w?C+e㋀(ׅ/ղJI1REA D4que꧟qD2rpHα$/YxM\} w'JavCԹ`N&8(W4 ~҃sq#nɄ4{5'$@Bf$kIŞ-M,Y?~K=<{*qb%WY4OKg\ 8T 7iU\dYE^v*K1`>"}poy|ÆA=[ԛ,'F-*,_|s&y*aihNù OUt% ="]eJ,sȟs`/ WXy^ 4bIZBC{mZtT)p/h5 O}ztLND@J"!N{zTL",=c;O{090=_Xo~T&KM< $:tnEJ5:zjŚC E?DdzwQ6hO5/n3թʀ2+^4`ֲe&&֩."Ӧ/ǎ{v!u?$q[K4oL).goLf^NTRI2ͤz%򑝤t7E7`>ڇW]UxDDPzE矏_|ŨS <'gDt";DUso1ha۹kaGzYj=HpA*I {ІD|= yň?ž,9C֗="#n>@FI׶@Y 402!`*rPO [ >N5zGrxYc |m##"B I42H}HJH+`}Yb7^K P V@A H/C,3{1ȶ]+cs d6b=X0~>o&4G"?qACb̓9u i1!_JҨx-qVq$}h`p_VȜdi{ӇwᗡfD,h{]y2 YTYjW\HIAxYzfǼ7'$tU7LqoF0A T< c/.ˊԦ(T AHU02A+ɃbJ,s_k! ,c~gƌU9ӽWjk%]>~iiKgzN?}- Ns" %V Iw~/PCIk1EWp< -ɉtRcTts /L³'=L(B_Ȁ/}b|!;WCR/ؑ3!^ԔCFɟA"p9?vj[EPAwr}@`5ۈX "6vq/l2#2gtS{7r6iɱK{{r2P"[(:/G?S% >j4m'i_}glӲ3$öhMS:YDTBEС3^;d:"Тɝ+sT  Ӫ-se7P\YLHهp_gMm(%%_ry/;Qڸnd ^%FXe1չI'hkxiL^T7cqnnk nGHag_wH` ehtbiJ_-HF" Y_v~scUC=~B.$$5ڙl$4F"49F}:wv$}<u#8Ds6[_S ӽ+o\|djYi95iLS,"܇H1#x7[Y-+ڎX/,_Ǎ61Pި !~oGd OFP(Ѵ#cD׶9PgUTu>20a Z2!A :,1DXqBGM&W)8-3$sg -7n$턌RlC6#? ae5o_baK}m!Aɔ0qe޼yիWTDђ4죽=988(lH_zv;޺O0SAoXmЊ7!bUO+ϰ a^79%d A[UsD?J5`B*g@i!#Buo8}cp>/b1-&oQ]SFN!%QZ7A"oK..p&8׻/rgޥz1J#pߺ랸rȀǴ`v~^z=`i.Mr|}kg{P҆u;ɮ-/YAAx-)r2è`<_/tK@$ޠbqis=x3kJJ"2y%f$ H!+Z 9 w=vdF1gk ژIom8y2+% L% e룧IyɻK}M#/e>~sw_/zO>زWEz5b|5#wC3"DDvL[= )RlN^̆دOb?#W/g~G'˩Їi_wG%eYeH "WIB5zgz-B 2 NJA?9=8ck7o02#Ёo ۀyuOݍ#^JB,hK \u <W$Dٚ*ҫР^1M$#.e9N83B}Lc0=a{izw+&Fd,"g %esN5,Dž%N 4ܻa/pu랟D;dOCCXz100 h Mj"D}T_t~G,ѳ+Jj(~ =A~<#9E7g=G*ybH-v*02 :ۗ<@ J꫒ {mb7oޜܶm2T<ރF֣?߇c,Ű*ł3FR K{LT'(3I$J /րnnݎRSTiڍ~ƭbWM pv/Uf̘ 3"aXHi-ͳ+FG=׍-nVw<]w%싯=fqz{{ȤzguXSlF/6p5e P/b> Th?=ӼsޝJ;dcccr||zc;ڀ5=^הzZ U{W fI[B}cyfZڻw)džF]=g6 ƻrWSz't`'ҍ-U}ɏ{Y`NW|{G}'Vn[غͽ&dGkPܨuwtt*_bU5Ʉw#F,jO0_yTdZO:-HЖ\[Wmnʇ3Hy`ӣW?һ)@(Ď~H ñWe & zbd&aS`{ K!sxʌccZOss. ,;zsG_I +h{e3'3/q /=ԞRYtZEB*>2IH0 P:KS~i I-J&Dq ĩ~ܝKFE)ܽQF;"$SA"g BB"hJ2͇](d@2p+tf>*֙Lɥ nKdHb9hچT$Q H5!"_FB/!tI|K,1}ץ' o 9mk%їǗG}VwxxXxS%wU<0zz=1!Lf%]!577۠? bj13!2)iS1 ^KK Kzps粫U3}I @[Ж㣐vO$#4 Gєt]zfԇzcBfP.[L0v{ppP3RXta0 ň1C󁡉c FbF$|zҬ͛7 t`iu_ &ߞbzfB*iFaځojS!ccz< ťz06k%&cgzIQDGhKu\ 7q v] T1-!vƒ>SDVF b]"@8oBmAtrigg3KO$ϖ);S,Q)L"P=cy}'qL;P84h) IW;δ3Lae.{\BIENDB`riseup-vpn-0.24.5+ds1/gui/resources/bitmask/state_disconnected.png000066400000000000000000001163541461742244100252140ustar00rootroot00000000000000PNG  IHDR!_ pHYs  sRGBgAMA aIDATx}$Gu0ygg^֝Q'"(L6&# $ B S<{NxvCuuիJ'q6|YC<-0IGґ6ݶ᪢M_34}O[WĢg > Zr>m6t$= m;~78KJʙw8L댖3~ yIG~g%z.J>hlA h<]/"46Q?fz:\MO) $^>DTfv?oi 폦!zeyoAud@ (Y-N_i c! Uہ(8"6GN}p>.E>FGң|tC,O۫"4|Dg 4H~$2ȎvZ/e yf !L6,DT_.?_ۆIV4ɿW|#nq%`gn;ml%9^4o[۹K@{@g?qZg> ve rΊ:VBvM2'zNI H80EecB=j?FGnvײVlZE>{|E <&Z]AA3>q5*ɠ,`혎gYp 򽑽C z/ϲ3/Z](y ooy7 &Ӡ`[%V$㱘T$; k6~Ľ$O?KX&hhZ^E:;bD*vGXy%|^n' R+gļg>ͯ+.GDȺKM]{ ; qQ<ͦ*Ekڝ?x,QI_p4ڌv)RDJwn]Ϩ)zIpm˝AsT60df#ݧ5^?HPŊW)=5|wO,訰G:{ |A|>^[0wpwz)$&2D/#Ey =j_JRDNMpvl3xɵQ؜Cn閧Wnc>>Mr'*ǣ]'x H(*hFbj1Z5 glAUٲ^=) iV2~0J78'"g$3 G7bl+u%PUA`ˋ hexj7:FOt'~WO*8^.:2z [J6 #GvD` VZ&ޛ|g6s\ 9fr:js_^ve*&*4{/cA Ȃ}FDO ~Ibl* Kb^b)%#`$Onv|¤ `QY $%AOTT*x ZD&U$0n4\Xw'SۼjhW;z{ӇD B?b.q%ª,&ɎE"^@ɠ($b6*YGW/9INw{816\} o9FO4c|]PQo4R|fOgbjt{۹U[ %UŢM%etO-oRVޜmP9+8#OT(#g9< _/twCG׊*z.Ox#d#Ÿ op$kY5Տv p;z~Ʀh`W43z$=~Ͼ. Wx.E_XuxLH kΈQw#EAlz_7E}'Vqw]wŸ2EE/K4Τ=0MgR?:2CaByY#볠d[bCfq5{l>Ƴ-4{?#R\}IiJcNׇg.,-Vxio^ynۼ`cL RY3YӥzD9=[,'OD'Fe/\;XbRuzљ>vݜ MMYcA\%͂83B^|E._'۔Af>rdT>˯d.sHy??Tz垠LČ.W]K|}bmGz~Gv}CRlD?qU XX22&276S\qLKm F V4abmhn|x_fڗ?* "hDw=`/O'+@4' Do7BG'9l s]V#`۹BK<9jW$fJ!qbgF U1J眂.ADDb'E >ۿˣy`z J*%?GO.|.iym34zna6(9U$ok+=&-ke;+.&&,656˓$rs U71QUJ2S{j9{;Kg&]):h̹ȁЁFo幾Jzi*S6Xg>|sXCvWLpA1Xm{dxLDM$QEY 1"璀Jd?36^@ t'홥pJǤܧ )@r6hs2;ꌹ aX4ρv^qx/#n惗H\$cEl%|y\^RI@' yrtkƽdw?į6(}'f"{ի?{֩^Ix8/"ZX!_ PdQŁ@. NA'g+ns@%yWVqvGi0}M ]@f^vo2t5DjWvs?l Y'5mW(Eb|؃/2<IvLDF ,=|'<2%𣏕Du`7cZaZvslcO>˖-۽e5TtO~>1Î,hkڄ)X󉨞!6㬭yϝ<]՟C?vE4Z/MeXB>xϷdilbj5:L-MfP(OR!5YdI, 9@LEsQ xԢ{jZZƏ\xᅭ'̌ס)4.y 4$G61`1;/ R[G-Yώg=2Dž5RGu=GyAC`D¢QQ 2=k$Apˠ_WOYvD씡h6xupd$sVh@ChvϟYjAi<{fɛ++6."ӏ6[x+̎T*:۶m=> HR ICW#=Hf9q[|^)d/^&?/ , g\v$e.˗| tO.A;#Iϖ'9x.4'w:}wL][nX]x%jlf#^Ny.rǒ vr>(RE mIo,DǍrٟ]iC-UdFy0u +pfϗo#ktSj Osu۫扆iF֝e {Q,^xWd"\va'GULH2# 6Ie'IQh?Pݓi 2x “"bIF  " Rlvas榫pL~+hvȘMׯkH*26ْpz[s庡/JX9vQKܮFGv*Gb C5/Gbܠ,D]i`bS, o<(QTAP1զg/İS_/^'Z$;E D3VBLh"9$ ьW$W~x4U{ܑ#~W+&Bdej:R$S' Mڳ "^FŽLd `iI~ghtȔjx]!oPͣ+pi"c cw`q:Į*EC SfNiRt\KC0&osx *H?ًlP惡hS踘\l^,yldA$$ 5IiL'څ*V+WWS@٤/rn6gkݺiL+AD7# AZ'1oH9.Uvw Ll71 dFO ,bRZFG h2Ja RRWz4o$ZDӵ׍ }BzvV *؛wjuGkh kBDU_m!8cJU6.D)E^jy[vs9M^'(z^pWɳ2p;ꎃVLbA2Rq;N[n]IBZ_^4  7_ 5;ʒU$Yehɣ8ʋC +6bz fe`.4d@H[ dCLcw}D vh*VF `{03B"5'rCêA!:VK9a=E&b4*mmn" g8x'FyD Ո < F#$_U-g|,~bemmiG(_yFW6!}ldn1z/JBFI +;2܊LԤOTv qvATd`tjH}ƏGYܸ`GQTj mGқsn@0* |O@Bt-gJ!{@>"_ʀ\MZ#T5KUKf’K2يlc-:]'UyS28n7dQr| H= tB YsxM02-|<sh .B۴y5aO1n^Ld{)]nJ׎BzB>q_4^ψV2Ix a z~a{AϚgyH? d ,uO:ɷy d1rSvR+3Ԉu]5HRuļ|_vl%bC%^1kCt<l\SO HddE~Wt\tJ )61[bv78i?Og[ؓ $P)8+&.H8K@{*AFL>1o@N.W;QT"{8CZKz~Hh;ZB1z}'e" |$ر I?]򈝒/pX xc;c]SϻduBa?"p2Fcpjጣf%\:wI oξ ifؘx"&D grrRK*S_O40+?ҧ5:^IԪ2bJcoeM{pON} Zc{hpyKha]ryq …90_Do/6 EbrN4eE cgd .S$O?@Tkw㶟h bۉNb)Guɯ>**EΙvtSzE\/ iͱr EbmzesS`f3L ٫`s`EZnG'@ϟs>1>x{B#v z49:s1!IQP> ]Zߒ&&M17FeȢM`t hpH" nBg>tc<<~v$Ǔb>%u<%Mzm%:'U$t$(ר@%U2x 2j_!wggN85 %b4L;SwiK+e$9eB2٩V8Z/䦚9msl ;jdt_ :g[Md~HN&^kH*islA2s8Z n6=4?w621/ ^% >(1/_U}RM̈́L$qb#~zX_Gٕ#'G_4F׍Q ; g~^]]|/XCaBCώ72ӻ~~!@([3rCvz?[=s ُ?Po/w{5 f0Uvf0`PY6wQr]ћ\Zij =:v"'DEs>ɠ#Qeg&Ǡ6I"$\ԇ>u}^v{Ț l.cI&@CQ} G$^]?՗}t\bc&sd@2 v^L_q/ˈyq7uK8iTL"y&{sDmHb6K'3[}yу, .p m|uz(W垢"5\\Oq4ӝjPi6Kbjي-/ ~u 6Ȍ)dUj,3UVi7naHƜRo$%^x:sH_#M5鉉J|e(* SީRmMZ]?0^ Tdz._HdRf*SA6AiiTN<x:(FVr'ļE; PKZ1_#gzDIž,F\PMå 6gzO͈y;\#$FxYneܩ Ni'ctf ;|cb^\lǶFژjZu|*ʥf1l#l>Ď7Ntԋf]cZEo1v};GvL9{P lRhɌk00/BBjVdy^qCky4mw~L;E/=~ީ'̝d^]GU?. zHZ/\$;^`)_wH^:Rdjj*4jY֭?nݺqOJ@F>r Yl9%gO97St'={Wطm;pYѶds[b;stЖ ;^Lꝩ3߹ǿ|N ûߟ%0_jk!b$#R,#x @ 8v=q~uo?C Ėpo7ZaJ&AnD/:U/?yO[x9K`lH;.Föד֣i$ym|Q! ﹸ,i `>qğ'ΧRw=Xq樎"3RA=?+* ~o>;SϧtLVHA0$MMoٲn_\}[{~r9SVt:M5iſF L1?)3|i'D9i{wD[7o銵-;f6 ^EEoa<?jJ6g Bׅ d_27.԰[={0!)zz>ظ_+ 70`j6;Ԃ:6ƣ4}tϫ^v矱Dra36%a6ShӸH}06WYjD(NW !; sڃl?O2$0(/Ifkj9kPgӚk/?{(iDyfQN]SON|o\_!951ß{I/zs_K`Fd/<ݹ^m#uk_nT4 GǷK:ϧR赴C o@]MB{%Qy4訲P={b|5kAvl ?h"/\Ψ묱 '4<ڎ Gl<3`LA{Ȁ4T9l,%O` rvꕘCF;#ry2R瓞چz{%\jiZaf0_[Rug0KR\# \Adס݄1@b1\_ <P٬ifB][2\ ^ maE[jwܱ1q/^رw}``[Ӡ̠qLh4FxhBD z >[^cz?3y1sO(n8MxѺLkTFox7fo3%2}-KĄۗEU۩Z#AY8Afiu wѲ=,nu2,oZo8|snWW;55%d$6ܦPS(oӁ 3PrOY|4MtTJ`Tkrjm;|MyfkO=/yѱo{)ʕ+Wf#?̝;wf3w4wѕ,"1fۍJ_ D=ٱoj͇zqq$noYnсѽtEh8S# /d+;Zփ 8K y Ub"Sb 2/>Hp+;v6` 9RA5 b6$KL ׈RMpΰD/Z4b6(AG<ߵc"ǴϓVHY%s70[5|ȅ}oÃkosCÀ; ; `aLC%zpc01)>/`_xoЅ%y ډ~Ɗ:Fi큇6rS/\e c3jތ_96!+#B@j6& POWx?훩w 0փ&"z wn:ڨ4rb ̓5Ot( -okNNNR e!N|9+O$`Wu͈Sӛ6]j _dOT/>xjb5AV"Ai$SHoϟoٳ'TЮd]- J <M}է죓lh ;sal%qRA)b-,yNĮ} D˘oew nw mT=n2u\r|η4۫wؖ VBU,:=cjti'cQzkǼ=7$=!.),v¾{tvdc,FGB,P]I MB^m,Gj5}Ǿ{b?v`kanRMdMpKi/ |6%mI&Kb3_DER+5a}/R ZG-+6ۖ2ɮd2(3BBi[9LZpSQ ʼnVJw2huVb>?rqm:6W"k;*d.mzہHM-mf+BM!s +c,;^|z'wrКΑz_qM4ػfE0f6cGuNL,`ZEǽ#3!b:XH雇 ;4 yy ($ A:x=ov@k~<1 RV*T+F,! Y< x!HH\DļBAj q>T2}ޣ J"U'?u?%[}*>dn4@7hȭ+Grn엧>yO,^(qYD5u[}z^}^3Piɜ!֓<{oc^Zs N[y'] ڵlk8h20 c嵌eLDN婅U1 {G6oWmF!UjnhT>M~%GKfcDX09Z4/E8:.w:mjL;Fd0Q`dF A3ܕsR!H+TPL \G]k#| ϩ~u4*ke$p p4,ZFmP"Yzx[=(moy{U[h 2;Oٌ+5|$'\ }Ayk4-R%|~EGQK/|:29^``'gjk }ӝ:V3v| zqfBgy͎[/K?7|&j{lGYYS[cLrw5]<ʓ&zw9:l ~WF b([_}:tۛ(XI%1٤2w'eC7(z>|հ9ȣXZc4,~^XGgFI\.$h9-q6tҲy+:1*pSXڻ&`6<ַ5НJB\0RP'1OoXwsz߾'֬ )dEgÌu5~F/AOjt'Z'2a"KA`!RG9td=_ "Y}n: БN-2xiDHUg]?0ū&IԦ_|Ú4X8ԩ1b=$zzzhФNxGHD8fFw%gӅ]{95|OsZ~SzNDY*?۵h;gMy!C}UF*k濋1>s:򀙘 B_tڌb!}Nə=/\؈h:S%&zȺɽ!\t5h/:obTɀMn7<\cIa93qE* nf$n|mA?{nv|jyPrF1w6CW9ݮ,pÓY6w߾zLoUJ.ve6ˎ! !3$@ŒZkr8R-S|vR'Lxՙm]um^I fh9m:*hvh8,NXGdX!i Sk004*Q|;sl{]ʯލčvOF:Ji ZI ܣN{[>gwҾ(Vp847 ꦰ#-kXN+`a@ɉ&}u-Z4L~/-BQ"#v)&!YC/{/edc2pWmTJg[?+߲a71U:I (CDnٲ4`h??{GhF[2U{x&0ba(BJ2?lE?&Î@W;dA^T0i=ۍ!pƅ ܀F֟aPE㎥NÂW ~'&ջ\E_ITT1ٕԺH\W8ph_uX$%کD9$?3/?\:Ru* 7]|Q߮ *_ T/(|#3k!6(zkʉ:U Z8J*_oXPx ;[]ah~m26~xwS ^&h4t1=OۡOc4οkIfz.|L4`Ѿr'L" ǘBo}Kυ9rN3hJ]SM@u# vh:0<gH2[A Q RRࡨPI< hTT};u@U(o[?OW߼yþ ۤ0Qt>}D4ԀOЁ|;K ;ۆLg6ѵWϙB O[5C68Nu9AP ]:q1  \͒]u=iv8|HKoEc `[k K]H ӺX?3kSGRۖؽ6ٻĹ .љ% xUВ%,pqxt{hde+_5>"o|%vZxkΜ9M3B_%[L5D_d]o=⦅-7r;6? lE"K "Ȁ#L)xN옢] >Dvf"?r\j/eZSL:ge6,n{.8_Ay_1?<@Vd?ֽ~L-ѳRѶM^-: 5{WDKnG"(03"Vsî :uy{ֆENkd4hW f?QEG5:T#C{E?kۿɄ¤E;_ց%zzz+.<]E*Zڒp;1H"`$z:P9@$WɨL'ѓ&F;=Pt}l'w5eStA gU"sz}K)C`_GrZe&hWpxMoq5g[K#d{۫r+XpMQֵ잿7@Wm2ſ(Qmh.U2n%Z1 F8́(H, Z8p inۺWƷ_}k,qx0{=Z`ۓZ(UNC,~$4yچx q=I-OŚ5MOwOwW|3z=@eg8|?d |Z=}jN1cti_Pm9Dxx=7/t1ӲGq MqlLA@hddELN7օg:F(;*{;T*/Ǐ۰xla6V7uN)I\m?lnŋi Ɗ`'!l?N{gW}1VTDΑp?},tz& @+.ߪJYgIN3i*S0ZCӼc>FU{'U39U\lÚݤzθ[ T/l26ջ&m XS(S(7\c4E@ '˵ ŧdy ϩ y,.Բ|޲2ri1fb9KTg 8_\@{>CkvdV"?/ r3 EtK\4Ƀl)>r]"f{fXs3'8SIȦP;>0][u(aB@t1jHO7΄\+e0e=hht.m!}uށ#Mu/)^< l?PYK-A-m4:-tu…y~k=Q[! A!1@ hJH{SErNTO^+|iR䘕' ?;a ,tQ͂_\R Fm_Hd@%5j3fl>AFW9Zzwg {F_=mӍkIԿyP)[w7Hȁ7D~@^a_,dW5*]7|'T~+O14}]@h@T2?pN҆=SJSɾLxB{ZUmIA)sV-Dd)$T>zt /y⽴O{ vy?o9P@RW[;>1Oә >@SDg.l$ۈ(Z7C#N:%@=FSe:<%^J<_z0'bO8<ֽ@$ *5={ehuø``<2 m9Tci8޺;tgU+Y*(Rf5802 kvIZ9 `eVX;o/XEkjN#2%Q-@=4a^d~[(Q6m~{:v~ A-^7c `/`~/\b %C]GB#gIvސ)W[n-~;zK5t^qGD+측]] a .' ;;SzwVjD%;m=l습L8. Vh뙎 qک Qң#cZ-2M풸IdEB^%/Y-2_@ޠ$!;DP88?@c^Rr/O`\oF6X_+MSCh<[.xfZԠQm|0ٌ8j Oqp!cb-9mo )2@c=ibVltӮ\ pخUݶu69u=sJ5sf7ŨmY_h\:AcluWm TOlBO ݊c'z;s+{lr9b})v$0jw#p=A5QڸpuWhϸlv B}wS N;gh6L6zXPx6q]`qd u&3[Nڤ5s;l2<ړ>Q9K{N,*N񭇃tWhĺso{?zF`m잹/`VտQbD)xEE3u*OɈ&zGSe'bF $"#ϗ*+zx`XcKtۭO63n)/<hݹ]}1=81P3Z@jTB IΏrmC7"jG)(nyp (bf>k 9ZUB\.>dF] LENBNIU̔OΛߐZh!a?Z(3܊i )t/1Xa԰GԐ>#F+]OΤ!<؏r`ᠰ>P) n[`)%aD!@7|J)Y=ˠ})ʟZ^,hraP ]׹yGZxr&;~ꔗ໰Ag?Ud? "܆7>g_V0Se*cY2ߝ7i,A&c,7!Oos:O#l-CʥYyx]*jX3>qBU4^ʀ~i% -;~JėK$k5 Φ.6:ljK;@hw*0#H]FV_~LT_bY(_?(RRܟN,)NƎ~ř^]?X Cs-߽V4,]uCAlܗvf $uUbR@)?|ۺi = AV5~ɳ`!>/Qc&φ LOeY[w !,pM -OHB 8#@uZ vG1>-D0̽q' ^LQСh$BS=إ EQRfĔp@6Qx۱\|{)!׵ СM(?9@XP +*p adA|CJ٩fgo#[nM,*}c[Je˷q%Օvl>, :]ϛ;wOve;uN,mw?nY=׳̋.ȸ2Bg/]ESCu`;ѦP=۪0-V=n/qU5Sin2#N[2<{c:&TE^mm+̸XO˔Ξ&q;ѡowC}:"*'P/N`YTfD>>0~pWo0JO/2/"2OՀ})F[lUݖmҠD ؃ݹJޤ )`1 -G 1&3nb!/WɊˇ%_ kf {Ό0'=4{bE\Ud#FEx"Tպ2<ͨlB/%ok.UMG㮔c>ͅhU[ nُ{pE<.z۩II>ڕW;LU/wU JkP 4%-PNy(We 3DqXRZvVolz1o@e>!OF.?ee>:./,vzMw_XR%Q͚mPmj2pIy4 ]oSȂv ,h~o>\.WT? tpt( DPSc}!VF7L6]d`MVN\h)dr@NTsTv%Ն qP4* 2F" Â79y7^7j+S@ei*Τǎ D՞1cIz_;0SkDxOϠ{MGU/~*ݙ꽙=Tђr_VUk[_JX er~AYq H|ԑ!K"#1Fys5u0%BsGiq_xccZ%UΟm&Iui9|XaEĂ(]+>|Oo *YXfOa~tX//8S<}?|]V'|8e|>r b׈"Z)Y`ߐ)i"P˘S <TIX2gdۡOz&r2tMQL|=턌՚eФ{ I%zOΠ;DC;Zޤ2fGP,`Ԧgiv+oZx:9V7ylcꎫg*V*ez U-#Ȭ||OkTk&mguggu>CR}ۗt0bA=c" G;ci3oqפap)!cpp0 7\`~`Y3ݧwyDTdHe%ĎR/25jujO,K&v*XD;ҊԎYfQDfUvͦ&JUN$U,K/x'-mtGm'&H'5`Ӊ\LVY3JUMik{qOzvH/źMT% SݙaL;vW M@`]MNN2O٩n>M_ݨ9[Ͼ{ ^ +^TQL3(m<>~H:\yS r8Dhy$#0E[G$g|Nerɠ)@R@EWLR>^)Bٺ7MCOk|hC*Q^e5؎8j_<ҠE5-bpb'#RUJkȞ)m{yǚ-?W,mhq,M G-FzԦf|'FXc;h3̭΁5*$xY_!QzF&26X^o?qxle4+⸭0²q bk3ގn:PlWLD鶇pv^} /Z3zCNJ/ҔyXˌ mBF.L'iqY~e̤5ۀDOL}4\!*FP" -$GBdN(GKؼs㮙oU-]Al33 fX21"%_)4pP+$&}N+TUH$=d,;^$5,'Na]|w;'8وYT,|2%ib5Ӹ+V{ ϵ4[hV}@^'A(^ #,R*B wvSTaպI T4v#UP$ٚ-4OIf&X$ έK{ao>{_J,++]]])bI9bE2 ht>Ȯ0ȥfCEl@,GGvo71DUgjD ,XV"3jl䑋_ \n8#h{*//vm1FJ n9 rsfuҺٌixx2]#wt5L75urE&d9ؽ)pGRSVc/sڂ/ Dtk3*x\7b"#dA< scj:od* Ѥx[kB ̠qDkgqb#񟙼URnۢхyЕ:W:6~*}[4[vO L U,ٞn)}NƭQӚCVo8P(p)*KR'??7IiJl!2$KbŜE$10j*jXޅgweϦ:֗v88}W]Aزeyߺӟ}7LQt?WU]k:Ђ\5^5'ߪ%'g1]U O;P1*N*xo;ՏT?/]e67ՄTcd6'sʤycʶnQ1iL5xcW[09Sj&.c/q7XuOOOvbbOn-w'I4PO5zwǛs" ObΦvLCVu6@0y.mvDԤQ,f'=WZ E^8Wt--O-YݰZNi9ui}aGG'_t#HӖ 7SJ6b5s2#p/3Ruw? Z( Ab|-w~sH Bx.|Ɩ!ZʄЂD"FSe$ڕ`#O/xHbtk0s,<=֌#90w}߳c-mذvw"ALl;aqs/ӆzz:r'x܁T`_-\3"rSV{OPvHUaTX=Eߓ; HZ+;VdtM CesXR5P`w,|LWTұ| =bV+W팷~m`j"v/!Adu=mwjYu>S(5[fQN 83I”F:Mg6;F,xʎfSLnwGfPj;}b˾ڱnû|韯" <:gR)f c\&ߔ>ɿYvI  t.]͂%`z P`nx I`Uکs 1mu(ߚtjޓM(L)ӿmQ盨,tţ7l\'ov^a|zAgϖ."-⡑?(?s_pёZ6*dy^jݨYG/5B<xLC}S[FH${ⳒBe혉[ͣ]'HHXd@x |>#f ù _G5Ʋ,\o ?55_Ycn wēXqZov+SkTYx9킜툪VIt7Mb' C2B| ?ŋhM}$/!!ΆfL-;p>_8:rۏ*u Z۪a%v@9sŒL;@Q] Gy]*\1㳩^P49(q}oy?|ֵkk _~/~5a d2v i@bS@W7p66ΑFiXȌhjo*M՝ uT6j=ͨ&&LdWA Iesh3@iy+YP *339P*蒯ebA|Ɵ͂XITs}_g^P-}}}rBQ9[Cnvm~~Ig.IlKw`A(+|Wlc S0+-USҜ㟶~r&!b #PfFr9^sRmu,rkTGP"@>UΧ{q/ =t QU7"XXI:p}!ƂԼ>@FjTf#)۶ϝJ?OvO\x^|DxH8XzT@S8׿x /&о<_el #5{FR;"#7LnH #zO;Wm^9L:*WIZm7| `'|bQ"8Ι cB}}}XX~e\(Ox w^LFV3 4:GG{>$fjFZG>ct+voȕ[ca]c'omu/ζCj:b{,Sw-.Mf45}𫷢7DFצM1A# JJQiV2P?̠fjNX8tvxCfjlX햍դtx깤' \רٞD3/{"t+JT @J"s\qc:>Ԛml`!00q`<!am7h>622طu̟@>/2Ǹf\w~&Q.:GQEC{tNxvTפkT wƤy;'&/]d\g`yhcLY7K[uӵ ΅Ӵ6|[~}W8PPF(#ĂM^z!!/p1'w}SQL;o4TwHv х.y/$ޣ@A+LjKs3 -S'tL',x?|n_v 1|,Jz, `RdMOORm6 JϪEvME/B cG\bC)r Lo61ƐHMCfts^p_jnzH-_W/jAfDH$1$# y>AV;)1L`6y6xr Jx j=C3tR+C@BL aA{Ċ ~"SeW~wҙHFk}P 3'+wpTAiw?ߎ~' hJZogHr ́C[gLu[nx?\s}d "뿬\Yz5c;]v64/"΀tF >޿{:WB64wdQT ջUkD]x£ObZ8ooOӕ֌80hmm7qfj^y@Nn鐝`,)K{Κ*Ϣ͌a9 $l~po.SׂzTin~4C!7sۣW$n=Dd¿5_;#-w#7JߎAPj*sj^*-ԑ4)ߤQL1PS^\Wy?~i.Wљx!ݝ[8<z qfDLD.Z~_b.5rE#"h햮u159 TVWTL--jzWMueO}Iζ2ܰ󖏽#?_(ʣO;4+X'1ȁ%VAc6"n9T{y«% b7jaֆ1Qܘ:%|穆kճ3]f6I뾾S7OjӁՁOuūIs=Z"Բ~l^tw,fH1Ԡ_AP'a ( <1!^sF t]k_S˦S~it&++ Cpi,kE0~u%=*tѽ9ǣg%,B-`Zs}V&ۿ{ѻ~t g:a]u::8|t(.i,~)Q쓇\?lXbмyF`Ji2po|ޒj5dB}ImHtO$q yW~,'&ـL "noNL0i3!d< |Oh6ViF7cNNDl9OrF5D|Qtހ)o828 EFxI w`ktM8A&; _W^l@6YW- zvVkǎ<%');q0e0!mqp?ݵ}ڣ_+uwy4;ӭf6e3vnH3ӝe%)%Ђr";`4IN+zl*0 ˻ϫl:ZĕWoHM`\xqKT}Lc &ZCviͬݺt^5>.&W7g5 H 9ޣ4-`qQx cDǚv;Ǟ$1|vux"C+ABl*G.xs1{B԰hXhE碅ӹ}iP:pG0IN~?ǾXG 뭎δ y6; Rw>Ċ:ھi˞ː1}ճ\p<-װSK#k.әBt{$pQ&`*e×!7C#}E2)z^ 3әڴLjVpv/(f& >{#ȦXg,mBL'xxS5H3yL؉X #v+V8y{$FD9fIFU1cAy T ^RacvNdH5~_j>jƘZu7?w.2>C}Y+-1zj=92uƧ41cxż%+H0g4}Ԏk UkhH[ K84α=/2tM(wPtt\96LGuPE'з?wGj3y0c}2!nhDw/V;RVnuTzRhJkTޔ E!UV8%~kDP4PF$O.ťS/]l8Lds5O3W^zŷNRȂj kA`"_!qW&D)hCƈ )v@'O{UϓnltA*[4` ٓ m?F(DVqhQ䣝s Eֶe,$~}?}zagH }ϟߢ.~X0'ɟnojl>,HV?SL?Ń7ѝOvgb@}k.?X4wsdӠhO80T*e 8Ȱ(Z叼ӥ;gZ0,^u#z&[&rx\1jvlI4 9h"~g>@Wxtc[>~Mv`2 X,-@i~%?|hC@Sg;-ATϺ&yg kߡhj8"J9ZvH<%tU:R]v=_t43Ɣۇ?*`OM!nTƍh@rgYrt3ىF`;Z p6l:I1H@_sF]?C^xnh6,R)Io_fQ u49Oo#I\,}>6E[ GlF?+XtAD3;@> ǝ7\U++$ޣƏsVtZV=[zTw&avEMos_ l@8!ڀ0BXq"F;=㘗K7XQE{誗^g *&5/7pCF\(y*iۻ_@Nlzz]l+AS1NmcX$S(4&-\ze/?uŹ4$76L[n%Oj7sU<8 RM_|IVÆNveXnW;9 `V',= QBa²Cą3O\nsFbPF2xH>AFS$b;SCA> LC.-PY񳻯.MSe˖lBR0(tKشA|y?o76pZifxvN-2ߝd[Uwk!a ;LR~Hپs<@b)J_U5~dXEIB<3,zB_9#Yl uTѶն䊟ms)Z(@MNkm yKO~GYhװ~{Y{HMMys|ٛR"VoO^*Zy{+00JRSg8s QHgw.|t1>yLcZa?wlC.A-fDғjF&ڇ2ĂP-!fiZsNZvn8OFc>TRx=5灐%ٍe`D|2ًU,myzX-]zSA#d3]=͚tܲxlˍ΅CunNn9 wMAt=SQc˞CDލa;^yS(F|דw?-Pwvbc3~L&2! tG2j(aCe0'~ t]o`O:uG=3DHd'afAoN~{=+M2aE7Y,ޏ۔ʌ33㧻r2Qt }+װ_k.b״T;8 b!FD|-~*Xe|y+9#i^C ?c`d{TKZ?B;O[Ym1̠0WWbˮ75xOXdS/FGG?ZRۑh'^Iv",ƿXD`3YϡZ{Q/T{b gb;ݹZ!=8SLg RG1?tsm&޵/\7C4Pr OH ⡤'%vi={GFFH2j}S>mF-/ ѓ@E5;QvL T,eZ 9yRiYv{=|%C^E@W ' T>8pl`Z3O~3SYNbFS'lgX9.4R3jDQ#ۆFcBW0=;E 1j!ݚ)[ӎu;n'q C#>O&#'ŋ6UϟoAG,2/?O_ty8m ; 7 K%<j B=V~+"P>nMr l?o?elP~.~^Ghyp#n>?`d3:/Qms6?"Zf~ctM,'RIf4ud"U >]۵,f$[؅لcCCI64@7Qhc /~,=$!;;;333Y1e=mEGz WZQ"׶[nWݺ{%%l5/ZO}ۥT\x#lNNo~ g zK 5~O^ʹ;2zAr"|vձ3e)CO;|9o?s.\5w{~n!'\"5d״ Ra|{NFpk(44Ͻ%N]`ޱ.+*(MUk{wׯ~ǀpwaV0KQ:i_-U&_֫e'>/(yjs<]޻wޭ;o#OȮQjs筩VSvUͧ$q",|O1kxd6'/X{G-G!m CH`R)ш|D  QS[Hdl&N[8:Y(=ms-iH67ߤϼA.%s  W nfoa">v) ><N"őݖHl1lhgCƒߵ;/ Sd.(NNbD^4&C8ХiX>'G r/&'(NiTNʥriet RilPm lx YXzApQ081a@@swFT*(8ޑu5i={0A90PBu?~r >7=E dt8OhttTC@_>]^GPi~ȆxP-\q$=IT4bGdKDunZ3JQe#bّX3I=665JKuŲ5Hе[FHzڥ$Q<ϖB.<=$-D!=#q$R-e˒ĺ:"WGґt$IOdJŎ[IENDB`riseup-vpn-0.24.5+ds1/gui/resources/bridge.svg000066400000000000000000000100161461742244100211530ustar00rootroot00000000000000 image/svg+xml riseup-vpn-0.24.5+ds1/gui/resources/calyx/000077500000000000000000000000001461742244100203205ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/gui/resources/calyx/calyx-hand.png000066400000000000000000000427461461742244100230730ustar00rootroot00000000000000PNG  IHDR|hT@G IDATx^}VujLTL@ `6(qjH#̤6M2NICL+0@b:M ,  C T"N|C¤;>ywwݽw}={9{y={@\+}'_K]= n@S Ԁ"@! {ݜ9zKN bs*I/$6K~#aVjAoY3'}ZzwRze5=ܮI 4r ȕ;u]G?ԃ#G%7l&gF/بj2G_i 9yOeoZ,"$,A= py5k~xөdٔe~ZqЫ bDԃ/}3?G($5 ~ 0!I+<y?~Ho T$b$H aP_z𧥐~'E_B= 7a#yث@䣐5"Gr i?~X?8VHM7$x9k՘B @Y~ߴS\ԩS1') y[}l#"e'&¿;}*V=ϊ[8Kc~Qv6O$$AdإI[M?^:6>pV@—6(5_|͠ݧ~J r[iַ&E/f6>\"+' -@ڊT/wQ?lh+~C G !ٻ r"j$Vy{6˖-ӵj\ rC:$U6$k~=Zɓ'ǵ2MPHA፶sc[x1= H.]*V~ۖO_܇$"5 Oos<3dh@'[(MW[I$|~[fyj( Oom;-R#IzfC·uB$|> uyB$|3Fm Im| s"ѓ$!I={$|ѹ V+3=|z?G끄8yQO'{y Y- O45~QU> jJW$Xʯ$|> 3ՈH0w%I$|*I($|> ?ēy$ H=> ኹ[~  O|E3 ?ZUO'}위]BkE'C?eO(D'+xbEчO'W:ʾ}dݻww\A;e;S]tQ!$|> F" O·xP&_(pWwuW$|> O= F0%> AX ^ bFO''LO'Wp ĉ#H?ǎY:s!Gmi&]N:%qM{E׳H$|> Ȋ#IE@mqW_<(!gRK.\wdƌWS_7m2iҤO8!}QLóE#I+I$m> ?r$I!o9F˟{2bÇσ#Gvڮ"v?w\(_^[rUǏ={U[u 4l0$|> ߁(#]YnH$|3) O]2@~ԩ^,X@ /~.<$|> eA${X\ I%^zIZ[D/ ƍ?/W] ȑ#:ŻUVu}Wgd<{N׋/+,(ڞC'P$$|H%W$|> ֶy“;vG;cGΝ;D $u>]hQ؆vx%IoHn %M'.=]\ÃuȐ!Z- O˖-]2eJK.6_tLٳgkx 5A=o*폄O';N{;NΉV3{>~'Ɉ#HX-@![P>=|uVڽ{w4_~eLPJ%tO.=ɓƾ%Kh#ې=7=f)$|?Xz笁;vݾL)Ĝnj#>}]藒*2}|֓K^iF;zͰS0-I~%ӵ7zgQET^XO?u+Tyu|QU>/"S~q@/?D]_zaz^JC= ȦuCc1~\m{mO·5"ǴL ԣպpT4uf9z\BAMzbg+<}|͓.t;\և[6G+s.G꠿ꪫNF5<{xh:xӻw ՝饗x[K >sqB,jS/e$I>v˲ٞ#N6 s[z$E9"X\]kU-_\B^~UY1j~ORdz+tOvĉ2_|Q=C^K@&ߟ|@>Hjd~7$R~UfMlEI$5x`i:tP⾩ 6bUPt;oU}CUq‡~arSN}\M봁]>t w@'->NJ􄇏HV@;B9=:NaC7Џگ7p-z__)v-!EI%G`H垳Z7÷@,5s-٣] z̚5KDB1՟Ǽ ݆BGӵjf(ǼGL~"z 7t5)A3Gڝ9sFn?S~O<)_᝘C,F,z+3 $z<|~7$|?s^/]ΐGʃ6;::,[¯,Y~XUHc>/A?zto~񫞶by n~9`nJ_h#=|W=ɓ=vC¯'wL!ȑy>ۗ9c\B6 XU)CgyT=VWU50QUkhUygﯽKV[tlѯo]F,z0{'{2톄O'@#=|1<{ȑ' !*%@b,G2yU4eK3f̐Zئ\t\w^s5;Pu(L4Y@ >9>wwד< > A.t8? $|{>WZ"_BQ43fQ).T~&.*@/NUY(~UYCK<;ST袋:l0'd_פQFU穛J# V웙3gv}qZ0T6)1|_:inۦw1ǎ+p>ڻ~YDVc/[n]L1|xhWjړ6ƎJP2ty=|_у`Ml7e[m9K.C .^)CU}Lz˗/puj-=|D;h` ?{!z$nHwG#Ff+bȮ1UGH0TO]oWۡJ&jo3Błᡯ_K%苫Rïj_@ M=.~!X"cFn#ṟ:C()[V/ aUyC^zխOȩĉv˿gA\=+o$Ael晷$IKoeA!gSJytbۭ.rp-dvU?zf͚Ce]}C[pN|/4wG/KءlJ˿UqUv܋z_ 5{l=={Ȑjܝ= 'U'gK'+÷M,xjP5PS+P- <+|GSOވ壨>Y/oe~)`W棶<~ |8K<|Œ!GwK&w^ZOޔ?[JM[o.Kx^~эC$,]z Pgb\[UyLx:R} nM$|玄NO]>/L 3F՚EYv_]~(m0{(#gCBweny|vB7tC)־ Vih,BS.MP.[wܔOE=|> rCv *$wj-L0~)=_~)I=\s4a~ѫ<}ֈXrvކzuV??WĒujG<~ʖ$tH+k3WCK4yC7gz4_WE5,"x˜=y\Qll FC]o]n ?~xr-†L[͛),Yb5d%'e+ &nH~Þx$YoÜX?>jV걣)nMŤ<{U'9sJ1նmۤ޽{sAvS[ҤI2>~N t5Wlcڮ&Jϑ<}8/b-bT!By> _ꈛI$z>+kD ~їF6[h?Yݺڴζ}HPUY:' љ.O^火"P`ƃOSbDUAžU9#ƕ.]ۤ;t_(Ţ\`γnyw8CV}t1=_~L;⥗^2Ad*0$ؤoz$~iA0 t@?N%|xȶzl+'b}FO|"+Yy![/^,>쳙*SEl,]id͚5Ttg3B4+cJ+:ly ;M9=x𠈘U~ZM$ ߍL ϺIZ ^kew?Ox8iJ1@)GWwܺVTᄏs̀n}٘X_ b):ʞVvqW]@UA㴥fX0+FI߁]6$|'*0]h3t7ϔcu]u\7\ feLY--Kzeud<_H \IOFonOO_n Uai:~uX.6 ?s}Sրm.Kԝg]*V\:Y@% ɛG)_n^8ֶLg/Ul"Crg{ ?IHyb]1'7P> 71$_%*~JƳl>3 "jUjK[{H1F35'E^}XtI(oq/Y@x_ 6D8zW^y4뮻|P۷K{~~7jh&{$.jˡK/_쭛LSp2 Xe=k5Tr8LzT誝$j#@cC_Z~9bodȿGzfCӧ+kmeh$j3`3n1|'\t|Ùf:96WU X _yQ w)My㠬2dHYSt'{3H&!w&H|ikIQ2^гn:+}U`Ps)BPsŊ_S4Eԋׅtp"vuʕ2vh <{]B駇_hGoҒ߁`Kжܶ?nE4.9~\0j{nٺuQM1cƈbV !Z2_җDS>C_z5i f1jo r~ݟb{ 6'7̪$HaJ=F궁qYsGbَD'*(lZY0qxO?t.\}g/q\=M}ӏ_[!']$|x[?Lr<|,;vԩSEF?߳gz؈hQG~"1qC :*.WQ/%3c#>VF/ D/Zd G/IpkJ+~S,)ڵK4P:ت:A ]<|3ᢎkZ棏>jۊȋڟ_ۑDl$V`N P}.:}(A xNcg/I/X@nJ3ĮnTC ']+/Jo In$gEw[GMnf;uuj@NٝzP퀓,Y5 7 ?φV!MUc/^,8p@4D`H= a~6^$|uT6 v"/qFo߾ܩaY ټyۿ8Uq#qEPi\K޵=,Un\~9iM·3 ?'iTg.z.k2G '&9eͦAmrQ5Fnҧ:bU8!$۪8Q,_W/JSN"9[bp!I8M[Dȫe믿^=zt[l9իWGɝ[-ugN-[>zq.\PYǏ/"ԧLއG?g6q3m< ?I~3@Ƈ̙n&ŸZ(or?|}'Xt-<5kdn2ԐNz:\c/1_}iC;~o$|;[[NM?-s':t|3}tKh-f)GBjm,=忏=ni=OԵk_+'gcK7C9$|﷉sOB qyҶ;oMU4 |mG7KdȐ!3m1ucܟ~w\!Դ$lÒ;_S<{ɒ1ܪ3g9dg>~,޽[ueRv-:7ډ&?:^xjmk=^nw:QTZ $H Z ~6$frH$rM$ Y 洲=[3GHMT>+K-lj:?{xM> ?}ij+'IBϷ0 O nm&||l0k;d}}}30a9rÎg[o/W^y>mN!/[r!> ?s,F,W~Lm&|^a"՝yp66[Կ Wˑ#Ñq=Q&[um& SH.4 me˟:ub'.<'Ovuy饗gc9)켋/~!M,Y"Ww6V^lwϞ=:(Jo O'.t~<@Ɵ_l]vbnRcG^[fgB Zs=}ם@.6>[ew >~nc?~أ3I1=gB϶ ܺ:X6 rV;O?tJEm{e-o aOȑ;O ԃʮR~Y'H·I' l)܅I5ɺ{#:޽{m۶_,@(9H)8$ gkMwÕ* 9ֹE[n)hC[;V&/Uĉ2ud?[ ?I2K-IC;UzH";h/>`/ϽY8zhG?r Jewr;YNhA_b7lI8p@(c9Tdby𓄄PHO ߂]JKӴ qFo߾LJ4iRj9c 52… E ZzHb+ BOܲɽ'xsV$rZ23VCoJjl>S=n:rxfm $$! <:MH %Ͷ Lv;vȧ̵TU # ?-{o'g~hb")<ا~$|~${NI#Ͷ mډN۵kfX= j;fݳg\-[f.M'I%5%Wc,8[1BZL< 4ݻe[fjPU Y.ӯ*sWW_\g Kw4SO\$rO ?^EIg#[/ӦM6(Q[Vu믿.CZ*/zQ/#rk4 Io~x$G·ɗ _dٷCӧOeq3EE#<"lٲ%W^ٴH9=l> ?ji+~= qxO믗ۣGǂFE:.;GVUrҥٺnx VW#N{4 SƐN>~$rhkթH'-GfΜ)w dh}/S[s֬Y1|x0K,DAHH!4zh[?g>w Xf:zhfk>dȐoB`ꐕY=A&ÌH$|wj ߂&]=%k'Æ C2-beÇwh$/iqtX] PchA o@/nyw 5Wߟ NB}zz{^=> ]HIB_XB$G7%.o Yx۶m(ݛiy:ǍWޢzxgS8p@:9P2+:s킄$ Ƒ/*z Wr1HűCKd k/uzF'dyV\ǎ첪Ν;e]ve1w\~ĉ^^4ArJbIpߊ_O/PC@I:!i8 pM:UK!b"o1{trd ˳z"C$| V ?8޼HqT#^w*֭]ӲC%O2- LiB.I@ ~85cqFAh߾}HM2E]æi /.[fM߳gLiٲe'藩M~8I%{CW$|  ?V俱s^&ҤI"zUWC2Id ]6s#['2G׿uAԩS:4ooN!C[G0KtE/^MIpm:B|ؤ'&$#@¯s~ I%+є_7Ƭ/X4C<}#[Gk̘1رc"yi"9쑆34wVhC"W v$yhBbD]3N>}M7բi,>&tLhѢ8BM;Lx25Z(uBWa~8I@+Є_4!o$ uy/ nݺLF)O0$Gc'-_{ ?$v}p)XDI@kP~r*0~x뮫Ds4pE  𑦉  ]dIh={v|,yg:8Iہ`X$|,JxKUA35GL=bʕ+h${$KpeH!o'[!B/[S[\TďX+2IW8*4k֬!=9#<"80*V;=ogK+)D.$,X ?^EA&K.NZ 6lq:9… XN \o2:KD_2v~IH![$r55 ?~ MU<1 g"UyfJϛ7OT.Uy$*4$Wr1H#[L$b 9:*1qB׬Y*Ar۶m2޽{3ÉW8r'׽=!'IBw[$|7.MoLU~:Ueyj =;wʴwڕi9xƍ²uy$($LbTO7. 7Ni]vtru=#7{vT!}ĉQXt|g<2ᄒ>քP kT~H$>5'8NďnV 1x??ϘrHό_` /dο)wr=| gz&Z||06M3 ǚN~V>N X*lx3fpۼĉ]=>g򤪺Ek$~DO?ku=?pM쎄D _aVf+xrUܸq߷o_f?UyvL=#Fl2?==!gDn=}[!PeT~[,yW|I&I?W]uU%<K,D &y5T='H`rم7HޠlmGH\ WYF?zh&+W ׯ=Aʉb>Tm*'@_<6 ;07}s„ 2#GV dCe OD <ܲxO=O|~W\G,_Ub޼yոqjɓ'%t3p@ɫ۸cKp @'YX$R ~_q0`>1w\jĉ&7Hun y{A@EE|D ?S"B=y~&;foXʍ% fk$ڎ7~m 9rDvϘ1CH'Ó$V/pOpH!Y.@ǜ#f [vncDlՕxwh;2+qgv*Lo]9 ej"0sL*{ܝU21C= +7gΜA^=wMB= kC Zvz^O/_?s9gϞdQ!@TFE5A!@%{~e%KLgΟ#c'I"uߋG !jC_$"  @Jh:Rw?I8 '_?q򓟈GO@" D ?rQx c jk:w\ɾy{+y4~3F:ZNLxIENDB`riseup-vpn-0.24.5+ds1/gui/resources/calyx/calyx-red-shield.png000066400000000000000000001701641461742244100241750ustar00rootroot00000000000000PNG  IHDR fw!ϑ IDATx^yUv;R%!3UA! 63T!ՃL v -FC#b1!UrAԭVZs~[ks=R*=~kkoSktx& P@@1e1/qA~取DϏ2CEϏEޝ#ȯQ"I;cq6&%onFxk "y"gc1L9$HD5I$[wRPvAp E8Yw^G''%^DJ7g&{0'ee%*K^%+bҔc?A@+v:h=IF=fy;\*uҴEIyXc@ ID V&IK9ɥq[(`B`IV+BFO#F\FЖr+:m$XdRN`A1w7%(&}mvː2^*OfZM t>U+XŗM&~|dw\>#"LM5Ax^D#U7ctԯTIZ(`KEnLEG Meg)C'A]PޯV\{L&@;YD%Q I<3X=2/MuPx@sd9 blU{ $5n:]aOq0 p 0PUHH1_0 vE転CnT W4HǮDe̱͜ux>FgchK"אsOּCPRA(H0yb Up/qR:y~tz=yrrл?Sr3Tf38MO {-Z@AJ sBDv+rUF,=snyks5 !9Km4Fm4͓m>0FE U5PaΉ\ROq@#+RN~dlEi 'VbH`kQ,:m"Jo nLLez@ձ1b) w2j] 2=ʍ8bxL5-4CA[/-DmiD3p[{RWUkgCS˷; ?{ca9# I`:^XΑs퉱2Gx ;,{g !~*h5W~34ٵW 8+dzxW/ -7h#!)7g:]}lʽ)+5~r[.JjT=W X$M[,( ej;dw̝89ϵ >6hd{`pоCu5iy N6q`]jvоnsu<6q¡>i,y4v'jz7zcW/Η4h{G$ltzL:uuMFHu"i["2!x ,Nكp/ρm|ECs-oJ8S1v 3 6ѱ6z TlV4lN;z 0:v |ܶ5 ּ'Hg[^eq$x 8 =Ld2a0EH*L"FXX 4`, 9bd"Q>׍D[Kxhʹ6na&<=^et2[%vAݮHV;Ā,$|BH.x^vZ[Hf,OHۦ*[.T!8esI믽w> Ą)y#^w/nG@md3a!^E dž^jG6\_=-|n=rP<)dI'j"$8z7P$-R][f%rUw$Q| rnwtDp?'͌b` C&+/%f߯Rg5@:}Bq[f&wPn̸jGiW_} hyъZOcVHWޙ_p8.yx?BrtlFEk^a^{֊6Zz /ϕ]6v1~ê*t;Oc ,Gj>(䝪uzZ ȉ8UPS--j tu &^kΗt&2]y<uB/+@_+ -gYv+m`9՝tde^e_7+p Tv4{,Ԗ809|w[?U5Fb'ݕ|GW8> M{r_^-I9m6Ǔ_\f\Kv L!˶kWNMQLjl }(Z˜v[. vH}|s v[<ݿ;RFrDk6p=̫#SdYfw_%<*z&샬 ԟwYWwRض]˃sm{ض2)љ3~6.4`Ofoywx2c_Y[%3_[ն=K1{$ݤNvRh+Ӯw9Z"cu}yPn)I(Qa X|o|Y n,GVly mCLC- ߗ{y}^_ٖTUJ0+M%o:&Y?m~&ݫvuV(pWE LmUCE~Y McNR$BZ}Rf.8cr{Vi f2$ʬͱABseUh^<+YW`ZBwy.؜偲EQuAեzJGLw^6m:RmG0j 6q-,WPl 7F]# ? '>~D4,2iy!FKm΍oV=3ֺx/U&ቀ@T)ᄋgEQP_u;X,&ܜҽ^ֲ򸢪mͳY݂rkam߿s&s{ wuz9nuQY/$匣y!4v^1Q&^'4:>~h<'h7TMIښ au eI~oҌ5ė(; K}UV'i>7b̅-0[ `Ig,1)qU6!o7RvZTXcm^96hl-,[=*Wz[3bڴErnG䧲e=ؕ4ߏ%<9:("+UQsE\\Y$#/pkw:-LٚlV?< ~! iف2۟_O`xv\]B=sy9%PNcwS53EY*pydxXOhX u B(/kr)  > IDATk'U5,cDXn.2&]rB\7-vӋ<ˀ@g?ψv XKUSJm̈>aYFvvc jf&(;j`>~0hv0HƣXUԑ4YmkjE`7P/scni$ԶM1uߧsaߣ꘢j{E l2N7VDˡ18~ qp:tb< vES Xi7ʆF __ wlJd̺P1,ͷ ֺ+Y+C2},}Oc :ON>Š:pٿw: HWXTq直龔ɄhEL^Y8 p"\<[43n٣%G cXD0-_kZeJJpcuGV7^Y&M//;\/4~@4+dwNmT*~VS+?38Yt=OŞy*B( 9#֩k,Lr 3+ @$@ӵӽon[ؤ Ō(~N& ).gtx'eP' 6qkd@^euc&=Irv|“sz "W?P,ud%E`t#3_G=?'͌EPoJ#E |DϨtsV0g [;0D2} k3`1@ʴȼ. {1sp5$Fe`)x/1+olA 2T~n>9e uX|Ik'&,-1_.t(;*zC(5 umk#tL;lh!5aODk8 EahI FcYYK^:ֆۀ*y' <#_~O`VuD]ih"OUs\ Á5LAf=bt`FTUXҤs4[t~0_[>*P՗i'gr+FĠϔH zx6łUd^C?]`k<̾i3I8Fryy[9Zdzg?q|aQ -1D90QZ%FtD{buzrcl$,5\ӔJp%gy;?l2NYQv&*` Ԭd] -1'Qs=й΁L vOao(¼h2!NUh[[_LSE/)0g4rS{S`,yϓF/@2^1?97|g F[qCBJ !7U<T+wb*c0n*- E&0@DϢV.F[ QhŜ&6m&S 0(@ʙST$:l1_@ѤHyQ:k5CЗ|PZnnށ;灔vAH.1E,V[e@;Vj]ؓ L;0;V_)TRmܮt rz2OON>̲1x>9:5ՑdK4&FMIpX\ploUL"t,J֍ ;`L`Y\ /bvԛ1{V׉Hz=$Bz.9}VM]=0ٔMil9 cFP8a+)+z;zL@Po <3Ezf/@{i@PDJyLcR*`L7CC FR ;?›%1͕,AMDyh^X#6x\7aomОсL3}yߓ?ڋ񦓓a8V; V@ꊳ7 qg6X-{es@BgV3{X-Y?Գx3yPiQR8nY$f'& +$wX*{h4g¬|_M4e7T;\OØΐORsz7rXO%irZ'1 QcCqpۀ>?9NN>p=+BOA8,dN `;)  d޴;P"GL!nYM/LBH&Qw^nL0_@:LKUi$A?rxf!RHLyԲUy(LRԃfSl0Ϯ1X#}a0 ^z`h}rAtm& S[>AJ̓bEjx}Dža&eG>H7$zY9!TE>XM#Q[o.pqA .m$#} G~pw|!燔das7eȌQ"#?Q#"WJHNE4VC0ZC^>@gyi$и {~ˎS\He_-ɨ(ՈK QL6tѣS {' UcSHqxEW}RFUl(I}`o'y,A%6kFic&;%!+`4H!e\<)F)|+!^5:(Hdu~@GH9cO Wym\J$oxDx4Rj3oS]Ȗ;NE;ʏu3v|{IN3_芨T9 MC<6|NDU9*OB @\T(@"";C޸oJ`Ȑ%m9d@LRvأQkZiF&r/ N.{mİC~~!(\B^o-ga&g(D9Du߫Vy:T $!M]_WmyX#; |&-,QiЯE6䝸FĸzΊsh-u6*WXך10TQx4?N&5gcr03YV-=snH}>Շ'+/+?nNOo>,9,K'9T#AfJC)@NU9f0f^e Zx$0]U@NXU@xX ޟC1yD^-pl_%: "=)ij,\E`Q;|ƤS fN)` ׎dМs@yŮZ_gKе^ w`zω!)#[N厌K,ۆzw97^me/}'4ZXB;A$ؽBVԺaH5Gc]r] aOZOE!SM u>?DMQہֆ&?`.\I ;Ȍ i$?__Bf6Uj,I3:zi!~<-lqlڅi! t+޺am13o COh M ^s3K\rΧW61"Ya.(  Z t7^dmFf * ;c* eE4 .Րxb^\e|уZujF?'~m?@'5&Q O8qr gSŠ{uy|7HhBu@ug3@q]"|\lc]ϋ 4v?w;hW(GfDohgB;ңԑQ{{Xe򪔢ytnL dDd{-@rv9?H1 u{ jn@("IơM{D S-⇲|~oƉhKx"NPwṳ|3wp8CYnI8٢*[if+tB jq:Mڜпkgx:c0 2x^Nܟ>S9n 5EYrOi@vz/llXP9/zB;;`Zj:g)×~ֵ7G1/) xZĭ29(U! 0R_fYXKp6}og:#a)Uw聠iyMEaDIl^"3(q{"C5!o>`Ds5Ltogςoyޑ|4:J:yb“ƛNN% 5<>#y`LJՓdfvJyͦ{J\tO쓥/dj)鴐P|+jvjNC*G k /A,55KQ*t\0aCA$8`I>=VIRɁҲ>Clu͜F WLm%(k4m|ϸݰCpəh@f"q-0몥"!l]gY5T*ŠYM" B/F[l*37r7"x/;d8P~U"dTGF83ޅ!U&)I|/E>)߸nP̵p@/g_Ƀ<1(O5$ޖ 3phO=*2n4g/:z&%$a ?'KnQx- 0KkRs[$ LLxS?Fx":8%mc N8g <7wk^Csm$[#r.r0=W#/yw<2GŪgo~~z2v!rSیiPٔC-<+ N7doi JυmO<5)5,bMz.69׶ 5]aj"yx@42<m i[u|cթ 'OVDNNޗ.[BpymqL;cQW.Ӗ4 QhۻR;  c%l[9 O\n/k9i˻}k8 _#pbs@nFɋ&CI0V8"oa#~WĪj L$/l _lM" <lqY׃&*y@,=2}?ÀHPqrSĝ Přľ%fnn牖/G@W&sBDmR# {s#0j:}e^uD{ZPJbhtZj^Kd.еb7E0Fv '5nrǘ?w.-J[%"gTQZ*],>tEZ!+Sb}g/sn+<0_X7kNBw̘ { ?W#APx' u$cpѵ\-2&F?i9 tb[2y ^GqXgLwg#]/J).L{{ꢻ#>nI%„e 'W{+1,_8&n=K%G.ۂE 31(^LUwL-~Qt[֦>EQ/k:P4y)4e,NCP`%yh;:>ZEՋ@D>j6 (UXu,%'{ONN0 %`kYT # .;YV2R߯ZٖVXΕ+Z7Ʉ1PDYmsq5+I^Oև*pԒf}聲j@m5h ݆ ,rruJF Xs{|>ֆWm4cP)+Viڭ#|﯄յ48BQ"Eexn`"6[]k5ѳzEF::fsrcA*V[XF:_s,|[Ի# *h\=xkZGy4KQ$ {}/o7qMKfjN>(W c#kld-̚<^= x].V`>gnɝ+&E~ŋǗTUP^eYWmjZxg(jšCQ9c _""|~ι4E74)FMҺwgV\` ^CiRe{- n~'$b ;͞,jǓl2䩻;am'( ej#FT=OU; Qs^“E* d7y+RBOV(kt p\Xyy #SZk|F܆i0H=hEƒZFj 4/{1?gb>auYBdGSM%)(X2^[QN)68fo)܎ecӿ4lҡ]u_kw7 yUၔ9|dЧmPhwy ^O:Fy:T徦>ޘ|썞D{߰{8,lD$" $sJ0W/& lZ@wyQਖC[(s`D-2Ej#V+*FvK>Ү<,^gYU XYFl8ZoO֚Va rMJ9!Ja^TϐP$xIf.Mr^6,dV{2Z IಆZ6,d/ƛNNja9'mm!X\Q]z)PP< V~k!Tb]ސ()އgbfϴ^dVZWل5utcšRq?|\dî-@3 Q y#Deaxsm@kT"Ɲ%"9$!>?dηƹ*VN13! Q9^&9|xB<)&(@ʼnQ̃kK V K@ja<  ʱxҫ| FN9gޤ#7uikq?.\]s1%5{DʟI[%Qw]Ex~ ̳78.pr*ΒF^Yqrrw%$D' Mb*3tP!IUxԶ6"0 `Q";Kr<], Z&M B=o;<M/ˠo6.:9#$@ra^3f*Z`8V{[51B$ ԠOvV_:_Ϫо2zF8I9`*Pi@FkBn1 k,Yd ъ_"@n3䧷>ШOQ-!߬c `IOEjW(&+6*_aCD@˸q.>VsN0hB5H!D(t4,>4J]2\hngpgwʉXYh xTIeʅ!xt@HO Ȳ J^ OQA4GZtNRCGyNBo[,|nи=Lti|î#pݺ$NBֽIwSax* MZU]_IP\ fw07uccDOd3ME㢭#:;)L_?v&A Nʲ33uhCVrVF r=*h2T@ n /<-m(9$,0{ONI-(Vcv+1&WA3Vv>KDKZmK"[T2q)cAuP!pL:-XS^SMŠWhb: 6`O>3_#Y4@!$k!c Z6|$2Ut3 T4| Z/PJRUޗYk#]W1|;B~HieKqۏu||/7?*\|;*þ@e `8OLTP)b ϲIR=N,ݤ em,@!XxѴ3< y@ p 2\SEbyPK,k) =KId W fvz=MJ/' #c嶕Omе,п;{^6hY"9bx2a+@a} “sF4u-X2[1Ynˑn¼@UIBUT]?PŪ[Ux .Z E.NwWI@˛ r!=UĺG>1r <%536s+Z]uol>^6r̿oNG3/JҔkHV,`L_ HPLlq/Ȕ~m>O''UD^{xB9j՚~@5~-䐀A%R^3w{* ŷ~M! px.zr"!n7vdxV6qCy6wƒ8'hR$ІQBf69 9&g&᣶N42>*4rv>! ⼀[jnS<ʐ2sHf3}-!G3'gN&:\*HU,Qqo5 'pSW˧x,`gqװC=9e Py{<>5{|䖌^0 @~Mp%O)4RN#:ݜP[cqp0Fc|Ad/e߁Q%]E+- .eX,|` Cf6Twc;dE!w H^h#O: j4Dyx̚-js[|ym!}dY|{M˼:?wfk4* jNQЭsL.Q y ϝ=8zYd9#bS֜+is~z|Vs߼?>7{qr[oa5y',KF A_n(NnT@{7wxpv}Bz){8"Є&(:Y @!3z3aG|dO}hbZʹJۤ}e3ȼ 5F-PF6B}b}'F]I8H=k  ,^Wbw\KJZ=.kjv*ts4J 1ͽ좬iFoh7?HzPyzR0AtG`Ά,>? m?hf]) 4/q~EcP|u(Ĥ@ 5To}>7Fgx|謕_COVs'(2 cQiV Ke,XZA"ryC̎9ٓ sh4 qܷ|ӇPM-Zj*i{osI'#zh4|xAxc PNQyjH7b]y杁NeI]Qє4Ȝ$ЈB}c<ƝCye=2|s x98_g!L>*3ݪD=iLA So2Lv>w2(m~N'EǭD m=*  bl}RX8?^,˫v_WJ2#(o.;'V=N^^t8ϏWz AqAS0ݻpor};n5Q.ZX۔"65oH470ෆ>ʕaA|Z LLVœ~zuՍwGGNیYm(D2? }cʹ}r߹J׮V7_?~@Ơo0/:l|.e;{5 p{}s&)w>y~<(e"Y[z}/vw*1i.4E`Wn)+i9'9Dب WhL?8ִ 9|Ȓ=h&rğ^,t?0}nHx>,y=ߒQOIô-Dxt|~.0^<~U=YTɓIlJԣ?j6)~hHa;FvLxw[ ލA H$ *[Sbu<3$^e`mjuLF 5 QO&>ۄEIz}t|+ i7AȤ_Ј&gzt KKCOh"ƅx[ik;)/Uwz//t`S-z ΐ#3M,{\2A-R9GH2WG79m>|Z4My5Z,N<Ѣ#X8YA:HRa)dE'wCsdi{@?<>ε7 1M7sڼg@FG:~b}![GG4-z=]?60,K0us!jq}NZ"gFvgM#̓3e!/O=qrȜWr.1 k{PDYty ]nkLU\@㶳,왞AiP7V֞дF;=}yzUnQ'4 JTi*0ۆ.P_NOykN[?{ttgFyO uy޺V8ke,&0}BP'yk<|>3I];\=='o: >")>:/E_~\UfY8Pj>| CQEºc5#qAɩ,wftO.O?V'Us &7g(26BCrUq$j[r.ZzO﫦ӏSJ]/U{>+>02{ymZ5,,gMR=ATXrQ!$P!@wλ{r~4_(nbP5irZHŮC5lਞJtr[Fu>^< jǓ%9yA{I!RۑEPڕ蕸Uj2jh]ą8ݺ)K ۔*u%#]* $7ͥ7[ro396ƪMPF48u{$mC 1>[<5nG|hb 8MoB'o>Qh"Z ux!<+Nm:O> eNٍ Bw̘xç0NQQfqSnk'`0L=v-P~~mM9gǽ$4M<Ԥ^\[@ZӃQ QD/ {<3+Cd~f|nU:<'GPP&˟Ѓ)rxV z}x|{GI5~!uE$+ X^ah"  xm&&3;N<_@+w/#U-k.cBQ>_Bm&WC y4m؊x}U`_"mS>= 6jx .[!6oPvcp5ZZl w"N,(MYu<)i= DqtA(`c:dkz_~*xȝy76:ڥ;'_e؟9:OV}s%h ŅyMRys'EtAPxT>2qNlC ]ʍ&Gf獫rŬS;Q* -OG"4FY^ӎNP(FTD%VaOE3s]&a>oRjtZH(3w:F*~U6^{xSG.S(o`?lo>=|f5;o=P -ڲQ+#fBndvDym̂ϧf 5*ԊPf-pQbF>7AH씷S,ۙ8g )+*2 IDAT~};;xaƶLN}]:jyo ׳o/GG~x|ֆ3ԎlMY^a]L5ФW4=,;d49>G!sr89yf^O&r&!cJxz=H+?(+J mJRBۖ׊r_yҧ_ra)zn{6ϟsQ[f|Ǻ5JA/"KV^Ymy~([%l\ZohP쌳wnϟofH;4NNꏚG-d6wdhy%&GRҚo,u}%Ҙ1A;aQ({qsv¸ W't[WK dz=y7f.6U[V (~86(QJD9rzaau"dW“ƛkP#M>%Ȁ OF'tWΌ|ǥ6OTc\^ ;73GQBחK=9gyfsNO!00h6^{xx/96_}|?~ie/;E$5|h܉̷e2d[<4T{9ϡ7^.sA)A+RAvQք<J +82#1dӸ-D0'/6£Hœ+}9ݑ^<7kA, "wLik/(f9\wv7{D 5 'ć.Ҽ\.ɗ۾j:}']ALC{'*.?zB|%ˎ7RY6%5}7t'{n$qޒHo+yweDNNhꈠ M<&|=*|p?ڝטdo3Q^ON0`hHPwo5(k]Um& مmB*rfچͷqПZ.B>m4/ރ6i+7mL^AVj_ ciGz&\e'gQ VZXL"\Kb/nf |˞?#姧BF48* ' _ۼk|{"iuR5,nm"6kxXF %SbqZ{_zzzU6y^xIoF^.ry! :-^}ttoj#@lP(50%Fll0Sm<*1Q7996+[J>mUnkQ`+ހL?O޸?X2:%[=0Sjz'Ϲ&J5 N֬4B x*yxx;~.zՇ&|cŽ>oR{ ٽF0H̡.t-:Y97yA7Gu mһ{_% Sŗ/M !G#φ:PJD@lgFrgWw)zabmO&x ՛lvU].u:/yb{ޜ@;x@U755@uXte":rn;|UW8^یǓzw ~8Um`<􆣣w)߇67ϿHtG}_==L kZVbj,\CB,UskO(bk'sL邆mTn==D]կ.oKx"̮1R(TRuC]Ǥdr.ocֶSBfбdNҺuBfb}H e(.IKz}wRn٬tF߿X}f`KLZ)'}%ptEW XٶMmPUBS N;)zzuVH7 lx*A j@{%8xrrÓgtZÃ^}ŮP (-EB,J;xncQI]Rh:>I7x}bׯVrt;f#.6Q0ADTvs=BPr|Dv2D'"ÉĴzB±HWgBw]r{-Yb2Ϲc[%6lP?^lK3 U 2?sKV DoN?@.OݯWai_-tx irM[ I'۬h Q){\V0]t\gpvOٶppԀf\ E%#\(̄%x K]V;8i !z^tEdk]sezO啤<ux\Wb ] j(R,p@tZ{kUn[dXM9g"B[K"[~kz"orGe08X:{?&NrĜ^PC2 w\Hcf)wX , ,L/_, [/l&Ix3\rn G1m=Ů9Z}L{]dl'O#F6O?[uއ"`VD,WGp._ʁh,S4}OGF/fphu܁VVV"\csGʺÐ|T@ʚ܍6W`욼pO w,% 9KN4vWplmF'nzff^\-y]Rqm^᭳LRn\U_^e᱉85sB5T17XVq9/7\4d4NgI(#pa L8Z U\[^ng ̔z&"-ױw~sclgkjZ}$.tDՊ[E(k"v~>daFW+H7AstsJ%z~OLTMnH~CFL'(3eTxmcעUjA 2rc,r\@"?BwE3z-nmݹX<գ?4%|ABLtχۚ0jL'%e Q Ic%哱gU|Ϋj7T?,,+'5{{(@C ̔0?ws=Ԭ@j->Q v"RaPkӔ[z-Z&jǾ9.wwf Y2,)EY.SCYҏl6o>=}GrwxK H6$*fF<<È) c%׍.1A65^$'́]z>@M !93YZ Q2R{Wkr/LU(CЍF(\(D?즨,xV:~s\x: doeۺ)yW)NSY H@ 0o_r$yx]Bh,A3(dQ'ToO7 'y\hr] j)* 2U(,BϢ۠Ej˖Ne*#xyt>? z΢g ^."R0 d,4ˋϭk큺|JBⷭ.2,ku$fN+AOv5 P*KXF(oiFrzxfLGsP`MbIMm UR"FXh>N6`B^DBoXyѳ Pt+,wtjUCpUBӝ7(pg6zP0Ph6L/ଽB)4e~y!ǬQPqs Аy91}8ć<3zm =]Іם-#(k~>\lI qkn oMͅz 7]moy<_k??gHvx fcoPr JOC"~4R%:%P _օt4xtlMQ>+7|&A1qlY\6^ %Cmy9yX3 6 ttn 9DeںMH[rez|Z]4 @hˣH߬@Wopr'h,֌YnH(φ<\7 a9PYDۗ< т 6#a`>a6ǀT≯cJ}h>JC|o`~( ;7.Xq=륺 EψkiRG>WyMڂK؎ {E顧M|8G \??h$ R~dÝSFєo%[;@ߗB~47_H$@1RQǯZ뒇 K@ GL18j(}|A~zx$/#DS}woԁx!աa >ahlOSK[\zl'a>)ziڑ;hd!L~?HwL|"gW` T+VByFQt Ec( w@9t3>񕘪XB!ǻD5ţ[~?7bH[%72@Cƨb{ɇn?UJ,FV# v'{T_y Ǖ&DDib9Vg1zq:e @[ϵn\ 9x,DM=De?Nn}n:PuKX0%NeC-ZRmL6 bYe6^i3|u0&J p7ݦA+,^dD9 mŰņE(Б6 >a_ψ( ߚgkg6t rd ]OyUOpH!-;9 -0AU{zEHG|Lg4q*j6²|w_;~gq7 1Ӈxl ^u|z=j8 TH8Qa6%SGSm+|NV@FAA <$ͧ/8wxƣi4*}E|{$ %pOFQ~ʔ{}iC% h4 aWu{}sՍg}>OaʏNILQ$_T^f.B|y@ubm[\)s\=#[UA/;+hhWzk|[>w:}D3L@v Me夬9bP8KoxfEÿkMŞ|yl]NJsfsK>s3.txNR\1g +mMNv)*oi59 I9^Y*cF2= wx0,?Lj9ʆk9KDh彋^yx/ǸA%T X0\mM2X,@X8{N **pvE{>l/}h_J}@Q'_hmZ8%We^IP'Y*^fe wQ"ќa)7FOchޕ:/ǀz5gmo;s4yeJU6VnT1%Bjx5LR)x>c\w(vjl.HUhd(g8ͮEJy|$+!p>~_ wLB;U8u]( k~7}odk~W"gįъۢh"+ @pZԒ/@EenN'4h- gq &wƒ[D hѾ.SsЗ!"hIMMRYs/v_ߞik4]I4AѿE~j>\7@l޿{p@~G0o¼FlDw sl٥4^_h S(\<y=['_}=WM“LYVf nw⦂zK+>Z<as Ac|^4A!VM"<7chke躗pw2W0͜e* Yz_)C |1Ux.G^nkx>&J}ƋSxc3ʟ,p;e{B\\o:;!ޯ" >zBxp9+7}L_׷ESD4ٗsHW3cHi#||uC^sRx jd `ʭ2'f ];IB;uhظ(tUA.vo1&K 10و]iwHݼHŷE9^Aô[fZ#pL $qo[z^Y@=ӼuGn"?38 6ϡxb3ck2?wW'] x 5 Ly`TcFw6).-t1Kgrzx0b',47r[/]K$Bu4'o>9ʊbAtbw qA?U IDATmEml'`m1$0{\14oy7D;g\kyȇ`>DS荟sK/][ oL5h&K-Iik,%<4ρ;Ұ@xnC ?\"D S˽ ~'cp` p)9;sWД1߽g_wCm?wxM&w-ejuXv2 4Shr$<pL&F[iw[xߏu jdLYd # zĭ W9N(Ӗ>aSo{~`}v GuH9f, %+5 7rX(;%˛޹U:S~[d<~8ٟ='_Jqn(u/rge^9BdLSbhҍo[w򀵛Z% U*}T~?F?cM<캫{MJ !#dmz[nQ 轐@}V޶m x~iihԧv-" B ;gUUWy79{{ ~VU-Ǯ>B3b$T~+ ni6 PbDah/^F3{hu86RibFFb*4Mh~HꁑmHs4W1^8v82Xh)8t?="0GtU4~(_:%̌!ӶN=@$ca}|+Gt+M\ݼZ3n/;B[A[^5߂7r 7& cZ)/JpM S˧| EŝB9@3kWJڅ">8h"]<=-G7?FxKฦ6:9Y[txE漩 ;d^ɛlb{gkca M`rsQL:@Ƣ( 4ozOUjGޭڧ.Xv\sڱq=LcۣUƼX|dV߽\>7 g _yhơBN h O&H睊װYZ;lx},ӖRxՃu -,#( iXpoL6^O=:fsfZwDZh& p̔ч<#kvbm_\( Uu&X]tcɥ|Z9VMɅdgVh%j)Rig/m#> &J>\m\x Kk>ʕuci,;]yl֖( B<Q5!,# V((]9 {0RHl`N'ѳxxB.ۘ_2^S׿\7nW|,o_ mr0/ pd̔90h[> G$MsS_3F5nM؈M%`7f~bq7kRN@\+wBY~UF TUדߩw`:lC99 ,ShjO$"HK{tQ%9+teB4qqi m[E@Ԧy(2V 3fGMT}Z8:.}NVJ[OMtXJA[@{lw/b> *Sٸ]@?WSU.eka{Q0BPBuekCvWis N*K|ϰ)\vc&Kqynx&:NȻn%!Yoj[9\zlY.`8@?06 o灂 vAhBz,^ QQRt6A>xxbxk p.e/?oy2qgq uLUi=lE}Ǹ)C@aQHbiDkOR 3)0C6sWQπ{tG/W/g42LTf}KfY0CX` 4>.H6|<;1y'c>  }+|#2z`%]6@ =nO~~0yDma5Mh/S9&2|s9D؟b%+aNL dd/SZڴ˟),owq0G5rEEQQ=PrEh9RyaUf:a3-%LR&r 6m+L e͊+G_mv8Iݖ $u]P;/N+c~UG 7ŧ)N_p<,ٹ>u=W=0v=!S'SP{ &[<[h>(VfǬ5Wm܎uS`9C~JQA_㎺сX޸cQo]^bRΌ&A/ޞʅJ:}*|fqH0ܖ熂ńuvxgҁܯh.abV%Ͻs2Uu1pHoY;ok]\;;_@Zh;,մ PSwjj|e߾<'%gor;!O5*ԡ|5_ϒ(I1|ڗ4hP6?Xّ#yAPuM}%6ҡd%fN)l `z*oPC]zrQ _=w4{D_2t'?o4TfBNIFas_gx _}F$XlhwDFr(AsyXIH|nm<{ hxg)˕06DaZVa1#: qB--J^bƄA^/Q܄XT>N_ W83n\\Gu;(s4+d_>>a}`pK 'xx3E`dm :]a3Oah0L`1?umZo-l r^?_.Q |nNp\+bN&ہIsAX~hˆ egbz0"SiEhQTcvnqѢx9>z/nHL.HUM..ݷ3K\UqwmV׃Mثċ?}0vX`, 8y꿯*_^!7# t@Q%=i ɦ>~>0_ 3_NOpvS}:ǿf4yӪh~C#2xaٱzCf@ IHo@P{ g&3Ӣ猌(y(eW౜'1W?ݫGC;i殟gپs/f(n/҉ʕ'停G(ʬfD:2+-p*=|_eMܔPr9˙[-h1q 3:C n|x q1D Pu(T&,"I//N#㛲wB-mzc]O^6BvtY.5_qbYNպ1Dλ5q]|^sHWIDz-WDL`#7$ĔӜ*8,uՁ@UXEVdSޓ䌣\"lm$VzlUN9pvmZb1.ȃ9hk#*gtbjFi FB|X8Dl%Ƌ`@FO0޳Xw|~R!X[ٹZdٱuTvzjimwu~0{q@gL~,<r-x~Oo Džm[YAW0.4xbq[گŐq5O:xJvlvR*fd KnM!6s}V)*()QzDO>E;cR٠5cA&GV3=X{KsG?~]tt* m9W5 :ah/NO|]{ W(SA̐'JjS86y 8 bq:bzWޱVŀ`Շ d6oY9pQ54|.hk< $i I6!:,ruJ!$F[F +;F%wRУeB>Fczry^%Ϭ?_+5^y GL)ߨ_~u(D3j}w8ǬtܚwWkOPZJ{FaB2vFEy6WB0uFZ_Š)t6*eJ xk*?]f3QqwA^i<9&bjbW\Zv&=]'ddjh蓵Ӱh}U%YH0/t@t\9M yXY3~a6{^Yyem`ʷQy @DT6CPdW=;'IQF00Q"AAـmq ޳\~_fnlb}NƅUO g2bgQ ]D0Ugb+ڒfp^=9 9[S|l)66Cr3bɜ;uF?z4vP?Aw⬭ +HG9uʴfgl4N(.LrO(# $ sQ18{v2F1$,My!>I&s#y cAA)Θ>f'jƛ?7kP7g&4w N2E',ʘ)sڰ4sཏV{lvBzK;̉EӒh{xo`SE4{I@;*'BclEG ~HPYMEnd̒ _&BAL윹MQO7 ( ښf DBN\]܀>/'c= iCy`WF7J.(ņrjI/b&._qn_pZiL7+H -o({ wZrPUr3K<_c4Σ*Y'^2qX`X0Y1fs :͂%B!(έ7*W>ATT!$u 8 –\ XJe*yNO9vՠ1% %΁8jJ]/rP~]X 3˕ĊYn1A-UE l3E,ZsoH5q|I#/> ̼7ݿzЏihtC,'i .$2.w/ 2,hI)~U[ˤ(vry1P;wq|QYN>yZQ,))9lYG@'`n8/]@{ezaVkWjZ&Ԕ#Ē~Y5,\vWW&j/m4:M .9 J#B#ay\=^T;~rv#k rlܶ ,ǻ=w6;Cthg;cIMƝqv WUi %:LUK?±#NxȦr<#E@wqrW]>v%PB@MGO!X&E,|IF*[uBIaj{Qk&=jkdTwC>o4԰j FZP  ͻ*gCO]U[)= `QRf&ѓ;8蚧wB999da֞ULdp nbRrcBC 膦(2QMR[psb!?i~c~U@$'s"~z/_Avke@eĭ\Qkpϴ޼;;<{8@?sho $A\`h5DiWv!Lڡ\WQ_]U_n9,\yѓ69v74x832,A\9bKzףrxnlAD4")7U `vИ fq 3[Kg7̇GTe <цpS]O]46{D`<OJίz$;[Lej7ŇQL@`$Q\TP;`#*J k_PoX.w^6ʧ)Uuܓȩ͑#I`VIi27HB+x+%`~&EZDp!c* e{@S\rJU9҆q0/57M%8>D 0_FfAdYŸ߳X8su@[ v)OTWJ{}CЉCf!J31:&.R8^ElCU@A>]..G5k 'aG13Ǘq@( 2h^F#jaZ+s431=ϜfQ-b`N0,L?I zOvv>}lQ,|!~Q8YUȜ>vEx (5p k2UaηVÛbrG, )UdLxN$wEbR`@@YL_ ص-4C85ð> Zј$ +Ɣ|Ǭ 7`4m{orGSݥi4:M㫟]U%H j<4[\hZds-M{NnےV.e2dC ut[ ȁtͮG>G";V4>oT܁hqM%_Abbh0&d u}a$Ѫf`O!Au&}A=wiQsVw\2E40 $ k[j5. N`吚)jzd% ǝ,J;o(9 3M`!̘h>LcDU!JS72PQn;02I3mk^dau{\E-vY&EgFߡ j2&r^?k:}bGPih梸~<죪;ۋ݉\}f`!06&{Ld$d:PcJ31.Z5MC\A+ ߍ Qg?2?˨S> :Rv,;ZdNI!x7p⁛bhoGxS"tLk}(( 1ÖПiZkR؆0\% )1ED8 2O}[d5kpﴦ˓CS! G| hSHh?̦J16N<0KxsCIq+L(hQpang;hazSS$795(cu3xn~g?)  _W(l ~CQ΢ȕt>0,uh[IHr1Xz0GٓAY,7D1N* &ʍ83_} ! 7>  |2ê& Du4~NE.[dm@Eq2JCL}0^!R6,/$L\X"g2GYb֢M!`' hAN-[b;|bծ: L JR& pGT>{"n$"W/ > %B_0\&0& ^7w[ОO<߄ Ix/'ĉy `7%`"DXV^5p^ݽ.cy<ffvfn+vv`}K~[ ᅑ2lΩTA2GyXby/,?vFh.i,.<KۚvQ86 OS o|<,xYGUKKKl 0/~NU# XyӮ i.`Qrt;˲~I+Զy<~uwM&)aRryFi'A3*=dfX% xJmv$PUhRwv"L`b4]'O )S&AZ`;,xqCBQ0W1ưѭmƥ.CU,+=8$zר5 ] L.t~< dxY̆5+$  o5a'8(Cz l>r韡H@Cǀ=;ʮ1}@y#Kc[P~$@P< xcا?3n_ZǬ 4\;gTmEȨ:<2<ӪFMٳLDuq(AP'5 ufBr}w}܏=v9c6>c"0..i KdgtXnZ.'ϝ͞Ay&vvczkO#1+"e21e2o+ WLMǂٍc9bfnh!WA`ٻ:Um#1<&.p(~ <LaʒN%BK4H76&> `h6 c0s<Qō#  U TQM\veJ8X6>^iTg MH&F5uvhѬGP:5P6/) 96&b^ۚ.C'RF.)N/WUi{8ؠ3PN& ;7"tJ|>ja\=K]v-h1e;qvyn ˣ#509Ӝ8,ڟx6qcԚUtq y> jzVk/`yENӛNy\7ч—q"]؈GO@,Ue>pp*vK۞3 iD:f`($FB!Mȶ6٭a̞]󉓵m}JAPl!/2̹r䔨Qzk?'ִ3ݾÀ=[Y3qlv߮Vw}{ gT-FW1ZUEs2Th Bg {w Y4>}CQF_z`pstt4+lC M. #¶-(V0N%\G#c<493TZ BUROC֏ht NԃlCh_H.0Z-sͼn]A_Ѣ8ɐPUeދSJ;?⨗Me]/  4:`S-Kwqt!+X.iTUs^%҂(vrAB٦8ޤ)rƴAY{giEE6ѿ -c0Qt׋zLz 4[vm;V .5+ C 26ۃV7t<[y߈ZǢ(Ιr.Q.a+pv|VU]<ƞ{ºrmxxNܑoH.~wߖm| |x~ 8!1x%ٷ!]̵S,s4 "*ZM~Δ T] &ZG톍O~_ɴ&Y A2xF8]yVԴv.ϴk\WUYUU<0{b$." J; |<Cpyj_zV`U&l_9)|Y*Y1@RsŴ:9F# ɐ!j-6*(šy~ȏ ~z8;BK(+}?6>YvϾRCSEw2}bnKE8Ĝ\l'iUI=b@G v { IDAT6b19,VR$<ʎjWXxxPf1(l7r#P"`X.}a3<~7+޶\>?v_IpPX|4ᴍV? n䋎!hwUzⓦVlPAǖVB՛j &ƠM*v{Ϭ7 dn,8n}. r@<9uӸV5"=DX3[\ۤ Z$A+#pDzRG8l  "1]:p2 yE&.o| P*epC[X+^4>鮺vhP):4gF9*y){ؼP9O7B;re,0՜ B!~%1bzPض1[H0<{a^`poF_ " c 2dleb;@mZ,uE]mDq{'E]@lq:`vΛVdmi8%AE"lDusO΅ɗ$tv>b2>?y8@Iq2ez0! I.~( JOW$(Ń$¤ ?8l  .cL b,/Q08(dS# z%ƙNNX.C ϏCǏ>j[ŕi|ʕL@+!6'* *f2>kAbR ŘWK'!r*'Jz\HX&0~g旬ګfG|dzPp3}ޙ)y2cb1 L(6CLw{N? Nw0~؟$@6P+O4ԍ D:#Ph>@, I\GI ǣY=D{015 ^CK7 ~ ^#)tc&0973)'6C a,/Yn}w!{oS-qӁ2SS_Ra|?ȭlȳv}I|c jsT@bDQ3\q0` ')L5 )M qcNSCOZk ZO]a_{%C3젷1I2*dԠLyp_o7C_DӐ"OI(lIbr \'Y3_6 5~p, Z7 42 $a"M{̹DMg~t:-qf2ɿnbfM+2C !c[x8~Xl5qtX./9 7UifO8Cu}HʌhYB/M(&)W2oCn ?5|f ɖj aH4 aD@{;wKMJ-:vnjσf vt$i;~6"K[o.XN1mn>?鏖˓:11iIng1={Bv HlZssf2lem$7& NBJ%*{bz$4u|I" AsJynWԔ22ĵcf3OT.S8&0]ԫpR 5?^.1=q5p4p<)|o Fx6%Qd~6[Ҍ.%k]$R7"feNF[ bkDb2Ą` R+[ʁ#a}*^ `6<1 l^Hd>ͻ7|vhڏqyS4IJ?x-_>>YBۿ#4..*`poM'a"*Cpb:7"7$wtlSi$1d_q F +k#& `* t/v@Q{[5#48;aC<~W$Cd@ʎˋ,pk& j3ԖUAӘi e1 2-'k\A\.)GL>e5 >qP:I-̜9Acb&&5v 󇿯㰚%"[]rߘu4cowwXVMv Ty2޹ڛJ9xW Pg&2<3X!JB-nI$ _&d_qh2'`. Js"5ޘL"ˮL9)hpgTs5R`Zي`-G&ow-h>?ܸ$MÍ7\ў )uZ33".`‹}ՔrxNOWkO2sOu3h/}yVۉ59m&$^ lD'}Ӟȁ[a[ %X^+Tu/ȜwX VfOq؎Wh1oR稣>jڊp(X}X04]KX Ev.[u+g$\ BX,pXF#W?  hn~ܮaeS,Ԗyq̶2_cs(>vڐvϡud=@cԅpg&b4fAqN4HXc8B`2|c6y׏?4/IH&j_QOf9ؒy63B+1ҿوz! X|WќcD'ԭ0 0GáklL ">,XCY}SB>Ȍ Qc!7 {>?}$=r ̑HX7_G\HSck3m0m\JϾb4Eթ@,cG;.}` r{. Xџ aF% e b`yBiQ⋁ӞT(scdԿwS۶:'~4. ʙMɷ;C9чOϮ1Gpsu䣏);@f|rB'DIR5\;WYPl5]ɳg'uűC4xh@3 fGT"صmoW ܖkɴ|~\,%|}R~ 7^] ǿL1UuHVAgߡcԾ7+E _‰%@Vw'<fO6l#s'|*~.a| aℨ]߭Q'%w7pUey?\ 1s(fs1nrT^ n>HM6{~iYƔ*&d&#e^8aP 0SH71oHQʖ91Qbw\tZ@*5]b0Jə==ϚdX\^H?P\PPͿE>K2W>%|JN;[i0 E vsAF.MFlFɒ-۲R"­G{ju5Å}o#zXO*˻iGDN pSE穀sS¹@t{O G#qf"Zbœ䜱`NphZq8<񹒃hafmhr)?_C3΍hd#yN4~2ICz^48\կ֪Aq\2UB]i1(C \'8.H4%R@_8 Dkrc_3`'TLS~ xTƗF󣿅ûD@Md}L. 6׆|a{`5o/p;U5Lԇ !&㍛vNg P`M%>D2Dž3PBpa_ @DEABH ^B(4_%/bر11\ip-c$_cG#Ѯ' ,鴯LGLI`:Bp/3SV4 Q[E+垷y^+!s%nhޤ`NqCY'KwS PҋNaNH^wQ*`$ w-9 ǤJ(oo `T?Sڴ٢`*s0HTxN Ѧ!Q_AiQ7qiݖ.lP1zCkASpY賦f8 Ծ +wgi8Swcf$VZAҔ $~+{ʆ=͔T BFkCXg(椎3I?SI[$e{h v8cCIRusW @RepKYaD.=O'Yi4tMĉ˵$U;pd<V5y1twr:4?d,g jug'~0ϻqa4ď 2jD͢.TME;&[ kS@ԺXcq{ɉ? ;~gxL۞4i g8GfgtgJ;mjN4Q/oÂB;*#:= DL~S,]89,5zME{4ZZ4`Zs/w>s'OssDXqM7iUYSpĬDD{im\B/8/yiA\;!۽燥@i4XUqLc}OISJyEQbx_/'dZ|3EQ|w/SδzS?}b<@{𔁬OmjP},9Jǔ) a xôsrl9gPS-&rTۊb_{Uj9'mA#ĥջ1IDATW\_0ե"@tax42m4m4%^ -Z *V&a&TD*ԜQ"C T ƻˏ-0t3|$9k6{GG- mACSw@}xѓN %-E௰em7x{ 1P* 㾡gԸ>E[>P[4]0hem@|j:kn5MnoÏ?n8#zn3qi3IBG).K1r1xP g6u'CQ|5S@5n|d{|~.Z]p-1RÙ*Nk/_1]B^*.#ȩX a9< p7 m&^hk,i,: U pA.`O#SN̍^)kVUU k05s݃@;BxV 9Aah7G`rj9t~nA{pM{'o<} {u܀;E1gկȻ18 $̛ $^ço$jcw18R/Aclχ$Tc AmI*U sG|O}l-hx_}R V %;Oȉ"$e g5)#9s@+jY ͑s<]^_̕wzXYI倂 >OsʂJ)p╓QDoa聐H𭙋]jP:Gk#.ݝl#pgb.TPUޏG}Z¶A!BAzH|ܪ s~oZ,ͺ Wk}[X+ NW>pgD!c"i@z_Sն",Xa0X9lG|>4cf?bXrm3T$XǷчJ=u󜪺uU)4Wz[I8|DhADM,019 ׻p3p`^yCsg~]s\™5 4(]Fj*Zh8}# y/o ;b /jϟp$R51׬V람xGƪCG#g`8c7|:aa|BsL0}9R|qK{R0TF]6 H|Nޟ-hi7n؅Tʹw &2 J1DoI[j5.G?I3nJ{4mucAey[㏞RUMR(%jJSNTa{uk~d]l@C47c#uUuoL&Wؒ|aPlwMP-_|!Rs;>Bܨ7We \1*.y#͞=%Ai|cز~y4YF'[.g HXϙ"oZ,). m#[[7:RU׿b4e,Ú8rI)/db S˨(\ȿ1"YfLكD&7:2^+[On ~̚ufu=?MMmT2^4޷L;e8q"dFGgz!X\]y? }nPw-hU;8cލc{zp`_}lu\-O WwyPa4V{9Rli|\؂^>h{ `<( |ιCGrw(yƹIENDB`riseup-vpn-0.24.5+ds1/gui/resources/calyx/calyx-shield-green.png000066400000000000000000000631531461742244100245220ustar00rootroot00000000000000PNG  IHDR|fn!7 IDATx^ Օ.>[6$b$H:'$fT!&1t\d&1Q?h~sdhtIo185j" 4^Q@?oUUW޻n_]~?۵/kzkջ^A\X,Khb<2K`3"gڝ߻CACD+x,W Z!5?s/A ph q`W4haZaJ`(܀y@~<O!  v_emo~^w.,$K4sh Oq .,L$X+ѨO+$C VPa 2Rcp5ۃCt%$_ ;~a/^qc ʳv-)~Kşkh>ID!q/$72[,g'{;:s5~g|P?`}ժ&~u[4x}2Sϙ<]/?# <7t }1 M@K?f e/ kO?qA$5ksGN4zP5KVwm?.~>m2'A*FXr|2K&Cg'< ~li](\*S;+8yP6uktπOm?e>v  وSz[ o\ &Ҳ|@EPk3 Ĵ`OK<}Ȕ#&۔ s 0 Wߟ'x~o`|Ub 0'bI ]|Yb[t=y0_)K?15?Mˇ?j_KLMR噛7_+ud^0BaOAM0JʮB<$lr>+nkƀ'_xܚЏ?z"O^? u[?zt~ыSŲS?Uqj5O)*1 4~ϛm,j3g!U6OՏM'ljK,J"f! nbXb"LjԨpLh!8VWfd_zhb0'܉\΀Pc6"wqޘ@Crm;)%@o,.`MkKb5|OƑ}{ ~6-%95pє@]_1GM8iUco;qw-N2-Q:q`Y^iZZ7<?~y4$^ ? Li즂Ua/؂h '!L pK$_5È 9<٘Y.c/؂'.H͟K2c# ~3a7ĎmAj~l?y6_$ZS;\CmlԭWKA߀R- 0Wk=1C5ޅ*/:c7<#ozbkxj*$V=7zwq N}zD>~Ud/e1B||,ɀ_hx \Enȫ𳻿 2~a&Ӂ133gzqbK֣bgg.+` \ĀππÍV."?{P0j9r >>~n[q:b/Z9||<︂ŀ_y 9tEZ#~˗%`ggoɭN[+V΀ππߪ2P-7`^]EDo{AO^eAD2޸0 033WM:#+Ez!AC^LmKk$ππߚ{/^D:k3:7!|||Uf\E4Kcgg/]&3Ă/Kxm K>8~u&G4s$Ysks}g=2cggWNajb2G {O[-Ӯ%udxu pR1(+֢L!oBI6*2iGrW {3Q&gsQѮӎ޽f':nE[?E_@ tiDS>B 3'A;8t1:Cu{msիiv=#?e1 hڟ6Sg?|Q>j͵w' Nicܟ ~j[~cјCc5rw/]`%اՇ 4>>64ůp-z&pG#kA [F:O,ʥ7Z[w#Àππ2ҀwkѮlِ\sW 3!~Xy~]/m^84捿7v;H邺< .gN}@7cz$:whu1jΝ9msM  9<>|ٲ}-]$iiQW_5--A3Nm}_z;͛4>>~ Dy!4n:3?OioڎMwoxܶpZmCW.>kl]BQ\Àππo&A$4ǎv8&?0O;BLZ"Zf 4Wn6z#[ >>]Q/?hpSUA'M; 4EK(d^!H:;i [)cMDT׽hW033kޕoo"z}ղ2p5Ȑ,NIIc'sQJ~x{,Wq𴲬TLꑓ%]=[gά]j;u=VVm霾E+/=,m4uKFˀ!~.ng:`eI&>e:pa/Yڼm]pфG]sxw_rxeTJv¡''C̚rKp4ᗇQ& %MwNfgg ?ۮx@ CmX`/x|wx8uO7d=.Yv:q133sbpaƓ7݆w?WB6:ɸ˽3E^D~d;q߲@i<> Y|`ﷅ#_?6Z0-ђ D6^~5exK y> s;ZJՊh|Q` ~RGGQ;y'/ThCSeEݼ`1 t]]>N%:u0J?_mԁhEkv75KyſE` k"5wVSe1BKpE.R'a iO3 .uVZsD=38~02-]|v Nj=jqmiy['w^ПGԗ %8>%WRG͠m_>(! :MjbS׼/:c #_76oET XZ=)i=-r;f,>ڜMqƦs #N=x|Up[e߹D[^h*ɗԌ Zt,N[bhwЁ9|p 8+fE ѰZ^3 ;Ҧ_j J.@̮3nc@j hP_Qkn$baI]JPRI hcFIQ'XE:A'AG ƛHE'~|ro9@8Ja ۇ> 671m- cOg!,@^f]Ao4hd\Tc7w6$5̦ aMF~^:Ҽ_{(/_r]>ᚴ@ZZh[vhŲmiBv.6<: Cv;0|g7x;ꀻ=> UV+.a<]FXme%t/JjhN:Ak.-.,?wUD' nPG@ _X ?>GQ,> }K5]۽HOgǟ&:XXxˀK\?ԏӯ0~(~!0ȼud sϿCtֻeܸD%a (v5{ @[!Gˇm 2#욛~,Lee%=ȱ_^Xōx|]QZﻮGL'[udq 'E 6Z0/A@ﳍ66Q,.ӺhyP-pOCũoI7 ^roP}rьeeOݱZK՗/Q.}wT0n.G iyB~^4{> Wy>ǀ J%lX~PӺ=2ȥ[^'4{vu;dCpMFQ׿}N5062ǒsrW߉n'(xPTʬ8|.ʵyB@M>A{q 6ZL{?\FfwFߗGzO )q}ILl8@&H[贿)[XrN~ Ngp`e]ʄ<u] |ay^y>6m+5h(Y#S3T?dqiŭ(gx̿dpc}s_=1oeSp[]_w̚(g~n6-N@Xn'oSegUd1|齿ytL3/^x+F`\;۶dG~ӗ@SgN#h#-~,sʅ٪1J{.yxƘ~^k~ٸ8m7p;}a(lqxOq˷<=Cpt]>Xx8ʿKv,]ݫ? D=<>~X022ৃZg!> ] k.yJMA=CO4 D3~-M􏳅j c}| 6yjH2֊.ÿgp2;6/#\^y5蚥}- GˆKŀw'\Ys9>^wtm?mVk?y:`&V!|C{{^ï7h^t>{ۘp--߄=ĒiO_  'yR6MxHu=|{zѠc^sJv6h9iM9kgbה,[e{YYdÊ_8em/]MF9SDS>%.O^3GŖ4Q,D{Y鐖3#? ۃgu)NXcq%c!sjgv.oox)N.@} 1$ln`6T~/h?+Z'ǟ7{,ۇ?k޼![w6t$oԀCq.:~Ji &C55]E΃E63 Bߺ;}R3 > ~`ܛ*~JXLs_}eu'G||?V{VDE|a*6hWmULk ) /k{=]DOk^oG2xs9|ܼ_w{/vPh.%Ȁj LMyra3u? o(Y:Q<>f +Y&~L?Ȱ bvz`z7sFg_YgdG-;lt=u^6e= 1gM~Rra &yNz=)XZѫv ҟAԼĆq?{hv^4]ozhIFসxWZPmm?)? Q.>)࣍[N[o8YQ(a<>Rrbq :kc ~k3f eD?Ӭ;ρf)K "md5)(0e^<Ú=y<[a'j2Z~j T.>V>l``zC1ϬiM7sgFXP,NP]~Dy˭PN3͝bD1ٍ|>]*}?}Mو6q%S41O!V(,;;k5|Me U]")!.>k, ⮩ Ҩ7sN&T?Or2nG[y: Q<.>"l'FA섺iЎwhsӐim[o!~'3+GN&bE /HdMcCoƒZ PWk]_729Y|PMhs+:7_iQc0ǾCK{э&OjA2kA|g=hbwSlQ!|-p6.盥V{UL&!_gh 8E7Q q&,R&m@ "XcѥӈpN>i6;!9%d̤Z}PaO>al#06om<{&kqp(E<ommD٨v]f? n`&wϥQAu &=GD(7. ֭(%DL5Z}o?K2u5w1tBtb_rȕz=# 8|S^u?C>qx|?ءUCS|."YcF &5I(U erh~`t..tM_x&rڳ Ҍe;vMlnlXE|=@9`bs3;J4sG#lqb^8u'};Q>IkXY# I -Mu]p sLs \$? Q|ƧfJ8r y jh'`'E ѵ)ҷEDYOw &QDO"9I]5fA?sDfMO nD Q0a>iLMu- tҾ>ooz?BM#MA<%qN=y5@romWkAJ\P&}[:: cZ[/oLc x #z𺱪]'G#~+;y2/$:z<цmD+Q6@>88+Wo7mR_*Ů N|31\@٩7;vH(^i M, %ecH9e?A'H)$bU9|fO9rxډ9u"ZHi446oM+[sm'ݟGTClA~z Q=^GoD7PgN D'ONmKgA7>G߾njKw\dZ@%'?2=\,ǸP ;4hnUSw7Q7R6m^7kxstm:AgG" Lg%:o ;] xYph1x÷}4!%|׋A([N}ICF&;{lstK)qa|\wv}匵vCՠ5 QY6A&sN v|Վ+ZZvhU[^=𚱿XwO[ppOyLY7z_ k)%t{Rs%j)w>J )I#Zpcq5J,(h[MfM?淮k%&UӽMrrci>h":ǰ}neri䕋P$.l@urp7j~*H%~߂hqxr!,q\ މo{1)&ϼMK"`.A$o|s(kZtl`>BQິQM#f.9˶yVkgdE|실X$eԗjCœux}){DKM%(Q%O/|v"[EB5{4qͅ:瀣{s!m^_"Ukx>]rӝҎY۔AuvҲGF)#%,q ڋ{P-XZ})ϓ4URJB,FxA7?G~˂q2c-~ov]6KzǮ>];``VO~y`gBZ6!a8yGN6s{ZIsoۃrF]6.P ]#4HSn5ml|]`']L+-:Y6^UM#f~i*@_P:NYz7_Ww-wn>s~PT>r|Xo A׮Vi>v*Wj}SKވgq<9vO5CUtMP=YqnʊZESha%#{R%Ic`k^~[1t3:u;g)Z]T} ѹαn9URچ]C&cp=+&DS g'e3Ee *eJ" ]tXKQ`).t(ċ)b47M𐂻 jݷ, G?U>ع]x(⯬A` Ǐ2&mI$̂\|=x"po Ԫ6sMku݄]":NU:iqv垤|S& ePƸd5q,0Iy(Bo$:?%\8;W4@:q8 /4|GGZ %._ܬV6yV"k~t4kW4j\#W ̎ow4~AB;w?ۜG #׏{غƹ{9$պU;V Ǐ2"m H~$z^A"8nqDI &Ix|R$9\SKT&NCGNMZx)u5WEv}j.Aܓo{H/SSgcDu.OJJDQ =ut˲i{fR?K$(EN٩oo=+6zUJ7+AR + zwdR?ꭥ!6mEZDOmV8;U|b֎ <#iMtV _/Hl~CpB~8'^hu*0 r$N/ٱAQoپ.Wj'1x=Io_+@[XRv홄Ǐ2Θ6u|QA8'ΦIPo( +!:QZ䇭{/g?stΑ{o ҉ݠOVS@C6{[C MO]rR4xumLSfE6~ '1{krX{Z?nIG=FB\\a% ܚP@^sg(RM 9'j-/Wr%(MKIy(*MMZwVFјQHgZpEj>Je|Sxg+@n8HGyݸ(+zf6[@/k~CO s>C ծ[=;ٝPؾIDnzQ"ǐQ۬C,Di~e94]IӲ_S~u/F^UzSٔ1]OGn w?7Dqu}87~y$p$+_kQ4C,Oz@蔩깇ˀSfv#z]ڌ< %i2+{iHn޿PZIjr վU '~+615{w'Nu%v^h瑧5Q[d('VogUٮc_rX1mD+ [G9|trUwR-$&kӟEϷ>;_A2\ IDAT\gcF HМXƌ a78~nQ'{m;smc`zwwѦm;Nš* y_ i6m߭$ U*>"%L!:Bx0xwB>qHйIN ph̓El; >CԾǎy4 МY4gVGP𵗮O%O h薤a~tR׃}łաP&6y=zbuvzF% oE{f.Di xvDKn8T4|0y> .7MeiA̜6>C ŸAV7O?KskHNZ83qji trf@QSQ;J>Yk8{ŬN[eXIfÀl~5~W78Z~坉f(7piyDbP9S#/ Ͼ2xɤ8ML?/HU|DD2hɳ "ox薤9l7.qfewHtˈYU.j$/ᱣ[&= ׈af\vU՝Ȑ]{y*U|f)Qjn:> *!~u5EWj8 [Ia 2jSLU?2DSf.6zgCIC5"1 2LYD)38qc+D0amԶ@ݽ+!4ByaW 19\Qh˷xg]ɵ:38QO@*Ӭx8(xCO#AsdAuM-1Qp․*DW% x -M~CHQU ZؠM/~R) 4UI.sU)B :IEUM"MO ?;c]ÓtQka \q'm# N*B)J|˷fM#6oѩNVf.LUUBE|dBƫ*hEW1(x*Up k 7 7jHZcN7e*hqyu\[Vk|mQb$(3&hGޭ\,KMKx?sF l[u(2=VDcDO)QR(2{UW[cr[hYxIsjY|Z;+߀n)"pыwED4_wUW%[ e=$ZmTW!۬vAY<ָnO5_VWD?5Dp,U|uyjqs*9=38iMᢼ942AEU^{*R"s@ԲT #^U% J.5oqk#[o?tn:"›d̸hqŒm+O$tr'[ Kr\5N:N4|8]?T_ ?$ڶFu5ڨP EuC超VZW/4p,2cY`6m? cCbn!Vt]tBZToN9|d A+Rt<4|k}誊9C宧TxJ_TZ'U|#K&ªJ>15:b'h۠D#H%(Ώ?ƌh I`? s@S ?%~d櫺nņoףOIO߁YE?U[h͚"^$Z(kSE phIpۼ釯-PJ8PeǴ5":Ut,YíX`I >4RD- a~rAщ(? Weφ[iNNjEQܢy){ R4 Ve vӌL4evTZaT%mÀ k' Y(l"J:}]P{-TE "É$(Tt%5BQEvV./bt^e2's R{mU_yFGu7 x+$B2g8BfY/jSYq,7N,4\:q,*j_d2:'5ފ"yÊfg0zԯcοhcҪ [!~:Z~[l2c:&_'u#`ՑǢjIb!a 4X_su 3;_%'Q[~i2s5{DnU<~tC'a[6?¡mtkATӷe _^m c=vFUSB/3c4-$pr1v*ܙ7g%Sp :}M?nquĚ[Hx+2s]rXii$j8u\rg9k _%׭UKx+dx;Ky=PA :[IK[W 5@<1ȸ:O%O݊V;,{=4_8Ν1na4_SO4^EǼ;1t" SeStϬKbBGOx+ƠʒŠ_7׌U{A#ϩ+i:K^WOx+AE]F[+8 ʚ=榑8~N =r2uuWD= 䴍bE_@ 3ƝVeך[hAGjuSJ3`UN`p˺,lGי gBCH=mx']}"h ?v%R_4ΐ1k JZ^ |YΡ܁70KЭv=9o:hLDp YoŐb:u29LU'ޢ"9Lu|L=[u ݠjs.k!EN8ej5؟VMg"3CKN4m2IYEkZ~ȆykѳKwUs\e_nUVa×Z{O|piVgPG7{,Gsův˲#vQ3|{oAJ|[BJ!wO^ 돣1#5n o^Cڢf}`,&MZiJ <\~N _^X ˪ݯ ">C 0{c-_<:?s+BET38@>=T_ʀU)kx w)Χj"RW`2+V4UW~ۍoKwܿ9t7_}ۨkENXWH]?XFʬXꇱ^1uJ^ V7zQkhb>d|"Z%!DgSR{B5U9ZQdhTu[C\JU`WKmMT^!geQ1_AVU jipAީRQ%AAWȣD/Zȃ5]<>d4V7H_$(RQ:'j!7vT 2Sp曯J>l ͛}T/Z _{kP9lMpD]ʀ/XWzd*Q;oo"zU!ZEaCJB g7nUÀ,Ǹ fdTH\VehGG]VCy%2W/b.}\P9|VcU`7>"`Ud 9+ >Q0AUS/cL|^{h"-1%Ā_~Jj vTYK/E+U1op i5WHG1+~'R%//cL6mU5XqpordVBevzCS^_ĬWu|X9=IAFW3+@V]5UIPZ!.E_W7HjTN7}:UV>m_.$p53{[`7Y${UMUS³CUSO*&~ <2Eq.L$#5OnAW)(WOA8,=)FIPѾKDqY :pZO< STIPF-jВw%OK7aۃʙJDѯ>-OUgOwe+SӕbHkQ1ekU["eS7Yp\NfYB)b4fL; })IP}" 0g#x-> F"*&~ђ_腻n"vS/|GFDד/ FeKD/><b- JDAgW2ʥ~vbnUe*- hJrqrc[f7Z85uѾQyM*UπڲG6dhe>e_KL*iRFҔcA/RQ%Aع]x֨\\U5aO}.w~' JRpG"FT> BEhIP~5c`ܴy}0 ,fuCYh{OJT<l1\[2o€hq1S<b- J#[~gwkqO`וT:Nq5MM4rZ. e_7a#m.weN-UZ'qYW/ZUUWjJ!"8)p)[0Z'q⮩zu\Gɾ+/=,hUK>"@S4\E`oJϝ"*U^_WehZ7S+1n /:[*Ue4d\$hIP 쑓Otx Nd }4ʃY$(y%2b- m袮JG#=#'.|~N]sDt~AW 7O_$(:&hh={.%~1 Q5+4* ʜ Q"ɨEKG~hʧrCgDW8kr9ݪ3A_y W>t%~VKGC3* J_$(']x+1"i5 k*b5⭊Vt/ADHD%A)- J>ί [O#O+f\hIPZ B^0)2Wc/irH%OrE/Z7VmɕAշ#G0k ˽~#R&"fUB$- JހGk_k G%Ai6>$7IF~ђ DZ^}.5~5Y; S 6lEEK|$?A%&s/ %[j>ڀ>uKT֫!P坺M%WKo˻C<4]L$H4r͂,UWplMiU~@$* Us&ɨEK5qvj:b/ޚ$EN[ha() JocpwWɯg/ _;]"g'G:JuY' < ib ~5H҉v`,~' _#NT*7{,'X+SLWn떬M a]}w+pᷲQ%AU!%Mo=Yn+4sK 쀽6CA<*+ʣфζ<#-q_@?{=5Z]2eym c>C^s>,IDAT\HIP~ +]"_-3֕UXwJp_$/R80=qt7t1wQ)OW/RvE]OiQ:a =eO] 0{3mF*DGTL"%A 65=*w2h{Y Q!EorBLPslMqkv-~C|E'X`%^I"339hIPNqSqg>-Iִ.|Ĵcy~TL%AI 9;߫%Xl?=(7+y7)d]ƞy}U@xJ칿w |=G#=yS$察7)&MV=\J+%Wpg{J4)3*EJk#լ-xR<Ҽه$l^rU"7|p׌!B%7d`W,XM/w {$'~bֲ=}tA܄_$( j\s~?(OڞEJ0^)+&~BcP?s}&M ]?oد' ޼XEȅ $H /RzbG LHIP$GAP8rr~"|.3rpp:R_$(r˺bYT3o}Cۏ_$(+{qũW`Caf΀_@2z5']TrksR \R:+m?*&~+^=fNJ/\q}X/N`Ea~TLV$A{{yb5ꋲxM` B${i{sQܙMuӒ@*~b⿶  .\X~ڃ;zO3c~Q1GB\\fVo^s5oXLp`OSV, |mo6[FU1a]]+ކ\X~i_ڦ2j2liUL]v[wuӍMk\%P0 0lA>ո Ko$৕Mw|}| %_ܼO?x?ʐB_͛~ME7[ŀ_.\Al[G0(0*&~$(֬?Fc.,JHXI8=ͣ ' B"5w/]+[vcݒwŸo>4OfNsg֞v;iK+M e[4OpLWԍS,+9xZ`Qv \NDnaIPW.-M%o*1_T ~=7~tPUqe*h՞IENDB`riseup-vpn-0.24.5+ds1/gui/resources/calyx/calyx-yellow-shield.png000066400000000000000000002172441461742244100247370ustar00rootroot00000000000000PNG  IHDR fw!ϑ IDATx^ivUvm 5ZASe!H8NDP["'U@%v$?QKjmbT*3%@hAv ߛ{=ϳymuK =g^Y^g]beOg7`~91ɲ,?|l/zIa^P=`>`񅲚~|q$YjVr R>Pop8M@S{fq>KktZ&PPy*yи\9 ƿ_jR6"@\raEp1.F{@b1{y_c?wok˲<ײwoPAKnq60@bX%qcã,,uã,~r8,:>_ _Ǿ/a9Yj|u]3'ߍue]OG@_.]:ħr xa\韛ݟ7򾢉[&|Ӈ>}9Og3Vț @٤)?|jxr֫e !F25C Nk\Dx!N4Xq1},!*n_[Cpu܅gɟ-?,rrۇYC~I}A`;PozۇϋkCK" #1@b)`=<ֻ5rtXYN{@F1O|q@cX(~h_ey7.g/}rurPC7!Η.!;LSB{ 0u9ļݙ螑84G8 %QD%"c.>\GFg&R<2ܻ?̲ÇĽWO2_2h G cōz߸'-6wrc3e Z(Uz5Pfp# V\'BDx9%2rf%VTeB>Y!S17ecfx&C9P63PPiٷVX0ae`FÕH9_ X baw,{p]`/Q:kH*F`sv]s>Y^Pm7f •;8Rނ&^Q)-a`qLDcrv 8 8hdD 6>#NjkIAre130:gB⦟,Xu۲,}=wqQ5ݛ<}|ƽPw}3w=癃ϒS'[{^ ly*L>t e*Bq=r[% 7HibtS2%7(\]`NP8 -GX<\Q46bA]z׫.ZV$܅TSO&05lmj) đ]%*,CyZNJ:2z~fʠ=4c-\ʭ"ΰ˕DFR}cXn8.}Y~ÇAlu_}_ARb}Uw/R3Ӳep{j0,;}8YhT lRV9kk DŔnQI4MRe&b7Z0"k#M`b! q6L{nRF~ %>u?! #^c|cKy|axطU))(~/!o cs%<Md\#pS۹w'"iIH"~crR֓n(D~ҳ?.b 9u:tݤs&}OFEv=6תp Z{;Ͽrx5y|#^17/t[nG'\RXSaEZS Q pIjKcx ӖQ)! '7c^眇@Y0˱|sd}ώ]02hB'Kl5`vxtΓD"3`<|Ƹ~tA:DrbAy]4w8xk3Z9m?~ɏ+x۠q)ww>gU@PͻZT!oѨYT0Xm5EOX[n;<o]ɋW.41ܐܣG~r;߹C}2j+OB {id$1`1QNc؝₸ƮEm7؟ uzJ='$}iYU0G{쨎-( S/gmAw;6ThӮ<}S8f~j)$Ϧqu9}WOQ+)>7 x\h\8#2,;`q6~.wLR!HNfvL.+s Qe+R_ ?d`=r'X؞ݨPp&jU8$}P`cbi҆m`O-C -itg:=",zk&C2 -XJgGye9my+z1ζ|e, rzrWP[_UۧL|!*V< ,le8`US Lεz:6A,<-$*Y(Q L szYnw7[# CZ;Jus#l=n.R77+X&cLFb- ˜L@1n܁ۖ-<.%rиPbX??|G$UUs›6Yvm*N1bLk?{ڙ[Ot4g[l!Aμ@czQk8;ke443晩KfaϮ'[{m[.yqȓ\{_}92w Q`LL|KXSXG@@`UպI M6yS:&u02Lpƀ"df BJz|WH5e_:iy-Y,C32L6/5s> +`m߸i5NV&w]dv5JGݟ=иP?=g=% ^ LS折Z(SPD{ARMBg-hBWh;>ԦjSBڧ?ti8K2c5'$-kdfdKM2Mehe$'=*:t(J@_i)|TZCamhvG͉t.uss]G#o--AK1j;FGq_~7,wNOmKz˚Qc)?^ﴅh#/ «)fbvS{wksFwXDB@?YPJ1ZڎgʅtH) m#K{=/[KH(=6>k:Oqۖ;4ow ey=Ll,ኼxoa+ $yf3(07X;i.+p+~ 43R82L)0ڢqZ .Pyy+W5N-\r,25nX2 NzRlTÍ9sk(. ->V/NSћ@ Vv̖ItxYFwpv+y_q#o\߿pO\[1"w-YmJHPbGF' -$3B(3Yq28ƋkʦŮ`[62N7q=mW ݩ NIhw.!S@IC'b8+l̗BfsJoZ> }*;;ilΝ45jB:I| |Mfy{4L$<:[moݕ$ˁ8/:s~vO_k/N> #'O2[O@1sԴlgѱv"Ҿ -E Ot \&.jBҒsqq K Qiux3Y 3K'#m͒}sr4#kl2)rw"}˽S3S|PŖxfOzJŷj/i~lڳ;͵`_6·00dCkwYa]yr$= 6miўNH)89A m^+;>YKy-ں}KưkcPXqUHE)>;gٞ9Ǧ%U^ϧi/>w;7FPA`q͘ LdJPIJZQmZkA+EuiXZvd.hD@d$H+"LB=!/9[fu?×l+AS79`NVDO @'dۊ0ѭajAB84vlnU͜@;ܠDQݪ(TVlz3A$kMH 2mJ.3kY#4:G~ IDAT )=v΅l\J]7 c.o2[DS@Q;LGo Y ;ֳߴ8΀߰0޲+B+{AxIzf yzu9<,_?xf|иt}S m[9Y ۟фh~Z)p@h=zY%Äc{ X{PiТi&lbZh9&ӄa8b}+;o= QdZq.+N.X;3bx?-2|ֿg!&7D|By> qxs"tR{V=_r=3DX4 ;*yY8{j:g5 ̐p;2xtxϜ=4{8}fK z"P>dq :-[6PO{ZZX 'c0ǐYUTSFCHDNTuǴᗨ6Ur?_BAL͖d:#zA-dT]CEQEdLyُ\7:Z*"dk%pr9z< izr,.iE]Rڲf$Բ{q +uD35(Dke;_'n,̐FΪCiiG`Li wzZh0?04X](i5Pj>EuY~}gp@LDжjֳDL%ccuMn*99ئ/+y (T4cOkj,/s2('w iMjZTDz뀻;yy˭2cތ0弚8L}6yý˴<6j*=\νњ\"107fn*BEpUV+dV^u K!p5)QdZ3̜br E F ߰:4M3|Tv̟ih=2׺Tǚ1z.<T @uG]Ҹt'a|q`\/Y@|Įt! ȱ$\S;gЙ "z4^Z|L~)2RPFgIks_ #TN=R7{ASJAeq%퓮]0Jo (v \WkC;̖s0y62oN)~י'bϷ45B)Oz\k|ju\=DZ;hi&(Mc͎9 Sb!A"<88t)VZ&2h"^'4BEf')9VBL3ȄA,grTnli]ii5nAp@wP pKRaj)V ]dSy>fLD47:ѹj"C:cєR.k8(yf#FEyvK<?sQиtA 5y~c\/ smf4WpJ͘3.IFV*vԵCΝsυ\g핟Q3+Cxc=utfQ8ױ]3ZI|VF4Z EyF危111`\`A6׳ Z=;j9ܹ-$} <ݕtH *s?D^56v@=N9e}=c-㵅e;< q!.L!/C5ѯN|?/ q_"w˂h T,NK\V2"Y{c N:N.0xn܏ylhѵѩxb1h>&%sAyf]6cG d$u]Gt^Pa0Px(>+2S0nPS >hH>Y&Q4iB Kk UgP_B A6`ed>1gHqRAKTCv۠WҘ͹<#'ܛckS k4 ;"MN((i79 qOޜt*ܜP(K<.U_$S=s0ˬ:Ik,4v @G @'^w\ˇ 06!q! 471s)i["g Z6#s4CkSt ҄3s! fA1waɷiM6gmf8Q c:[<_bY6iI?'T e.? )';cͮeia P5{] O5ݘ8ZFZ#0 6꺬Wቝ.3~&C c%HvЦ ٗ{hd)'pk78Lymk%N`4Sj8=ڻ n4*r{\Z ' S\SP~nbCsα>քuv>ˁb}[;-„\_,y?˜֩{ г/Q?傖u#iM* `S<#hYh-| mlXꇴi<;8Wf(py(V,HikWn6px+i0/Uf1  ?l 6f܎ؤqhN*` !wiri=3hW@1]d"c]`_d @ӽƚ(5=j`1 5);骦% m4ܳ[]n|}ᢠ>uDnb~lg6wAH(c Osq*'ow)Ae/8Nq5x`Imbi0F$/n֜ڒV^@K`44m , g\Ti9Mi1jˆ Oc [L y5y@_\ hqo&+=hMՠVz&f'h{}|v!pP'⚄BJh]DciZ{Ҵ z*&5eLD *-SƈZ5ձMɇPGU;'U_b-@,f(8knr%-K s]N{ #Йid|\ߥ&I|Rh3H,}uY߶w} Li>5)̰2FS7)NZA_ZmokC[-71NۑNK Vvօ{sFV3]ēLJjCؚҺT gC6L`!kc}7S,/xk7JC 'QyK2T>cj}'\_^{.Ӹu=o3 VZ<ڐ2 G}r_7Zw-5U(c[u?{Oqs># th2W9 (mR@_>cns}f)LvjC|hAP徠l9\P^*Tdz -(LJɆA\4A={@k\Q<@D'";Ax;|~@w y74IJ1wOnYo`x[wAuN'*9f*>2~ e9 IxfV*q,'\YS iBOͨޠhq5b?Դ`Fcsfs&CiI5^SrsK pfaQ4Qws ֎Q~_|nsvZp7{Uve,y lr2t"tt~Zpc)~RFg\:қq-yŘHtS31ck6 rU<)k_#Ś9a1vt>@):0ᨨ}U.-9^.CL(9դh3oh67lW}%ۘ<+9e%AYΪhM8i 3ƹuWNOzC" B;[ Z AlFeXtQ6ijry1D3̓x  iz,l_ {;1fL_%^Tz0s-BвO74*mY 2ږY7SVC[tGQIB^KK_"3+؎" Hw9ԞUp|9c~=+B8]?iM+5S}'9~E+v#_p8bִĞﺃ֋+ۭ%~ űlǹUjj'\B;AX+;o4:9Oloti'R˞7sӢvP ?G)Q<'H `֯1..>O^W;i22{\ h\9]?窽Ep;˷Ld6Ӯ)Fђ0x|!M%P&jm sl旭ruN<bZ1~Y62s`zcAmaT A 2~NL~)zEΥ8ӂDJ^/7-cRJAPG .{A86R4R h{<]s+g2*X/ka@*/&!?o?^9I zGSBGrGb;[(#@*Ԧ%Ff.(;=N+R$bȻS]D&bD3Sн]'`,X"-wImをø,Éw!$cC5}ӯdd@6:5Z'%u3[Nj|jmuS䫉'N:+߭Tq7@*ZP畐fe;Ȓk/[ƊNpe3I6,eu (ԄmKpO>aΐkvQ[xzNh>;}>NZp$46f)4Q̎QNKGyahiƤ*$CkkD}xYn-)i} -ԆC!4k8|V:R|j<$d<>Y $y Mx^;dgքtѷ;=_Hy!cvB)Kb,φyALsd#Eeg6x9kS+,A_$d($`l!{< mB_AH}T`SAL E ѩ13PчGg<{ȱf*OfV-aԳcsG #MG#6m集j3vXӂ)76Ҽq?WNYjv֖1a\2WhH KhΦ. Ɋ)c}(j?02xT?2,/GDqMW JALw3”ah7/5)9'3Űד6N[aăeJKAF&f橗mri#מ%_1R;.\Wqg:#|mN%MU>CR_vq|mb@qJ&ʛbc xLj{Db]Rf7>R6ZКv"!ժr;\>o0YO/AqZ 2`[ǣGljC? 02oA `Qߞ(\/b1VwsG3HҗW H3fPWc=dGai)[jn9d:iJ@ nsg_;-G\Uy[24P(Ïj= U3d#) s>~%Ʋcne5rt+03%A 4vuRēƵ!KUQۉe{`F,nY\v pX Z25XmxJai‰k9E+Jd_[|3>7)x3lxsӜs~igBhT!W~eTҦRZj5UA?=ra}/?Qиr酨ykXgvTb¦h]{s3yJR&%*j~7̗|{k,s|k_; +9P3g#UYMb>=Wo_t=9%`UQ^6~ [ 'y#B@V[b4_G*sZ{w~̻g12qZKٓiY _=t@bs{٠HrGy3;e%Ddr!|g?i`QR %O A^K-Wkj?TtFci4~ds;nLT~z9x\U皣?ףoylұtn]9/UiT3k3y Ό}CM8~s[h)eG;(]θfy5=;d10ar`0M&,]}<,NܑFkJ-ӝ_W]8])?AtGFkx7j.Y^U2x0_ڍJu7A螄۬ Ve^PST׵ưEl-Om#ҹ$ ۙ<dEbi֎z@^_rKƆgYJ2恨M$n2D[dk6]ë\ᚅ3`>9@X`XEK8rn6{0b, 󩮟o|U{9x@l MeUܲh KrC6 * ǖ5"%MBH66du"uV>i;߽},@q#}$;n~қ_,<ίӸ4@CMxyHvgC017! lG׭6}Fʚfγ6ogx ME} s{wSɪvvnM48+dXYȔ!V%#J>gP4ToׇXe^{Dn*4 >\oy:;" *Tdӳ!h Ş&2y`CX䦔K+GJ$KA Zو LDoQqlT XK6Eg OJ5JBp4S޽4_dAJ$1NLJg>+ZBxB7p:4(~PVRv}T T0%%R+~ "кgqKo><–ƕ#Hdך&!$f4ANgBG%O-i\3F; ԡ.O̘%ݒ\f4ctѾHҲr|PFo;7e,HG>ˆieE-8]E^|,ok/48]?"5DAvpF0jӼS@rK Q귪In@~Rjt|]!|f b\CVڪ|jb5MZ sfsh^Z ,su֊/0(EȖ̻ĝ;*Pk,G3lz&]K j,ZEQlM#Ut{}  Ra޴'ϳ}@KDe`4ܛjhYF`}n;?qhS5 =; ~FSn:-.hW}I)oxb+ˇ2Qh7VvF25 >"j=;"幏;Ŝs6KFAphM6sT堵2h^U8M{֦ ʐ:V2=;K%W0U1Ω`:۩PϛQbv7rܔ1^M~LQsHYEuǜf}{JەgjR4jf-B 7otsoQ['gO Q?$B?H|>V]HW!.,j~mcΪyl!vMs9BF>E+*܂u*j:uS1pB7nP$S,`(OLFS3q3 R/ orGDZz^X[ioNBiv;OoPj<8SЗ2?;kP|YgJ^W}4s߰{{1ɕ(˥X;Vʝ9<d6Il.:) Yى b&,%ILt;bC?H,W;rFG:v5+a7^s#=//V 7L]7흇TKQGve$Pc;`>ۡr, TӢx[9y9-s[w a"1Pe zJQb܀oyTځX2,C)ٌh>!yBWi,j O@) eNjmܽ=ytJOǖD"۩e~]2eagn^ ąo2@hgP1ysU7 ,g&z]Y"SgP9,ގ؛vu54PC[Ls2FuZ&!cKXWFF3Yu@WGEˬˋ_}_K C]U&˿Ezo8 LښDz?ФM zr: <8V>ß" WYmҴ^8/hJU t Q:#;Dآ;N@%S[C/Bg ?l~P^yXyOJIőZ SyRYgY^w>cR׺$Ӥq8_ w$%"p}S,ƒkg%aLx 5aQƘ9k`T3Dh*6q Qg@-}—0Y=ʔB.KoCrT7ժZr@2ů>\h0Z`n1IўfGAᣬ<#)?o*)8K۾CbmvWei~nBuh!\^#YdRlVWgkg1[ݑӍζ-U]m5op ֓ B3vs,v1/a:B!zO/#jJj,_i%bLa#R6=b~lUӛ^L0xIݝ5Sy `=$ۤc&sV:i-k|`Kku'VJRZ\8\iq6a[#3X_S#5wŐE Z:mr;Һq05@1,%MiOfq^L+KC7x؟<iqD9W4|3hUEN0`T@0.KO>Eb%7/_ \|ߖk{lXO$uFoǤgBe{SRL$=]LFcO9r{GfLOmө*MJGcٓ9p)-l/c@S`FȪbÕ8B μĤc2ah&`:̌^#(zb/Pեie'4ԺV0t~i{Ei%]36, +ڄ&CQӢ~ 5  y4H;-$~ͦ8; E?sqw G>D13nfH+GW˪I1X񾥸_IoƑTmkAYMpR c ֧9b|B UZ ꪃOaaG] m [Rlf m<;OOw><+%REs kjAbVggXjU~mMզgȗnUmFmcd] .٤ _<@cI g\ CF}}=TSKH?F'YA]qt]^w|K"mV ZkŸ-H -lr*(MH9 .9 #Et>vhJ&LIroؚNޘXpafjw큂Id4,*Μ{dc?ӝk6xA#޵]3>\e)>{2NKTj#5Z֚Ӣ,Ž"X i90ܬېA̬` ?mz5Eڪ ;HN ~c֑u߿d3i(h|'k;m=:oI!rDSIe |xQ[j4PecW+t\ mҘ֭SY՗,epr4s zB)D/L%xG_ږ5Z}>Es8N[zh%"%}?淺V ;AEs޳6,#S[{f~cf`=Bzdig-vq츮ZY<;^j h\rί0;ru&cZaݛB,L Bb.6 *ͤ-iŪ )vR*W՟_%t$9NcQ7|uyOyӅc{f>)o}p}Kt;Y ؀Ps rMh(w,0ôVaSźxQXTiC u[DQ7{NK48$z֠XjvNwS7bf Hn GrV:_kfրc>¬sq^}uCa1'I>}#py |,8l ӨJڜ|N2hGwO~q}Mg}Boف/xoq -FvK[ozFFi+)Z֩fk/7y~=M4Ы~`KCR1RU]n/ tӀUSuIwdwg=NtlX*Zuy"T)SuYo7ẖwz]V/֍&6J}NN5L||mdqWwD@@q.ZrfzbqL dW:;ѳH:;\#=}*[R٘-4Eͣ@1Bt%mo=8 Hm-PWdItɓ>_[MyTӄ50_/V /y_{qKcF,*To!]}8SI:{Z+pdP _;Y-oG- s :9 ۦ|c[h6:0<9S9{ R{y)Q:;cn:ܑܷrmձ^v' GiӅD+;=:ϝ7GQN\ n:<[O(EEdDBi'Bx8OJz)KDnL òD)cӑM~j6nNfB7EsPik>zګNMI,9eК^-^ۙemr L*HLw4)a'm{049S'QY |[wɀ4 \7s|QEGrE[?e9d$ֹPrL䢠qY~B:CʜAӂ!]PqO#[3GnY@ &-# _fVa޾+Bs 5|'ȒhZ Ed"x=^_Q#!; k_3DmK_wDU/KK$4G? 6Df^15- H5kݧNȋ2߯򂛦{raKTfUμig%Rd{"y5Z˾ i0/҄Lĸm*g1Ou`LRbI=II=QDsvYU+ n ŭ$M(_E?E}Zg(1mW ‹\^Z!/j{}O:PT f%+ZT*6Ox.:W;x>y)mRs@ KД˼%XwkafO.li>.4h{8ߗzE`CmLrUYO{v,:- %|̠ڱB\m\̕=k̉:h.ȸ nxĩ6/n !tYaې5z {Cu3{Em"A̵K|›xjL"HC֕%%0|}kH\AyY~ 4 &BaNT{W[;^ܩөR2-h:b h#& c,\PɽUU$&Ȋsd7C.<x=3#qF+2Z k3zMÇs,\0q&r@™LU‹NlFʳKR㾡|F@"41gLP%hScUb˷'={2fLs/Vhg>\|6=86@s s= tݴ:$9 x2HϵZOۈMeut̜tBߟgВ },='_ߋ.+ ZΏvUqt&u=]NxY~%Ѕ!YV|d,YNpF0r4^!4s^}&  &/޻Y:#g&8*F"샯SØ_t8!jrӲ 02߂!KŸҨVv΍o>uEŰhՉS8upv`Yǜ-k9<!A*&g޵RzLNJ`F/xaX_[蚲' -H2`ƾSF`K+{]؉LMWIDy/ |,'hovmCt,Π2 NDX:M-s3i.y_.s FX(02#Ɏ tJeQgÞ ﹇_!dCxfs .:F@ud*l(abNi k`0/PVj+ncc{MKtвfsPG>oaX%]ioyb+;MStWVSƆ)-:rO% tU(Ci-)Q/M 3邥|21<Ja|J"_XOh1kL(T'JMPQ{)G/jvaK2,;O+ ̫ n^yx.ҸSeTȺ{%%~B]΁ bk0*l埘mMJ|m4YqcSyPi!jD @ifJ\` K'!6i>'dORY*NETlh]ӑBJ*RryהBV,i<(o+֘+:Rf,@N~+OqvPMX}CPPaoPvaMKV;QNg-EKTLVW!eBWltD!(j ~]oZ~n,_ P#tb2/<$/[)2Lu [|V*hN6 bʠ~پk;BVIM!i dO|ׂuXOqI)Jq͓xaҵW p$m̎Ʊx&VϭW<2 dMhX<~<ޖ ;ѵ#op|Z55JNmPF8tM5ܙ-&1H#[hr!A OڑMmnQ;} 1zSt-||p%MJbŰ`D8pǖ4^uJ~|M}4#>;?:A#O(ʩv1Tpnqz; Sh}aX 1c.7YwBMmR94BCss]ƖyEמE~j+%ciDR{zŋj5&NvD Ver׷[EEDj-* 3ba"&2J: 5Ȏ<~(zz9|X-OyZ~aиrR mZɈ`s 3PCr&cPwd=c&SqɈ=}=nyEp>\KAYsDLZb )`VY-Eq%/GIyO!i3gͭnFf!#ĜQnܞ-;~ ƺmUnZGΡH*)Zq8?9QpW?T2CU)B0H:I4eұ{TԦ9xM3ݓ[_T\+rSg N$|Pe266{Q9WZj779Trxʓrf4oGb3+Nz0)2ZlH"(4lֽ$mY ӾpȽ ^㲧.Y9-ӛk">h)lT+ֵG Y᤬2mW+aK`^yxƕ[_DAI--PEt=Nԁpn{yf^A̲)ڗ9&;B-lYn[a`e))֝:}L_ v۔EghBg=FFߪK.c94g6h 9\ֻ~kWΑ(=+)gs6G=_Y2*?Dvfv*N MV67 Qu1 nѶ+M::s<'x'^eE0 @mCg'ۖJۄ;"Z׸w2:'C"\ j~Yj^ d*,9&j~B؈0(FLJAK0|q}_AP/6P<˱dz _4;փ>}E1DBں@aͰP-@7}Q E.4J>Z;b>s: IDAT7-8f;so_zqw4N'dd12$u*- /7iH((z#!7)ZϰvsЊ;zfKAƷ3;y-dt @AݤuCNZEDQa¦4q5L hC2YS⑲(u 0&/VϠbS;S-|Z7z)yY9U;˃2UD6Benyr$D ){4.螜. AyLf7 2aLmyAU &Mbh^)fn/$JܤX=(Qul.bygzgKn7i2(r돑#Q4N2?t!Ct2#y=pɲR*{w#g}_-_G.g-[nKO\E#gSLY,(\i[g=( z s73%Kqm\"9ݿr A;\W/ ΈL:{۲[X*y}ȹq w@V7AXq͜k/ן>&eYrg~z&=h7doKqר@ uaC>gqgJ-uZ5}C,mH ̓G0_}G~S#Aglg/]~OX>@7|3t#:cLBЍ^m_s7*΅W1FE&'DIMD8QsqVHC0*)q(D4*2k4A)F%j}VUUo80{x8׽jUժUoUݾ63(]K˟ԫ5`W :Ҝ}FvWiNwE(^=QkÂ%:[;ui&ZVH 2mφ#`bD ʾZ%bi\=WN>\2r;v8 ] )m kz$íҿdS5Q+5!?O_߿ZE}f/>;o59XN-vp({1N>fZ{z;viʋ+1 fAgc| d~_N6S=.GٝP'WfY2]KNO;}c }0:[^̯PKf7~Ci6A?Q0[qg-tq}k?>vRuxM o^XLmX Vrism˨ ^b̿V#&aǒq> $]s+1gHM??bz( uϷ{qmǫ,>sr6qh6*NTq ?q-HL&;؏yG~$# QfJwOR)wv}ϜڏJS9IX#%t: ~s&y5xHYS-6~>㐹?ݯO> M8k"tRG ؼno~q*) @j""t?} cv0z[X;祏\(s'W(#bl`V5f~O?Ӷc#=v#r;l?t/}%(8o cdop?Y{oż0fCNv5Ё7C{JsjwR$^RN.vki"2=LQDam#<);Qr\lXS_c`:\_ : Cp] _c`Cg]ض\ѓ֓_%VU fSq@C6hg`Vv'O11 !Z8mcP\Xp6Ax4UCsom\nore2>%&$S~?ƎCZ~ 5лM]+ϿM| sO0՝3^yNlu*vvؔ(ʺ-{7f~ `%^qoB\m{uuѓ_>9y/BP% C p۾aDd 8䑕( 4qiґԷiYrSdi2K\U`/XukggA}yMwQx|̝UYXgnsWy!*zΚ)msvϒjfF<1Ʀcr?Sq|mit® I):qB0q-mn #[{녭Mio[]T$ 5?0。vSmvs1uZm2v?ؐcJo79Mk&_Y,U}8ߠcw=EfmhW읔9| OFnX<mίͲťrYe'ɍYt{Nii@,2 ;!vŰ.ͬԓкKi ( yOcwS*"=(vb$(bq')FD$3R\֤o*7Ӂ#*:uHs}X'\Bm㌩D8s2=i//kӭN|u;]j!H?gAvsn!mFW_8xoz<|JGc5hy{ ?Ͽx;o~VcTz+\oMHWڼ6ؿvf ~9lĕ*E!'(K%\V9L:ѠMzWgQ甛]n_9鑆1f L7Կ'*gg{ݷ pH\\?sZ!Uk;mHoY/|_Ӹ ʰ6<V=vWɿf_9}5%VEcu짿t[Yk-8TKM YJ*8,H֟ kWUʭnqƸ4vEAld>z4v]Cj&.AϦm0O;tԔ&3+E53jjuA=> Gaiozv!uOٷL+XknG)y*mg޾);Q![y4ui훯vn_w<.K6IEة (JgEcx]VT4_q(ΔOq+`2kz~C׃8vfi"`_Wd!It42qgR"mL DX *( ;L;?76GlOq'' MP)Aha;0=~51#g! sATY8[O~|7j[&ڥ)p8u5xO&MFf{#JC`QZ$?j)[7qɥuC+I;F=,nʷO>ŽrAL0>ն} ]͎_PdP' :j~'r_cPl=,OI X()}u[{(Bz&7̄HwƧ:#HXX.vmQP-A w){czOގ7q%1#v_6qw姸r?PvuxRs^] "s?X<HZa~wnok>9f6^v_>hr17њde}tcov8@aCj|"OjUW_d8QqSԜ]=)a!H5 `ѣca\mWTX,,_}Kg/=rɥT&uǯ[;# $7 Vweլ2HKadf0Z# 3 {9l@hr M[L6cN ̉"i ^cpwoQk>&dIy0E-~ggn0,ߗ[y 5wH!߂7!l_AK݁}.Udڊ(a&)?Xg XI$?s/y;`(}vb%3V,@F{;ym&?g! nѺ2Za6dw6XCIm\@E<mB ʕ, B#yj8_pa(#.F!_fi\qٖ Xe!pS zfM9O -_bh[_/j a{]a|ީ]PΒagvEa_{(\z:\Q_&{`CYy;ݙ?!ju>+" k:UTaX;֘CDm,Uns\Uel6ԺRi|-bW< S;pd QkPAC 2!n X@7#/^b],wE`-;&YXTӡp'.~ߏ$~ ;f.4-pjim NM?c^KVs'_e@?(az*sc!v^="h}p_u@ϙ|a筕IȄ_ *^ ;GBiO 8Ίepg>wQ *qĝtP[JY{0%RFEY{0 ;3gM 5,r?HTdȳc1 -BXM:`Y;bX;NnYFMޱ(΍tz`/3`t~{ڎo=k69 X~q. >MlZ,̯g{[>+i[l+G;;;M*qer@ 3~<6[7ZJ#5GQzN3'Ri(Gxy|ob9#OIKGc1^ FGQTj~q i;~~XzL۵K_9.q'ZsL #:w4'Ϳvӿ>z:]];g%(f1dTyL5.vYy{eF!}9@ uz:S @ͱ|( V 2" +8 *[X.sFCx+=Μ|pqzzF㾹̉c8,9+9d(!n-k"]t<-QB>4 -QJi|Bќg^)Ji]RL`2AD}( g IDATyS9BP9jk'u!ӕ#RA0xɒ3dcS^_D?Px*2|^O5a}Td *ӑ #Ót8o#ڃXTN7.7ƢpNʇ6LPs(Qc~W1ڻ,0^D[6HO9[k_h q~kW+o6Mg.8T;&JEDX~ljiLAIA@s"Y*[ƽDBŧRRjAl d> $l)hٟRǔjZ}1EDJ55%tZ9~ B%kD.peTM+ +j,KQ($D"0e^ȋ"KAGE-&MĜt\Omȿm[xr]_4%2J w,zA;bbY:L C\sX Q%'0Qmȳ 9a!p)J)=\[Mt + BǶgaΧy.^^P6VMKrxW>M͵xq~pJp$3dX0 n2y# U9')|=%s1Dh,/|=]Vf^T1DwsVF#s"Q}BQ&i!Jy<_yoL6}(ZkBi ;hrFrfQNr4d1ͱ [֭l.Gc$TqZL܅A0.qJ8 A;niv8T5D>ǴG{IV/Klv9G0%=RU C |M"Ā< Ϊيz!*Rh7?hw;/! ʷutF.ĉ]8K_ԇ#Yr}k?[ŀs<m^*[Yx#凔 ӿ+@lp*?3oWy9:G@~ȓuy+#Fe"_^p|Ovڷ)[m~vO' z䠔n w0ܫvX}%Cw ()͎Cĩ^ Ӕ)R}-hDNDi(H1R%t^qV~]bB ,9!Ch#getWIys9& }0*e-*39{sBహ%KL#b( l`$6 q{!-벿wĶ"]Z{IMnZەooǪ63CbbL^cP@CP?|as8ƒєl3 ƜOR!j`CҡKxCa\_\ߡE@5@&nEtƐ R@*gT]mjOHd.e="ݨ|kQS<9%IR(hź ΨMn0 w\nGj$7/ݸ65ר4T/v-7k ,vlx @f]2u欥ey5E 3B Lֽ76ݒ,-OҾ\H"{&plW{I [kv:A3LVӥO„ ڱ:Xi]v11:4H]S`.Nu͆XB}iXljeX~!zi50h/m_W(˥#cوuNsik+vKT{+8O1eM>um뗜EgZs(DYg@aBŰҰ-ƽ :i "S& h8M!98Dc:ڥ҈E!'qc:XRN ̛K{ Erp^fvP2g1fp7Y*<֜ PY(<bPqwV5@:ߨN'Bn&ep›cxSIB(,(e *:nEJ Iu EPv;WnDiZһO'A#s~1 o3+8Й N6$DɁj6 N}D^ 1 P4wZ9g&Q@FC/$f>|ל9I͢&;4Z%)_0|JcAũ]awYDY;=w~oWl_'Bi,qأi{tӉѧ66x36 j UAjbrgݾk_|ؗ ; zQU1P\kiJșAª\V# y[n8  y6i^2 GI+eW:"z.ip +Jf}kڣ}^ I~IBZc~GJ\>uA[~F>Sˀ-A?Y<X&n_el%uM=< 26CQ"F"Fcy;\WFť{0Vqnn~g{jOlZ™Wݏq'S+THCD`5k>&343, gBLQ ߭B&c&`utqx@Tukf ¢ 2x!eFkiu"9uK04ɞy[ 6DЪeE .nj:EȺz )܎ ,X#U QKZϏc\e)HcRH^߷hIi,EPnv>(H'ϋ `wu,6|zp:…dz]tM4Vvp[ܗ'ē A#r{YcDL+sTANYx)Q m\ڨ¡B\W;t#4=I \{?yʒ,90wHDnU*DQ#÷afJ?ױ*,"*5yr'0.]x ;Lt}#t:dXl-?_rfؖ ևQ||\ ?*niƆ7gLL%lX$ 8$Ҫ'zzfB,sS9NyҐ:'Osc8qFIi,1O]!WXAj0ư:wHUAg>w4 rcS]s8ȴIcW,Ux*6Wу=zLq[*1vrTV&GXB2s8-v~!#Ûhp33`x P%ZqoiI(( k|``r\V>tMرVNd7c.v/۶]4 c?K=qLI`, &AVgg`S!i L&,+bkŇe-z 2 D~Tccuen2s;~CCbMB(YB<6G9h/SqjJNú5ru !WhHv_8G!*vp}ϐ60ߘۤ`"|ܝcJc3wi>t0՜'@ ]o3U -`FWho9'PcvBn V&ؖ8*dg,|: 37 >{S&id.IqKl 6>4vxNPZEsqvc1QMp߬kGtAKlWXDN1-^M~eo~qk'~8 3W;P }œcI_0eί:C>)c}x9 v*al x'?eˊ!-c\)1#>>cJce^>zN #!r^*9QeCŪ$JW([j V|l$17;ʽGgKzgۚYpq<i ]Mp5!M [u`n Nڔ`xf6+τ4G+LMKsz?9 Eu T0-ЕJZMhWi޶_4.(_}yz`;?njM-4Ֆ*'6>R"iCVSHtTÐFy8|+Ч ]tJl{LإlI!ӽ\c0K ^dN1f@3ItQFp58v4>8a d-]^@tu1 Uq*Xa:NKqo>`\#'xSH?* 6SJPmjU-6-6E,G"|18{`zKѵ*0sM^Y!!7YS7?ycSNK >.Ry(Oػ}Olg]IE^^)ц ӂv&b9.}!CH)WFntUzƜS1T޺`⬎r(ء0{=ne$j0Ln^һeE+sQ&˵RK<EeHAR e'Q,:]F+}D肟 > G\ϙ=KږKW,SK;m۾K?s9/5< ;'tulpX ȓN J @QsbxԿwGr>RZ9p6/^Tp?ՍhDsY@o9c|d#*]MQoS_)OXs@kR:>3}0~D% Mx7i7e`}贶r0b\<|M.eX% gv)߄2rػl72_1ۆ%X.J!&v m$:a/ ʁ6e;rw96 ~`*?rDƥtwР*Upߥ4+yJuP`&] N2cS^ls#\-6dY5g'.Dwe4`qFNTυ&HxQ&c9*>|y1 g?v231[bѻfe :pkw8ض(z5HC=:ta'~gs99o+f]Ar4:'JA/<g7=X ;5άi*t#%: w,!HBQCI{.3B 6"Dz@9 r-0SK@lΨd<_-~d>FOR"vItkbKU@aɻPX%C XCB)w(!PC#sЍy _mD첥-yv7o?櫧SH- VcQvZFi8] dɃ:80Oq:9#5AYjqLNAJBEz3DKw(t:UfbPFS^1ղsl)9LW3aeXHYZ ,xƂztft7W?6yX0ϋb3 =W3dZ"E+u3#{>{NpȯB)n",l\짆N5e9w/"WD3\C[dvjer.B}ҪcOԇ HHC䶐1`a:LysK±-hO#%8U7@JKc2m_pTWM֪4VQܿM/r ٭c8xfkiaxAZٓxnĜ,B< 9SyAq]p>cX9n3aC1'%`cHz^dGA׀ e 6^rL+dcMO- Pf*qAoX~cӌB>'.#*𐿙_Di+ M֪4sg38lIܾ @Ҝ|Jc48nA6\ja]Z[l0 ‡8Iߕ'ëg_WL}r4ߤ&5nP3QbTTAU2uPj4yCϪJx""92yAYZ{g|oѿZЕzE#ze~vJ7pi SI9筏nH|!6 u,\-TR \%{f=PJ-p0bK49{c׮gn[0 :G!p@h=SCj[O^~1E 148Qq^8ݍ !"j(vSk["K,M8bzm6])wa!F.H:ܤK.Dc{7-pddg,,M d*BMYX(]!WHٿ O; :iPnq]FK_t(lv!w@8uv䚝AZhnhӞEwJR@1/R@b B{m[bhfT;Mv?=fjIJW-[`kmC{33q٘)%=jFբs@ڳkE+ 6l*tQ *h~y6WQ;s?,(2ʇLDn aݸf~$ςq(*D@xK)Dbae8]`pMvNv[cNu Rqz uX P'7(9A aO}i䰏~mBVZκ*IllӾwǣf$Ӏܬ\)ǃ˴11?Oqg?G𤋮ZqLbg;d&i7gRwלEZ!>wUa&֢7G29{@ƜB(_+͎H_1n;< yl8#) 1q(BWr5} MI2 g6Kƚhc]Fo%hߟ~/]%!,A' Þ=~…_TW5}S wlfh0(.2C 4~D1]`lyҴB2B1pAeʊcp,؝V/vm6e٫uPmVzKTx{:&bsp-,B?xU7J^G>a$i i =d_zuJUæT!U 6Ǚt:#u:-H Lhex659_+̅\2o*h# k͕ѻ8P7,G@{6faEsJC_]๮^ >zc kLdyl(O>nv+ vkY} zQv /dɭITv|BizuF}]'=vA`'tXӇvPh%wSv\@nQT}oRv& !꙼@1ue'S}CxnUMVzh˸1X^ilct!Vak|X=oٗ(Z8`!IBf{JQZ[ JTUV]ԇ`rdN~6 cMrc{*-zpf|f>2ޞꀭҊ 7IOe)(oul=nBm]yݳkLJc@@lB M~Nh$s)N."y#*R8*ɚ&Q'Qe&*sPwռtpu;,N#lѤ^CJר:q 3cUQ7Ti\.qDzhDsV|L1d0>:pDǠpo9?'DLW.(#f>mJc`4z;+wE;O޾["t c.N$%QiQ|A R/5Ж Νq淨 o|K<2r5?aV-c`͠qz0aj̪2E( UIu4hIDFOi r(E+/k4[gs,ϸ|.˥qH"|4fm}4YDzY(O5K )& })Aٱ%Ap[ Hs)ѬP;1)[sP+igIBrY%J8b9%FUPl(JJUHbqɓʼn]F VX( <>* (zφeЎ+>}H0E6_ǻ04ZOI Aॱ߅l{0 0葍+ 8=1B;f! .\++44g`qFP=h !1Csm5`TJaіp'yE9ȜoYƎRL|nn"szX+2}VhuzeN{:(2 m  +& Ǒ#kބU?ވV^޳P)G Ḽ:ŷX&)>s 1 ԝI`b  X^T[ܰ`SIZA:ƜX4Iʑb\lqL%b+4bH, Ekq1N<0a,x-M$?`KwF J)Dž`zw>Q+,bBY!䛹xnl) J`֐:PՀٍtnMUD870H :/:_KZĜH=qŗP2SqQt/(UArP[}nz豳_qk r"_ߖvk8<~sG<07g7N[3+2o'lv2"4f*LOb U$gQS8l>KSr6g:OaUec2 xJ6s9fprs A'B^>eǠk`&DxdYZ]k?((RgD ٺyf~mҟ2ֹ^2z*~5v9ERH%j[B~e\rtE*HQ傡BۧELMD‚E |Kp3vJp>1Ji8JaN̂;ѱ M)4Q*إ'1'HO82^óEiM77sU J2VRߕ_;m.c f*EZ2 9TM07vWj!|҇1ok}a%KTkE1e).=Z4Ud/m\1&cPhʐ2jŒB{t+ 02|%ˎ5Ĝ"j'8b$*40y1 MYk։|ZJi g7񫄻ޭ a5t|UǓ~Aw.ǶxtIPHd6ӰŚ:x$3TbQ?65ŭF}j6,~n`gΊ%X<@#BLMkR2b.yz}nF֬t9XLѝN7x^8a\Op:[& ~謟|6jټӪ "O[_y )xjNXċD*2Q~c,bSq̿}LzYMOL2S7:]u= uܚڟS<.b7|,S kO͊Kw2T^Q2p{] _kkC+netkcSa?ɮ1nm؎/NhqCG4< B 9.i2!><Sc$ڲNR voT *Rw!dj&f{\D|gW/Qre`=R6gp(gX8ln~,!M]- ¢(|4!)AE~a}}^9/hwPyJ똫L}ncvJcBV:ECo{R^SdKcCu6&fj,f9.H_t{G%|d%Tf-$k*buUJ |`Q>J<mۅFN 9( ]: QE'eŀ8y1VeǞyWwaUܟ !R7.ÞL'?bvb6i%*mhKc:e&^iͧ]EҋsxvOy *CŅҠ,S"rv z$8=?A ʨ[ nbV2 6 9V:L&SQ(IaBvǏf~DJox;fɿXwh%&~|t&| P.JCJǎPB@%1Y?W3̔[l3NlWp BAIa5E>c==Yı;n̠UHkAFWpA.y;Ign ٝ'5=7_ygKX =y, {s P4R$u~ n(!ԾNn ^ z$Zl0FX[%V&Zf+ǣÞ ~(Z ֊iÑm|Ria"6O7{kfm¸ׄ}{Rz&ҟ.Ѝb W0ܭYT'-b#hTF mGU(!ޏ1|JQO: j;6lVmf^v c) יI88#sԝ F)w|HRvQ)4#rUaڧ~?O`Efst$vE vu|5vvY!:yM)~L9emJ=Y&<@G9O *Hخ'GrAi?Sn-Λ-ǘS҇kӳSȖHa#9Jc߯WJ g'%heGӜކ0F2X+^AQ +v@{9wbYy &ξ~cyc.<fk |Ț)ݾC|Px; 䣀/`#4Oc~̙ :}vUᤱ{VBP M4ő22-ąH7 jeSb>t(Wr[ac9MVF}g\'kHCI*1+JXy |<( UM5K6H"Fǚ)OݷuDZb YQrb)39 gxhƃIZ>=cA9 qQB5BoPi\Łh82xϻ&H:x9nY܁lgK!H(@m#0A_#}S rlmׅ$S{ffm/"` ҆t :)fb%hsp`[]V児69_dBD69焵$+4a7ut CŽ\Bmʴ>57omw4gW-_F˚)xA{OoÏtw)3ᠳ#2tm|28zOVwi~Nmaz%? )ǩ~#!3:tUH=[@$֫JWSK8a QsdX`nw|QkP%k8iuW4^/1piE)JT{uޱ#5=!U2P`̚*$7_ ]LQђfJ!gO\q ڭ{l$xٕ Y΍c^˩gȴ :zlч-IOhZ }<[cbu|~m׵ǬXCůk?UTx3;#vH]t(T@]5'nb\ ` C[z tZ Bېt%e $A/ Mvd}35L>P,rvl܁c(Ф2}<8|a CByյ ~h ɜmmA{+0: ZCs#s)B22f/Hٟܞ_YqR$h!7sRuFIs#J69h^%t5<jo6 kǸc\wj~ӣ ǪAP('lWϕKy>;( S,mGgYc^/j˰+5*!PQ0XqQK)Ǩ_CЃn]'Z9ȍQ1muZz]AWj vMS=z獪fk<%;,_s2N/hCfm[|kk5'ݻwP3.) mv{Gb1̵te,{WjL NaUWd4DΑnIȲrᰋy7HD9?@%TP0̱ Z4I{SATMe䂤Ù.d%.:p/"t KݕlMbw٘> VpT8SHGgzxo7:JeuiΟ~b/X3OW'J7uc\WF;r ;v}\w0/]I(]n,g!pnT^wpxhpu`ZVh(yLs/#Mtqנ#^iE#6?P5bԣW\Ruvx nr9k3'́3{tdX0kZQ7Cڴ8 נj58>/3?FKw_\['uuAitb1͖zM{{. XK1?[𝉇5}ѷSl*%vhbVW՛| lACY6?2K%Dw/} \FjIMccsy|mbDgsEfS Ȼ=VdV X>V<C13 4LlmfN-d+P^GuAa6%kG+JO;FXz[[1{Ͽ){ЗDSfHe̐kd* s;d0dW8L"3ur =;[ ʫ S!loPcsP %jQg=h r_|| n{]1?`-gښR (e ua',hp TpJ{^GRŎ:c_SFlIiwSVHӼ _|)k)PFΆ, (L䷈[ iMx4++Af[@cVLڌιOb- h6e@qgcQ;ϣAG)Ng`ԏ>Μ7pURn~vNYyjZ)sxBkk9|GϿϒ[B~8b!©R{JgQ.elz!bNpbZjE&D?g=t,B<3xL!^M+~Z>;8{,b@x Q5@'3B WgQIqS.@@άX ]Mص;- \EXw!>vYGPnJJb+#UKz ,^wIS *~6kDǴG>Z\_, cM{j{4]n<.VF-GbLnS9t/S"aa]aucEBo%I5q,D( O>#ںя2&m0sD-;B t(deFq><cRf2+}v?{Ӛ&HMi7mwP{o.aUq0.H\h)l}&zΊi~[%MG<7>*}oCt|w^48ykt<!PTa1 &9U'I,֣  ·AbKڵU ,'Nq$j IDATT[F\ %c>۳[r\^?O@5C8svbV\^K+/9JC|Wy[,).H:tƂv8͑~mʑd d}jҀUV.^8NImn1\JUǨ|؝ ˵<|a(F$rw)g=qE=H辛lȁ9N!|юM%6B0hHe)25=_J@,~9-n^x!ǶPmbh3]] L';X:L\F皃ޢ}/[~؟zb e$>jC,:]*% wcll͋ғ}(xΈe1C YMGa#J=) U{Zd Ǔ;{?uǭGna\ko]4:-%=ݥ[8]QI{ =9] (#;YS. *8WA!Z*(j?."X(}S M1jts+"&8^jo41iU9]}[mV,Vv*wuF4Yq|Ewo^2lפ桰lٽf9Ah,ejhD+(vDDMČtx8s ޢ-úH E_^/*w{{廯S~ĶT`s~"yDիDD_uMXG 1?42*Q64ymN c~uªJ{Mwm{5Gs?I;JXر7ǥ=cVBzN2:T|Ǟ:t #Apoj|1,R5g@y1*a'pJ:R_I'^*AC"*SJ[syWG=Ci}MV=[ I˰)~|9?Lwz:Mo,?"'Kyñcwj쇝R͑OcG4zOn¹ʢ:ymxL2+Ӿ5졯=~$׹U+uRwQțh j> 7d`B?[EN<$\.w͹n.Ri)0(` C(|:ٵPȪ>YdfKf cUp3iL7kIa\'Xűe^R,7*d%bHEP=1( .D}OIqb<ں7s8Ko7,Ǯ-KVUDD YƼYoѩzƋpH< 3?T?W~ai]n/ho.ZaVr=xnw*F۳QKA) K 0jERBD;fw2k2w)g{ +Ey(Wr#"gtT`} u84L^s@uR}O=(LJT c zNn=a${7NwuvYg^eJan,jpP0 ]iU>G 2VDXRK@!CP*KPJjAD!?Q ZB$,%$!ABPDAjAdzs9{{3~w}>wʔT=^A 9 ~=uּwLH$71"1Ox >h}!a[Cgn+}Ã|VdtדY7Œݪ#0F"h΀OKƫHYJ6C8pZc{5*(50rڨG;c jN !h:Q SUN]HUR۔rh:T; $-2@K`'g#X{]p3xcA {HR|? KΚJlxVWs 3zJ(Dy Q/x٣ ņEVTSm̟XdI>G>TO K 3gC,hQ>+UwFSmG;0{K筢z;Em^6`$4=(`ǹ`彰sKkhLL[FxFT{>'N~RO5rڜqWϬphڽ;ٻ; *R 1{tf)FQ9ڤ@PJ2/em 0k(a̜Oc{n ?CαI}5Brk01B=-w(8-r4y` \A`z>Q+A>80|ayŕ 5'TyEHaDWٖar,К%L8hZPɽ[g_.OQ3Fd ) K8܀bP%>\ɍM8Ҩv#D#q4Rzs${GnvQ2һ JJTOxOV%WG &I+i.?R8&`6钆<)LX(1`Հ C%bc$k^1lpzsuZ^M ߪ v\Z+abZB_Hgט!7p~tF!+ꊀ݋a>e- !ױണoĹ_ z~ _ɪŐ0ABh  ԭ*)kY^UԛE_? _^Aa˽DiUA NK{෋f#w>tYv!Hiy359He^5xK>C.T\& aVecz<S MT*l@f2ji__5> XcYk#W< G8˿b%.q&x( LmX@¹+}6{6YEGH֗=3pme72<6|eujuԄ~U;ᚺ0a:gg('5^ ,AXtVj[d}fvCfas>%mrج%6rbC'o&ܳhW*!%U Ԣ᪴2Jڥ5DCxWZW0A gj(K36&Fvv^' .|W J/HQrøyi ++ "')=_Ti<,L_EJfh(}1T:5jḭ۷ϕ_lYOQaLRo|ܿx>6C-Gn&2 EM6Pl+ړ);*>W9mtUwG[XB^eax h - aGb-Oǭ&xYb 4Go 5>/1N)8|$Ž# H 8 wZVn+q* & ;7Z#j?ܛHٵcLըi&7sr>\?i,lq,VR͈٘3iD A7U"~¿F͸Ft;uC0)VCl1XWs*ƒK0i$Ex6'hb󢮥CQ]9{ S`g<7'dn6R UΣQ,[64x4>nyGIΰ94(L H:tT,ݡgq 3+6C؋p<}꟰G%7l 4ZfRv7ux=GoEiZVV};VitmgjuXqtԁ-̮ N ~' S毅1?X_o9u [G=2GLў^* s7lY~>\~{#CD`hp}[8W)>]ܝ`xs b.!NxDs3n67gr?S^<\ǯ3L*Rj +,k]bNFp:r؜~s\ڀŃHe}5y+XrKq jE jV^g랅fNe+Q1`J}~Qrk@cjw_+39 mC2xcTjp;P2v2Բs3C!;lRp=b^0"|Ҳ蒱ɝZe6FMݲR+&+O6x?O睙9D N:0JfASaQ (T *JKNBqer/X F= >s5طI)aU'ШkTRW6\ '-]x(1ݞu A}]s_ЅjJVrje<.+- J9h $jC2RqZem>(*hǛzn}.p椎T{/KJQz˚PI]AG'ҳs dͤS5R3Ы1B+~cc5n24gVm/Nzxm6.sM4>4>s1t1K 4FV@¦K(RsxXwlXa0|;㦑HKN1tǠ>xeAR J7-Ak#Whp9 BwjlKYtEw*+;wN|>ۤ +7v 'I`TBQ.Y"%._aE0tZhdNxh 7t01e<<|a^mbl)صܷE+m%v~6I,vZ@ݳ;qs.F|hD"ܸV5OѪln$ƅ 5T(u< V_5 BT֛0~񝷅s_kP4bYJZČR }IU`3ڶV1]tXA'޳Nђml (uVhR/!h"\Θ~/ĦM^ I6,t|yX%?tw qFVafňZa%F۶S'ªy3'lS:Quհ=]zTe rYTyu3f&+ɕZa%F;wؕ Zrnx8:,TW+A*dYKfR8:4t.S:IiC%Pr9*I8q}wJ8$|(e UQy8*ue/_O[G\Љ%; 4ھMOPY Cpߕ',5\WgJ JÌaR\kªsJYQIEӯKH=n ?M{1i~3BhP[ fVTEprHYzc4N6ml,uzi裏C{QiC>UiyBfZf=Z>ꂛaOUVERTg^v @];q+Kr{,X)-͠8H!`_} ԵkazEU%-'h˶ɠ&9,'ܩ6_; QrzN! NRjj{8 UkbԤ~r!?fWP)E&<~pfOkEZusc~캿䊋NΊ^@4[Ke^r<3>R6zCW S TtD!n2H1쏠 hP(3[7ϳڦWQ.)k"hH-}7Xvܔʂ7n% 7 X|v>a;0lNٔRq+Rq:[NyR׉RzYί>D)Vunʮ){ .DSt`К\r%ŸL.&F'vOщO5knޑ\y9J|l-]!@B9%gΕ"`2c,䘋|0vxHCD涠 (!?+9{i>IENDB`riseup-vpn-0.24.5+ds1/gui/resources/close.svg000066400000000000000000000012251461742244100210260ustar00rootroot00000000000000 riseup-vpn-0.24.5+ds1/gui/resources/donate.svg000066400000000000000000000122731461742244100212000ustar00rootroot00000000000000 riseup-vpn-0.24.5+ds1/gui/resources/fonts/000077500000000000000000000000001461742244100203315ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/gui/resources/fonts/Montserrat-SemiBold.ttf000066400000000000000000007341501461742244100247140ustar00rootroot00000000000000GDEFl\o@~GPOS%utqGSUBYF@/&OS/2VrZ`cmap_ i, cvt 2XfpgmM$| mgaspo8glyfJ͐headZݰ6hhea 6$hmtxPlocaRDmaxpWά name`p<postV<$UprepK(#)@&eU]M +!!%!(DF0 +@( JfBKCL   +%!#3# $E;f+.]gg]:8PP>pHFp@$,~"J,~"J,~"J,"J,"J,_"J,"JG%j<8? 3+^ '@$eBKCL  +#!#3!̂jD,!8"R b{{3+^+"R^~"R^~"R^5"R^@BKCL +3#^DKz3@0J]BK_IL% +&'73253#3#11-h6L] ("e {gJKe~"XL~"X^~"X.~"X#<y"X J"X'+..3+.3+X"X^5"X~"X<"X"L"X$,_"X(O"X* S"X/@,J]BK_IL$ +&'7325#5!#q$J:Qm{xt 50YPjm0{{~"h&^ @ JBKCL +#33#OoZ8%rg}^~"j^"j^N@BK^CL +3!!^nn^"mhWKN~"m^N"m^N"m^N"m9 3+^5N"m^7="m#W)^NN"mX"m & 3+^\ .@+ J~BKCL  +!##33:|kkz60D^5\"w ^ $@!JBKCL  +##3k~kD&&^"yh*^~"y^~"y^"y^"y^5"y^77@4 JBKCK`ML$# +#"&'7327#3ut6_">/Ggk}%#]7v&&^7"y#*)^N"y^"y,,@)_HK_IL& +&&546632#>54&&#"3:bbkkbbkFp@@pFFp@@pF ]ff]]gg]r?qFFq??qFFq?,~",~",~","'/.3+3+,5~"#,"'/-3+3+,"'/4^3+3+,"'/2"3+"3+,~"#,y" ,"'+3.3+.3+,"',323+23+,5",~","",W-oKPX@ JH@ JHYKPX@_HK_IL@BK_HK_ILY@-,&$"&% +#"&&54663232654'76654&&#"3Dbkkbcm.B4+.L=8p@@pFFp@@pFATg]]fg]#"*47F @pFFp@?qFFq?,~",5W",~","",",~","$,_","'3..3+.3+,"'3-.3+.3+,/=@:J~d_HL / .(&#, +327#"&547.546636654&&#"3bFxKDK #)7$=;0C/ a^f]?qFFq??qFFq?,"'B,~"#'B,","'2..3+.3+, "'2+.3+.3+,"'23.3+.3+,7:@7e]BK ]CL&! +%!"&&54663!!!!'#"37sp``qS{Mu??uMmmWghXmkGN^_B}*C%(4\<:VO18[7g.7.-/l1008$ -~"-~"-~"-~"#-~"-"'/.J3+3+-5~"#-"'/-J3+3+-"'/43+3+-"'/2"3+"3+-~"#-y" -"-5"-~"-""-"$-_"-"'3..3+.3+-"'3-.3+.3+-8W@T23 Jec_%K_&L87$!$$,%$ +67#"&547#"&&5467&&546632&#"33#"326732! )6=E30.eH@6)/CbB~/%XmVW@>GN^_A}+*  =;0C44\<:VO18[7g.7.-/l1008%e_P-"XU3@0Je_%K!L#+!!#4632&#6\1ς^TPN0GlYOVe~Iƚ{{%#`9o]_eduXb^7"J#)^N"J^"J,y#%@"# Ja_%L)(+#5.546632654&&#"53O[[Obkkbf@pFFp@fSyb b\f]]g݂[Fq??qF[>4@1 J_%K_&L%&+#"&'%&&#"'663532665__g}%-tH=q'N2X\_@Fj9]fg]t=H*(X2:,1G"(,"U,"U,Z"#1U.U3+,5"#OU,Z"#1U-U3+,i"#1U4Uss3+,^"#1U2U3+,"U,"U,0"#/U.\\3+,5"#OU,10"#/U-\\3+,H"#/U4RR3+,d"#/U2U3+,"U,"U,5"O,"U,2"U,"U,"U,("<,7"U,"U,"U,,3=KPX@% J@%   JYKPX@% e _KK _LL@/ e _KK_LK  _LLY@44--4=4<97-3-2#%#$$$" +$!327#"&'#"&5463354&#"'66326632$!&&#655#"3[ \GV;D&mEIw) nBdtlrCA.W1*vA:$gaD$-LALV~YY5E%S@CPO@mU8hDCf8-*DgJP f:#J"9!6GD98D& "**3+&"Ȱ3+&5]"&N]"&"#y&H9@6Je_KK_LL&$" +$!327#"&&546632$!&&#H] ]EX9C$nEXIG~ON{ES /R=;E:M+,F}ON}FE}RG;:H&H"c&H"c&H"c&H"#cc&H"c&0"#/c.\\3+&5H"#cc&H0"#/c-\\3+&HH"#/c4RR3+&Hd"#/c2c3+&H"c&H"c&H"c&5H"c&H"c&H2"c&H"c&H"c&Hl"#3c.c3+&Hl"#3c-c3+&H+2K@HJec_KK_LL,,,2,1&&%)" +$!3273267#"&5467#"&&546632$!&&#H] ]EX9C>2 ! 3oGGn=%%D;PA@PP@APR`PJKPX@DK_KKCL@_KK]CLY@ # +#4&#"#3663z}B=EP}}[8vt"FGSN!#`"Ȱ3+R+`"`"а3+`"**3+R5`"A")R@EKCL +3#R}}=W"%"77"6 " "5<l"#+.3+J"A5"#)".2"%":A7"#)#!)"9>"#)*+"87")7 )@&JEK`ML # +'732653#4)$-#%}bX]+*#Yf7<"6R} E JKPX@DKEKCL@]CKEKCLY +%#3%3#,]}}X@}"а3+R}"gR} @ JEKCL +%#3%3#,]}}XR(KPX@ DKCL@ ]CLY +3#R}}=W"а3+R "O**3+R"R";NN3+R5"R7"#!)N>"G"  3+R"VJK&PX@_EKCL@EK_KKCLY@"!### +#4&#"#4&#"#36632663Yv}>:?L}>:@K}wZ7<]!h?uu"FGSM"FGRND$&-,*/R5"<R`LJK&PX@_EKCL@EK_KKCLY@ # +#4&#"#3663z}B=EP}w^;vt"FGSNE%&R`"/"=mR`"R`"R`"R5`"R7`h@ JK&PX@_EKCK_ML@ EK_KKCK_MLY@%#% +#"'732654&#"#3663zaYO)%-#%B=EP}w^;vtYf]+*/FGSNE%&R7"#)oRN`"R`"&_,@)_KK_LL& +&&546632#6654&#"3IIQRIIREZZEEYYEF}OO|FF|OO}Fk\KK\\KK\&_" m&_" m&_" m&0" #/m.'\\3+&5_" #mm&_0" #/m-'\\3+&_H" #/m4RR3+&_d" #/m2m3+&_" m&_" m&_P" #+m3m3+&_T" #,m3m3+&5_" m&_" m&_2" m&_*nK&PX@ JH@ JHYK&PX@_KK`LL@EK_KK`LLY@ *)/2&% +#"&&54663232654'7654&#"31.IRQIJR& "$L*&ZZEEYYEh>O}FF}OO|F% +3,@\KK\\KK\&_"n&5_"n&_"n&_2"n&_"CL9y@&_" m&_" m&_" m&_l" #3m.m3+&_l" #3m-m3+&_ ,0@- J~d_KL$(+%$ +3267#"&547.546632$32654&#"n; ! 3l@  JK&PX@_EK_LKGL@!EK_KK_LKGLY@& +#"'#3663654&#"3{FF{Nl?}w[77YYE-H**H-D|QQ}DHF&&H\KK\)L22L)R>p@  JKPX@!DK_KK_LKGL@!_KK_LK]GLY@& +#"'#363654&#"3{FF{Nl?}}?l7YYE-H**H-D|QQ}DHEH\KK\)L22L)&>\K&PX@ J@ JYK&PX@_KK_LKGL@!EK_KK_LKGLY@&" +##"&&5466325654&#"3\}?lN{EFzN7[^ZZEEYYE(HD|RQ|D&&FN\KK\\KK\R YK&PX@ J@ JYK&PX@_KKCL@EK_KKCLY" +3&#"#3 IR}wwUPNR"2-"2R"2"2R5"2?"2N"2%4@1J_KK_LL%$$*% +&'73254&'.54632&#"#|%0$e1p9?BS=l7n#0DU79=@@R;p"_; A:L[_(! >9KZ":*y":#.*,*3+J)@U]M +3#K|m":*b":#0*,*3+":*":*":*":*5":*5":#**R*K!PX@* J@* JYKPX@g_DK_LLK!PX@gg_LL@ ggCK_LLYY@ $$$$$ +#"&'732654&##56654&#"#46632;Lo@&6ry}5::8}8::5uS*)u'LHIKKIHLN"N"N"N"I7Wb@JKPX@"K_!K`)L@g"K`)LY@#%%"+!"&'732655#"&5332655WI+8"b6RMV2k{}AW" \&&3+(xE@@=Je_0K_1L"&+#"&&55!&&#"'66367!3OMTUL bGW>C'tBLX ZDEMTTMMW"BS5V#'KBCJ! <;@8  J~].K_1L$%%+#"&'732654&##57!5!^8rTE~(+"e5?FCC<HXB3S1 _*&$(QdQ! ""@&&3+W< )@&e].K/L +!!#!~֞e`4LM?ȀB*"37&&3+<"36&&3+%"3&&3+"35&&3+A"3'+&.&3+3+O"3&&3+W5<"3"3&&3+3X"3&&3+*"3:&&3+?"<3@0J].K_1L $+&'732653#3#o(4F\EI|!`4LM?ȀB #"39&&3+D<"3*0"38&&3+</@,J].K_1L$+&'7325#5!#uaM+@RIhe ,*O;bflk"E6&&3+Wz< @ J.K/L+%#33#%P~~ S<Wz"Gu&&3+Wz<"GuWz<GW<@.K^/L+3!!W~&\<*fC"K&&3+Wa"K 3+W<"K_W<"K9 3+W5<"K_W<"KEWN<"K_<"K 3+W< .@+ J~.K/L +!##33g9xll`<fW5<"TWf< $@!J.K/L +##3fh~i)<h<iWf"V&&3+Wf"V&&3+Wf<"VWf"V&&3+W5f<"VW[f<4@1 Jd.K/L$#+#"'73267#3fc`Q90,&&~i)< wu$_ *-N<iW<<"VEWNf<"VWf"V&&3+(E,@)_0K_1L&+&&546632#>54&&#"3 RRYZRRZ6V00V65V11V5 MTTLLTTMk1V66V01U66V1("`&&3+("`&&3+("`&&3+(V"`'/&.I&3+3+(5"`#&&3+(V"`'/&-I&3+3+(n"`'/&4x&3+x3+("`'/&2&3+3+("`&&3+( "`&&3+(v"`'+&3&3+3+(z"`',&3&3+°3+(5E"`("`&&3+(X"`&&3+(-oKPX@ JH@ JHYKPX@_0K_1L@.K_0K_1LY@-,&$"&%+#"&&54663232654'76654&&#"3p/RZYRRY'2#&(M/.V0.P39Z41V5m?TMMTTL"! +43G o1V64V2/V76V1("p&&3+(5"p("p&&3+(X"p&&3+("p&&3+("`&&3+("`&&3+("`&&3+("`'3&.&3+3+("`'3&-&3+3+(E/0@-J~d_0L&)+%#+3267#"&547.546632$326654&&#"S ! 3P~GRYZRlX1V56V00V65V1&I = ;0A0PNTLLTcV11V66V01U6(u"`W("`"W&&3+("`&&3+("`'2&.&3+3+("`'2&+&3+3+(v"`'2&3&3+3+(<:@7e].K ]/L&! +%!"&&54663!!!!'#"3bOOb~`]jj]eeFWWFfboaVWaWH< 0@-e].K/L   $+###3654&##3†sy~8CCApp:CAppACxUƋ:Ux>XGJJGXQ`"&&3+Q`"&&3+Q`"'1&.&3+3+Q5`"#&&3+Q`"'1&-&3+3+Q`"'1&4&3+3+Q`"'1&2&3+3+Q`"&&3+Q`"&&3+QV"'/&.?&3+3+Q5`"#&&3+QaV"'/&-?&3+3+Q`n"'/&4x&3+x3+Q`"'/&2&3+3+Q`"&&3+Q` "&&3+Q5`E"Q`"&&3+Q`X"&&3+Q`"&&3+Q`"&&3+QwE"Q`]"&&3+Q`"&&3+Q`"&&3+Kv<zK!PX@'ee   e ]!L@-pee   e ]!LY@# +%!5##463!!!!'5#"vBz|}`JIdd<{d_KMAKv"&&3+W"#_&&3+$E'9@6 'Jge_&L#!$$+"+%#"&5467&&546632&#"33#"3267)~D2+!$:tT8k'$HYDC-,iHK5g#2!_M-E='/N.a&+$!cF$)$"Y&&3+$"Y&&3+$"Y&&3+$"#YY&&3+$"Y&&3+$V"'/Y&.&3+3+$5"#YY&&3+$5V"'/Y&-&3+3+$n"'/Y&4x&3+x3+$"'/Y&2Y&3+3+$"Y&&3+$ "Y&&3+$"Y&&3+$5E"Y$"Y&&3+$X"Y&&3+$"Y&&3+$"Y&&3+$"'3Y&.Y&3+3+$"'3Y&-Y&3+3+$%E7K@H./7Jgec_&L'#!$$+%"+#"&547#"&5467&&546632&#"33#"32673267%3<)e]nzd"(TEg@JKPX@g_!K_!L@g]!K_&LY@ &#&"+3#5#"&&546632&#"3267wX<^VPRZPR=_7W10V7;#",LTUM`OD0W77U/(T"''3+(T"''3+(T"''3+(TE"3+(T "''3+(T"''3+(E"G3= 3+5< '@$e]!L +3!53#5!fffJeeqff5<5"&&3+6A@>  Je` (L$ +3#%3#'732653#3#Ȁ\܂[V/HXFK|u>`4LM?ȀB5"7&&3+5"6&&3+"&&3+5"5&&3+5"'+&.&3+3+55<""&&3+5X"&&3+5":&&3+?"< 6@3JeW_O $+&'73253#3#o(4F\|X!`4wx5"9&&3+5<"*D5"8&&3+<2@/JeW_O$+&'7325#5!#uaM,?RIhe[,*O78Bs8E~|V5s5a<Erm\A=?@\~?@<:!"Q()W5E"#0WaEKJKPX@W]!L@g]!LY@ #+#4&#"#363wBxv~A;:<~=:;@@;JhW_O#$%#+#"&'732655#"&55332655VJz,5%`3LG;jlz~B>ALqþCGKDLV"U~&&3+LV"U~&&3+LV "U~&&3+LV"U~&&3+L<<"Ut3+LV"U~&&3+LVX"U~&&3+LV"U~&&3+LV"U~&&3+'<;@8 Jee]!L +%!57#537!5!3# fomueePbfQb'"_M&&3+'"_M&&3+'"_M&&3+'5<"_P!]!G@DJec_hL! "$# +#5#"&5463354#"'66375#"3]Q8&=BEHXR9 P(2LF"특$5+,2D8*'()@&c_hL& +&&546632#6654&#"3T//T45S//S5,56++65,*K/.K**K./K*G3*)33)*3 c 0@-e] K]!L  $!+!!32#!%2654##c!_~4KNkichqd:7lc5@2Je] K]!L#$&!$+#!!2%32654&##54##3rF9v52?BB?RZWA\f^V7P%2113 hfc>@] K!L+!#!=Nc>~"itc>L@] K!L+!53!#ccxk3@0Q] K]!L! +%#5!#36677!$!!xyB5d"%cnܵ'|bo0bo~"0boy"0  1@.Je K !L +####33333#xx͊{yۖ''mO%%X*?@< *  Je_%K_&L%$!$%%+#"&'732654&##532654&#"'6632GRQF<*.p7OiLC:BYE/d,)6y6.0f0)16i0Y<4Nc @J K!L+33##cxyyDc|"rYc~"rck:| J@G J g   a K!L " +&'332673##7##33@[[.,+1Z]YKg!UyxyJG%((%FKb '@$ Je K!L+##333#dɊ'%b~"vmKPX@ J G@ J IYKPX@] K_!L@] K!K_&LY@ #$+#!#"'73267&TJ- =3 DN_ q"ca .@+ J~ K!L +!##33:{kjz61DbR-c!@] K!L+#!#΀DNb.!^@] K!L+###5!^PNNn -@* J K`&L##+#"'732773(oA43 )?) KKf A e |"YK'8@5JUWg]M+$#5&&546753654&'$xx|}w}vՠJJ GG g\\fjpf   &@# J K!L +73#'#gU0/@,Jg K!L#"+##"&553327cYVP[QD%yJN%Dcf- )@&R K^!L +%#5!3!3-xanNc %@" K^!L +!3!3!}DNNckK"[9cf #@  K^!L+!##5#3!3xaNc 0@-e K^!L   $+#!33654##3#Ӏ1Rqot{FC" 6@3e] K]!L   $+#!#5!3654##3M1QqouzNnFCc""xcxfKPX@ e K ^!L@#U e K ^!LY@$ +#!!#3!33654&##3{^'LKEndiv?>88;,[ / 3+;@8 Je_%K_&L"$&+#"&'73267!5!&&#"'663\\fY0RMtZ}7{WtMR0Y]gg]<9PSnZgUhSP9<c@ K!L+3#cD<y"X h&7@4 Jg] K!L#+#54&#"##5!#63OFCXdcUzxGK&Nnn"c#&nKPX@!e_ K _&L@)e K_%K!K _&LY@&%& +#"&&'##33>36654&&#"3 ^^g^c npc\Aj<pHHp>>pHHp>1y8@5Je] K!L!+#5###7&&5466333#yIOHYLURNDuSPt=nJGEK!(K&PX@  J@  JYK&PX@g] K_(L@#g] K!K_(LY@ $#$ +32#"'732654&#"##5!!Ush.%5HOBHVjrjlmj657<$Nnn>@;e e ^!L$ +#!#53533#3654##3η1Mrmp{$[gg[ZBA<@9Jg ] K!L!" +!#'&####"#7667'5!7/6u"x;V.?+zTT|+zLWztkSPku-"G4@ 3+ [KPX@ JH@  JYKPX@_ K!L@ K_%K!LY#$+36632&#"# ҆YD"/ &1pRM |3:&] -@*e] K!L +!!##53!iiNZZMncl>@;  Jgc] K!L%#& +32#"'7326654&#"#!!>RLxDH}N$",G)\IHH>uPSHh+M2MX,nk2"p\AkX"qnbk"v\b8@5Je K]"K !L +##5##335333#%V99V('ۂ%6@3Jee K !L +###53533#33#zYYɊ'RRRR%>-@* Je] K!L+###5!33#݂MɊ'Nn%bk9"R['b,"Ricl@@=  Jgc] K!L$#& +32#"'732654&#"#!#!#ULyDH}N$"DWYHFKk>uOSHh^LLW)Nck6"|[$3)5KPX@ ,()$JK!PX@ ,($)J@ ,($)JYYKPX@_%K_&LK!PX@!_%K_&K_&L@_%K_&K_&LYY@ *''-" +#"'#"&&5467327&&5466323276654&#"NC]PLSrfWPgBJIUBJFTQ{D^Q8= MMCIRMFGQ!`si982VVG9a^OJYh<\1)'e^jo`.k"!nk^"[ "GNJX 3+ k"\e1@.R] K^!L +%#5!5##5!#!3x-amNnnN0k"[/<@9JI~e K!L+##5&&5535367E?Vx=;VD@Dr?K Dc/@, Jg K!L#+#54&#"#363%VP\QcYفyJN%%ck"[ &/?@< Jg_%K_&L'''/'.#)#%# +!3267#"&&'#"&54733>32$!.# Ec84g+_=OZj Wcv,( h[ac^cC Aa9B:U.*)R8:G^`L7;*(#-`LWl2\==\2k"nbX |"pYc49@6Je K!K`)L#$+$#"'732654&'##333G~bU@< # %yZɊJU`a($7W%c61@.Je K!K_)L$!+3265!#3!3#"'"!!,i2S2C9M'%:(,:P(!bk70@-ea K!L +%#7#!#3!37Kg!Xjn,!-k8@5Jga K!L#"+##35#"&553327y{`ZVOVUD%|sDJ%*ck7@4 J~a K!L+%#7###33Kg!]:{kjnz61 |"Yr y"  bo|"0YQ%"=@:Je_%K_&L"!#&+#"&&547!.#"'663667!3hgccdX Hg;4h-_>PAgE'Af;UnnXWl;Y/*)R8:4^??^4%y"  y"p <Xy"q nL;@8  J~] K_&L$%%+#"&'732654&##57!5!p@_P-.(u?LVRSBkS=d;*%f &:327WkWc_"rcy"r -y" -"G4@ 3+-y"g4@  3+y" p _" y"  ~"0y" ck>"i[9cy"# (6^L@I  J~e  ] K!K_)L## +!!3#"'732655##53!\fMA>"!$",`iiNZR]"X,)ZMn 41@.  J K!K`)L#&+#"'732654&'#373][;iO?< ! &Z[lpws2P\[(#0mfV/@, Jf K!L+!#'##533733#ەϖЖ7[*[1l*;@8 *Je_%K_&L$!$%,"+%#"&&5467&&546632&&#"33#"3267l=FQQG?18NN! 69@6J] K_&K_)L$#$!+3265!#"'73267!#"'"!!,'TJ/ =3 2S2C9M'%c_ q",:P(!-gB@ '@$ J K!L +##33@戨燫xD >@;e e ^!L$ +#!#53533#3654##3Baa0Mrmqz$[gg[ZBAc<@9Je] K!L+!&+'###!27'7654&##363T?a5? Y>h0XTyi!m3wt3&IFJ61@.Je K!K_)L$!+32653!3#!#"'-"!!+i2S2C9M'%(D%:P(!k "x[k 2@/JR K^!L +%#5!#33!!xxL jnN !@J K!L+!#3`22D+#%@"#"JU]M+#5.5466753654&'YoznYYnzoY)qqq_ 88 `]]` 55 _]````c> )@&e] K!L +!!#!NZnkX"qn.k"!n."!Xk38@5Q_%K ]!L$ +%#5!#346632#4&#"3xxUM]^M`UU_ndIHd+\__\--~"-y" X^X|"^Y}Xk&| $JKPX@( gR  K `!LK&PX@, gR  K!K `&L@- g   a  K!K`&LYY@$$#" " +&'332673##7#5#"&53326535[[.,+1Z]YKg!WG|YNTdJG%((%FKYch]_edX~"^'@$_%K]!L#+#4&#"#'34663K[PQ\SK[Ids\__\gndHR:@7Jg_%K!L $+#"&'#463654&#"3 2\6SYZOQ[$Y0zSRJKUZRU WS{S|"{Yx,"@J%K&L&+#"&&54663654&'$Uiiii~~p~pp~]gg]]gg]abaU:@7 Jg K_&L %+#"&5363654&#"3wCkd,Y^I+Z(ZR:oMw2xLBENHLRH@@=Jg] K_&L#%+#"&5#5!63654&#"3wCbkd,Y^I+Z(ZR:oMwXn2xLBENHLRU@ JKPX@g K _&LKPX@!g K!K _&LKPX@g K _&L@!g K!K _&LYYY@ % +#"&5363%#654&#"3wCkdY^I+Z(ZR:oMw2DLBENHLR z*KPX@&J@&JYKPX@!g] K _&L@+g] K_&K _&LY@*)$"#$% +#"&5!#"'73267!63654&#"3wC&TJ- =3 kd,Y^I+Z(ZR:oMwW_ q"2xLBENHLRcfKPX@e K _ !LKPX@'Ue K!K _ &LKPX@"e K!K _ &L@'Ue K!K _ &LYYY@! +&55!#3!332#6654&##3JuHTMGRI{rbqcp{dF=9v0$'b1?G72h^/5@8PY ikDl=0*?,1K*]'""T "'\1%C+'=Tj @J"K!L+33##T}'r}s``Tj"X8Tj"T J@G J g   a"K!L " +&'332673##7##33aR4&&4RaIf?dGs}'rXNB"))"BNn``TTf '@$ Je"K!L+%##3373#2a}}dϓTf"j8Y@  JKPX@]"K_!L@]"K!K_&LY@ #$+###"'73266778}E<) &&  jjS i=UOT .@+ J~"K!L +!##33a6rub+NT[ !@e"K!L+3!53#5!#T} }}}&_ TT!@]"K!L+#!#T|}TT>/&+@]"K!L+###5!}Tj7Lo7L"oX%>,@)J"K!K]$L+$#5&&54675354&'vv_cc_ac }| {MV STKLS/n&/@,Jh"K!L#"+#5#"&5533275}MTgn}<7F@%_b32T )@&R"K^!L +%#5!3!3u+}}j{TTTg %@""K^!L +!3333g}}TTT"&ZT8 FK PX@o"K^!L@"K^!LY@ +!##5#3338v}|{{TT3 0@-e"K^!L   $+''3654&''mxm}:89rrf\TX`0.-*z 6@3e]"K]!L   $+###5!3654##3lxl6knng]SW`j0.VT 6@3e"K^!L $ +''3%3#&654&''lwm}}}:89jjf\TX`Z0.-*")gTfKPX@ e"K ^!L@#U e"K ^!LY@$ +##5!#3!533654&##3Ajvh}}}542ttOTMR\)$#%%:&40F 3+ A@>  Je_'K_&L"$&+#"&'73267#53&&#"'663NLLTIv)H?\Da`C\?H(wIG}OO~G0-F?I=Z;E@F./C") "57")b;@8Je_ 'K]!L# +#4&#"##53533#663z}B=EP}||}[8vt"FGSNXEIIE!#TR#K!PX@!e_"K _(LK&PX@%e_"K!K _(L@)e"K_'K!K _(LYY@#"& +#"&&'##33>36654&#"3~HH~PFtL Z}}\ LrE,F(WCCVWBE}OO}F7eA?a5G)M2L[[LL\' 8@5Je]"K!L +#5##7&&5463335#pm~:=ruuꡡS=\di[Z7b%@" JKPX@,] K _  'K!K_)L@* e _  'K!K_)LY@%$%#% +#"'732654&#"##53533#663zaYO)%."%B=EP}bbx^:vtYf]+*/FGSNSQBBQ$&\>@;e e ^!L$ +''#53533#654&''mxm~~}:89rrf\TX`VVv0.-* ;@8Jg]"K!L!# +!#'&&###5#"#7667'5!37z :-k,<z-"X@=B["*UB9:AUp[SLLT\S&iig!\KPX@ J@ JIYKPX@_'K!L@"K_'K!LY#!+632&#"#3C4, }鉟e9 y!- & -@*e]"K!L +3##5#53!}BBRR jT8R=@: Jg]"K!K_)L$#& +32#"'732654&#"#!!CFp?ByN+%DLP=<8}"8kHJtAiM@DEj "])>@;&Jea_'L#$!$&+$#5&'732654&##532654&#"'632hWvaN$'b1?G72h^/5@8PY ikDl=0*27_W jh ,]'""T "'\1%C+'=?,T"]Qr6@3Jee"K !L +%##5##3353373#ZO(}}(OYY[[ewJKPX@+e] !K] K"K !L@)ee] !K"K !LY@ +%###5353#373#1`}YY}bϔSS@AQ-@* Je]"K!L+%###5!373#a}dϓhT"ZTx" T"ZT8?@< Jg]"K!K_)L$#& +32#"'732654&#"###!FFo?ByO+%ELP>98}}"8jIJtAiM@DET)#&2KPX@ ,%&!J@ ,%!&JYKPX@_'K_&L@ _'K_&K_&LY@'''2'1'&" +#"'#"&&54673&&5466323276654&#7MFABcSF?c38zh-2:jGDf8B< ,0>829><2JYO+3*l=]n,sBHm<8fCJ. XJ?BfjGN@J"K$L+#533g~悦xt>N"KGwQG@ Q3+U"n]f1@.R]"K^!L +%#5!#5!#33tFË|jnjjT&j"$Zf%5@2Je]"K!L+#5#5&&55353675}0)Pcj}QO.+d]_`T__TbT6@3Ja_'K]!L##+%#5#4&#"#36632tXA32$!&&#Q `HZ;E%rGRP KQe#  MxJPHU 8U?;E:M+,;jE@8+0Ci:E}RG;:H"SoTT f"XT6Y9@6Je"K!K`)L##+$#"'732654&'##3373UbQ<=!#!!(ODs}}dlP]\(#0~@g@  JKPX@Q]"K_!L@!Q]"K!K_&LY@#$+%#7###"'7326677!?dGE<) &&  jnjjS i=UOTT7_;@8Je"K!K`)L$+&'732655!#3!53#@#)#'}}|_V\+*UdT0@-ea"K!L +%#7#5!#3!53?dG}} }jnT"8@5Jha"K!L""+##535#"&5533275du\KVgn}tADnӀ$_aeT17@4 J~a"K!L+%#7###331?dG6rujnb+NT)"X)"R)&H"X5W@@=Je_'K_(L"&+#"&&547!&&#"'66367!3IG~ON{E ]EX9C$nEOS R=F}ON}FE}R ;E:M+,AG;:H5W"ar f"":7;@8  J~]"K_)L$%%+$#"&'732654&##57!5!j={ZL,.%mJ&i"it "097L"oF7L"oF7L"oF&"$HT" ZT"+7L@I J~e  ]"K!K_)L$# +3#3#"&'732655#5#535!P`U#@! ($%PUUsRqxTaX-, Rj6,2@/ J"K!K`)L#%+$#"'732654&'#373O+dL=>"!$(@NnjhZ+HV]%#aZ:5@2 Jf"K!L +!'#7#53'3733#jouhS⯯S-(;@8 (Je_'K_&L$!$#,"+%#"&&5467&&546632&#"33#"32670v>JtB72*0=lDki XQ8@5/^h27G?1b'/*K1,?='+C%1\'" T""'78C@@J]"K_&K_)L#$$#+#"&'73265##"'73266778_X#?#)$'E<) &&  Ve\+*jjS i>WL(>^1 '@$ J"K!L +##33Ɂʀst|{U>@;e e"K ^!L$ +''#53533#54&''3kxncc}T6;rrUSRW[U77U3Y,"T>$r@ JK&PX@_"K_(K$L@ "K_'K_(K$LY@$#,"&+$'#"'#36327'7654&#"3)%>=B6>~;~x:HwDD@C[FF[[Fg%O0R]_eD}Q U2U*>L\\LL[7\;@8  Je"K!K`)L$#+#5!#"&'732653!5\}_U%@#*#'} Ud\+*#"ZDZ!,3@0Jge_&L""","+'$''%+#"&&546632%32654&#"654&##3 ML{FEyKIuB@oD;6v>DG33KTHCR9r_AGd21bFCIe2-Z@8U'7759@55l#'1y?VP5= !ZXQ6> X"$7b f<@9Je] !K"K !L +%##5##333373#OZ|Z\|[X9&?@<& Je_'K_)L#$!$#%+$#"'732654&##532654&#"'632FFzJn`#VMCR?7vk0:C:@V#gaFj;<0ZA?b69Z,B519a9119 \,0V99ZENPEN"PX)EN"PtTe 1@. Je]!K"K!L+%##3373#1`}}bϔXM!@J"K!L+!#3˦ytT[TbT(+@(Jh"K!L##+#5#"&55332655}W?ck}=89J$)`a325,E"PZF"V JK&PX@"K`!L@"K!K`(LY@""##$# +#5#"&'#"&53326533265wZ7;^ i?ev}>:@K}>:@KD$&.,*0vt2FGQNFGQNF"ZH/:@7Jg"K_&L #+&536632#6654&#"3||P5cno6<<8*=>:pjJd\bo\A20: -6=@@= Jg]"K_&L$+#"&55#5!663654&#"3&noy|!P5<<8*=>:d\bopjjA20: -6=TA#xK!PX@+e_(K_'K _(L@)e_'K]!K _(LY@#"& +#"&&'##336636654&#"3{~HH~PGsL I}}Ki,F(WCCW(F,E}OO}F7dBa`uG)M2L[[L2M)T )@&e]"K!L +3##!}Rj"-&+"fT" O 3+ Q(-@*eg_&L('*!%$+#"&&54663&&5463!!"654&#"3QIQPG:gAYTG?Cdy2XYDEWWEJuA@rG@d9*U01:h:3RAASSAAR"9"7`NW"P~F"G\@ 3+&\$7b&G&G"b&G"bENPEN"PX)E %JK!PX@( gR "K `!L@, gR "K!K `(LY@%%$#  " +&'332673##7#5#"&5332653aR4&&4RaI_?dGZ4k{}A>q8@5 J_'K_(K$L&+#"'#4663654&#"3}EBwNo?~HUAXXFGVWFD|RQ|DGQ}EG]JJ^\KK]TI7WI7W"X3H9:@7Jg"K_&L #+&536632#6654&#"3~|U2dpv:B?9+AB8qiJd\cn\>429 -5>@@= Jg]"K_&L$+#"&55#5!663654&#"3/mpy|*P5<<8*=>:d\bopjjA20: -6=Hm@ JKPX@g"K_&L@ g"K!K_&LY@ # +&536632#3#&654&#"3{|P3bno5}}<=8)=>:pjJd\bo$NA20: -6= )S@P%Jg]"K_&K _&L)(#!##$ +#"&55##"''32677!663654&#"3.ovy}HR+ )'U2B?9+AA9d\cnojl njp>429 -5>TKPX@ e"K `&LKPX@" e"K!K `&L@'U e"K!K `&LYY@$ +#"&55##33533654&##3;*??=\YTZceaU55U\3*(/',1$@!JU]M +!!3! ; u#.@+!JgU]M'& +73&&5466323!56654&&#"! 59bjjb:4OT?oGGp>TOn/NdXXdN/nf(PGm<\<@9J~W_O## +#5#"'#33265\uR-R-}}A=COG(&/HGSN+@(JU]M+! +#####"&&54663!̉xx1x1 [ ]/S6 MMK)D,F("3+^j,u,@)_HK_IL& +&&546632#6654&#"3LLTTLLTKWWKJWWJ UppUUppUq|{{||{{|@]BKCL +##5DOm'0@- J_HK]CL$' +%!56654&#"'6632'/!B@k9[)Vr0DnnW-C!14IF7=l]9d@;@8  J~]BK_IL$%% +#"&'732654&##57!5!f>}ZK18&m:EOKM@ݪlQ=d;+&e %9117YmW"0@-J~fBKCL +%##5!533533|~Yz|ZQ )9@6  Je]BK_IL$%% +#"&'732654&##!!3>|[K07'm:EOUg$Csc?f<+&e %9267}m,['D@AJg_HK_IL'&" $%& +#"&546632&#"663654&#"3n>DtHVf6_#04Qer`<'LL@?OMD5b@Dg8vWb"|u$%A67@D43C<RJK PX@p]BKCL@~]BKCLY@  +#!#5<yWNw(d'3=@: Jg_HK_IL(((3(2.,'&+,% +#"&&5467&&546632&32654&#654&#"3);GVVF:6*-AvMNvB.+GG=>HI=HTTHHRRHWU9@`33`@9UK1;X00X;1J4/-55-/4<54<<45<G'D@A  Jg_HK_IL'&" %$% +#"&'732655#"&&54663654&#"3Vf6_#04Qer`DtHIOMD=LL@ƴvWb"|u$%5b@Dg8D43CA67@.b*@'g_&L&+&&546632#6654&#"3MMVVMMVK]]KK]]K OZZOOZZOpi]]ii]]iX@e!L+##5Xm#b.@+ Jg]!L$'+%!5%6654&#"'6632#.#B>l7a)ZKq>5CmmK%5%.K>=?0T47X5yX>@;  J~eW_O$%%+#"&'732654&##57!5!f>}ZK18&m:EOKM@ݪ+lQ=d;+&e %9117YmW"X5@2JU^N+%##5!533533|~Yz|;ZQ )X<@9  JeeW_O$%%+#"&'732654&##!!3>|[K07'm:EOUg$CIsc?f<+&e %9267}m,[<X\JK PX@pU]M@~U]MY@ +#!#5<yXWNw(dGb 3+7> >3+M>v> >3+>> >3+7> >3+>> >3+7> >3+7> >3+ >> >3+7> >3+7> >3+5,@)_%K_&L&+&&546632#6654&#"3KKWWKKWK[[KK[[K WnnWWnnWqxxxxT '@$] K]!L +%!53#5!T6$mmmm4d0@- J_%K]!L$'+%!56654&#"'6632d1"GCq<[*YNu?3GnnW-B"05IF7=1[=7eA6i;@8  J~] K_&L$$%+#"&'732654&##57!5!m@^T0>X|JUTPCkQ=d;+'fG9108YmW-0@-J~f K!L+%##5!533533y|4vyZQ8j9@6  Je] K_&L$%%+#"&'732654&##!!3Օ@_N17)t>JS[n%Hsc?f<+&e %9267}m@(D@AJg_%K_&L('" $%&+#"&546632&#"663654&#"3rAE{MYo4b#15SkkA(QQBAU%F/6b?Cg9n^e%s%*B55BB57!CRJK PX@p] K!L@~] K!LY@ +#!#5؉yWNw5'3=@: Jg_%K_&L(((3(2.,'&+,%+#"&&5467&&546632&32654&#654&#"3KQQBƴn^e%s%*6b?Cg9B57!B55B4b*@'g_&L&+&&546632#6654&#"3 MMUUMMUK]]KK]]K N[[NN[[Noi^^ii^^iTX %@"e]!L +%!53#5!T6mmm~m=pb.@+ Jg]!L%'+%!5%6654&#"'6632p!2 EA7Uc*\Nt>8EnnK(2%.&%>=?/U66W5x6iX>@;  J~eW_O$$%+#"&'732654&##57!5!m@^T0>XwMWTPC*kQ=d;+'fG9108YmW-X5@2JU^N+%##5!533533y|4vy;ZQ8jX<@9  JeeW_O$%%+#"&'732654&##!!3Օ@_N17)t>JS[n%HIsc?f<+&e %9267}m@CX\JK PX@pU]M@~U]MY@ +#!#5؉yXWNw57|b(G@D  JggW_O('#!%$%+#"&'732655#"&&54663654&&#"3ץYo4b"05SkkAHrAE{MIU%F/>QQBbn^e%s%*6b?Cg9B57!B55BB 3+Mv; 3+B 3+; 3+; 3+; 3+B 3+ ; 3+B 3+B 3+ *@'g_(L   $+&54632#6654&#"3iiVViiV.88..88.tccsscctKHDDGGDDHMv %@"e]!L +%!53#53vnfGGGG1@. Jg]!L%'+%!576654&#"'6632++"6?X/.>>./>('.}. }3+*i%@"JW]M  +6#7&&5463. 3Q(.#.%## '%.(".#..;%@"]BK_LL% +3#&54632#Bc..#"--",-!!,,!!-;f $@!a_KL $ +#"&5463#3--"#..#Jc-! ,, !-JI@Fe  BK ] EKCL +3##7##7#537#53733733#7#[[[[q[[[[( @_LL $ +&54632#X0/##/0"/$%..%$/%5@2 J~_HK_LL%$%$' +676654&#"'6632#&54632#1/$#D9l7a+\p&&%--#"--"G* /*4M?;?aU)>+"4$-!!,,!!-=\@ &:@7#"J~d_KL & %! $ +&54632#&546676653327#--##--#d&'$%%#D9j9`*[, !--! ,^R(>*#1#%:) .&1M?:@8e"228@]BL +3#8l [(i'.}) }3+J@t +3#,ppJR dD@U]M +D1!! LJ@t+3"pJdRF  @W_O $+&54632#u//#$..$ .&$/.%&.F' JJ3+vb @W_O $+&54632#**))b*! ++ !*J@t+3#,ppJR)^ @W_O $+6&54632#P''''''''7>a"VJKPX@g_DK_GL@gg_GLY@ !$!$!( +33#"&554##532554633#"%%2TV-!!-VT2%%K/ /-%'dSP0f0PSd'%><$]JKPX@g_DK_GL@gg_GLY@$#!,!%! +#"##532655467&&554&##5323<"WT2&%%&2TWEfPSd'%.. ..%'dSP^>MDKPX@]DK]GL@e]GLY@  +53#53qqddXT>E (KPX@ DKGL@ ]GLY +&54673#??;w=99=wgZl僃l> 0KPX@ DKGL@ ]GLY@  +6654&'3=::=w;??;l悂lY[Ak)< CC3+F)= CC3+hW)> CC3+ )? CC3+^O)@ CC3+ )A CC3+?@U]M +!!?R?@U]M +!! ?R-:@U]M +!!-bR?H7JJ@U]M +!!7Jh7JJL7JJL9HLL3+9ILL3+A.TL LL3+*J"TTJ"UU*J)@JU]M +73#*qq J%@"JU]M +77'3qJ*i"[[("YY*"ZZ(4JKPX@ ]DL@U_OY$ +#"&546773."$. 5P(D'$..$""*=JKPX@ _DL@W]MY@   +#7&&5463. 4Q(.#.$""'$.*i%@"JW]M  +6#7&&5463. 3Q(.#.%## '%.4&T LTLL3+L3+(&U LULL3+L3+43T LL3+('U LL3+;<%@"].K_1L%+3#&54632#Dc--$$+,#<+**+;C '@$_0K]/L $+#"&5463#3,,#$--$GcC,**,g*p"ddp"ee*p@JU]M+73#*f~~fp%@"JU]M+77'3~~fp- @_1L $+&54632#Z--#".."-!!,- !-C$8@5  J~_0K_1L$#%$'+6676654&#"'6632#&54632#+'82Y3W&|Oc{-+"!u--$$+,#7"!5A*0LB-9!&+**+= C $@@= !J~_0K`1L $ # $+&54632#&54676653327#,,$$++$X{-+"!u+'83Y2X'{O*,,*FKC,9!&)6!!5A*08Ne<"pp*"oo((<"mm*/C"nn((<@J].L$+#"&546773."$.+P&#--#!"q}*/C@J_0L +#7&&5463/ ,Q ."C.""!q|'#-*%@"JW]M +6#7&&5463.+P.#-#"!o|&".8N<@].L+3#8l [<>4@Jt +3#rr,,$>;qX$ $3+,4!2@/JIaHKLL +$7#5.5466753&'$!CT,~MR]SS]RM~,TC`jVVjqJP4;oq a^^a qo;4OI\&+!)@& JU]M +$7#5.5466753&'&$`eCQGm<44>t:86?rt JtGGtI us?68: fUBT>,4")09@6-,)%"!  JgIL +$7#7&'#7&&546677373&'&&##&!CT0UL) "L+LWU_L'$L&;*Trq&z!(v"gM[rIP8<nt 0a`a po {1O?  /W!}U+J@G  JH GgW_O+*-,% +$'#"''7&547'763276654&&#"3j0eGjAOP@kGf/-dGgBRPDfGc.N..N--M--M-EdKi)*jKfDPOCcKf,+eKbCP+J+,J++J,+J+#R4")06@30/&%  JIaHKLL +$#5&&'75.546753&'5654&'RwqRJ'-%j9G_@vpR8k()LVH_Aa4132362uq po,"e))OAQr qo e, (OA(0#r."")&w*.@  JKPX@-e aDK_KK  _CLK!PX@3e a_CK_KK  _CL@1e a_KK]CK  _LLYY@.-,+*)'&# +##5#"&&5466325#535336654&&#"3!!Rx[7M{FF{M5X}RH**H--H**H-"ZE&&D}QQ|D$$EGG)L22L))L22L)E -O@L Je   e_HK  _IL-,*)('$#$ +$7#"&&'#53&547#53>32&#"!!!!3nLS0VWgreergWV0SLoPy2yPhSP9<@tLF  FLt@<9ORLBF FBL7 @  JKPX@"_DK]EK_MLKPX@ g]EK_ML@ge_MLYY@ #$# +3##"&'73267#7376632&#2  6 kU%=,)#,6W W nX"=-&U,dOUd\+*d/Ud\7@4ee ]BKCL +!!3##5#53!R܂ddOn^FhhFm,4#M@J JI~a_HK_LL +3#5.5466753&'67$<{1ER^RR^RO.RIdB9siWWif'-oq b^^a qo94PI w\M,T@Q  !"J e e_HK_IL,+&$$$ +!5!654&#"'6632!!3267#"&&547#g&KLg`3u9XDT0LNB+$:FZD FEE+4-f5_>E#)2$e#'4^?/@, fBKCL +####533333dd555R55RK@HJ  e  e_HK]CL#" +%!!535#535#536632&#"3#3# iiiiiiwN)=fQWmmmFDFv/j'HFFDF:@7   J~BK^CL)! +$##55755753%%32653ˏiiii+8J7E7I8棇JEIԀv^34"@ JeCL +#4&'##466753RPxfcQcgyQ`QbmBz & yDmcpp]E@BJ  ee BKCL +3###5#535#535333iikiiiikiDF'FDF&F^l"#H:9!(-KPX@3ee ] BK ] EKCL@1  eee ] BKCLY@ )))-),+*&%$#!" +#3#####535#535!23!!&##'!!657!39kk}hiiiih},SDAY- EEM\EEELE#xE$$9@6 ee]BKCL! +%3##5#53!2#&##3265܂dd VQPW9FhhFxsrx&AC=#?@< J  eeU]M"!! +#3##'##532655!5!&&#5!m^QJYUcQ<}v)F OmnH=F"$F9@6Je_HK]CL#$ +%!!535#53546632&#"3# iiiiIbwN)=fUYmmmR.S{C/j'QM/RF %@"e]BKCL +!!#5!##FQQGGG16@3 J]BKCL +77#5575575#5!RNJJJEJIJJIJEJIKnn"&*.14r@o" 41J fe  BKCL''320/.-,+'*'*)(&%$#!  +3##'##'#53'#53'33733733%3'37#'#%#3#%#*UWXU|dUTW|UVUc.h`i78DFFDFFFADDDDDDFOOQ9@6 Jfe  BKCL +3#3##5#535#5333˦ǂǥ8FDFhhFDFPF 7A 2@/_BK`CL $ +&54632#73# &54632#k**)*^^"))))0)(()D((((J4A}? &@#Ue]M +##5#53533kk,dA,@U]M +!!A3dc' 0+''7'77nEC~~CE^IIIIALp ;@8geW_O $ +&54632#!!&54632# ((((3(((()(()Qd)(()A >K&PX@a]EL@eU]MY +!!!!A33 ddA@|rK PX@*no fU]M@( fU]MY@ +3!#7#537#5!733L=g=XK=f=XdssddssdAuG0+5%%53YlhhAuG0+%5%Y3߁hlAt "@HU]M +5%%5!!3G3igwxgdAt "@HU]M +%5%!!G333 xwgidAy 3@0ee]CL  +##5#5353!!kk3ccd633k@h~~   ~  ~g g  Wg _  O320/-+'%#" $"$ +&'&&#"#663232673#&'&&#"#663232673#h7 #PL>$7"#OL?$5"#PL>$7"#OL?y-'W[-'W[.&WZ.'X[6hdDKPX@Wg_O@)~~Wg_OY@$"$ +D&'&&#"#663232673#h7 #PL>%7!#OL?.&W[.'XZA|@U]M +%#5!5!k|d V/I'>@;!   JH GgW_O'')% +#"''7&54663277&#"$'32665,=h>Q?U#T-=g=S@Q#m%0&A%%-'B&:K=h=5O'N=J=g<5L'$&A&*!&B&&y*'3J@G0 Jg  W  _O(((3(2.,'&" &$& +#"&'#"&&54663266367&&#"3 654&#"3]66]:Ne))dO:^66^:Od))eNG##G52AA2BB15G""G5*5\::^5A::A5]::]5A::A9669?00?@0/?966977@4JgW_O$%$ +&'732654632&#"#4?"+#'`V$@#'$'_W\+*DUd],*Ud u^> @U]M +!#!#^n )>~ 9@6 JeU]M  +!55!!~>AnTnWigWnWA>00@-JU]M +##530ƁߕXdK R>\?}'H@EJggW_O'&" %&% +#"&&54663254&#"'636654&#"3KaJwECuH>a}qO@JYiE%S@CPO@ͺmU8hDCf8-*zi~"9!6GD98D!; '3KPX@%   h_HK  _ CLK!PX@+  g h_HK  _ CL@3  g hBK_HKCK  _ LLYY@&(((3(2.,'&"  $ +&54632#3#654&#"3&54632#6654&#"3}\\KK]]Kb"bc--)'//'\\KK]]K(..((..(CjVVjiWWiyD@::@A99ApjVVjjVVjFA99A@::@! '3?KKPX@+  h_HK  _ CLK!PX@1 g   h_HK  _ CL@9 g   hBK_HKCK  _ LLYY@6@@44((@K@JFD4?4>:8(3(2.,'&"  $ +&54632#3#654&#"3&54632# &54632#$654&#"3 654&#"3}\\KK]]Kb"bc--)'//'\\KK]]K+]]KK\\K..((..(//')--)CjVVjiWWiyD@::@A99ApjVVjjVVjiWWijVVjFA99A@::@A99A@::@V.@Ht +'#57bg@hfjL0+%''7'7,FD3oJ,H3;:$@!U]M +#7!5!'3nj4jn٫[kD0+'7'771EF+v3H-J^) @Gt +'53 ץb ffg>cJ0+%''77D3E,F,H3IJU;*@'JU]M +%!#'73!innj4ثdR0+%''77+D1ERH3H-2; .@+JU]M +#7!#'73!'3؏niinnjjnتثU  0+7'557]צ hffhahffV`.@Ht+'#57b8g@hf;l@f"L+#7!5!'3nj4jnE٫[^[ )%@ GKPX"LtY+'53 ץbRffg>Um#@ Jf"L+!#'73!innj4ث>0+ ,>0+ 7',& 0+'&~J=@jG@t +!!j||jG)@&eU]M +!!%5#j|A|GW4 t +!,VVs50+V W4@Gt +V:40+%: VW4#@ HU]M +!%',VR}}V:s50+7'V7 yyW4$@!GU]M +7#}V:40+%:7 VNyy,4:FK&PX@  ./J@  ./JYK&PX@,  g_ HK `LK_ML@3  ~  g_ HK `LK_MLY@;;;F;EA?:9%&%#&#% +#"&'#"&&5466325332654&&#"3267#"&&54663654&#"3wfZ0B >nD5Uo)+aqr`_q1e,,w:wxٍ8SSABRRBp~-*WAtJIsA$#A$ ]XjZ_ln_PvЄvUIHTUGHV))2>@;,+# J_HK_IL***2*1)(+" +'#"&&5467&&54632676654&#7'3kXbItBLV*$o\UfCLe+Xo0%54&&#"3.546632&#"327#*]]cc\^bSNLTTMMS2`66`=8WI@1AA1@IW8^aa^\bb^7PSSNOSSO^4];;]4/(02A66A2.*/,.7hdD@]"J~ g  e e W _O0/64/707,*)('%$#& +D#"&&546636654&&#"3#'###322654&##\^bb]]cQNLTTMMS)&XVN NVMY*..*J\bb^^aa^uPSSNOSSO:>xxJ?F%!!$@@= J~ U]M +!####'#33\T*WJJIV a'u{8dD@-gW_O& +D&&546632#6654&#"3N--N//N--N/+99++::+u-L..M--M..L-B:+,::,+:^>(KPX@ DKGL@ ]GLY +3#^ssX^>! !@eBKGL +#53533##}}lkk>!5@2 eeBKGL +3##5#535#53533]}}mjjjj,<-M@J+J~geW_O--&$'#& +&&546632!"32673#2554'&&#"3Jjjjki (IJ.96\ /{DD|0 __`__` 26>6?Jk /570 ^%)@  JK!PX@% g  e ] K!L@) g  e K _%K!LY@)('&%$ & +&&546632#3##332654&#!!T//T45S//S5vk~k^56++65,G}*J//J**J//J*?D&&3*)33)*3PB .'dD@Jt +D%#3bf=`8@]BL +3#8l [8e@]BL +3#3#8l [k Z,wCC3+^".2׵JKPX@3  g e _  K_  K!LK!PX@/  g e _ K_ %K!L@6  g e K _ %K_ %K!LYY@!##210/#.#-)'"!#+#4&#"#363&&546632#32654&#!!8YOVe~IT//T45S//S5+66+,66,Gƚc]_eduXb*J//J**J//J*3*)33)*3P!EC)2>@;,+# J_0K_1L***2*1)(+"+'#"&&5467&&54632676654&#7'3GPm>f:V 77-Q(_c%dD@U]M +D3#73#}PbP}Qb艉'_ (dD@W_O"! +D632#&&#"#*aIIaR4&&4RNNB#))#X" &dD@ JU_O# +D#"&54773# #)E %!\ej %dD@HW_O)  +D32654'7##!MPF##&8EP5 &dD@W_O $ +D&54632#"""" ## @9i 2dD@'W_O   $ +D&54632#2&54632#a!!##""""!!"!!!!! -dD@"JW]M  +D#7&5463! =#!SFQ %[?>dD@3 JgW_O## +D'73254&##73#&%5D+,J>;$f8-"+4 %2dD@'JHW_O+ +D&5467327#PEHK7?7 #)6;0.S%5='+ .dD@#W_O " +D&'332653#aN6))6NaIK= '' =K'N dD@U]M +D!!'ZhJ  dD@U]M +D!! lR dD@U]M +D!!3`h0+%h&39GZdD@t +D3#FHFZ`7qy *@'W_O   $+&54632#2&54632#Y""""""""""""""""*m'+-.3+.3+<'+..3+.3+''+3.3+.3+ @W_O $+&54632#(((((((('',323+23+(~@t+3#l~''-3.3+.3+~@t+3#l~'.,.3+.3+''.3.3+.3+E~@U]M+3#%3#}lb }kb~~@Jt+'#73XXgrJJ~@Jt+#'37mrgXX~JJ'0,3+3+'~ &@#W_O "+&'332673#aR4&&4RaINB"))"BN KPX@Wg`PK&PX@"~Wg`P@)~~Wg`PYY@$"$+&'&&#"#663232673#% C;0% C:0 =I ;H# '2+.3+.3+#'2..3+.3+#'23.3+.3+'_@U]M+!!'Z_K' '3+.3+.3+''3-.3+.3+''3..3+.3+qC#@ JGW_O$%+6654&#"'663240>V 77-Q(c~@U]M+3#73#}PbP}Qb~' @W_O"!+632#&&#"#*aIIaR4&&4R7NNB#))#4@U]M+!!``h=0+hY58D @t+3#]]Ga_@U]M+!!G_Kn$ 5KPX@ _JL@W_OY@ $ +&54632#.."".-#n+ +)!-D$*@'J HW_O* +&547327#Jd{n #/Zfr~+@LXd~%Vbnz ,8Dr~4@Lfv7Q]iuEQaq $4Mf<HT`q} ]iu9EQ&2>Jj*6BNZfr~   ( 4 N Z k w !!K!W!c!o!{!!!!!!!" ""#""""""###!#-#B#R#g#|##########$ $$$%^%%%%%%%&p&'''')'9''''''''(((,(8(D(P(\(h(t(((()()4)D)L)X)*I*U*a*m*y**+-+w+++++++++,,, ,5,A,Q,],i,u,,,,,,,-2-C-O-v--------..o.{....../ /k/{//////0 0020G0\0h0t00000191E1Q1]1i1w111112212G2S2h2}235344u44444455 5_5k55555555566677+777C7O7`7l7x7777778888+878G8W8g8w88888888899N9`9r9999: ::#:/:;:G:S:_:k:::::;0;;;;;<<<-<9>R>^>j>v>>>>>>>????&?2?>?J?V?k???@ @@@l@}@@@@@@@AAAAAAAB BB^BjBvBBBBCCCC+C7CCCOCCCCCCDDD+DxDDDDDEE)EBESEdE}EEEEEEF FF-F>FOF[FlF}FFFG3GvGGGGGGHH"H3HDHPH\HqHHHHHHII'I@IYIrIIIIIIIIJJ'J3JDJJJKKcKtKKKKKKKLLL+LIU!y˕ӖM iЗؘrzØ3?@ۚXdlxěМNZV&#r~ƠEѡ'hǢC'0N٥W_ǥ֥!0?NAtYé"c˪IݪFTbp~īҬ 2s+r/>̯ۯ&5DSbqȰذ(kбN}ҲHijֳ $IV{sն4AN[huͶն %1=\~׸>Shu;] ,8_ͺJkҽ}jpFgAk«7w+uħ.Xńź>Ɲƻǎ>muɃbʁʙʿ8P˂ˠ˿ /B^x̶̎%*^*^*^*^?^K?K??????X?^??<???O?^^^W^f^WKW^W^W^W^~^W^a^^*^9^*^*^*^*^*^*^Q^*^*^J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,J,k,^^J,^^^^^^^^u#u#u#Ju#u#u#u#u#u#u#u#X1,ZZZZZZZXXXXXXXXXXXXXXXXXXXXXXXXxxxxx )))))KXXXXXXXXXXXXXXXXXXXXXXXXXX8P8P^X^-----------------------bX,,,,,,,-,)K)K))))))%)))))  ^^^^)^^^^^^^D^^^J,1>iiiiiiiXXXXXXXXXXXXXXXXXXXXXXXXXXXXXSSSSSSSSSS....._,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,,,RE&E&E&E&E&E&E&&&&&&&&n&n&n&n&n&n&n&n&n&n&n&n&n&n&n&n&n&n&n&n&n&n&n&n&q &&&&&&&&RRR!A!R!=!!!! !!J!A!!.!HA!!>!'''|R||RqR!R!=!R!R}R!RHR!5RRRR/RRRRRRRR&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&)&RR&RR-RR?JR?      NNNNNNNNNNNNNNNNNNNNNNNNB= BBBBBBBBBB&&&&&GD&&&&&&&&&&&&&&&&&&&&&&&&&&,,&m&m&m&m&m&m&m&m&m&m&m&m&m&m&m&m&m&m&m&m&m&m&m&m&aRPRP=PRPRRPRVRP%P8&NNNNN@NNNNNIIIIIIIII+++++  R zzzzzzzzzzzzzzzzzzzzzzzzzzWi(i(i(i(i(i(i(WWWWW>W>W>W>W>W>W>W>W>W>W>W>6>W>W>W>W>W>W>W>W>W>W>W(7!7!%W((((((((WWWWW,W,W,BV6,,,,,,O,W,,3,s?, ,D,yWyWyWyWWCWWWWWW6W6WWWWWWWWWWW(((((((((((((((((((((((((((((((((((uWuW(}W}W}W}W}K}W}W}WJQQQQQQQQQQQQQQQQQQQQQQQQQxQHHHHHHHHHH5'5'5'5'5'QQQQQQQQQQQQQQQQQQQQQQQQQQKKW3$3$3$3$3$3$3$3$3$3$3$3$3$3$3$3$3$3$3$3$3$3$3$2Q((((((((555s65555555s?555WWWWWWWWWWWWW(        QQQQQQQQQQQQQQQQQQQQQQQQQQQQQLLLLLLLLLL7'7'7'7'7'! ccIcIcLc0bbb6c6c6cXcbbc2bM-1cb.l  ' 0BcIcfc'ccDcc,/Fc?*QRc1I4M- uc?bbLQb;bcPc3.l 0/c-cGbc/cTb-c  -b6%6%w6c6cM-M-M-   0Iccu 1 T-Pc.:. +Uc..XM---XXXXR SS,UlU c D XX8P-XXSSSUJ,U)6kTTTT }&}&}&o *TTTTjTjT&TT&TTE&OO;%4m&TTTTMT@TT %H&E&C! 'yTk'v &m&eT *jTzQiTTTT3)E&QQ4&m%TT&To jTTTi"KTU)U))}&|5|5o *TT&&&EOOOm&T@T5K)-(nTD('$o EEEiTOTTTn(EF4FLHgTT*E&Tr !"NF&$m&m&m&EEEE>TIIUHBH T&&,m&m&m&EEIIIBH{~ R^,}FF"H s,`(s.}FF"H s,`(sM 546-8@C574=6-8@C57M M M M :MMMM s<O<(*(;;(EE=88(ss0FcFZvs)r7r^^^[T\Arhro^p -777A*G*G*(*(**+4+([4[(;;*.*/-=8*(*(**8XX$d,E&,u#&-,9M^{^W#F10F5AsNANANcNANANANANANANANAN6N6NAN &~ *^)+AR?\!!XVXjX;XkX^XcXUXd 2XUXVX;X^XUXX&XjXjXWXsXWY:XWXsXWX: ,),, '/^/^??h,^OB88 ,^O!7*<''''E'__ ###''''q'@[ '' h7*<''''E' ###''''q'h GD<*'#'N.@:G@./78XXf8XX+X//XXXmXXmXXXfXXXcXXxXG's*x\X6f*E5C;'''#'''#!TS:lpXXKX^2@ ULA U    /9~-37Y $(.18#:C_cku)/ !%+/7;IS[io{     " & 0 3 : D R p y !!!"!&!+!.!T!^!""""""""+"H"`"e%%%%%%%'駌 0:*07Y#&.15$;Dbjr$.  $*.6:BLZ^lx      & 0 2 9 D R p t !!!"!&!*!.!S![!""""""""+"H"`"d%%%%%%%'觋0s;&] =A~ArzX: މ`bbvxH~ntz+1-}2@A$)L.4(3/ !(0IJRXhjmwy>%?5O /12:HPhinoy<=v,z|MdRNQH&KeS0 $?15<bZ\^*F  *(XQTVp0r"&'#+,B2=E3MKONVSge[f`Yiloqprv{}|$".354;A@>KJIfbRe`dkqz|{GZ)/ntz SQLk'H);A]d#68UaBLU-wB?>=DCLJG@EAFINSRTPnojwtfghilmpqrsv   "#%$&'*+)0567 /.123,-4!(89:;uyzk <=>?@ABCDEGHIJKLMNOPQSTVWXYZ[\U]^_`abcdefghijklmnopqrstuvwxFR{|%-.DC4PWT_sux~ +,&%79CD<?ENOgcmjls}   >@F689:7ca !WY[]^_\utvxsuwtxJIHKWXV'~y=, UXEY KQKSZX4(Y`f UX%acc#b!!YC#DC`B-, `f-, d P&Z( CEcEEX!%YR[X!#!X PPX!@Y 8PX!8YY  CEcEad(PX! CEcE 0PX!0Y PX f a PX` PX! ` 6PX!6``YYY% CcRXK PX! CKPX!Kac CcbYYdaY+YY#PXeYY-, E %ad CPX#B#B!!Y`-,#!#! dbB #BEX CEc C`Ec*! C +0%&QX`PaRYX#Y!Y @SX+!@Y#PXeY-,C+C`B-,#B# #Babfc`*-, E Ccb PX@`Yfc`D`-, CEB*!C`B- ,C#DC`B- , E +#C%` E#a d PX!0PX @YY#PXeY%#aDD`- , E +#C%` E#a d$PX@Y#PXeY%#aDD`- , #B EX!#!Y*!- ,EdaD-,` CJPX #BYCJRX #BY-, bfc c#aC` ` #B#-,KTXdDY$ e#x-,KQXKSXdDY!Y$e#x-,CUXCaB+YC%B %B%B# %PXC`%B #a*!#a #a*!C`%B%a*!Y CGCG`b PX@`Yfc Ccb PX@`Yfc`#DC>C`B-,ETX#B E #B #`B `aBB`++"Y-,+-,+-,+-,+-,+-,+-,+-,+-,+-, +-),# bfc`KTX# .]!!Y-*,# bfc`KTX# .q!!Y-+,# bfc&`KTX# .r!!Y-, +ETX#B E #B #`B `aBB`++"Y-,+- ,+-!,+-",+-#,+-$,+-%,+-&,+-',+-(, +-,, <`--, `` C#`C%a`,*!-.,-+-*-/, G Ccb PX@`Yfc`#a8# UX G Ccb PX@`Yfc`#a8!Y-0,ETX EB/*EX0Y"Y-1, +ETX EB/*EX0Y"Y-2, 5`-3, EBEcb PX@`Yfc+ Ccb PX@`Yfc+D>#82*!-4, < G Ccb PX@`Yfc`Ca8-5,.<-6, < G Ccb PX@`Yfc`CaCc8-7,% . G#B%IG#G#a Xb!Y#B6*-8,#B%%G#G#a B C+e.# <8-9,#B%% .G#G#a #B B C+ `PX @QX  &YBB# C #G#G#a#F`Cb PX@`Yfc` + a C`d#CadPXCaC`Y%b PX@`Yfca# &#Fa8#CF%CG#G#a` Cb PX@`Yfc`# +#C`+%a%b PX@`Yfc&a %`d#%`dPX!#!Y# &#Fa8Y-:,#B & .G#G#a#<8-;,#B #B F#G+#a8-<,#B%%G#G#aTX. <#!%%G#G#a %%G#G#a%%I%acc# Xb!Ycb PX@`Yfc`#.# <8#!Y-=,#B C .G#G#a ` `fb PX@`Yfc# <8->,# .F%FCXPRYX +-o,:+?+-p,:+@+-q,:+>+-r,:+?+-s,:+@+-t,;+..+-u,;+>+-v,;+?+-w,;+@+-x,;+>+-y,;+?+-z,;+@+-{,<+..+-|,<+>+-},<+?+-~,<+@+-,<+>+-,<+?+-,<+@+-,=+..+-,=+>+-,=+?+-,=+@+-,=+>+-,=+?+-,=+@+-, EX!#!YB+e$PxEX0Y-KRXYcpB@ k[K;'*B@p`P@4,*B@rhXH:0%*BA @@@@ @ @ *BA @@@@@@@ *D$QX@XdD&QX@cTXDYYYY@rbRB6.  *DdDD~~jj>7kk<Ekk<<<E~~jj>7~~jj;>B>~~jjG>@7  &  < &   &: "` "` 2 2   4  Copyright 2011 The Montserrat Project Authors (https://github.com/JulietaUla/Montserrat)Montserrat SemiBoldRegular7.200;ULA ;Montserrat-SemiBoldVersion 7.200Montserrat-SemiBoldJulieta Ulanovskyhttp://www.zkysky.com.ar/This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: http://scripts.sil.org/OFLhttp://scripts.sil.org/OFLMontserratSemiBold2p$     bc%&d'(e !"#$%&'()*+,-./0123)*456789+:;<=>,?@ABCDEFGH-I.JK/LMNOPQRS0T1UVWXYZ[\]f2^_`abcdgefghijklmnopqrstuvwx345yz{|}~678h9:;<=      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFDiGHIJKLMkNOPQRSlTjUVWXnYmZEFo[\]G^_`aHpbcdrefghijsklqmnopqrstuvIJwxyz{|K}~LtvwuMNOPQxRy{|z}STUVWX~YZ[\]      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ?" B^`>@  !a# _A      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]C^_`abcdefghijklmnopqrstuvwxNULLAbreveuni1EAEuni1EB6uni1EB0uni1EB2uni1EB4uni01CDuni1EA4uni1EACuni1EA6uni1EA8uni1EAAuni0200uni1EA0uni1EA2uni0202AmacronAogonek AringacuteAEacuteuni1E08 Ccircumflex Cdotaccentuni01C4DcaronDcroatuni1E0Cuni1E0Euni01C5EbreveEcaronuni1E1Cuni1EBEuni1EC6uni1EC0uni1EC2uni1EC4uni0204 Edotaccentuni1EB8uni1EBAuni0206Emacronuni1E16uni1E14Eogonekuni1EBCuni01B7uni01EEGcaron Gcircumflex Gcommaaccent Gdotaccentuni1E20uni01E4Hbaruni1E2Auni021E Hcircumflexuni1E24IJIbreveuni0208uni1E2Euni1ECAuni1EC8uni020AImacronIogonekItilde Jcircumflexuni01E8 Kcommaaccentuni01C7LacuteLcaron LcommaaccentLdotuni1E36uni01C8uni1E3Auni1E42uni01CANacuteNcaron Ncommaaccentuni1E44uni1E46Enguni01CBuni1E48Obreveuni1ED0uni1ED8uni1ED2uni1ED4uni1ED6uni020Cuni022Auni0230uni1ECCuni1ECEOhornuni1EDAuni1EE2uni1EDCuni1EDEuni1EE0 Ohungarumlautuni020EOmacronuni1E52uni1E50uni01EA Oslashacuteuni1E4Cuni1E4Euni022CRacuteRcaron Rcommaaccentuni0210uni1E5Auni0212uni1E5ESacuteuni1E64uniA78Buni1E66 Scircumflex Scommaaccentuni1E60uni1E62uni1E68uni1E9Euni018FTbarTcaronuni0162uni021Auni1E6Cuni1E6EUbreveuni01D3uni0214uni1EE4uni1EE6Uhornuni1EE8uni1EF0uni1EEAuni1EECuni1EEE Uhungarumlautuni0216Umacronuni1E7AUogonekUringUtildeuni1E78Wacute Wcircumflex WdieresisWgrave Ycircumflexuni1E8Euni1EF4Ygraveuni1EF6uni0232uni1EF8Zacute Zdotaccentuni1E92Iacute_J.loclNLDA.ss01 Aacute.ss01 Abreve.ss01 uni1EAE.ss01 uni1EB6.ss01 uni1EB0.ss01 uni1EB2.ss01 uni1EB4.ss01 uni01CD.ss01Acircumflex.ss01 uni1EA4.ss01 uni1EAC.ss01 uni1EA6.ss01 uni1EA8.ss01 uni1EAA.ss01 uni0200.ss01Adieresis.ss01 uni1EA0.ss01 Agrave.ss01 uni1EA2.ss01 uni0202.ss01 Amacron.ss01 Aogonek.ss01 Aring.ss01Aringacute.ss01 Atilde.ss01AE.ss01 AEacute.ss01 uni01C4.ss01 uni01C5.ss01E.ss01 Eacute.ss01 Ebreve.ss01 Ecaron.ss01 uni1E1C.ss01Ecircumflex.ss01 uni1EBE.ss01 uni1EC6.ss01 uni1EC0.ss01 uni1EC2.ss01 uni1EC4.ss01 uni0204.ss01Edieresis.ss01Edotaccent.ss01 uni1EB8.ss01 Egrave.ss01 uni1EBA.ss01 uni0206.ss01 Emacron.ss01 uni1E16.ss01 uni1E14.ss01 Eogonek.ss01 uni1EBC.ss01F.ss01G.ss01 Gbreve.ss01 Gcaron.ss01Gcircumflex.ss01Gcommaaccent.ss01Gdotaccent.ss01 uni1E20.ss01 uni01E4.ss01I.ss01IJ.ss01 Iacute.ss01Iacute_J.loclNLD.ss01 Ibreve.ss01Icircumflex.ss01 uni0208.ss01Idieresis.ss01 uni1E2E.ss01Idotaccent.ss01 uni1ECA.ss01 Igrave.ss01 uni1EC8.ss01 uni020A.ss01 Imacron.ss01 Iogonek.ss01 Itilde.ss01J.ss01Jcircumflex.ss01 uni01C7.ss01M.ss01 uni1E42.ss01N.ss01 uni01CA.ss01 Nacute.ss01 Ncaron.ss01Ncommaaccent.ss01 uni1E44.ss01 uni1E46.ss01Eng.ss01 uni01CB.ss01 uni1E48.ss01 Ntilde.ss01Q.ss01 uni018F.ss01T.ss01 Tbar.ss01 Tcaron.ss01 uni0162.ss01 uni021A.ss01 uni1E6C.ss01 uni1E6E.ss01U.ss01 Uacute.ss01 Ubreve.ss01 uni01D3.ss01Ucircumflex.ss01 uni0214.ss01Udieresis.ss01 uni1EE4.ss01 Ugrave.ss01 uni1EE6.ss01 Uhorn.ss01 uni1EE8.ss01 uni1EF0.ss01 uni1EEA.ss01 uni1EEC.ss01 uni1EEE.ss01Uhungarumlaut.ss01 uni0216.ss01 Umacron.ss01 uni1E7A.ss01 Uogonek.ss01 Uring.ss01 Utilde.ss01 uni1E78.ss01W.ss01 Wacute.ss01Wcircumflex.ss01Wdieresis.ss01 Wgrave.ss01Y.ss01 Yacute.ss01Ycircumflex.ss01Ydieresis.ss01 uni1E8E.ss01 uni1EF4.ss01 Ygrave.ss01 uni1EF6.ss01 uni0232.ss01 uni1EF8.ss01Z.ss01 Zacute.ss01 Zcaron.ss01Zdotaccent.ss01 uni1E92.ss01abreveuni1EAFuni1EB7uni1EB1uni1EB3uni1EB5uni01CEuni1EA5uni1EADuni1EA7uni1EA9uni1EABuni0201uni1EA1uni1EA3uni0203amacronaogonek aringacuteaeacuteuni1E09 ccircumflex cdotaccentdcaronuni1E0Duni1E0Funi01C6ebreveecaronuni1E1Duni1EBFuni1EC7uni1EC1uni1EC3uni1EC5uni0205 edotaccentuni1EB9uni1EBBuni0207emacronuni1E17uni1E15eogonekuni1EBDuni0259uni0292uni01EFgcaron gcircumflex gcommaaccent gdotaccentuni1E21uni01E5hbaruni1E2Buni021F hcircumflexuni1E25ibreveuni0209uni1E2F i.loclTRKuni1ECBuni1EC9uni020Bijimacroniogonekitildeuni0237 jcircumflexuni01E9 kcommaaccent kgreenlandiclacutelcaron lcommaaccentldotuni1E37uni01C9uni1E3Buni1E43nacute napostrophencaron ncommaaccentuni1E45uni1E47enguni01CCuni1E49obreveuni1ED1uni1ED9uni1ED3uni1ED5uni1ED7uni020Duni022Buni0231uni1ECDuni1ECFohornuni1EDBuni1EE3uni1EDDuni1EDFuni1EE1 ohungarumlautuni020Fomacronuni1E53uni1E51uni01EB oslashacuteuni1E4Duni1E4Funi022Dracutercaron rcommaaccentuni0211uni1E5Buni0213uni1E5Fsacuteuni1E65uniA78Cuni1E67 scircumflex scommaaccentuni1E61uni1E63uni1E69longstbartcaronuni0163uni021Buni1E97uni1E6Duni1E6Fubreveuni01D4uni0215uni1EE5uni1EE7uhornuni1EE9uni1EF1uni1EEBuni1EEDuni1EEF uhungarumlautuni0217umacronuni1E7Buogonekuringutildeuni1E79wacute wcircumflex wdieresiswgrave ycircumflexuni1E8Funi1EF5ygraveuni1EF7uni0233uni1EF9zacute zdotaccentuni1E93iacute_j.loclNLDa.ss01 aacute.ss01 abreve.ss01 uni1EAF.ss01 uni1EB7.ss01 uni1EB1.ss01 uni1EB3.ss01 uni1EB5.ss01 uni01CE.ss01acircumflex.ss01 uni1EA5.ss01 uni1EAD.ss01 uni1EA7.ss01 uni1EA9.ss01 uni1EAB.ss01 uni0201.ss01adieresis.ss01 uni1EA1.ss01 agrave.ss01 uni1EA3.ss01 uni0203.ss01 amacron.ss01 aogonek.ss01 aring.ss01aringacute.ss01 atilde.ss01ae.ss01 aeacute.ss01 uni01C6.ss01e.ss01 eacute.ss01 ebreve.ss01 ecaron.ss01 uni1E1D.ss01ecircumflex.ss01 uni1EBF.ss01 uni1EC7.ss01 uni1EC1.ss01 uni1EC3.ss01 uni1EC5.ss01 uni0205.ss01edieresis.ss01edotaccent.ss01 uni1EB9.ss01 egrave.ss01 uni1EBB.ss01 uni0207.ss01 emacron.ss01 uni1E17.ss01 uni1E15.ss01 eogonek.ss01 uni1EBD.ss01 uni0259.ss01f.ss01l.ss01 lacute.ss01 lcaron.ss01lcommaaccent.ss01 ldot.ss01 uni1E37.ss01 uni01C9.ss01 uni1E3B.ss01 lslash.ss01oe.ss01t.ss01 tbar.ss01 tcaron.ss01 uni0163.ss01 uni021B.ss01 uni1E97.ss01 uni1E6D.ss01 uni1E6F.ss01w.ss01 wacute.ss01wcircumflex.ss01wdieresis.ss01 wgrave.ss01y.ss01 yacute.ss01ycircumflex.ss01ydieresis.ss01 uni1EF5.ss01 ygrave.ss01 uni1EF7.ss01 uni0233.ss01 uni1EF9.ss01z.ss01 zacute.ss01 zcaron.ss01zdotaccent.ss01 uni1E93.ss01T_hfi.ss01fl.ss01a.sc aacute.sc abreve.sc uni1EAF.sc uni1EB7.sc uni1EB1.sc uni1EB3.sc uni1EB5.sc uni01CE.scacircumflex.sc uni1EA5.sc uni1EAD.sc uni1EA7.sc uni1EA9.sc uni1EAB.sc uni0201.sc adieresis.sc uni1EA1.sc agrave.sc uni1EA3.sc uni0203.sc amacron.sc aogonek.scaring.sc aringacute.sc atilde.scae.sc aeacute.scb.scc.sc cacute.sc ccaron.sc ccedilla.sc uni1E09.scccircumflex.sc cdotaccent.scd.sceth.sc dcaron.sc dcroat.sc uni1E0D.sc uni1E0F.sc uni01C6.sce.sc eacute.sc ebreve.sc ecaron.sc uni1E1D.scecircumflex.sc uni1EBF.sc uni1EC7.sc uni1EC1.sc uni1EC3.sc uni1EC5.sc uni0205.sc edieresis.sc edotaccent.sc uni1EB9.sc egrave.sc uni1EBB.sc uni0207.sc emacron.sc uni1E17.sc uni1E15.sc eogonek.sc uni1EBD.sc uni0259.sc uni0292.sc uni01EF.scf.scg.sc gbreve.sc gcaron.scgcircumflex.scgcommaaccent.sc gdotaccent.sc uni1E21.sc uni01E5.sch.schbar.sc uni1E2B.sc uni021F.schcircumflex.sc uni1E25.sci.sc dotlessi.sc iacute.sciacute_j.loclNLD.sc ibreve.scicircumflex.sc uni0209.sc idieresis.sc uni1E2F.sc i.sc.loclTRK uni1ECB.sc igrave.sc uni1EC9.sc uni020B.scij.sc imacron.sc iogonek.sc itilde.scj.scjcircumflex.sck.sc uni01E9.sckcommaaccent.sckgreenlandic.scl.sc lacute.sc lcaron.sclcommaaccent.scldot.sc uni1E37.sc uni01C9.sc uni1E3B.sc lslash.scm.sc uni1E43.scn.sc nacute.sc ncaron.scncommaaccent.sc uni1E45.sc uni1E47.sceng.sc uni01CC.sc uni1E49.sc ntilde.sco.sc oacute.sc obreve.scocircumflex.sc uni1ED1.sc uni1ED9.sc uni1ED3.sc uni1ED5.sc uni1ED7.sc uni020D.sc odieresis.sc uni022B.sc uni0231.sc uni1ECD.sc ograve.sc uni1ECF.scohorn.sc uni1EDB.sc uni1EE3.sc uni1EDD.sc uni1EDF.sc uni1EE1.scohungarumlaut.sc uni020F.sc omacron.sc uni1E53.sc uni1E51.sc uni01EB.sc oslash.scoslashacute.sc otilde.sc uni1E4D.sc uni1E4F.sc uni022D.scoe.scp.scthorn.scq.scr.sc racute.sc rcaron.scrcommaaccent.sc uni0211.sc uni1E5B.sc uni0213.sc uni1E5F.scs.sc sacute.sc uni1E65.sc uniA78C.sc scaron.sc uni1E67.sc scedilla.scscircumflex.scscommaaccent.sc uni1E61.sc uni1E63.sc uni1E69.sc germandbls.sct.sctbar.sc tcaron.sc uni0163.sc uni021B.sc uni1E97.sc uni1E6D.sc uni1E6F.scu.sc uacute.sc ubreve.sc uni01D4.scucircumflex.sc uni0215.sc udieresis.sc uni1EE5.sc ugrave.sc uni1EE7.scuhorn.sc uni1EE9.sc uni1EF1.sc uni1EEB.sc uni1EED.sc uni1EEF.scuhungarumlaut.sc uni0217.sc umacron.sc uni1E7B.sc uogonek.scuring.sc utilde.sc uni1E79.scv.scw.sc wacute.scwcircumflex.sc wdieresis.sc wgrave.scx.scy.sc yacute.scycircumflex.sc ydieresis.sc uni1E8F.sc uni1EF5.sc ygrave.sc uni1EF7.sc uni0233.sc uni1EF9.scz.sc zacute.sc zcaron.sc zdotaccent.sc uni1E93.sc a.sc.ss01aacute.sc.ss01abreve.sc.ss01uni1EAF.sc.ss01uni1EB7.sc.ss01uni1EB1.sc.ss01uni1EB3.sc.ss01uni1EB5.sc.ss01uni01CE.sc.ss01acircumflex.sc.ss01uni1EA5.sc.ss01uni1EAD.sc.ss01uni1EA7.sc.ss01uni1EA9.sc.ss01uni1EAB.sc.ss01uni0201.sc.ss01adieresis.sc.ss01uni1EA1.sc.ss01agrave.sc.ss01uni1EA3.sc.ss01uni0203.sc.ss01amacron.sc.ss01aogonek.sc.ss01 aring.sc.ss01aringacute.sc.ss01atilde.sc.ss01 ae.sc.ss01aeacute.sc.ss01uni01C6.sc.ss01 e.sc.ss01eacute.sc.ss01ebreve.sc.ss01ecaron.sc.ss01uni1E1D.sc.ss01ecircumflex.sc.ss01uni1EBF.sc.ss01uni1EC7.sc.ss01uni1EC1.sc.ss01uni1EC3.sc.ss01uni1EC5.sc.ss01uni0205.sc.ss01edieresis.sc.ss01edotaccent.sc.ss01uni1EB9.sc.ss01egrave.sc.ss01uni1EBB.sc.ss01uni0207.sc.ss01emacron.sc.ss01uni1E17.sc.ss01uni1E15.sc.ss01eogonek.sc.ss01uni1EBD.sc.ss01uni0259.sc.ss01 f.sc.ss01 g.sc.ss01gbreve.sc.ss01gcaron.sc.ss01gcircumflex.sc.ss01gcommaaccent.sc.ss01gdotaccent.sc.ss01uni1E21.sc.ss01uni01E5.sc.ss01 i.sc.ss01dotlessi.sc.ss01iacute.sc.ss01iacute_j.loclNLD.sc.ss01ibreve.sc.ss01icircumflex.sc.ss01uni0209.sc.ss01idieresis.sc.ss01uni1E2F.sc.ss01uni1ECB.sc.ss01igrave.sc.ss01uni1EC9.sc.ss01uni020B.sc.ss01 ij.sc.ss01imacron.sc.ss01iogonek.sc.ss01itilde.sc.ss01 j.sc.ss01jcircumflex.sc.ss01uni01C9.sc.ss01 m.sc.ss01uni1E43.sc.ss01 n.sc.ss01nacute.sc.ss01ncaron.sc.ss01ncommaaccent.sc.ss01uni1E45.sc.ss01uni1E47.sc.ss01 eng.sc.ss01uni01CC.sc.ss01uni1E49.sc.ss01ntilde.sc.ss01 q.sc.ss01 t.sc.ss01 tbar.sc.ss01tcaron.sc.ss01uni0163.sc.ss01uni021B.sc.ss01uni1E97.sc.ss01uni1E6D.sc.ss01uni1E6F.sc.ss01 u.sc.ss01uacute.sc.ss01ubreve.sc.ss01uni01D4.sc.ss01ucircumflex.sc.ss01uni0215.sc.ss01udieresis.sc.ss01uni1EE5.sc.ss01ugrave.sc.ss01uni1EE7.sc.ss01 uhorn.sc.ss01uni1EE9.sc.ss01uni1EF1.sc.ss01uni1EEB.sc.ss01uni1EED.sc.ss01uni1EEF.sc.ss01uhungarumlaut.sc.ss01uni0217.sc.ss01umacron.sc.ss01uni1E7B.sc.ss01uogonek.sc.ss01 uring.sc.ss01utilde.sc.ss01uni1E79.sc.ss01 w.sc.ss01wacute.sc.ss01wcircumflex.sc.ss01wdieresis.sc.ss01wgrave.sc.ss01 y.sc.ss01yacute.sc.ss01ycircumflex.sc.ss01ydieresis.sc.ss01uni1E8F.sc.ss01uni1EF5.sc.ss01ygrave.sc.ss01uni1EF7.sc.ss01uni0233.sc.ss01uni1EF9.sc.ss01 z.sc.ss01zacute.sc.ss01zcaron.sc.ss01zdotaccent.sc.ss01uni1E93.sc.ss01uni0410uni0411uni0412uni0413uni0403uni0490uni0414uni0415uni0400uni0401uni0416uni0417uni0418uni0419uni040Duni048Auni041Auni040Cuni041Buni041Cuni041Duni041Euni041Funi0420uni0421uni0422uni0423uni040Euni0424uni0425uni0427uni0426uni0428uni0429uni040Funi042Cuni042Auni042Buni0409uni040Auni0405uni0404uni042Duni0406uni0407uni0408uni040Buni042Euni042Funi0402uni0462uni046Auni0472uni0474uni0492uni0494uni0496uni0498uni049Auni049Cuni049Euni04A0uni04A2uni04A4uni04A6uni0524uni04A8uni04AAuni04ACuni04AEuni04B0uni04B2uni04B4uni04B6uni04B8uni04BAuni0526uni04BCuni04BEuni04C0uni04C1uni04C3uni04C7uni04C9uni04CBuni04CDuni04D0uni04D2uni04D4uni04D6uni04D8uni04DAuni04DCuni04DEuni04E0uni04E2uni04E4uni04E6uni04E8uni04EAuni04ECuni04EEuni04F0uni04F2uni04F4uni04F6uni04F8uni04FAuni04FCuni04FEuni0510uni0512uni051Auni051Cuni048Cuni048Euni0528uni052Euni0414.loclBGRuni041B.loclBGRuni0424.loclBGRuni0492.loclBSHuni0498.loclBSHuni04AA.loclBSHuni04AA.loclCHU uni0410.ss01 uni0414.ss01 uni0415.ss01 uni0400.ss01 uni0401.ss01 uni0418.ss01 uni0419.ss01 uni048A.ss01 uni040D.ss01 uni041B.ss01 uni0420.ss01 uni0422.ss01 uni0423.ss01 uni040E.ss01 uni0424.ss01 uni042C.ss01 uni042A.ss01 uni042B.ss01 uni0409.ss01 uni040A.ss01 uni0408.ss01 uni0462.ss01 uni04AC.ss01 uni04D0.ss01 uni04D2.ss01 uni04D4.ss01 uni04D6.ss01 uni04E2.ss01 uni04E4.ss01 uni04EE.ss01 uni04F0.ss01 uni04F2.ss01 uni04F8.ss01 uni051A.ss01 uni048C.ss01uni0430uni0431uni0432uni0433uni0453uni0491uni0434uni0435uni0450uni0451uni0436uni0437uni0438uni0439uni045Duni048Buni043Auni045Cuni043Buni043Cuni043Duni043Euni043Funi0440uni0441uni0442uni0443uni045Euni0444uni0445uni0447uni0446uni0448uni0449uni045Funi044Cuni044Auni044Buni0459uni045Auni0455uni0454uni044Duni0456uni0457uni0458uni045Buni044Euni044Funi0452uni0463uni046Buni0473uni0475uni0493uni0495uni0497uni0499uni049Buni049Duni049Funi04A1uni04A3uni04A5uni0525uni04A7uni04A9uni04ABuni04ADuni04AFuni04B1uni04B3uni04B5uni04B7uni04B9uni04BBuni0527uni04BDuni04BFuni04CFuni04C2uni04C4uni04C6uni04C8uni04CAuni04CCuni04CEuni04D1uni04D3uni04D5uni04D7uni04D9uni04DBuni04DDuni04DFuni04E1uni04E3uni04E5uni04E7uni04E9uni04EBuni04EDuni04EFuni04F1uni04F3uni04F5uni04F7uni04F9uni04FBuni04FDuni04FFuni0511uni0513uni051Buni051Duni048Duni048Funi0529uni052Funi0432.loclBGRuni0433.loclBGRuni0434.loclBGRuni0436.loclBGRuni0437.loclBGRuni0438.loclBGRuni0439.loclBGRuni045D.loclBGRuni043A.loclBGRuni043B.loclBGRuni043D.loclBGRuni043F.loclBGRuni0442.loclBGRuni0447.loclBGRuni0446.loclBGRuni0448.loclBGRuni0449.loclBGRuni044C.loclBGRuni044A.loclBGRuni044E.loclBGRuni0493.loclBSHuni0499.loclBSHuni04AB.loclCHUuni0453.loclMKDuni0431.loclSRBuni0433.loclSRBuni0434.loclSRBuni043F.loclSRBuni0442.loclSRB uni0430.ss01 uni0434.ss01 uni0435.ss01 uni0450.ss01 uni0451.ss01 uni0438.ss01 uni0439.ss01 uni048B.ss01 uni045D.ss01 uni0440.ss01 uni0442.ss01 uni0443.ss01 uni045E.ss01 uni044C.ss01 uni044A.ss01 uni044B.ss01 uni0459.ss01 uni045A.ss01 uni0463.ss01 uni04D1.ss01 uni04D3.ss01 uni04D5.ss01 uni04D7.ss01 uni04D9.ss01 uni04DB.ss01 uni04E3.ss01 uni04E5.ss01 uni04EF.ss01 uni04F1.ss01 uni04F3.ss01 uni04F9.ss01 uni048D.ss01uni0394uni03A9uni03BCuni212Buni212Azero.osfone.osftwo.osf three.osffour.osffive.osfsix.osf seven.osf eight.osfnine.osf zero.sinfone.sinftwo.sinf three.sinf four.sinf five.sinfsix.sinf seven.sinf eight.sinf nine.sinfzero.tfone.tftwo.tfthree.tffour.tffive.tfsix.tfseven.tfeight.tfnine.tf zero.tosfone.tosftwo.tosf three.tosf four.tosf five.tosfsix.tosf seven.tosf eight.tosf nine.tosfuni2080uni2081uni2082uni2083uni2084uni2085uni2086uni2087uni2088uni2089 zero.dnomone.dnomtwo.dnom three.dnom four.dnom five.dnomsix.dnom seven.dnom eight.dnom nine.dnom zero.numrone.numrtwo.numr three.numr four.numr five.numrsix.numr seven.numr eight.numr nine.numruni2070uni00B9uni00B2uni00B3uni2074uni2075uni2076uni2077uni2078uni2079uni2153uni2154 oneeighth threeeighths fiveeighths seveneighthsbackslash.caseperiodcentered.case bullet.caseperiodcentered.loclCAT.case slash.caseperiodcentered.loclCATbraceleft.casebraceright.casebracketleft.casebracketright.caseparenleft.caseparenright.case figuredashuni2015uni2010uni00AD emdash.case endash.case hyphen.caseguillemotleft.caseguillemotright.caseguilsinglleft.caseguilsinglright.case exclam.sc exclamdown.scguillemotleft.scguillemotright.scguilsinglleft.scguilsinglright.sc period.sc question.scquestiondown.sc quotedbl.scquotedblbase.scquotedblleft.scquotedblright.sc quoteleft.sc quoteright.scquotesinglbase.scquotesingle.scuni27E8uni27E9uni2007uni200Auni2008uni00A0uni2009uni200Buni20B5 colonmonetarydongEurouni20B2uni20B4uni20ADlirauni20BAuni20BCuni20A6pesetauni20B1uni20BDuni20B9uni20B8uni20AEuni20A9uni2219uni2052uni2215emptysetuni2126uni2206uni00B5arrowupuni2197 arrowrightuni2198 arrowdownuni2199 arrowleftuni2196 arrowboth arrowupdn arrowup.casearrowright.casearrowdown.casearrowleft.caseuni25C6uni25C7 filledboxuni25A1triagupuni25B6triagdnuni25C0uni25B3uni25B7uni25BDuni25C1uni2113 estimateduni2116minutesecondat.case uni2116.ss01 ampersand.scuni0308 uni03080300 uni03080301 uni03080304uni0307 uni03070304 gravecomb uni03000304 acutecomb uni03010307 uni03010304uni030B caroncomb.altuni0302uni030C uni030C0307uni0306uni030A uni030A0301 tildecomb uni03030308tildecomb_acutecomb uni03030304uni0304 uni03040308 uni03040300 uni03040301 hookabovecombuni030Funi0311uni0312uni031B dotbelowcombuni0324uni0326uni0327uni0328uni032Euni0331uni0335uni0336uni0337uni0338 uni0308.caseuni03080300.caseuni03080301.caseuni03080304.case uni0307.caseuni03070304.casegravecomb.caseuni03000304.caseacutecomb.caseuni03010307.caseuni03010304.case uni030B.case uni0302.case uni030C.caseuni030C0307.case uni0306.casetildecomb.caseuni03030308.casetildecomb_acutecomb.caseuni03030304.case uni0304.caseuni03040308.caseuni03040300.caseuni03040301.casehookabovecomb.case uni030F.case uni0311.case uni0335.case uni0337.case uni0338.caseuni0304.narrow.case uni0307.i uni0328.iuni0308.loclVIETuni0307.loclVIETgravecomb.loclVIETacutecomb.loclVIETuni0302.loclVIETuni030C.loclVIETuni0306.loclVIETtildecomb.loclVIETuni0304.loclVIEThookabovecomb.loclVIETuni0308.narrowuni0302.narrowuni0306.narrowtildecomb.narrowuni0304.narrowuni0311.narrowcaroncomb.alt.short uni0335.tuni02BCuni02BBuni02BAuni02C9uni02CBuni02B9uni02BFuni02BEuni02CAuni02CCuni02C8 uni0335.sc uni0336.sc uni0338.sc brevecombcybrevecombcy.case descendercydescendercy.casedescendercy.case.shortdescendercy.short uni03060301 uni03060300 uni03060309 uni03060303 uni03020301 uni03020300 uni03020309 uni03020303uni03060301.caseuni03060300.caseuni03060309.caseuni03060303.caseuni03020301.caseuni03020300.caseuni03020309.caseuni03020303.caseverticalbarcy.case verticalbarcy VaHJ*,68PRTV <>EHmo}#%57[]*,.0cffhjm|~  !#$&'))+,.4::<<>@BFIMOQSVXXZZ\dfqvx||'^m $^m NDFLTcyrl$latn4 kern8kern8kern8mark@mark@mark@mkmkJmkmkJmkmkJ,,XB"(((.5abdg~pp x /# # 7-<(2### 22 (  (    <!   #   (  2  |~||~~   L'  $'.&( %!'.#%%&'"(()* ++,,.. //001233445566::==??AA*CC)EE)GG+LN"RR"TT"VV WWXXYYZZ[[ ]] __ ``,aabb"cc dd"ee ff gghhjj oo """"->>  $:((2(2_  #  (2(  (  2      (        ( #2(x _       y(2  (2###(# (% #<2-#(#  # - <   -((--##2K((-#(-2< -(~  -  }< %,.8::<<>>@@BBDDFFLNQp=@AB>>D;&' (()*++,,..//001233445578 ::<<>>@@ BBDDFFLN QQ RR SS TT UU VVWWXXYYZZ[[\\]] ^^__ ``aabb cc dd ee ffgghhiijjkkllmmnnoopp   >>f-*'  -$6850+(  -%6%%&'/(()*++.,,..//0012 3344&55,6678::&==>>7??AACCEEGGLN/QQRR/SSTT/UUVVWWXXYYZZ[[\\]]4^^__4``aa bb/ccdd/eeffgghhii!jjkkllmmnnoopp!||33332333"231&////#) 9>> p z X    (    (  -<(            ( (                     8!'%JQ%hi%%&&%? K*.++K,3%446DEFUV%W]^z?{/ '88S S S .8//S11829S:<F>EFHO<PgVhmnnoxy}I8'88VI<<!!!!%,!EF `!!UUH>L3!O! !//!07_c>de ffpp{{%~~%%&%%% %%.%%%K.K/%??K./%?'% S 8SS8S8 !""8##$$V%)S++S--S..F//812S33 55S6699::8;;==S>>@ASDGSHI8KLMMOPVVVWWSYZS[[V\\S]_'`b8ccfgShj8lnooVprSstww8xxzzS{{ }}8~~F8VSVS8SS8V8VVVS8'8VJ9$#PJ"47WEG,CBJ*4)$$ %% &'5((1)*++@,,A..//001233144+55-66 78R::+==M??MCCNEENGGTLN5QQRRR5SSDTT5UUDVVWWXX;YYZZ;[[\\R]]Q^^R__Qbb5dd5ffjjooyy%zz8{{%||2}}&~~82(2%2622262+5555S%0:%=%%>>  0ANTmFPT ^h4(((((((BPbp~^^^XXNNXXXXXppXX 44NXXXX^^pTI+WXYZ[\]1JLdde$&'045:<>@LMNSUWYce>%64-5(:-= ? G- (K#)$6 -(F(#68 (## (#(dPeP$P/(d(e($(de$FFF%6a\ HIJKLMNO222,   /23456789... P2r<<A(2<-6-4<52:<<o5oll  2     6   lPPZ su32{2&'LMNRTW XY Zbd> !q   (! 7     (   (        A ( 7     P        ((  2  3$( ((#  2  `)(<)F ! ("    -# 2    XFHC68H1JB11PY`gyffhhmtv )13:GHIST  UVZ]$(^++c13d67gDDiFGjNPlX\ofgtoovqqwvwx{|z|}yy{{}} !'(())*.//0FHHIIJQRX YYZg hijl mm nnos ttuv wy zz{  *++,344 55 66 8D EG HHJJKK LQRRSTUVW]^g hhiu v11PY`gy}~hhmoppqqrt vwxz {{|| }}~~                        $(++1367DDFGNPX\fgooqqvw{| yy{{}}    l!'(FlGHLIIlJQRglhijlllMMp jl]l*J++],344i55l6DiEFGHlJTlUVW] ^z {jNo&R&ofeofo f .&//f00o11&29f:<1>E1FFoHO6Pg=hm@nnBox@y}F&N&o&o=F66OV' V!!'$$V%,'-DVEF"G_V`'V'VXX7>ACD[PV'S'\V\V\ !#".V//'0778T>U^E_c[deffgklllmolpp qqLrwlxxyzl{{|}l~~  lllMLll   l Lll  ll lll LlL l J ll]_JlK]   l ]Jl N f   &BRff&f&8 !@""&##B$$=%)f**8++f,,--f..1//&00R12f33e44I55f66B77o88899B::&;;@<<==f>>B??R@AfBBoCC8DGfHI&JJ8KL@MMBNN8OP=QRoSTUUoVVBWWfXXYZf[[=\\f]_N`b&ccBdeRfgfhj&kkRln@oo=prfstBuuWvvww&xx@yy2zzf{{e||}}&~~1&BR=of=8ofR&ff&=&=n==f&N&=2lG(Z9TG3$H)<:UG4%$$%%&' (()*+++a,,..+//,00-1203344555?6678!::5==`>>h??`@@mAA^CCEEGGkLN QQ!RR SSTT UUVV+WW.XX/YY.ZZ/[[+\\!]]^^!__``baacbb ccddd eedff+jj+oo+yyzz&{{}}M~~&ll5   l fQ*Y;gl0>>. @ b <  2            2   2< 7(  #((#+   <3).).8))$$G)3$dd- (    -2 (    !$CF Hcc?     !! $$%,-5667@AABDEFGJ KP QQRS T\]]^_`       "#+ ,,-. // 078ABBCFHOPTU^_c!'JQ,3UV.: :!!$$:%,-D:EFG_:`::44 %'()9:;::".://07 8T%U^*_c9de{{~~+#! +1,$- 2+1$$%%&' ((5)*++,,..//003354455&66::==7??7AA8LN RR SS TT UU VVWWXXYYZZ[[``6aabb cc dd ee ffgghh3jjkkllmmnnooyy{{    /"0>>H C     (((#   "F# 2 #   # |~ ||~~  !'JQhi,3EFUVW]{ >>?=>?> ? .//?00>1129?:<>EFF>HOPg@hmnnoxy}A >>@A !!%,EF `BB ! //07_cde ffpp{{~~  ? ??? !""##$$@%)?++?--?..//12?33=55?6677>99::;;==?>>@A?BB>DG?HIKLMMOP@QR>UU>VVWW?YZ?[[@\\?]_ `bccfg?hjlnoo@pr?stwwxxzz?{{=}}~~@>?@>???@@@@? @+98'5<,:(&6$$ %%&'*((")*/++#..///000112433"44755;66::7== ?? AA-CC!EE!GG.LN*RR*TT*VV/XX3ZZ3[[/``$aa%bb*cc)dd*ee)ff/hh2jj/oo/yyzz{{}}~~7****?4F (! P-#- 2y7(((-2de$hi ++W] !!  .!//11!29HO7hm>nn@ox>y}C!!!C77 "!!"%,"`""338?AB "" !//"078deffpp   !@!! !>""!##@%)++--//!125566@99@::!;;>==>>@@ADGHI!KL>MM@VV@WWYZ\\`b!cc@fghj!ln>prst@ww!xx>zz}}!!@!!!!!D#;D4E$<9D5 $$&')*'++..'//(00*12044655=::6==??LNRRSSTTUUVV'WW,XX.YY,ZZ.[[']]__``aabbccddeeff'gg)hh+ii1jj'kk-ll/mm-nn/oo'pp1zz!||}}~~!26& %:0>>,2?2yx< Zd + A #      dF     V`B!7 2   -- < ZF< 2  (!  ## + 7PU-2dn2A-# %,.8::<<>BDDFFLNQp?BCDE>>G>&' (()*++,,..//001233445578 ::<<>>??@@AABBDDFFLN QQ RR SS TT UU VVWWXXYYZZ[[\\ ]] ^^ __ ``aabb cc dd ee ffgghhiijjkkllmmnnoopp   >>N >!'(F>GHII>JQRg>hij>>>++ )>0>*4++0,344.55>6D.EFGH>JT>UVW]^z{),!,55 5 .,//511,295:<6>E6HO'Pg/hmnn(oxy}-,,,/-'' ; ;!!$$;%,-D;EFG_;`;;2281;73<;<;< !".;//078TU^=_c8de ffgk>llmo>pp qqrw>xxyz>{{|}>~~  >>>+>>  :> >>  >> >>> > > 4>>0*4>90>04> 5   ,(!5 5,5,% !"",##($$/%)5**%++5,, --5..6//,00!1253344&55566(88%99(::,;;==5>>(??!@A5CC%DG5HI,JJ%KLMM(NN%OP/STVV(WW5XX YZ5[[/\\5]_`b,cc(de!fg5hj,kk!lnoo/pr5st(uu#vv ww,xxyy$zz5{{|| }},~~6,(!/ 5/%5!,55,/,//"/ 5,,/$>$$ yyzz,{{}}+~~, >>>5> < `R   -?-# --#(@(( F ( -P   <  6\=  (  ( !  ##   A(2((P-72<$. (##!  # 0*BDJ0T2<>FHOZ_hx  #.0459;>CHM QW]ehn"ru)xx-zz.}~/13478<?@zzCDg     ! "- ../0 29 :< >E FF HO Z_hmnnox        !"" ##.. 00 4455 99:: ;;>>??@ABBCCHH JJ KLMMQRSTUUVW]^_`ab ccdehk lnrr stxxzz }}~~       lH N!'(FNGHJIINJQRgNjNNNOO6NHN++,355NEFKGHNJTNUVW]L^z7BAB B .//B001129B:<E>EEFFHO*PgFhm0nn1ox0y}27F2**de ffHgkNll5moNpp6qqJrwNxx5yzN{{|}N~~66NN5NOJNN66N6JNN6NN6NNHN6JNJ6N65N5HNINL5NKLHN7 B   1BBB+ !0""##1$$F%)B**+++B,,--B..E//0012B33A44G55B6617788+991::;;0==B>>1??@ABBBCC+DGBHIJJ+KL0MM1NN+OPFQRSTUUVV1WWBXXYZB[[F\\B]_7`bcc1defgBhjkkln0ooFprBst1uuDvvwwxx0yy'zzB{{A||}}~~E1FBF+BB BFFFMFB7F'HHN3/,?3(4;-=3)$$ %% &'(()*!++>,,Q..!//"00#12:3344C55<66 ::C== >>?? @@PAA LNRRSS@TTUU@VV!WW$XX%YY$ZZ%[[!bbccddeeff!jj!oo!yyzz{{}}O~~NNCHNB9 8&.N:>>$ +y.jp3oG$gijkluiklluu!' GH#JQ hi& $$  ++,3 EF'UV W]^z{%!!"!"! " .//"00!1129"FF!hmnnox!!ffllpp qq#xx{{ ~~    $ #&     #      # #      % '%   "   " "" !""##%)"**++",, --"//0012"3344)55"6677!8899::;;==">>??@A"BB!CCDG"HIJJKLMMNNQR!ST UU!VVWW"XX YZ"\\"`bccdefg"hjkklnpr"stuuvv wwxxyyzz"{{|| }}! "!""*" "&')*++..//12==??AA(LNRRTTVVWWXXYYZZ[[bbddffjjooyy zz{{ }}$~~ "    >>@" )*,-8<=Ey   88<<==EEyyGH++  .11Pg!hmnnox!ffllppqqxx      !""##$$!**,, //00 668899::;;>>?? CCHIJJKLMMNNOP!ST VVXX [[!`bccde hjkk lnoo!stuuvv wwxxyy|| }} ! ! !!!! !&'(()* .. // 12 33==??@@AALNRRTTVV WWXXYYZZ[[ bbddff jj oo zz~~ >>  &,28>DJPvvyy "j' ^mH6ffhjm|~%&'(+1?@IVWXY^fijw y !|#$&'))+,.4::<<>@BFIMOQSVXXZZ\dfqvx||Xbhntz= dc^        . 4 : . 4  . 4         b  t    j p d |             & , 2 8 >  D J P V  j p d |  \    b h n t    z         <            t        " ( . 4 : @ F L  R X ^ j p v | j p d | j p v |                   0 6 * H N T H N  H N  ` * l ` * l ` * l `  l   $ ~  ~       $ 0 6 * 0 6 f < B H N T ` Z l ` f l ~ r ~ x ~      FT NT T `      ,   $v    D J P4 4  \R R            &  ,   2 8$v$ >v D J P V V \ b| h n t z t z   $v      T N       x"4(4.4:@FLRX^djlr~lr~lr~p$v| lr~$*<BH<B<Blr~lr~lr~lr~ $*$*06<BHTZNTZ`lrf~lrx~~~HbcbcHbob]HMMDHgo6888MXXTKKG66M[Zc]/H11kocHHBHDHH^tDH]D]H]b[HOHHhHH0BdbdHbHHJGCd]dDHDHbHH==7WWW>An9 ^{7>'|i%& &FFmFWWAAA  #+D;V[[:/#KRWM66HHHqXRVV\V66777HINHRRR  *J cdYj @  $@A9EE;HJ<LQ?STEG&&& &J3 FHjDbX,,,,, , (2j  $^m9^mI,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,222222222222222222222&22222,,,,,,,,22222222(("(..4:FF@FLLRX?4 a:a " ' ^mH&HJE{*,68P(RTAVD <>E&Hm.o}Tc#%57[]8^jr*,.0cXhhhhbhhntz= dc^4*R*X*F<<*R*X*4<<*R*X*^<<*R*X*<<*.*X*^<<*R*X*<<*R*X* <<*R*X*<<*R*X*^<<*R*X*^<<*R*X*<<*.*X*^<<*R*X*<<*R*X*<<*R*X*"<<*R*X*4<<*R*X*(<<*.*X*F<<*R*X*4<<*R*X*:<<*R*X*^<<*R*X*@<<*R*X*F<<*R*X*L<<*R*X*L<<*R*X*^<<*j<*d<<*j<*p<<*v<*|<<*<*<<*<*<<*<*<<*<*<<*<*<<*<*<<*<*<<*<*.<*<*.<*<**<*<*.<0<**<*<*.<*<*.<*<*.<+6,+0<<+6,+<<+6,+<<<+6,+<<<+6,+<<<+6,+<<<+6,*<<+,+<<<+6,*<<+6,*<<+6,+<<+6,+<<+6,+<<+6,+ <<+,+0<<+6,+<<+6,+<<+6,+<<<+6,+$<<+6,+*<<+6,+*<<+6,+0<<+6,+<<<;J<+B<<;J<+H<<+T+r<+Z<+`+f<+l<,>+r<,D<,J+r<,D<,J+r<,,<,>+r<+++<<<<+x<<+++<<+++<<+++<<+++<<+++~<<+++<<+++<<+++<<+++<<+++<<+++<<+++<<+++<<+++<<<<+<<<<+<<+<+<<+<+<<+<+<<1*<+/b/h1*<+/b/h1*<+/b/h1*<+/b/h10<+/b/h1*<+/b/h10<+/b/h1*<+/b/h16<+/b/h+<++,,<,<<,<,<<,D<,><<,D<,<<,D<, <<,D<,J<<,,<,><<,D<,&<<,,<,><<,D<,2<<,8<,><<,D<,J<<,,,,,,,,,,,,,,,,,,,,,,,P,,,n,,,,,,,P,,,,,V,,,,,\,,,,,,,,,,b,,,,,,,,,,h,,,n,,,,,,,,,,,,t,,,<,<<,<,<<,n<,<<,<,<<,<,t<<,<,<<,,,,,,,,,,,,,z,,,,,,,,,,,,<<,<<,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,<,<<<<,<<,<,<<,<,<<,<,<<,<,<<,<,<<,<,<<,<,<<,<,<<,<-<<,<,<<,<,<<,<,<<,<,<<,<-<<,<,<<- <-<<,<-<<- <-<<- <-<<-<-<<:<-.-4<:<-.-4<:<-"-4<:<-.-4<:<-.-4<:<-.-4<-(<-.-4<-p-v-F<--p-v-R<--p-v-j<--p-v-j<--p-v-j<--p-v-R<--p-v-:<--@-v-F<--p-v-R<--p-v-L<--p-v-F<--p-v-R<--@-v-F<--p-v-R<--p-v-L<--p-v-j<--p-v-R<--p-v-j<--p-v-X<--p-v-^<--p-v-d<--p-v-j<--p-v-|<--<-<<-<-<<-<-<<-<-<<-<-<<-<--<-<--<-<--<-<--<-<--<-<--<-<--<-<--<-<--<-<--<-<.<<-<-<<-<-<<-<-<<-<.<<.N.T.B<<.N.T.0<<.N.T.Z<<.N.T. <<.*.T.Z<<.N.T. <<.N.T.<<.N.T. <<.N.T.Z<<.N.T.Z<<.N.T.<<.*.T.Z<<.N.T.<<.N.T.<<.N.T.<<.N.T.0<<.N.T.$<<.*.T.B<<.N.T.0<<.N.T.6<<.N.T.Z<<.N.T.<<<.N.T.B<<.N.T.H<<.N.T.H<<.N.T.Z<<.f<.`<<.f<.l<<.r<.x.<.~<..<...<<...<<...<<...<<...<<...<<...<<...<<...<<...<<...<<...<<...<<...<<...<<...<<...<<...<<...<<...<<...<<.<.<<...<<./D/8<<</D/&</D/J</D/J</D/&</D/</D/</D/</D/&</D/,</D/J</D/2</D/8</D/J<<<<5<2D2J<2P<<3v<552\3v<5z52\3v<552\3p<552\3v<552\3p<552\3v<2V52\3<552\2b<2h2n2t2z<<<<2<<<<:B<2<<:B<2<<2<2<<:B<2<<:<2<<:B<:0<<:<2<<:B<2<<2<2<<:B<2<<33"33.3433"23.3433"33.3433"33.3433"23.3423"33.3433"23.3433"23.3433"23.3433"23.3433"23.3433"3(3.3433"23.3423"33.3433"23.3433"23.342<3d<<2<2<<2<3d<<2<2<<2<2<<2<2<<33"23.3433"33.3433"23.3433"3(3.3433"3(3.343<33.3433"3 3.3433"33.3433"33.3433"3(3.3433"3(3.3433"3(3.343:<3@<<3F<3L<<3R<3X<<3^<3d<<3v<3<<3v<3j<<3v<3|<<3p<3<<3v<3j<<3p<3<<3v<3|<<3<3<<9^<3<<9^<3<<9^<3<<9^<3<<9^<3<<9^<3<<9^<3<<9j<3<<9^<3<<9j<3<<9j<3<<3<333;<3333<3333<3333<3333<3333<3333<333346"<4 346(<4 346@<4 346@<4 346@<4 346(<4 346<4 346"<4 346(<4 346.<4 346"<4 346(<4 346"<4 346(<4 346.<4 346@<4 346(<4 346@<4 3464<4 344<4 346"<4 343<4 346@<4 344<4 4<4<<40<4<<40<46<<40<4$<<40<4*<<40<46<<4f<4N<<4f<4T<<4f<4l<<4f<4<<<4f<4B<<4H<4N<<4f<4T<<4f<4Z<<4f<4`<<4f<4l<<4~<4<<4~<4r<<4~<4x<<4~<4<<4<4<<444<<444<<444<<444<<444<<444<<444<<444<<444<<444<<444<<444<<444<<444<<444<<444<<444<<444<<444<<444<<444<<444<<444<<444<<444<<444<<<<4<<<<4<<4<5557l5\52<<7l5\58<<7l5\5b<<7l5\5b<<7l5\5b<<7l5\5b<<7l5\5<<7H5\5b<<7l5\5<<7l5\5<<7l5\5 <<7l5\58<<7l5\5&<<7l5\5,<<7H5\52<<7l5\58<<7l5\5><<7l5\5b<<7l5\5D<<7l5\5J<<7l5\5J<<5P<5V<<7l5\5b<<5h5n5t<<5<5555<5z555<5555<5555<5555<5555<5555<5555<5555<5<<5<5555<5555<5555<5555<5555<5555<5555<5556 <5<<6 <6<<6 <5<<6 <6<<6 <6<<6:<6"<<6:<6(<<6:<6@<<6:<6<<6<6"<<6:<6(<<6:<6.<<6:<64<<6:<6@<<6R<6d<<6R<6F<<6R<6L<<6R<6X<<6^<6d<<666<<666<<666<<666p<<666<<666p<<666j<<666p<<666<<666<<666v<<666<<666v<<666|<<666<<666<<666<<666<<666<<666<<666<<666<<666<<666<<666<<666<<6<6<<6<6<<6<6<<:<6<<:<6<<:<6<<:<6<<:<6<<:<6<<:<6<<9<7:r<:B<;6<9<7:r<7<7 7<9 <7:r<9<7:r<7<7$:r<7l7r7f<<7l7r7N<<7l7r7x<<7l7r7x<<7l7r7x<<7l7r7x<<7l7r7*<<7H7r7x<<7l7r7*<<7l7r70<<7l7r76<<7l7r7N<<7l7r7<<<7l7r7B<<7H7r7f<<7l7r7N<<7l7r7T<<7l7r7x<<7l7r7Z<<7l7r7`<<7l7r7`<<7l7r7f<<7l7r7x<<:<:<<7<7~<<7<7<<;<:<<;<:<<;<:<<;<:<<;<:<<;<:<<;<:<<;<:<<8t<8n7<7<77<7<8n7<8t<8z7<8t<8z7<8\<8n7<777<<777<<777<<777<<777<<777<<777<<777<<777<<777<<777<<777<<777<<<<;<<777<<777<<777<<<<;&<<<<;8<<7<8<<7<7<<7<8<<7<8<<;J<8 ;V;\;J<8;V;\;J<8 ;V;\8<8 ;V;\;J<8 ;V;\8<8 ;V;\;J<8;V;\8<8 ;V;\8&<8,82888><8J<<8D<8J<<8t<8n<<8t<8P<<8t<8z<<8\<8n<<8t<8V<<8\<8n<<8t<8b<<8h<8n<<8t<8z<<888888888888888888888888888888888888888888888888888888888888888888888888888888888<8<<8<8<<8<8<<8<8<<8<8<<8<8<<8888888888888888888888888<<8<<8888888888888888888888888888888<8<<<<8<<9<9"<<9<9<<9<9<<9 <9"<<9<9<<9 <9"<<9<9<<9<9"<<9@<9F<<9@<9(<<9@<9.<<9@<9:<<9@<94<<9@<9F<<9@<9:<<9L<9F<<9@<9R<<9L<9F<<9L<9R<<9^<9v9|<9^<9v9|<9^<9X9|<9^<9v9|<9j<9v9|<9^<9d9|<9j<9v9|<9p<9v9|<;9;<9;9;<9;9;<9;9;<9;9;<9;9;<9;9;<9;9;<9;9;<9;9;<9;9;<9;9;<9;9;<9;9;<9;9;<9;9;<9;9;<9;9;<9;9;<9;9< <9;9;<9;9;<9;9< <99<9<<9<9<<9<9<<9<9<<9<9<<<<<<;D<<;J<;P;V;\;b<;n<<;h<;n<<;<;<<;<;t<<;<;<<;<;<<;<;z<<;<;<<;<;<<;<;<<;<;<<;<;;<;<;;<;<;;<;<;;<;<;;<;<;;<;<;;<;<;;<;<;<<;<;<<;<;<<;<;<<;<;<<;<;<<;<;<<;<;<<;<;<<;<;<<;<;<<;<;<<;<;<<;<;<<;<;<<;<;<<;<;<<;<;<<;<;<<;<< <<;<;<<;<;<<;<;<<;<< <<<(<<<<<(<<.<<<(<<<<<(<<"<<<(<<.<<<^<AAA??AAAFA l)BdjJ30(dj+RdR RWRF!!d   d V?V4 V:VVdVVVVV V\V| 6:6666666F>>677dji"(djRdRRRRRd=e=Z0D=`==d==8==<=2==<JJ<]=]]]"CaO<C<0D0`006d00800l0<60<ss<s_Y_ld8<IIdII<3d<3j<&<D<d<___d<_j_<__0Dc`ccpcdc8ccc<^<^^ccclc<  <d<EEdEEEjE<pY<ddj< -<<$$$<$$8$$""%"%d"<YeYZ0DY`YYdYY8YY<Y2Y`Y<"0D-`---d--8--l-<--PP<_We__W_=ld8<<<3<;u<d<\\[d<[j\<[\dj=WWdW8WWW<W2WW[Wl$<;RRHkR<RR8RHR!!$!$d!< X DFLTcyrlFlatn6-<KZix +"BGR PBSH CHU MKD SRB .=L[jy, />M\kz-!0?N]l{."1@O^m| /: AZE hCAT CRT KAZ MOL (NLD XROM TAT TRK #2AP_n}!0$3BQ`o~"1%4CRap#2&5DSbq$3 '6ETcr%4 (7FUds&5 )8GVet '6 *9HWfu (7 +:IXgv )8,;JYhw *9:aalt^aalt^aalt^aalt^aalt^aalt^aalt^aalt^aalt^aalt^aalt^aalt^aalt^aalt^aalt^c2scfc2scfc2scfc2scfc2scfc2scfc2scfc2scfc2scfc2scfc2scfc2scfc2scfc2scfc2scfcaselcaselcaselcaselcaselcaselcaselcaselcaselcaselcaselcaselcaselcaselcaselccmpccmpccmpccmpccmpccmprccmpccmpccmpccmpccmpccmpccmpccmpccmpdligdligdligdligdligdligdligdligdligdligdligdligdligdligdligdnomdnomdnomdnomdnomdnomdnomdnomdnomdnomdnomdnomdnomdnomdnomfracfracfracfracfracfracfracfracfracfracfracfracfracfracfracligaligaligaligaligaligaligaligaligaligaligaligaligaligaligalnumlnumlnumlnumlnumlnumlnumlnumlnumlnumlnumlnumlnumlnumlnumloclloclloclloclloclloclloclloclloclloclloclloclloclloclnumrnumrnumrnumrnumrnumrnumrnumrnumrnumrnumrnumrnumrnumrnumronum onum onum onum onum onum onum onum onum onum onum onum onum onum onum ordnordnordnordnordnordnordnordnordnordnordnordnordnordnordnpnumpnumpnumpnumpnumpnumpnumpnumpnumpnumpnumpnumpnumpnumpnumsaltsaltsaltsaltsaltsaltsaltsaltsaltsaltsaltsaltsaltsaltsaltsinf$sinf$sinf$sinf$sinf$sinf$sinf$sinf$sinf$sinf$sinf$sinf$sinf$sinf$sinf$smcp*smcp*smcp*smcp*smcp*smcp*smcp*smcp*smcp*smcp*smcp*smcp*smcp*smcp*smcp*ss010ss010ss010ss010ss010ss010ss010ss010ss010ss010ss010ss010ss010ss010ss010subs6subs6subs6subs6subs6subs6subs6subs6subs6subs6subs6subs6subs6subs6subs6sups?@ABCDFGHIJTUVWXYZ[\]^_abcdefghijklmnopqrstuvwxyz{|}~6      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc}68`afghip9BCDEFGOPQjklmno     !"#$V&fghijklm^ (*. GHRWjmov"FTZ[\jlz  -/?AFPhnnss~~ ! $,&3;/=F8QQBT_COPpuffmoru}}    !$'+-5588<<??II]bfglnqqyy%%''+,.2;AHILLV[ ^e 2jrx~ &,28>DJPV\bhntz "(.4:@FLRX^djpv|v &,28>DJPV\bhntz $*06<BHNTZ`flrx~ &,2:@FLRX^djpv| &,28>DJRX^djrx~   $ * 0 6 < B H N T  $ * 0 6 < B H N T Z ^ b f j n r v z ~ d            !"#$%&'() *$+%,&-'.(/)0*1+2,334A55678899::;;<<==>>??@@ABBCCDDEEFFQGTHUIVJ]KWLXMYNZO[P\Q]R^S_TU!VWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~67d      !$3EKLMNOPQRSe`BL~     ;97:b\c]d^e_%U'W*))/FIQ5Xi>nnPwQ_`a  ..@@HOimort}llxx    )*&&*44+RU,0  1 n&>+,+ ~~+l+f&( 4$+"+ 'fm  ^e*$>HRdnx        ! 0Rt cbed _^a` kjml" gfih" h~Z $.+,&mBL@K4}~lx  $%&')*5    I<?2P<4F "4,, $,,,  .y         "#$%&'()*+,-./0123A5789:;<=>?@BCDEFGHIKQLMNOPQRSTUV]WXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!6`afghipbcdejklmnoUVW+,.2R[        !"#$%&'()*+,-./012345789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~6`afghipbcdejklmnoUVW fFxH~+,.2R[  =678:9BCDEFGOPQ\]^_     !"#$%&'fghijklm%'44;AHI LL RU#'2 3^e5       !"#$%&'()*+,-./012345689:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~7      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc=))/FIQ5Xi>nnPwQ^_..HOimort} ! $,&3;/=F8QQBT_COPpuffloruxx}} !)-88]bfglnqqyyX);     !"#$%&'fghijklm && ^e!$dede9      &riseup-vpn-0.24.5+ds1/gui/resources/fonts/Poppins-Bold.ttf000066400000000000000000004544541461742244100233760ustar00rootroot00000000000000 PGDEF  @GPOS!GSUB ,*"!.' &&;\2cS6N\<8######"&&5332654&##532654&#"#466323!bbr^Fj;+##)/.--'.' )6cA_r73>aa Yj5`> ,*"!.' &&;\2cS6N\X-332#"&'#332654&#"'&&546335!5!##&!,Xv]Q-?/&"%/((FdgQImT_L` v#(!!MLNNI=6&#"3##"332#"&'#332654&#"'&&546335!5!54632>&!,Xv]Q-?/&"%/((FdgQIT\k`f0$'*+BT_L` v#(!!MLNNI@\}n_F%#"&&5332654&##532655!5!#3)4A6gGJr@5)(000<&)0WWN aA@b78jH)52(&7/-5<d732#"'532654&###"&&5332654&##532655!5!!3)l~fY %,%I6gEJr@5)(000<&)0uN bbSdv!!!! ;_68jH)52(&7/-5<-7326553#"327#"&54675###5#5&&#"#466325!5!m!)+2)%)bzC;*-z =+@I;oMl;>a%' #!}^U?VB;#*M@Q|EF/D326553#"33#"327#"&54675&&54675###5#5&&#"#466325!5!m!$GI92QS33F!Xz8,-6G4*-z =+@I;oMl;@a%1/u33t LO.B  817<F;#*M@Q|EFC#"327#"&5467654&#"#54&#"327#"&54663236675!5!>Jh4*!$*e{C4-(.,,,,092 |>g?BU7'a^tX8,H!!}`X8U.8B43C909:tOl6?3$6 [R#"33#"327#"&54675&&5467654&#"#54&#"327#"&54663236675!5!>JH)!92RT33F!Xz8,-6?/-(.,,,,092 |>g?BU7'a^tX8,1u33t MO.A  813; .8B43C909:tOl6?3$6 [!##"'532655#32653#"&5#5!WVa !3,*0n|caOin%&K591+kwsT-##"'532655#32653#"&5#5!.##533WVa !3,*0n|c(15.41Ta\AaaOin%&K591+kwsT=6~"lu<D######"&&5332654&##532654&#"#466323!.##53bbr^Fj;+##)/.--'.' )6cA_r73@(15.41Ta\Aa Yj5`> ,*"!.' &&;\2cS6N\=6~"lu<0O######"&&5332654&##532654&#"#466323!.##532.##532bbr^Fj;+##)/.--'.' )6cA_r73H>+/963641%#93+96TV\Ua Yj5`> ,*"!.' &&;\2cS6N\'b:5 c$""< ""W <""P3#5!#Qbaba#54&&#"3###53>3ogHwFjbbbbi{NZRH) :1&,S9) KO/A  81A=U1s2 u3#:7#"&546754&#"#54&#"327#"&5463236632#"3 M^3' ! e #*$ ]fbI2@E3-L. O'aIC+? ")0&&0*#)*kgWX^/&&/)R;$'43K67#"&54675&&546754&#"#54&#"327#"&5463236632#"33#"3, 4CZ)!!).# ! e #*$ ]fbI2@E3-L. 5*$!>Z8<$1,%&- ")0&&0*#)*kgWX^/&&/)R;$'#Z$' .##53)25/41Tb]B@8~#mx0#'.##532.##53V]V3+.763641%#93+960$ b:5 cgP###53.##53Pbbh(15.41Ta\Aa=6~"luTP0###53.##532.##532Pbbl>+/963641%#93+96TV\Ua'b:5 c$i+H #"&5332653Hxxxw3554ss`*55*""H/;6632#"'532654&#"#5#"&&546325!5!654&#"36I1>\05]<$ (23*.0P5>^2rb4LP76/,:8-a!%=h@Gg6{3-+8>/#(;kDi%!c=));8-.7+7##5#"'#"&5532655#57&5466325!3$654&#"3b*L $sLEB".1X7M)WKD>H,*)%21&/7A>DL1;R:]50bao %9Gf2%#3.'*.@####"&54733255!5@b~fgdn53a`vkc IJ'##5#"&54675&&55#5!#33#"3265a\8^z>-,3_*0'4+,5*=Pa%(`W7L  C"YkZN32653#"&&546675!5!###QF9;GC}STIDWA=5BF9OwA@tLMs@L #"&&54675!5!&#"3265[tJPPJrZF:8FF8:FaMdNs>>sNcNDE66FE7F)332#"&'332654&##"&546335!5!##%!-Wwvkp6)'+/($MxgPGWoT[R`f[$'! G[KLJ-32654&#"#&54632#"&&5466335!5!##6iYT8Hp^LUa\TKTtWPHZ0+  AI\L`lCWUy?D####"&55#5!#3265crkkrb% "aacy|`!)("###"33#"&546335!5!b}=H?>+s}ae<77>|zz{|u7+1##5#"&&54732654&#"#&546632##32665+bqOUFWVc "8^9=]4LI6X3.>EW)2<%%  @Z-2]=dv1A/]BAu 32653#5#"&&5466335!5!##B4-'4B):a:DyM&r92-61+Ɠ3fJKk7P?2##5#"&54675&&54632#74&#"33#"32653_ iFaF.5GiRU_t I5<5/491L[a*._V@lB)Y..%%0/&am/8=X,3aAEa0q-$$..$$- ##5#"&55#5!#3265b5_ktU5638a:s:DB3'06632#"'532654&#"#5#"&55#5!!#3265CN3>[14^<(" (13*242YgpU11/4a!%;g?Hi7 y5,+8F88pǃ6@>/&##5#"&&5466325!5654&#327'bT4Eo??nE2R'(% J>Q:5" ~$>pGEl< 8OI7f'2####"&&5463354&#"#&546323#"3265fc|niAd7c?jdna|:'.(#%P/lx2\=agL#(#Ukm/l&"!%/(\$####"&&546335!5!#3#"3265\boiAd6b@m<%.'#&aP/ky2\=bf&"!%/( ##5#"&54732655#5!#3265b a? RBMTNEHVa#'!GE-JQd ;HZF$ 326553#"&&5532655!5!## nbFc2eMA5Uo,d")(`r9b>B@55w8#"'52654&#"#54&#"37#"&&5466323675!5!9Cg?CU'VajpRJrA>5/:B43C905>ArJOl6?3X[###5#"&&5466325!56554&#"3bO3Ee66fD2P><<52??2#%>nECi<$"B-.@=12>Ci+1326553#"&5532654&#"#&&546632###%)"&wfpKb%!!%8hEh}x`bF(1-$dr~l6>#++$  =`5vjuyŃ ##5#"&55#5!#67'3b3hpyUQ: :8a>y& XBBA2Z/632#&&#"32673#"&&5467&546335!5!###ju .#(43)!/dKo9X1\TB3/#0+'!\"####"&'#332654&##5!5!5\b:/R3-J6)).;+'ky.S5P*~(00$-/}kQ"$~W "%~_@"&~um"+~5{F"0~M "1~~"9~,$">~2$06632#4&#"#5#"&&546325!5!654&#"36I1>\03*.0P5>^2rb4LP76/,:8-a!%=jB+8>/#(;kDi%!c=));8-.7e*6327&546632#"'#"&5532655#5!!32654&#WKD>K$/:hBBf:;g@%#uMEBv11))01(o %9G55Q?]11]?A]18C>DLbk0()00)(03##"&54733255!5!3pfgdn53Da`vkc IJ^R$33#"32653#"&54675&&55#5!*0'4+,5*CJA|Ux>-,3_ca((*~%#$K;HxF^Y7L  C"Yk".}"/}F"0}"1}Y ##"&55#5!#3265YNrkkrbj% "acy|`!)("(5!#"33#"&546339=H?>+s}a<77>|zz{|7R*#"&54732654&#"#&546632##3265XXWVc "8^9=]4LIUliW~B)2<%%  @Z-2]=dv1ANF"5}s?L-$#"&54675&&54632#74&#"33#"32653L^tF.5GiRU_t I5<5/4B1LRr?\[6.%%0/&%.䃃{a0/8=X,3aA%..$$--$932653#"&&55#5!7627:oNQs:UJa:DB3Hq@BuK$6632#4&#"#5#"&55#5!!#3265CN3`j0-242YgpU11/4a!%h,7F88pǃ6@>/:H#!5#"&&54663654&#327'Hw:Q:2$ 䃃Bl@EpB@pFDm>k8PJ7=!,##"&&5463354&#"#&546323#"3265niAd7c?jdna:'.(#%P/lx2\=agL#(#Ukm/&"!%/(= 3##"&&546335!5!#"3265oiAd6b@<%.'#&a/ky2\=bf&"!%/(Q#"&54732655#5!!32653I] RBMTVCFS|G!GE-JQd >EN=$">}],5!6324&#"#54&#"37#"&&546632nm1=f=/+.,,,,0:1Ru<>g?CUar6mN/:B43C905>ArJOl6?3>J5!#"&&54663232654&#"[=yWRw??wRXynECiC./A?1C+%#"&5532654&#"#&&546632##32655wfpKb%!!%8hEh}x(%)"&dr~l6>#++$  =`5vjuyF(1-$L!#"&&55#5!67'3Lp;uQUvBxZ"D}5 ,85!#"&&54663236632#"&'#$32654&#"32654&#"hB@i==i?A!e??i==i?Ch8,+77+,8_6,,87,,7a=9iFFj9r;79jFFi9=7G56,,88-+65,-88,:$/32653#5#"&5467&&5466323!&654&#" 0,$'-C+RgKC3?9f@Yt.\9/6,#"-@-$!,4$ǖ _MEU"Q>9X1\TB3q/#0+'!!5!##"&'#332654&##%:/R3-J6)).;+'䃃}.S5P*~(00$-/Q"P~W e"Q~_3"R~u"W~5{"e~- #"&54632E6&&55&&6b55&&55&i+HT #"&54632#"&5332653k####|ts|}=55=~#$$$|ppc*99*0W/ #"&54632#"&546326&&66&&66&&66&&655&&55&55&&55&9.7532654&'.54633#"#9&*-;*]L0%*-;+`M.( $7O1FI#'!"8P1CP7'3jA #"&546325'&55&'534%'66'-_0% *&1~TY>I6R49D  e&54632#&5332653##"'5326554&#"#"&&5332654&##532654&#"#466323265463####s{|=65=~|tOh15/R@$A&ZNu_Gj9+##)/.--'/((7dA`r7394-cq#$$"pc*99*cp,}zy VT.0VN^,Zk5_? ,+##/) !'%;\2eT8Q)9jnB #"&&546332654&#;__K2P,aM#,,# ** ^JJ]+L0J^]*!!))! +/#/?#!#/>q8A###!2#"&'332654&'.546632#&&#"32654&##_RP˜"Su:8=CT>7fEn 0$"#9>AT=6jHl .# %j////jn :d>t B82N,b\ A9/O/gW -*)/&7"3##32653#"&552667!5!5!5!U[|w%#ohpwhc1K\05]<$ (23*..wDQrb4LP8:8-/76/a!%=h@Gg6{3-+8>/ sPi%!8-.7=));y.:##5#"'3#57&&5532655#5327&5466325!654&#"3b*LpuEBD>J".1X7M)WK,*)%21&/{>DLG1;R:]50bao %2%#3.'*.?##5###"&54733255!5?aʵ|~fgdn53k `vkc HI&##5#7&&54675&&55#5!#33#"3265aQe>-,3_Z'4+,5*=PaݙYL7L  C$;LLt?$7+4##53#57&&54732654&#"#&546632##32665+b¸etWVc "8^9=]4LI6X3o)2<%%  @Z-2]=dv1A/]BAt!32653#5#7&&5466335!5!##B4-'4 CRDyM&r92-61+ƘlVKk7P?5##53#7&&54675&&54632#74&#"33#"32653_YtF.5GiRU_t I5<5/491L[a\P@lB]s..%%0/&aqcc/88X13aAEa0q-$$..$$-##5#7&&55#5!#3265bƪUZU5638ac:DB3+46632#"'532654&#"#501#7&&55#5!!#3265CN3>[14^<(" (13*24PTU11/4a!%;g?Hi7 y5,+8F8^ǃ6@>/&##5#7&&5466325!5654&#327'a{Yo?nE2R'(% J>Q:5" ]El< 8OI7z+6##5#5##"&&5463354&#"#&546323#"3265zcϫqpdAd7bAjdl`@$.( %%wZX%f{0W:_dE$(# Tim( u$ #/)\(##5#5##"&&546335!5!#3#"3265\bϫrpf@c7~cBmA$-(%&aw[_*gz1Y:`e~& &0)###53#57&&54732655#5!#3265bbk RBMTNEHVa n!GE-JQd ;HZF>"?$##5#7&&5466325!56554&#"3b tNW6fD2P><<52??2 {yVCi<$"B-.@=12>n+##5'#5%'#57&&5466326654&'"na8r>@5cCDe6*2}K %)#",:n(`=9Z31W77S-\(2!-,##5#7&&55#5!#3267'b ɪX^U:8)9 a ޸g%BBA2qZ4632#7&#"32673#"&&5467&&546335!5!###;b>RS51:hBKo<1,"$WKPk(G-]]&E75@"6R-=pI?a;&;EF%1=#'#7&'##"&&5466323675!5!654&#"3$32654&#=I70\\~4hB@i==i?A1Z77+,88,276,,87,anoMBfww77=9iFFj9rWaZ6,,88-,58,,65,-8$0<H6632#"'532654&#"#5#7&&546325!5!32654&##"&5463I1?\05^<$ '22+-/wDPrb3K5687./650.."!..!a!%=h@Gg6{3-+8>/ sPi$ 8-.7=));/" -- "/l.:F##5#"'3#57&&5532655#5327&5466325!654&#"3#"&5463b*LpuEBD>J".1X7M)WK,*)%21&.."!..!/{>DLG1;R:]50bao %2%#3.'*./" -- "/?(##5###"&54733255!5#"&5463?aʵ|~fgdn53ʚ.."!..!k `vkc HI/" -- "/m*##5#5##"&55332655!5!5!#"&5463mbbs_nw%""&z~G.."!..!aq.Zk{fc_+00+_t/" -- "/=)2>6632#"'532654&#"#5#7&&55#5!!#3265#"&54632N2>\15^<(")02*24OUN10/4."!..!".a $;g?Hi7 y5,+8F8]ǃ6@>/-- "//"%16632#4&#"#51#7&&546325!5!32654&#6I1>\03*..wDQrb4LP~:8-/76/a!%=jB+8>/ sPi%!8-.7=));ye.:327&546632#"'3#57&&5532655#5!!32654&#WKD>K$/:hBBf:;g@"#puEBv11))01(o %9G55Q?]11]?A]1{>DLbk0()00)(0b##"&54733255!5bfgdn53䃝`vkc HIR&33#"32653#7&&54675&&55#5!*0'4+,5*CJ(%o}>-,3_ca((*~%#$K;8b$׏]V7L  C$;MDW䃃k]NE>IuC7-#57&&54732654&#"#&546632##326532-ýWVc "8^9=]4LIUl(h$ ~)2<%%  @Z-2]=dv1ANF"}t?/$#7#"&54675&&54632#74&#"33#"32653GtF.5GiRU_t I5<5/4B1LRD\[6.%%0/&%.7{䃃{a0/8=X,3aA%..$$--$932653#7&&55#5!7627$"ǩnwUJa:DB38^"m(6632#4&#"#501#7&&55#5!!#3265CN3`j0-24PTU11/4a!%h,7F8^ǃ6@>/H$!5#7.54663654&#327'Hw:2pOu=?xQ/# K>Q:2$ 䃃Bl@[Ax@oEDm>k8PJ7!,0##"&&5463354&#"#&54632#"3265pdAd7bAjdl`@$.( %%J~%f{0W:_dE$(# Tim(~$ #/){ $3##"&&546335!5!#"3265pf@c7~cBA$-(%&Ya~*gz1Y:`e& &0)x #57&&54732655#5!!32653/-x RBMTVCFS#i% y!GE-JQd >EN=B"}A5cCDe6)2K !$)#",8 :n)_=9Z31W77S-i(1 -,L!#7&&55#5!3267'Lpߩt}U]:;+8 a'KszF&Y"&3!326553#"&&5532655!5!#BeYC^0JMA(oA2xs&& Yi7_B_=YZ"}o$0<!5#'#7&'##"&&54663236632654&#"3$32654&#70\\~4hB@i==i?A!e??i=77+,88,276,,87,䃃fww77=9iFFj9r;79jFb6,,88-,58,,65,-8%1=6632#4&#"#5#7&&546325!5!32654&##"&5463I1?\02+-/wDPrb3K|87./650.."!..!a!%=jB+8>/ sPi$ 8-.7=));/" -- "/le.:F327&546632#"'3#57&&5532655#5!!32654&##"&5463WKD>K$/:hBBf:;g@"#puEBv11))01(.."!..!o %9G55Q?]11]?A]1{>DLbk0()00)(0v/" -- "/b$##"&54733255!5&#"&5463bfgdn53.."!..!䃝`vkc HI/" -- "/%!5###"&55332655!#"&5463. r]nw%""&`.."!..!䃃Wg{fc_+00+_/" -- "/&26632#4&#"#5#7&&55#5!!#3265#"&54632N2`k/-24OU 10/4."!..!".a $h,7F8]ǃ6@>/-- "//"@MYe6632#"'532654&#"#5#"&&5#4&#"#5#"&&546325!5!6325!663654&#"3 654&#"3I1>\05]<$ (23*.0P5>^20*-.P5>^2rb4LP17L4LG076/,:8-76/,:8-a!%=h@Gg6{3-+8>/#(;kD+8=0#(;kDi%!N))%! $=));8-.7=));8-.7Q@MYeq}6632#"'532654&#"#5#"&&5#4&#"#5#"&&546325!5!6325!663654&#"3 654&#"3#"&5463 #"&5463I1>\05]<$ (23*.0P5>^20*-.P5>^2rb4LP},7S4LG076/,:8-76/,:8-$55'&55&55'&55&a!%=h@Gg6{3-+8>/#(;kD+8=0#(;kDi%!N//%! $=));8-.7=));8-.76'&34%'66'&34%'6{*5IUa##5#"'#"&&554&#"#5#"&&546325!5!655!6637&5466325!3$654&#"3654&#"3{b)M $sLVE0*-.P5>^2rb4LPP)G0".1W8M)XJE=G-+)%10&?76/,:8-a07AAxR&+8=0#(;kDi%!3- JL#v1;R:]51bao %9Gf2%#3.'*.#=));8-.7H%6B##5#"&5467#"#5#"&&546325!5!!63!#"3265654&#"3HbZ8[r!l74P5>^2rb4LPY.m**59,>D 76/,:8-a%'\W*C^2rb4LP3G0>Y-%""& E76/,:8-abAf96Z5*4=0#(;kDi%! $6X3 +01*=));8-.7L1;G32653#"&&547&&#"#5#"&&546325!5!##&75!6632654&#"3QF9;GC}STI0)-.P5>^2rb4LP]s1G0S376/,:8-A=5BF9OwA@tL*6=0#(;kDi%!ЃL $6=));8-.7#&.7C####"&'&&#"#5#"&&546325!5!5#663%#3265654&#"3#crkdq +-.P5>^2rb4LP4E/D% "e76/,:8-aacymX=0#(;kDi%!_!\!)("=));8-.7Q56632#"'532654&#"##"33#"&&547#5!5!5!M3?]26a>' +44*25m>H@>+HuE*ba!&=j@Hi7 z6/+9>-`;74=|4eFN4{Q~-8DP###"33#"&5474&#"#5#"&&546325!5!!632633654&#"3#"&5463~b}=H?>+s.$-,P5>^2rb4LP+[0KGe76/,:8-%55'&55&ae<77>|zz49+s-'-,P5>^2rb4LP9BC+$:)O-CFv;TMNEIV?76/,:8-a$'xi<77>{zz=?$;L1*-/P5>^2rb4LPF.R2@e6U76/,:8-aME>>@>/#(;kDi%! $A4$=));8-.76FS_##5#"&&547#"33#"&5516&#"#5#"&&546325!5!6325!632636554&#"3$654&#"3bO3Ee6`=H?>+s**-,P5>^2rb4LP9R2P[+T+BJ}<<52??276/,:8-a#%>nE<77>|zz DF =));8-.77GS##5#"&'&&#"#5#"&&546325!5!632##326656654&#"!663654&#"3aqOy - -.P5>^2rb4LP#<^4LI6W4NJT!G076/,:8-.>v"=0#(;kDi%! 2]=dv1A/]BA,'37&#=));8-.7*2=I32653#5#"&&5514&#"#5#"&&546325!5!##&335!6632654&#"3C5-&5+T:b:0*-.P5>^2rb4LP;rzi&G0P5 76/,:8-92-61+ƒ03fJ+8=0#(;kDi%!ֆP $2=));8-.7+6BN####"&&547&&#"#5#"&&546325!5!!663263!654&#"3$654&#"3b~9_:/'-.P5>^2rb4LP6G0`,;M)h76/,:8-..%%0/&am/8=X,3aA '0=0#(;kDi%! $C =));8-.7-$$..$$-F#*3?##5#"&'&&#"#5#"&&546325!5!5#63%#3265654&#"3Fb5_Wn(-,P5>^2rb4LPW-]5638!76/,:8-a:`R =0#(;kDi%!W?V:DB3=));8-.7F%,5A##5#7&&'&&#"#5#"&&546325!5!5#63%#3265654&#"3FbƪCU (-,P5>^2rb4LPW-]5638!76/,:8-a ZE=0#(;kDi%!W?V:DB3=));8-.7=DMY6632#"'532654&#"#5#"&'&&#"#5#"&&546325!5!5#63%#3265654&#"3N3>[14^<(" (13*242YVk,-.P5>^2rb4LPR-`|11/4)76/,:8-a!%;g?Hi7 y5,+8F88aT=0#(;kDi%!VW?V6@>/=));8-.7Q"~WQ=DMYeq6632#"'532654&#"#5#"&'&&#"#5#"&&546325!5!5#63%#3265654&#"3#"&5463#"&5463N3>[14^<(" (13*242YSj-!-.P5>^2rb4LPH-`}11/4(76/,:8-k55'&55&55'&55&a!%;g?Hi7 y5,+8F88\O$=0#(;kDi%!VX?V6@>/=));8-.7X6'&34%'6e6'&34%'6Qw%3;GO[##5#"&&'4&#"#5#"&&546325!5!66325!663654&#"654&#"3$327'#"&5463wbT4Dn@0*-.P5>^2rb4LP- U02RG0 J>2%76/,:8-;Q:5" 55'&55&a~$^2rb4LP+01<@/G0WN76/,:8-<%.'#&aP/ky2\=&0=0#(;kDi%!O"V=));8-.7&"!%/(Q)48DO[####"&&547&&#"#5#"&&546325!5!6335!663%#3654&#"3%#"3265#"&5463boiAd6/'-.P5>^2rb4LP+01<@/G0WN76/,:8-<%.'#& 55'&55&aP/ky2\=&0=0#(;kDi%!O"V=));8-.7&"!%/(6'&34%'6$.:F##5#"&'&&#"#5#"&&546325!5!655!663%#3265654&#"3b a@x)$./P5>^2rb4LPr3/J0NTODIV76/,:8-a#'r'=0#(;kDi%!P S3 #VPQe 6GZF=));8-.7YFVb#"'52654&#"#54&#"37#"&&5514&#"#5#"&&546325!5!75!66326323654&#"39C^2rb4LPjNV9G0H.5/:B43C905>ArJ+8=0#(;kDi%!o["12?3=));8-.7c&3@L##5#"&&'#4&#"#5#"&&546325!5!6325!6636554&#"3$654&#"3cbO3De60*-.P5>^2rb4LPt-<\2PF0j<<52??2q76/,:8-a#%=kD+8=0#(;kDi%!*6$""B-.@=12> =));8-.72*;GVb##5#"'#"&&'#4&#"#5#"&&546325!5!66326655!663%#32656'5&5&&#"3$654&#"32aC~zH_@Qw?0*-.P5>^2rb4LPC.!\8Ii("0F0qMTNAIV<:+2@@2p76/,:8-aKE*/=kD+8=0#(;kDi%!.:2A25"VSTj 1=YGB0 #-=11? =));8-.739JV326553#"&554&#"#5#"&&546325!5!632###32654&#"!663654&#"3&("&wfp0*-.P5>^2rb4LP!'g}x`bQLa&# wG076/,:8-F'2-$dr~lG+8=0#(;kDi%! vjuyŃ716>#+#=));8-.7:7BFQ####"&&547!32653#5#"&5467&&546632!5!5!654&#"%#3#"3265bohAd720,$'-C+RgKC3?9f@Yt.4R9/6,#"-;&.(#%aH/ky2\=0'-$!,4$ǖ _MEU"Q>9X1\TB3/#0+'!B&!!&/(:Q=HO[f##5#"&'##"&&547!32653#5#"&5467&&546632!5!5!654&#"32655!!#3265#"3265Qb b@v wohAd720,$'-C+RgKC3?9f@Yt49/6,#"-+;6ETMMFIV(:%/(#$a$(q/lx2\=6(-$!,4$ǖ _MEU"Q>9X1\TG4/#0+'!]546NMg ;IZF0&!"&0(:*5@L##5#"&&'!32653#5#"&5467&&54663232655#5!654&#"%#3265*aAxR|F20,$'-C+RgKC3?9f@Yt4:D9/6,#"-IOSODIVaI@vO-$!,4$ǖ _MEU"Q>9X1\TG4636/#0+'!B6RnnE-$!,4$ǖ _MEU"Q>9X1\TB3&)$!/#0+'!B-.@=12>2>DP##!326553#"&&554&#"#5#"&&546325!5!655!6632%#3654&#"3b! !qcGe31)-.P5>^2rb4LP -sG0:Pn76/,:8-a,b"+( Zj9c?^'6=0#(;kDi%!B4B"6/BA2=));8-.7JEQZf32653#"&&547!326553#"&&554&#"#5#"&&546325!5!##$655!6632$675!3654&#"3QF9;GC}STI! !qcGe31)-.P5>^2rb4LP[-sG0:PyP]R76/,:8-A=5BF9OwA@tLb"+( Zj9c?^'6=0#(;kDi%!B4B"6/=7LBA2=));8-.7O[eq332#"&'332654&##"&'!326553#"&&554&#"#5#"&&546325!5!## 655!6632$6335!3654&#"3%!-Wwvkp6)'+/($5br "pdGe31)-.P5>^2rb4LPo-rG0:P`CGcb76/,:8-T[R`f[$'! #+b"+( Zj9c?^'6=0#(;kDi%!B4B"6/A6JBB1=));8-.7AMWc###"33#"&547!326553#"&&554&#"#5#"&&546325!5!655!6632%!36633654&#"3b}=H?>+s! !qcGe31)-.P5>^2rb4LP-sG0:P'&j?76/,:8-ae<77>|zzb"+( Zj9c?^'6=0#(;kDi%!B4B"6/BA2 =));8-.7^9EKT`##5#7&&'!326553#"&&554&#"#5#"&&546325!5!655!6632735!#3265654&#"3^bƪ8N! !qcGe31)-.P5>^2rb4LPo8-sG0:Ps5638 76/,:8-a C4b"+( Zj9c?^'6=0#(;kDi%!B4B"6/BA2:DB3=));8-.7 \hn#"'52654&#"#54&#"37#"&'#"&'!326553#"&&554&#"#5#"&&546325!5!655!6632%3575!326766323654&#"39C^2rb4LP -rG0:PV823!- yQCU76/,:8-ajpRJrA>5/:B43C905>UIJBb"+( Zj9c?^'6=0#(;kDi%!B4B"6/BB1o[:D TX?3=));8-.7l!8LXd##5#"'#"&'#"'#"&5532655#5!7&546632655!3 7&5466325!3$654&#"3$654&#"3lb*L $sL[ 2C%#uMEB}>$/:hBGg3WKD>".1X7M)XJE=01()11),*)%21&a/7AIE8C>DL55Q?]1>7S]bao %9G19T:]51bao %9Gb0)(00()02%#3.'*.h$;G###"33#"&'#"'#"&5532655#5!!327&54632633654&#"3hb|>H@>'Sv0@ #uLEByWKD>K#.yc<]DsC01()11)ae<77>|AC7C>DLbao %9G46Q_n*&30)(00()0h'~z!8DP####"&'#"'#"&5532655#5!!327&5463263!654&#"3654&#"3b6\98]6X%#uMEBWKD>K$/yc:[DLbao %9G55Q_n'%30)(00()0-$$..$$- 6:FQ####"&'#"'#"&5532655#5!7&546326335!3#3654&#"3%#"3265 cjh=Z3O%#uMEB$/yc@`5L?WKD>01()11)s:&.(#$aP/lx,($8C>DL55Q_n.,!bao %9G0)(00()0m&"!%/(  '~_ 3?K##5#"'#"'#"&5532655#5!7&5466326655!3#3265654&#"3aC~>9g%#uMEB $/:hB@`WKD>DGSLBJV 01()11)aKV;8C>DL55Q?]12-@53bao %9GPSf 9?ZF0)(00()0'~z F5BN##5#"&'#"'#"&5532655#5!7&546326325!3$6554&#"3$654&#"3FaO2:U6N%#uMEBWd$/yc_:8d1P4WKD><;52??201()11)a"%,(%8C>DL55Q_n2@$!bao %9G:B-.@=12>(0)(00()0F'~z+1MY326553#"&'#"'#"&5532655#5!632###7&5463232654&#"!3$654&#"3j%)"&vgSt-4 #uLEB(h}x`b#.ycDfKb&# WKD>M01()11)F(1-$eqDA7C>DL vjuyņ46Q_n516>#+bao %9Gb0)(00()0"~z)@FR^##!326553#"&'#"'#"&5532655#5!655!327&54632%#3654&#"3#"&5463a !pdSl0> #uLEB7WKD>K#.ycGg01()11)55'&55&a,b"+( ZjLA7C>DLC9Bbao %9G46Q_n84BB10)(00()06'&34%'65)####"&54733255!#"&54733255!5!5b~fgdn53fgdn53Faa`vkc IJ`vkc IJ&8##5#"&54675&&55##"&54733255!5!#33#"3265a\8^z>-,3wfgdn53*0'4+,5*=Pa%(`W7L  CYo$"B-.@=11?=)5####"&&54663!5!#"&54733255!5!654&#"3=b~9_:@lB)fgdn53N..%%0/&am/8=X,3aAEa0q`vkc IJ-$$..$$-2>J##5#"&'##"&&54663!2655!#"&54733255!5!#3265654&#"3cb@py9_:@lB+RCfgdn53RP N?HV-..%%00%a$'t.:=X,3aBE`035-`vkc IJ胃JJd=IZF.%$./$$.'/7##5#"&&5466325!#"&54733255!5!654&#327'bT4Eo??nE2R fgdn53V% J>Q:5" a~$>pGEl< `vkc IJ8OIV4?####"&&5463354&#"!#"&54733255!5!6323#"3265Vd{oiAd7c? fgdn53)nb{;&.( "%P/ky2\=agL#(`vkc IJ m/l&"!%/(GR]##5#"&'##"&&5463354&#"#&547##"&54733255!5!63232655#5!#3265#"3265cb@y[niAd7c?fgdn53!(na=4OFHVD:'.(#%a$'v/lx2\=agL#(#`vkc IJ m/*:-J;JZF%&"!%/(W&*5####"&&546335!#"&54733255!5!#3#"3265WboiAd6b@fgdn53h<%.'#&aP/ky2\=bf`vkc IJ胃&"!%/(%1##5#"&54732655!#"&54733255!5!#3265b a? RBfgdn53MTNEHVa#'!GE-`vkc IJ胃JQd ;HZF*6##5#"&'#&54732655!#"&54733255!5!#3265b a?Ot"׵d RBfgdn53MTNEHVa#';7S!GE-`vkc HIJQd ;HZFI#"'52654&#"#54&#"37#"&&5466323675!#"&54733255!5!9Cg?CU'Vfgdn53ajpRJrA>5/:B43C905>ArJOl6?3X[`vkc IJ胃'4##5#"&&5466325!#"&54733255!5!6554&#"3bO3Ee66fD2P fgdn53<<52??2a#%>nECi<$"`vkc IJB-.@=12><17##!326553#"&&5532655!#"&54733255!5!#3B`vkc IJ胃BA26B####"&'#"&54675&&55#5!!33#"32677663!654&#"3b~9_:>gd=ct>-,3_*0%2+,3'1>X)..%%0/&am/8=X,50'%^Y7L  C-,3_@wS@*0*7+,3'<%.'#&aP/ky4.! ^Y7L  C-,3_H RB}*0'4+,5*[MTNEHVa#'-+$(^Y7L  Ce<1q)*6:,-> O+3 P/1Y]t|## A8aQiN\K=<<,We<1q)*6:,-> O+3 P/1Y]t|## A83*287-.5aQiNS'Ur 4Z6.MA<,W_>kd|1q)*67+1< wU@4<%.'#&aP/ky,)Ad[I,{{0(*.6/JL&"!%/(*6##5#"&'#"&547#5!#"32676732655!5!#3265b a?Hm# fAk1q)*69+=F RBJMTNEHVa#'1./1b]I,{{0()/UV GE-JQd ;HZFQ?J##5#"'#"&54675&&55#5!654&#"#&546326655!33#"3#3265QaV8J+t:3+3^b|## nT1O'#P/1Y]_S$FYa!$SELqm;N C\05]<$ (23*.0P5>^2l7fEnw%#"%P4Q4L#76/,:8-a!%=h@Gg6{3-+8>/#(;kDAf9{e+00++%!c=));8-.7/####"&55##"&55332655!32655!5!5!bs7fEnwo7fEnw%#"%%#"% KabAf9{eAf9{e+00++00+yu'~5{'~k{3{3####"&'#332654&#!#"&55332655!5!5!{c<0R3,I7)).<*7fEnw%#"%qaj0V5P+|(/2&,1&Af9{e+00+zi6B##5#"&'###"&'##"&55332655!32655!2655!5!#3265ibC~p3&8eDlwo8eCnw%#"%&""&QCzSONDIVaKo@c8vb@a7{e~z+00+zz*11*z:8-JKe;IZF=J##5#"&&547##"&55##"&55332655!32655!6325!5!6554&#"3bO3Ee6j7fEnwo7fEnw%#"%%#"%P:V2P<<52??2a#%>nEAf9{eAf9{e+00++00+/$"B-.@=12>:F##5##"'#5332654&#"'&&'##"&55332655!66335!5!##"33b~XMM3-&"$+,(?` h7fEnw%#"%)J,I&!,a .CU0u&!"@?Af9{e+00+Ii;0<##5#"&'&&###"&'#332654&##5!26655!5!#3265;bb@s 1#=:/R3-J6)).;+'!};#LPO I?IVa$'}p.S5P*~(00$-/}@?0-JOm6>ZF132653#"&&547##"&55332655!675!5!##LQF9;GC}STI m7fEnw%#"%lFfvѭA=5BF9OwA@tL&(Af9{e+00+,LY<332#"&'332654&##"&'##"&55332655!6335!5!##%!-Wwvkp6)'+/($Es [7fEnw%#"%2\GjoT[R`f[$'! :JAf9{e+00+/J,###"33#"&&547##"&55332655!5!5!b}=H@>+IuD#7fEnw%#"%ae<77>|4hJJ4!Af9{e+00+u432653#5#"&&547##"&55332655!6335!5!##BB4-'4B):a:k7fEnw%#"%eC`&`r92-61+Ɠ3fJ# Af9{e+00+)Pr)5####"&&547##"&55332655!5!5!654&#"3rb8`:Q:5" a~$>pGAf9{e+00+5 8OI'+6####"&&547##"&55332655!5!5!#3#"3265bni@c7q7fEnw%#"%u:%0(#%a]5iv0X:0%Af9{e+00+'!!&,%3&2##5#"&'###"&55332655!2655!5!#32653a a?q4&8eDnw%#"%QCDTNNDIUa"'~p@c8{e~z+00+z:8-JKf ;IYGu3"A~5{*7##5#"&&547##"&55332655!6325!5!6554&#"3bO3Ee6j7fEnw%#"%P:V2P<<52??2a#%>nEAf9{e+00+/$"B-.@=12>g0@L####"&'##"'#5332654&#"'&&546335!5!!#"33!663!654&#"3gb~9_:Lv^XMM3-&"$+,(FdgQIxn&!,Y)..%%0/&am/8=X,ND .CU0u&!"MLNNIOT-$$..$$-.>BM####"&'##"'#5332654&#"'&&546335!5!6335!#"33!#3#"3265boiUr[XMM3-&"$+,(FdgQIsO@b&!,*<%.'#&aP/kyRH .CU0u&!"MLNNIB&"!%/(,@L##5#"&'##"'#5332654&#"'&&546335!5!655!#"33!&5473%#3265b a?VztXMM3-&"$+,(FdgQI0B&!, MTNEHVa#'E@ .CU0u&!"MLNNIGE- !JQd ;HZF:##5#"&'##"&'332654&#"#6632367#5!#"32655!5!b[8BfsPc/ ,11,!.cd !q)*6:,=Ea%(<5CKjY"=/->"Ykuc){{0()/TGZ2Q#"&'##"&'332654&#"#66323675&&55!5!!!33#"32654&#"#&5467"YkZN  C"YkZNz+00+y~KQ326553#"&55##"&'332654&#"#66323532654&#"#&&547!5!632###%)"&wfpTz[c/ ,11,!.cWxWKb%!!% #'h}x`bF(1-$dr~lT`jY"=/->"YkYN46>#++$  ## vjuyŃ03265332653#"&&5467&&5466335!5!###GA:?A8GA:?AUG3-.2B|T52.9>3r24.9>4s:kF9X\:Dg9G*632653#"&&5467&&5466335!5!##654&#"3#GB:=B/.-3JPPI2-0/B{T7BB::BB:52.9>3;]YQD86AAyPSHDW;HlrE>50asH4lP1A=5BA4Lr?@tLMs@LOF+TQK2C%.'332653#5#"&&5467&&5466335!5!###"32655!ID=@G=2^>\1+'/3B{S#,596--552.9>3h?Cs?7]94V`;Eh9G6+*48(g*6#"&&547&&54675!5!&#"3265654&#"3Zp-)VI~OO~HV)-nYB99AA9:ABBA:9AA9aHv^;[50FF:8FF8aIwv.17NHp>>sNcNOFOOJ1C$, E77DE66F*6#5#"&&5467&&54675!5!&#"3265655#"3Zn3H-?[1(%,1pZA9:CB:9Ba5+*3;5+aCu_V=;r!6_<3T\<^rD9922::2T8'h3.*4SD32#"32#"&'332654&#"&547&&5332654&#"&546335!5!##)+mt}r(&+,quvkm7-')5/gp=$(7,')6/fpcPJdy(DTKRCULRYQ%"(&!AJDFB9I##5#"&54732654&#!"332#"&'332654&##"&546335!5!65!323a4kc1%+0 %!-Wwvkp6)'+/($MxgPGG onD?60aHww T[R`f[$'! G[KLJNGNNJ3C#-^4@#5#"&&5467&&5332654&#"&546335!5!##655#"3$'0`iB(7T/.**/7,'(87RycOKo"1%8>3' IN8%Ps.T53QE'%$>sNcNcy|`!)(" DE66FE7~2;332#"&'332654&##"&546335!#"&55#5!##%#3265<%!-Wwvkp6)'+/($MxgPGrkkrbo% "T[R`f[$'! G[KLJcy|`􃃸!)("6?32654&#"#&54632#"&&5466335!#"&55#5!##%#3265piYT8Hp^LUa\TKTgrkkrbt% "WPHZ0+  AI\L`lCWUy?Dcy|`􃃰!)(""+####"&55##"&55#5!#3265#3265crkkrqrkkrb% "+% "aacy|`cy|`!)("!)("'+6####"&&546335!#"&55#5!#3265#3#"3265boiAd6b@rkkrb% "<%.'#&aP/ky2\=bfcy|`!)("&"!%/(1&2##5#"&54732655##"&55#5!#3265#32651b a? RBrkkrbB@% "MTNEHVa#'!GE-cy|`!)("JQd ;HZF(5##5#"&&5466325!#"&55#5!#32656554&#"3bO3Ee66fD2Prkkrb% "?<<52??2a#%>nECi<$"cy|`!)("B-.@=12>TAM6632#"'532654&#"#5#"&&547#"33#"&546336325!5!654&#"3I1>\05]<$ (23*.0P5>^2_=H?>+s}6N4Le76/,:8-a!%=h@Gg6{3-+8>/#(;kD:67>|zzzz*%!c=));8-.716@LX##5#"&'&&#"#5#"&&547#"33#"&546336325!5!655!663%#3265654&#"31b a@x)$./P5>^2_=H?>+s}6N4LBr3/J0NTODIV76/,:8-a#'r'=0#(;kD:67>|zzzz*%!P S3 #VPQe 6GZF=));8-.7TBN6632#"'532654&#"#51#7&&547#"33#"&546336325!5!32654&#I1>\05]<$ (23*..wDQ_=H?>+s}6N4Le8:8-/76/a!%=h@Gg6{3-+8>/ sP:67>|zzzz*%!8-.7=));8ER^##5#"&&'#4&#"#5#"&&547#"33#"&546336325!5!6325!6636554&#"3$654&#"3bO3De60*-.P5>^2_=H?>+s}5K4L-<\2PF0j<<52??2q76/,:8-a#%=kD+8=0#(;kD <77>|zz{|'%!*6$""B-.@=12> =));8-.7DO##!32653#5#"&5#54&#"33#"&54663267&&547!5!6323654&#"b20,$'-C+RgB97@?>+sBpFQp/3?!'Yt.m9/6,#"-W-$!,4$ǖ _M8K<77>|zzPo8RCQ> \TB3/#0+'!^*>J##5#"'#"&55&&#"33#"&546632655!5!7&5466325!3$654&#"3^a)L #sL 85?E?>+sKPDBo$.1W8L)XJD>G,*)%10&a.6B );87>|zzRq7V^R17V:]50gao 9Gf2%#3.'*.y^,@L##5#"'#57&&55&&#"33#"&546632655!5!327&5466325!654&#"3^a)Lpv 85?E?>+sKPDBo D>H$.1W8L)XJ,*)%10&a.{ );87>|zzRq7V^RG17V:]50gao 2%#3.'*.###"33#"&&547#5!5!5!b|=IA>*HuE+ae>94=|4eFQ7u(4##5#"&'&&#"33#"&&547#5!26655!5!#3265b a?r /+7BA=+HvD'f~A*$dTMNEHVa#'wi ;84>{4dFQ4CA4-JPj 8EZFc)6##5#"&&547#"33#"&&547#5!6325!5!6554&#"3cbO3Ee6_=IA>*HuE+*9R2Pt<<52??2a#%>nE>94=|4eFQ7+$"B-.@=12>A##5#"&'#"33#"&546332654&#"#&547!5!632##32665bqNru:@;80qzU` #f!#=^4LI6X3.>}m1.-3|pqmm1;#%  " 2[+s}o///$%0/&ai/8=X,3`B*%<77>|zz{|u.$$..$$./;G##5#"&'##"&&547#"33#"&5463!2655!5!#3265654&#"3cb@py9_: a>D=:+s}rRCRP N?HV-..%%00%a$'t.:=X,3aB*%1206|tuqq35-JJd=IZF.%$./$$.'##5#"&'#"33#"&546335!5!#3265b5_\pS=H?>+s}VH*5638a:kZ<77>|zz{|u:DB3 )##5#7&&'#"33#"&546335!5!#3265bƪGW S=H?>+s}VH*5638a cK<77>|zz{|u:DB3hCU#"'52654&#"#54&#"37#"&'#"&'#"33#"&546335!5!75!3267663239C+s}VHyNV823!- yQCUajpRJrA>5/:B43C905>UIkZ<77>|zz{|uo[:D TX?3M8A6632#"'532654&#"#5#"&'#"33#"&546335!5!!#3265N3>[14^<(" (13*242YZm R=H?>+s}VH^11/4a!%;g?Hi7 y5,+8F88kZ<77>|zz{|u6@>/$(3####"&&547#"33#"&5463!5!5!#3#"3265cohAd7 X=H@=+s}x&;%/(#%aV/ky2\=$612:|vvut'!!&/((/;F##5#"&'##"&547#"33#"&5463!5!5!32655!!#3265#"3265bC~v woicx d8B<9+sz%;5DUMNEIV*<%.'#&aKq/kyo]$2/-4|rqqp78-JNf ;IZF1%!"&/)}%1##5#"&'&&#"33#"&546326655!5!#3265}bb@s /+8??>+sx|C+$TMNEIVa$'xi<77>{zzz|CA4-JPj 8EZF$3##5#"&'#55&&#"#466326655!5!#23265b a@Uz y=$;MDWEy(}NSODIUa#'D?ME>IuC4/<-C`Qd 6CYGI#"'52654&#"#54&#"37#"&&547#"33#"&546336323675!5!]9C+s}6FCU'V,0ajpRJrA>5/:B43C905>ArJ'#<77>|zz{| ?3X[+'4##5#"&&547#"33#"&546336325!5!6554&#"3+bO3Ee6`=H?>+s}9R2P<<<52??2a#%>nE<77>|zz{|+$"B-.@=12>39##!326553#"&&554&#"33#"&5466326655!5!#3c !qdGd3<@?E?>+sKPBD:Ba&\"+( Zj9c?3$<;87>|zzRq7YD;HHA1?IU####"&&55!326553#"&&554&#"33#"&5466326655!5!!3663!654&#"3b~9_: !qdGd3<@?E?>+sKPBD:Bf b:)..%%0/&am/8=X,3aA \"+( Zj9c?3$<;87>|zzRq7YD;HHA1$%-$$..$$-9BN##5#"&'!326553#"&&554&#"33#"&5466326655!5!32655!#3265bb@s !qdGd3<@?E?>+sKPBD:BRB-SNNEIVa#'vh\"+( Zj9c?3$<;87>|zzRq7YD;HHA1<>@]Ne 7FZGB:FS##5#"&&'!326553#"&&554&#"33#"&5466326655!5!366325!6554&#"3BbO3Cd7 !qdGd3<@?E?>+sKPBD:BSeD2P<<52??2a#%|zzRq7YD;HA14<$"ZB-.@=12>77@L####"&'#"&&54732654&#"#&546632##3267663!5!5!654&#"37b~9_99a'pC_LWVc "8^9=]4TQ?[`) //$%0/&am/8=W-,)')E\)2<%%  @Z-2]=dv5D4/\cq-$$..$$-7=I##5#"&'#"&54732654&#"#&546632##32656532655#5!#3265bbALr"({HWVc "8^9=]4KIVj RCNTNEIVa$'8448)2<%%  @Z-2]=dv1A^T GE-JRd ;HZF7=J##5#"&'#"&54732654&#"#&546632##326766325!56554&#"3bO3Ab(mAWVc "8^9=]4RPAX v]2P@<<52??2#%82*,)2<%%  @Z-2]=dv1A@>Xl$"B-.@=12>.32653##"&54733255&&546335!5!##Z>3*'5$7__X`305u(Ck1.(21(' LZm]T #Ghb?juP232653#5#5#"&54733255&&546335!5!##Z>3*'53$7^`X`305u(Ck1.(21(r0' Zm\U #G0b?juP|/H32653#5#"'#"&&54675&&546326335!5!##67&&547&#"33#"3GC5-&5+Td=c;D/1Dli*W%Gr&\yA $ &"',.' %+-&92-61+Ɠ1\l)R9=L J?K]9Pr@9X9,$#"{$#$M-33#"32653#5#"&&54675&&546335!5!##)%69##*).1-\/R4:10=oY.b6p"/'}6"F32E  C1JCF|F32653#5#"'#"&&54675&&54632&33#"3267&&5466335!5!##GC5-&5+Td=c;D/1Dmk .2.' %+-&.A $ExM&\y92-61+Ɠ1\l)R9=L J?K\#"{$#$@9X9Kk7P5AE####"&&54663!5!#"32653#5#"&&5466335!5!654&#"3#'b~9_:@lB)q8B4-'4B):a:DyM&..%%0/&džam/8=X,3aAEa0q92-61+Ɠ3fJKk7P-$$..$$-%-632653#5#"&&5467&&546335!5!##65567'3 >5('5L/@_23-$*u)|oJ!T) =22-'31($&7^97YQ7dnP lv.:&.732653#5#7&&5467&&546335!5!##6553267' >5('5 kEO3-$*u)|oJ!=2)2-'31( slI7YQ7dnP l~.:v"a;Pt*5####"&546335#"&546335!5!##"333#"3265tgig`pf,O]xr`2!()!6"/& "aQ$!mxj\fZDaXb\P"#$-).##5#"&54675&&546335#5!##"33#"3265c;_y;-. 8.95Ayv SUt%132653#5#"&&5467&&546335!5!##32655=2*'5G,;X.+&&+u(nB(/3*-41.(21(w5Y73SS9dnP1&'15&? BN####"&'#"&54675&&54632#74&#"33#"3267663!5!5!654&#"3 a8_:=h mIkF.5GiRU_t I5<5/4C1CO ^*//$%0/&am.9=X,5/./]Z7J]ZYo$"B-.@=11?@LX6632#"'532654&#"#5#"&&547##"&&54663!6325!5!654&#"3$654&#"39I1>\05]<$ (23*.0P5>^2u9_:@lBs2H4LM76/,:8-..%%0/&a!%=h@Gg6{3-+8>/#(;kD&/8=X,3aAEa0#%!c=));8-.7-$$..$$-COUam##!326553#"&&554&#"#5#"&&547##"&&54663!6325!5!655!6632%#3654&#"3$654&#"3b! !qcGe31)-.P5>^2u9_:@lBs2H4LM -sG0:Pn76/,:8-..%%0/&a,b"+( Zj9c?^'6=0#(;kD&/8=X,3aAEa0#%!B4B"6/BA2=));8-.7-$$..$$-+7##5#"&547##"&&54663!#"32655!5!654&#"3b[8]p/9_:=f>@lBC*,39,@C.y..%&/0%a%(aUB,0>=X,3`BEa0|-$'*TG/#$..%#.[*JV#"&'&'#"&&5466332675&&55!5!!!33#"32654&#"#&5467654&#"3@lB2f,)+4l%*/0Z]s|$$ B8*..%%0/&aQiN\K^[{*5=X,3aAEa0DC A9D;(*/%25\W)2*&!+*4CT-$$..$$--932653#"&&547##"&&54663!675!5!##654&#"3 QF9;GC}STIv9_:@lBB\..%%0/&A=5BF9OwA@tL/*/8=X,3aAEa0$L-$$..$$-<8D332#"&'332654&##"&'##"&&54663!6335!5!##654&#"3%!-Wwvkp6)'+/($Hun9_:@lBJ1TGMo#..%%0/&T[R`f[$'! ?P/8=X,3aAEa0'J-$$..$$-'3###"33#"&547##"&&54663!5!5!654&#"3b}=H?>+s9_:=f>@lBa..%%00%ae<77>|zzB2.9=X,3`BEa0u.$$..$$.4@L##5#"&'&&#"33#"&547##"&&54663!26655!5!#3265654&#"3bb@s /+8??>+s9_:@lB(|C+$TMNEIV..%%0/&a$'xi<77>{zzD0.:=X,3aAEa0CA4-JPj 8EZF-%#..$$-(4##5#5&&#"##"&&54663!66325!5!654&#"3ay>%+C9`;=f<@lB+s9_:=f>@lB.BD:?S..%&/0%a&\"+( Zj9c?3$<;87>|zzD4.:=W,2`BEa0YD;HHA1/$$..%#/-?K##5#"&'##"&&54663!2654&#"#&547!5!632##32665654&#"3-apOrt9_:=f>@lBvWb!# $]rLI6X3 ..%%00%.>|m.:=X,3`BE`01<#% " m\cu4C/]BA.$$..$$.MYe##5#"&'#"&'##"&&54663!2654&#"#&547!5!632##32656532655#5!#3265654&#"3bbALr"({Ht9_:=f>@lBvVc "%=]4KIVj RCNTNEIV=..%%00%a$'8448vm.:=W,3`AEa02<%%  " 2]=dv1A^T GE-JRd ;HZF/$$./$#/MZf##5#"&'#"&'##"&&54663!2654&#"#&547!5!632##326766325!56554&#"3654&#"3bO3Ab(mAt9_:=f>@lBvVc "%=]4RPAX v]2P@<<52??2 ..%%00%#%82*,vm.:=W,3`AEa02<%%  " 2]=dv1A@>Xl$"B-.@=12>+/$$./$#/s0<32653#5#"&&547##"&&54663!6335!5!##654&#"3B4-'4B):a: s9_:@lB?V&r..%%0/&92-61+Ɠ3fJ*/8=X,3aAEa0!P-$$..$$-r1=32653#5#7&&547##"&&54663!6335!5!##654&#"3B4-'4 CR s9_:@lB?V&r..%%0/&92-61+ƘlV*/8=X,3aAEa0!P-$$..$$-i6BN32653#5#"&&5467&&547##"&&54663!6335!5!##654&#"332655 =2*'5G,;X.+&&+m9_:@lB}?Z(zn..%%0/&EB(/3*-41.(21(w5Y73SS9/8=X,3aAEa0!P-$$..$$-f1&'15&IU##5#"&'&'#"&&5466332675&&547!5!632#74&#"33#"32653654&#"3_ iF\~ Y9_:@lB2i) "5G#U_t H5<4/491L[E..%%0/&a+.UNY*4=X,3aAEa0@=TC ]L #,)#!"$`Nh-$$..$$-Xdp##5#"&'#"&'&'#"&&5466332675&&547!5!632#74&#"33#"326'54732655#5!#3265654&#"3cb@Hn"%rIo Y9_:@lB2i) "5G#U_t I5<5/4B1LP QCNTOEHVu..%%0/&a$'2.15SRY*4=X,3aAEa0@=TC ]L #,)#!%!UG!GE-JRd :IZF-$$..$$-MY##53#7&&'&&'#"&&5466332675&&547!5!632#74&#"33#"32653654&#"3_Tr=-9_:@lB2i) "5G#U_t I5<5/491L[E..%%0/&aRH*< *4=X,3aAEa0@=TC ]L #,)#!"$`Nh-$$..$$-pWdp##5#"&'#"&'&'#"&&5466332675&&547!5!632#74&#"33#"3267766325!56554&#"3$654&#"3paO3DeAi Y9_:@lB2i) "5G#U_t I5<5/4C1@T  v_2P.<;52@@24..%%0/&#%=6eSRY*4=X,3aAEa0@=TC ]L #,)#!%!@>Yo$"B-.@=11?-$$..$$-O%1=####"&&547##"&&54663!5!5!654&#"3 654&#"3Ob~9_:|9_:@lB0`..%%0/&,..%%0/&am/8=X,3aA.%/8=X,3aAEa0q-$$..$$--$$..$$-.:FR##5#"&'##"&&547##"&&54663!2655!5!#3265654&#"3 654&#"3cb@py9_:9_:@lB3RC%RP N?HV%..%%00%-..%%00%a$'t.:=X,3aB/$.:=X,3aBE`035-JJd=IZF.%$./$$..%$./$$.&2##5#"&'##"&&54663!5!5!#3265654&#"3b5_^q p9_:@lB5638..%%0/&a:o^/8=X,3aAEa0q:DB3-$$..$$-(4##5#7&&'##"&&54663!5!5!#3265654&#"3bƪIW q9_:@lB5638..%%0/&a gN/8=X,3aAEa0q:DB3-$$..$$-7@L6632#"'532654&#"#5#"&'##"&&54663!5!5!!#3265654&#"37N3>[14^<(" (13*242Y]m q9_:@lB11/4..%%0/&a!%;g?Hi7 y5,+8F88o^/8=X,3aAEa0q6@>/-$$..$$-;DP6632#"'532654&#"#501#7&&'##"&&54663!5!5!!#3265654&#"37N3>[14^<(" (13*24FR q9_:@lB11/4..%%0/&a!%;g?Hi7 y5,+8F8fL/8=X,3aAEa0q6@>/-$$..$$-m9DP####"&&547##"&&54663!54&#"#&547!5!6323#"3265654&#"3mc|ohAd7 9_:@lB@!(mb|;&.(#%..%%00%U/ky3\<##.:=W,3aAEa0F#(# m)q&!!&/(p/$$..$$/DOZf##5#"&'##"&&547##"&&54663!54&#"#&547!5!63232655#5!#3265#"3265654&#"3cb@y[niAd7 9_:=f>@lB@!(na=4OFHVD:'.(#%..%%00%a$'v/lx2\=%!.:=W,3`BE`0L#(# m/*:-J;JZF%&"!%/(o.$$..$$.JWbn##5#"&&547##"&&547##"&&54663!54&#"#&547!5!632366325!56554&#"3%#"3265654&#"3aO2Ef6fniAd7 9_:=f>@lB@!(naV62PC<;62??2:'.(#%..%%00%#%>nE /lx2\=%!.:=W,3`BE`0L#(# m/"%%!B-.@=12>&"!%/(o.$$..$$.q#'2>####"&&547##"&&54663!5!5!#3#"3265654&#"3qbohAd7 ~9_:@lB>:&.(#$..%%00%aU/ky3\<##.:=W,3aAEa0&!!&/(p/$$..$$/3'.:EQ##5#"&'##"&547##"&&54663!5!5!32655!!#3265#"3265654&#"33bC~v woicx 9_:@lB?D;5DUMNEIV*<%.'#&..%%00%aKq/kyo]'!0;=W,3aAEa078-JNf ;IZF1%!"&/)p/#$..$#/ !-9##5#"&'##"&&54663!2655!5!#3265654&#"3 cb@py9_:@lB+RCRP N?HV-..%%00%a$'t.:=X,3aBE`035-JJd=IZF.%$./$$.&3?##5#"&&547##"&&54663!6325!5!6554&#"3$654&#"3bO3Ee6x9_:@lBw7N2P8<<52??2..%%0/&a#%>nE"/8=X,3aAEa0'$"B-.@=12>-$$..$$-T6<H##!326553#"&&55#4&###"&&54663326655!5!#3654&#"3Tb! !qcGe3579_:@lBLu!>6e..%%0/&a,b"+( Zj9c?J#./8=X,3aAEa0(+C9BBA2-$$..$$-IR^32653#"&&547!326553#"&&55#4&###"&&54663326655!5!##&675!3654&#"31QF9;GC}STI! !qcGe3579_:@lBLu!>6yP]..%%0/&A=5BF9OwA@tLb"+( Zj9c?J#./8=X,3aAEa0(+C9BL7LBA2-$$..$$- /DMT`lw##5#"&'##"&547!326553#"&&554&###"&&54663326655!5!!6335!32655!!#3265654&#"3%#"3265 /bC~v woicx "qdGe3579_:@lBLu!>6 @3E@b0;5DUMNEIV ..%%0/&F<%.'#&aKq/kyo]b"+( Zj9c?J#./8=X,3aAEa0(+C9B?478-JNf ;IZF-$$..$$-z%!"&/) <EQ]##5#"&'!326553#"&&55#4&###"&&54663326655!5!32655!#3265654&#"3 b a?s! !qcGe3579_:@lBLu!>6RB-SONEIU-..%%0/&a#'whb"+( Zj9c?J#./8=X,3aAEa0(+C9BBA2=>:WNf 7EYG-$$..$$-L>J632#&&#"32673#"&&5467&'##"&&54663!6335!5!##654&#"3#ju .#(43)!/dKo@lBG-SP]..%%0/&fT%6-.6#Vg9iF:Z*/8=X,3aAEa0+F-$$..$$-)32653#"&'#"&55#5!##$675!3267QF9;GC}Sf3Ht|Uh#76'2 A=5BF9OwA]Q"s)ZL:D'! !-#"&'#"&55#5!676675!3$&#"3265 [tJP`3Lt|U1R1 iIp76F:8FF8:FaMdNs>XO%s!G[N:D0DE66FE7/'###"33#"&'#"&55#5!!32676633/b}=H?>+b.8qzU@44- `ae<77>|Z[s:DJK"5A##5#"&'&&#"33#"&'#"&55#5!6655!326?663%#3265bb@s /+8??>+`.;qzUBC+$543 , Y;TMNEIVa$'xi<77>{VWsCA4-6@ FFmJPj 8EZF$0####"&'#"&55#5!!3267663!654&#"3b~9_:Cp4Fr{U344+ ~T)..%%0/&am/8=X,?9w:DHM-$$..$$-)%##5#"&'#"&55#5!655#3#3265)b5_=[^DmvU:W7565638a:0,,0s@D::D=:DB3]-6?6632#"'532654&#"#5#"&'#"&55#5!655#3#3265N3>[14^<(" (13*242Y;X]CmvUn#75611/4a!%;g?Hi7 y5,+8F88/*+.sD::D=6@>/!%0####"&'#"&55#5!766335!3#3#"3265boiNo-DgpUsL@>/0v<%.'#&aP/kyG?#pŃ@/>?7A=&"!%/(v#/##5#"&'#"&&55#5!676732655!3#3265vb a?Uy :[Ml6U0 RB230MTNEHVa#'D>4BuK@5* GE-:D=JQd ;HZF3E#"'52654&#"#54&#"37#"&'#"&&55#5!75!326766323C9C5/:B43C905>UIBuKo[:D TX?3#0##5#"&'#"&&55#5!6766325!36554&#"3bO3Ij3JMl6U$Z/qT2P23<<52??2a#%F>"BuK@+%KX$":DiB-.@=12> /5##!326553#"&'#"&&55#5!655!3265353%#3b! !qcet2CMl7UAa23/2JŚa,b"+( ZjoYBuKE>B:D?/ BA2/!*=####"&&554&#"#5#"&55#5!655#3!663232655!/as7fEIf40*..2YgpU@C411G1=Y-&"#% abAf96Z5*4=08pǃ@>/6@=!%6Y2 *10+u/"'~~{g)2<32653#"&&5514&#"#5#"&55#5!##655#3$75!6632QF9;GC}STI..242YgpUxA411ex#K0V3A=5BF9OwA@tL4=F88pǃm>/6@L $;&/;###"33#"&55#74&#"#5#"&55#5!655#3!6632633b}=H?>+s1+242YgpU411cI01NInae<77>|zz ;>F88pǃ@>/6@= #+(/"~#,8D####"&&547&&#"#5#"&55#5!655#3!663263!654&#"3b~9_:/'222YgpU'\411-G/,H;V)..%%0/&am/8=X,3aA,1F88pǃ@>/6@=#%#%-$$..$$-d#*3##5#"&'&#"#5#"&55#5!655#3$5#63%#3265db5_Xn?132YgpUu411.Y5638a:bT7F88pǃ@>/6@]>Y:DB35>EN6632#"'532654&#"#5#"&'&&#"#5#"&55#5!655#3$5#63%#3265N3>[14^<(" (13*242YUk )132YgpU411.Y11/4a!%;g?Hi7 y5,+8F88`S F88pǃ>/6@]>Y6@>/"'~~%0<##5#"&'&&#"#5#"&55#5!655#3$655!663%#3265cb@x*#032YgpU411K0K1NTOEIUa#'r&E98pǃ@>/6@*& S3"VPRd 6GYGi>GW#"'52654&#"#54&#"37#"&&5514&#"#5#"&55#5!655#3$75!663263239C5/:B43C905>ArJ2;F88pǃ>/6@["12?3&+1AJ326553#"&554&#"#5#"&55#5!632###32654&#"!63655#3&("&wgp/*222YgpU!)g}x`aR!La%! i.Y411F'2-$eq~l9+7E88pǃ vjuyŃ0*6>#+>>/6@*3>DP##!326553#"&&554&#"#5#"&55#5!655#3$55!6632%#3#"&5463b! !qcGe30*122YgpUd411kJ2:U55'&55&a,b"+( Zj9c?^'6F88pǃ@>/6@kB"91BA26'&34%'6&.6####"'#"&&54663232655!5!5!654&#327'aspf\1$lERw@?xQU{?$"& &# K>Q:2$ abe{.)/@pFDm>@j>"(1*y8PJu"~{.:BJ##5#"&'##"'#"&&54663232655!2655!5!#3265$654&#327'a a?qnnf\1$lERw@?xQU{?$"&RBmSNNCIV_# K>Q:2$ a#'odx.)/@pFDm>@j>"(1*z99-JKe;IYG?8PJX;GO##5##"'#5332654&#"'&'#"&&546632&#"65546335!5!##"33327'Xa~WMM3-&"#+,d/({aRw@?xQ(*#&7&fQui&!pQ:1& a .CU0u& "Uf@pFDm> j /<NNIi]Jh%-5###"33#"&'#"&&5466326335!5!654&#327'hb}=H?>+Lv EgRw@?xQQr Kyy# K>Q:2$ ae<77>|663@pFDm>928u8PJ +3;32653#5#"&'#"&&54663266335!5!##$654&#327'B4-'4B)/RH|Rw@?xQFi"#g=&r(# K>Q:2$ 92-61+Ɠ! H@pFDm>,'"#P)8PJxKS##5#"&'#"&&546632&#"676675&&547!5!632#74&#"33#"32653327'x_ iF7\ cYo$"B-.@=11?1G",8@####"&'#"&&54663263!5!5!6747&&#654&#"3$327'b~9_:1VHRw@?xQKn!A`)-#J=..%%0/& Q:2$ am/8=X,!K@pFDm>3,0q7L-$$..$$-&JW (08@##5#"&'#"&&54663266325!5!654&#654&#327'327'WbT47^!GRw@?xQG!^72RhV% J>/# K>Q:5" cQ:2$ a~$)$N@pFDm>L$& 8O8PI@J08@K####"&'#"&&54663263354&#"'!5!6323654&#327'%#"3265b|oh6UHwRw@?xQSs9O? 9w 'mb|# K>Q:2$ 2:&/( #$P/ky!C@pFDm><4!L#( m/8PJ$&"!%/( 3=EP##5#5##"&'#"&&54663263354&#"!5!632367754&#327'%#"3265 bЫrpe0Q"fARw@?xQQq 9SA Xw (l`# K>Q:2$ 5@%-( %%x[W%f{%(@pFDm>92#E#) m( 8PJ-$ #/)+3;##5#"&'#"&&5466326655!5!#3265$654&#327'a b@=b"!mIRw@?xQQr!'"RS KAJVv# K>Q:2$ a$($",2@pFDm>:2@3-JNy 3Q:2$ akoRJrA>5/:B43C905>0,@@pFDm>)%?3X[8PJDPX`##5#"&'&&#"#54&#"37#"&'#"&&5466326632366326655!5!#3265$654&#327'cb?y(!/-+,-0:1@bEvRw@?xQDg"K*CUVD3T NSNEIU# K>Q:2$ a#'s!B43C905>0,@@pFDm>)%?34>.+=.3PQd 8EYG?8PJB (5=##5#"'#"&&5466326325!5!654&#6554&#"3$327'BbO3h?!e@Rw@?xQBe">g2PS# K><<52??2Q:2$ a#%G$'@pFDm>(#C$"8PB-.@=12>5J17?G326553#"&'#"&&54663232654&#"!5!632###654&#327'i%)"%xgIhFkRw@?xQXw,Kb%! J 'h~y`a# K>Q:2$ F(1-$dr>:7@pFDm>C96>#+ vjuyŃ8PJ)/7?##!326553#"&'#"&&546632655!5!#3$654&#327'c !qdFaDiRw@?xQYzwK4# K>Q:2$ a,b"+( Zj@74@pFDm>G; yBBB18PJ7g9EP####"&&547##"&&5463354&#"#&54632363!5!5!654&#"3%#"3265gb8_:mniAd7c?jdna:M*//$%0/&$:'.(#%am/8=X,3aA/lx2\=agL#(#Ukm/ q-$$..$$-&"!%/(72=H##5#"&'##"&&5463354&#"#&5463232655#5!#3265#"3265cb@y[niAd7c?jdna=4OFHVD:'.(#%a$'v/lx2\=agL#(#Ukm/*:-J;JZF%&"!%/(76AL##5#"'#&'##"&&5463354&#"#&5463232655#5!#3265#"3265cb@mDO]pdAd7cAjdl`=4OFHVF@$.( %%a$'8:5C%f{0W:\`L$(# Tim/*:-J;JZF$ #/)7Ze#"'52654&#"#54&#"37#"&&547##"&&5463354&#"#&54632366323675!5!#"32659CnE /lx2\=agL#(#Ukm/"%%!B-.@=12>&"!%/($+6###"33#"&547##"&&546335!5!!3633#"3265b}=H?>+svoiAd6b@?Ue<%.'#&ae<77>|zz1*/ky2\=bf&"!%/(*2=32653#5#"&&547##"&&546335!5!##&6335!3#"3265/B4-'4B):a:toiAd6b@rd<&_<%.'#&92-61+Ɠ3fJ/ky2\=bfe!P&"!%/(]")5@####"&&547##"&&546335!5!!363!654&#"3%#"3265]b~9_:qoiAd6b@n~;M)..%%0/& <%.'#&am/8=X,3aA/ky2\=bf -$$..$$-&"!%/('2##5#"&'##"&&546335!5!35#!#3265#"3265b5_WmoiAd6b@5638|<%.'#&a:_Q/ky2\=bf쑿:DB3I&"!%/( )4##5#7&&'##"&&546335!5!35#!#3265#"3265bƪBToiAd6b@5638|<%.'#&a VC/ky2\=bf쑿:DB3I&"!%/((08C##5#"&&547##"&&546335!5!66325!654&#"327'%#"3265bT4Eo?toiAd6b@ _92R J>2%4Q:5" s<%.'#&a~$>pG /ky2\=bf%( 8OI &"!%/($1=EMX##5#"&'#"&&547##"&&546335!5!66326655!%#3265654&#"327'%#"3265a b@=b"!mIRw@toiAd6b@#hBQr!'"YՒRS KAJV( K>4#4Q:2$ z<%.'#&a$($",2@pF /ky2\=bf&):2@3-JNy 32%4Q:5" s<%.'#&a] /ky2\=bf%( 8OI &"!%/(y)1<G####"&&547##"&&546335!5!6323!54#"!#"3265%#"3265yb{oiAc7 }oiAd6b@(nb{b7 <%.'#&";&.(#%P/ky2\=&"/ky2\=bf m/LK&"!%/(7&"!%/('4EP[f##5#"&'##"&&547##"&&546335!5!63232655#5!!54&#"#&547#!#3265#"3265%#"3265'cb@y[niAd7 zoiAd6b@!(na=4LOFHV"<%.'#&":'.(#%a$'v/lx2\='!/ky2\=bf m/*:-L#(#J;JZF%&"!%/(7&"!%/(-5@K##5#5##"&&547##"&&546335!5!6323!54#"!#"3265%#"3265cϪqpfAb7 }oiAd6b@'l`C; @%-)%%<%.'#&wZR%gz0X:&/ky2\=bf m/LL$ $0))&"!%/(:KXcn##5#"&&547##"&&547##"&&546335!5!632366325!5!54&#"#&547#6554&#"3%#"3265%#"3265aO2Ef6fniAd7 zoiAd6b@!(naV62P}<;62??2<%.'#&":'.(#%#%>nE /lx2\='!/ky2\=bf m/"%%!L#(#ZB-.@=12>&"!%/(7&"!%/(y $(3>####"&&547##"&&546335!5!!5!!#3#"3265%#"3265yboiAd6 uoiAd6b@bu<%.'#&<%.'#&aP/ky2\='!/ky2\=bf쑑&"!%/(7&"!%/( ,7##5#"&'##"&546335!5!32655!!#3265#"3265bC~v woicxb@/;5DUMNEIV*<%.'#&aKq/kyo]ag78-JNf ;IZF1%!"&/)=JU#"'52654&#"#54&#"37#"&&547##"&&546335!5!75!366323#"32659C5/:B43C905>ArJ/ky2\=bfo[?3J&"!%/((5@##5#"&&547##"&&546335!5!66325!6554&#"3%#"3265bO3Ee6uoiAd6b@V52P<<52??2<%.'#&a#%>nE /ky2\=bf"%$"B-.@=12>&"!%/({*0CN326553#"&55##"&&546335!5!632###654&#"#&&547#!#"3265&)"%xgozoiAd6b@#'h}y`aa$"!% h<%.'#&(O'2-$eq~lH/ky2\=bf rhuv5= (+$" ##&!!&/(b)06A##!326553#"&&55##"&&546335!5!655!3%#3#"3265bb! !qcGe4xoiAd6~c@sBŚ<%.'#&a7m"+( Zj9c?W/ly3\=aeE=8B=/&!"%/(\8@K632#&&#"32673#"&&5467&'##"&&546335!5!##&6335!3#"3265#ju .#(43)!/dKo\05]<$ (23*.0P5[o/*.,,,,0:1Ru<>g?CU1$A9^4Lp76/,:8-a!%=h@Gg6{3-+8>/#(zc.7B43C905>ArJOl6?3r<%!c=));8-.7<IS_k##5#"&'&&#"#5#"&'&&#"#54&#"37#"&&54663236326325!5!655!663%#3265654&#"3g?CU1$A9^4LMr3/J0NTODIV76/,:8-a#'r'=0#(zc.7B43C905>ArJOl6?3r<%!P S3 #VPQe 6GZF=));8-.7K<P\##5#"'#"&55&&#"#54&#"37#"&&5466323632655!5!7&5466325!3$654&#"3Kb*L $sL,%.,,,,0:1Ru<>g?CU17\2\".1X7M)WKD>H,*)%21&a/7A$!)B43C905>ArJOl6?3r52RL1;R:]50bao %9Gf2%#3.'*.=####"&'&&#"#54&#"37#"&&546632363232655!5!b~ffQ` '$,+,,,0:1Ru<>g?CU1~Mb ?aa`vIE#(B43C905>ArJOl6?3rXU)!C####"&'&&#"#54&#"37#"&&5466323663232655!5!5!bs7fEit*(-,,,,0:1Ru<>g?CUXE7b=(#% abAf9dV/5B43C905>ArJOl6?34>-X> &+.(yu"~{C32653#"&&54&#"#54&#"37#"&&54663236326675!5!##QF9;GC}STI-,.,,,,0:1Ru<>g?CU1*J%g?0A=5BF9OwA@tL4:B43C905>ArJOl6?3r #L8;G#"&&'4&#"#54&#"37#"&&54663236632675!5!&#"3265$[tJPN~K.,-,,,,0:1Ru<>g?CUSB*K3PfIF:8FF8:FaMdNs>;nJ6;B43C905>ArJOl6?34>1NDE66FE7N332#"&'332654&##"&'&#"#54&#"37#"&&546632366326335!5!##n%!-Wwvkp6)'+/($Ap6-,,,,0:1Ru<>g?CURA7+2\GFoT[R`f[$'! 3B/B43C905>ArJOl6?33="/J(W32654&#"#&54632#"&&'=&&#"#54&#"37#"&&5466323663266335!5!##iYT8Hp^LUa[U.+-,,,,0:1Ru<>g?CUSB*K'oC9tWPHZ0+  AI\L`lA}V6;B43C905>ArJOl6?34>'(DYA###"33#"&5476&#"#54&#"37#"&&54663236326335!5!Yb}=H?>+s.).,,,,0:1Ru<>g?CU/}1TJtjae<77>|zz 5:B43C905>ArJOl6?3r*)3uO##5#"&'&#"#54&#"37#"&&546632366326654&#"!5!632##32665bpOy ;/.,,,0:1Ru<>g?CUVD4SR\! }]#=^4LJ6W4.>w2B43C905>ArJOl6?34>+*2:& 2]=dv1A/]BAu\h##5#"&'#"&'&#"#54&#"37#"&&546632366326654&#"!5!632##32654732655#5!#3265ua b@Lr"({I ;/.,,,0:1Ru<>g?CUVD4SR\! }]#=^4LIVj RBNTMEJVa$(8448y2B43C905>ArJOl6?34>+*2:& 2]=dv1A^T GE-JQd ;HZFF32653#5#"&&'4&#"#54&#"37#"&&546632363266335!5!##B4-'4B)9`;-*.,,,,0:1Ru<>g?CU/})I#d;& r92-61+Ɠ1dH-7B43C905>ArJOl6?3r!PG32653#5#7&&'4&#"#54&#"37#"&&546632363266335!5!##B4-'4 AS-*.,,,,0:1Ru<>g?CU/})I#d;& r92-61+ƘiS-7B43C905>ArJOl6?3r!P3<##5#"&'&#"#54&#"37#"&&546632366325!5!#3265b5_Tl8.,,,,0:1Ru<>g?CUN?#G+5638a:YMArJOl6?33> `:DB3PNW6632#"'532654&#"#5#"&'&&#"#54&#"37#"&&546632366325!5!!#3265N3>[14^<(" (13*242YSi &.,,,,0:1Ru<>g?CUN?!Ea11/4a!%;g?Hi7 y5,+8F88[NB43C905>ArJOl6?33> a6@>/F=EM##5#"&&'&&#"#54&#"37#"&&5466323663266325!5!654&#327'FbT4Dn@,%.,,,,0:1Ru<>g?CUSA&E!]72RWV% J>Q:5" a~$ArJOl6?33>#& 8OIKV####"&&5514&#"#54&#"37#"&&5466323663263354#"!5!6323#"3265b{oiAd6-,.,,,,0:1Ru<>g?CUSC1S;Q?7 `j 'nb{;&.(#%P/ky2\=:=B43C905>ArJOl6?34>0/#LK m/l&"!%/(>BM####"&&5514&#"#54&#"37#"&&546632366326335!5!#3#"3265boiAd6-,.,,,,0:1Ru<>g?CUSC1S;Q@<%.'#&aP/ky2\=:=B43C905>ArJOl6?34>0/#&"!%/(7C##5#"&'&&#"#54&#"37#"&&5466323632655!5!#3265cb@x) /-,,,0:1Ru<>g?CU12R<NTOEIUa#'r!B43C905>ArJOl6?3r-+\3PRd 8EYG,_#"'52654&#"#54&#"37#"&&'4&#"#54&#"37#"&&5466323663266323675!5!j9Cg?CUSC)IS/CU'V=ajpRJrA>5/:B43C905>@rI/:B43C905>ArJOl6?34>?3X[ ^j##5#"&'&&#"#54&#"37#"&&'4&#"#54&#"37#"&&5466323663266323632655!5!#3265 cb@x) /-,,,0:1Rt</+.,,,,0:1Ru<>g?CUSC)IS/CU12R<NTOEIUa#'r!B43C905>@rI/:B43C905>ArJOl6?34>?3r-+\3PRd 8EYG4=J##5#"&&'&&#"#54&#"37#"&&5466323663266325!5!6554&#"34bO3De6.&.,,,,0:1Ru<>g?CUSA&ES32PE<<52??2a#%>lD'/B43C905>ArJOl6?34>"$"B-.@=12>)`l332#"&'332654&##"&546335!5!##$#"&&'&&#"#54&#"37#"&&54663236632663654&#"3%!-Wwvkp6)'+/($MxgPG&o.y<=yWRw>.&.,,,,0:1Ru<>g?CUSA(H"f?:==63BA4T[R`f[$'! G[KLJnAl@?lA=lE'/B43C905>ArJOl6?34>"$C./A?13>GM##!326553#"&&554&#"#54&#"37#"&&546632366326655!5!#3b! !qcGe3,&-,,,,0:1Ru<>g?CURA8[=4ba,b"+( Zj9c?U)2B43C905>ArJOl6?34>87C8BBA2S632#&&#"32673#"&&5467&'&#"#54&#"37#"&&54663236326335!5!##_#ju .#(43)!/dKog?CU+l6(,WP]fT%6-.6#Vg9iF:Z,E73C905>ArJOl6?3r.F#1=####"&'#"&&546632663!5!5!6757&&#"3$654&#"3b~9_:0WAlRw?>tP@b U0))9:22@@2v..%%0/&am/8=X,"H>nECi<0*q3'+8=11?-$$..$$-{)8##5#"'#"&&5466326655!5!#32656'5&5&&#"3{aC~zH_@Rw?>tPIi("MTNAIV<:+2@@2aKE*/>nECi<:2A25STj 1=YGB0 #-=11?CO#"'52654&#"#54&#"37#"&'#"&&54663266323675!5!654&#"3]9CtP;]W1CU'V,0W;;52@@2ajpRJrA>5/:B43C905>1->>nECi<)%!"?3X[ZC-.@=11?(!-:##5#"&'#"&&54663266325!5!654&#"3 6554&#"3(bO35UAlRw?>tP8ZV52P9N;;52@@2<<52??2a#%&"H>nECi<&!"%$"C-.@=11?B-.@=12>5D632#&&#"32673#"&'#"&&54663266335!5!##7&'&&#"327S#ju .#(43)!/de (1In;:mJO<D,Pi(*-2>>1:"fT%6-.6#VghX>mECi<,F(=11=+C+[g326553#"&5532654&#"#&&546632#6632#"'532654&#"#5#"&&546325!5!654&#"3%)"&wfpKb%!!%8hEh}xNI1>[05]<$ '22+.0P5>^2rb4K750,97-F(1-$dr~l6>#++$  =`5vjuyB!%=h@Gg6{3-+8>/"';kDi$!c=));8-.7CQ"~*WZ2>##5#"&547#5%32655%#57&&5466326654&#"ZaM72Em*d %4<߈@B4`ACb5)1{+-!%,$",(/@/ ]0 !"P9k']=3T0/T54O,X52"-.C"m*BC+I326553#"&5532654&#"#&&546632#$32653#"&&546675!5!##%)"&wfpKb%!!%8hEh}xFQF9;GD}STIDWeF(1-$dr~l6>#++$  =`5vjuyrA=5BF9OwA@tLMs@LC+E326553#"&5532654&#"#&&546632####"33#"&546335!5!%)"&wfpKb%!!%8hEh}xc|=IA>+s}^F(1-$dr~l6>#++$  =`5vjuyBe<77>|zz{|uB*6B####"&''#57&&546632663!5!5!6654&'"654&#"3Bb9_9>h>A5cCDe6(1q[)M $)#",D..$%0/&am.9=W-50yo(`=9Z31W76S,6TYq(2 -,-$$..$$-C+AEP326553#"&5532654&#"#&&546632#####"&&546335!5!#3#"3265%)"&wfpKb%!!%8hEh}xzbniAd6b?4;%/($$F(1-$dr~l6>#++$  =`5vjuyBP/lx2\=bf&"!%/(C(+@L326553#"&5532654&#"#&&546632###5#"&54732655#5!#3265%)"&wfpKb%!!%8hEh}xab@ QCNTNEIVF(1-$dr~l6>#++$  =`5vjuyB$'(GE-JRd ;HZFC+d326553#"&5532654&#"#&&546632##"'52654&#"#54&#"37#"&&5466323675!5!%)"&wfpKb%!!%8hEh}x9Ch>CU$YnF(1-$dr~l6>#++$  =`5vjuyBjoRJrA=6/:B43C906=ArJOl6?3W[Z$0=##5#"&&5467'#57&&5466326654&#"655'&#"3ZaM66T.I;QAC4`ACb5*2{+-!%,$",W5##!'31'#(-P1?]&p(]=3T0/T53N-Y52"-.J5 +$%+C"mAS.7?K6632#"'532654&#"#5#"&'#"&&55#5!66325!67'3654&#"3I1>\05]<$ (23*.0P5Db/#(F>0EzO,1%!%X?FT=));8-.7S09AM6632#"'532654&#"#51#7&&'#"&&55#5!66325!67'3$&#"3265I1>\05]<$ (23*..w+B>TMm7UdZ;4L3 :;6/,:8-/7a!%=h@Gg6{3-+8>/ 9)/EzO,1%!%X?F;;8-.7=)$,32653#"&'#"&&55#5!##&675!67'3QF9;GC}Se:MMm7U!wOf3 :;A=5BF9OwA[O*EzON5L%X?F-3CK##5#"&&5732654#!"32653#"&'#"&&55#5!675!65!323$67'3b4l?f<6$&K~>QD86AAyPd:MMm7U`wOHlrE>50R3 :;asH4lP1A=5BA4Lr?[O*EzO5LOF+TQK2C%.w%X?F%+332653#'###7&&'#"&&55#5!##&675!67'3QF9;GKCtYYs2G:MMm7U!wOf3 :;A=5BF9S{ttJ0*EzON5L%X?F'.8D32653#5#"&&5467&'#"&&55#5!##&6335!7467'3#"32655ID=@G=2^>\1+'/=UMm7U&xOB:;,596--552.9>3h?Cs?7]94V.3EzOP4G3 X?F6+*48(g+$0#"&'#"&&55#5!6675!67'3$&#"3265[tJP_:QMm7U<R1`3 :;F:8FF8:FaMdNs>VM-EzO&1 N%X?F50F3 :;FF:8FF8aIwv.17NHp>VM-EzO&1 NLOFOOJ1C$,k%X?FwE77DE66F+!)5#'#7&&'#"&&55#5!6675!67'3$&#"3265[tSH}\\{3I:QMm7U<R1`3 :;F:8FF8:FaMdRxwwH1-EzO&1 N%X?F[14^<(" (13*242Yk:\:Ll6Ukb11/4_1 9:a!%;g?Hi7 y5,+8F88M)0EzO6@>/y&W?F )4####"&'#"&&55#5!6335!!#3677'3%#"3265boiKk8ELl6U;]@/ 9:s<%.'#&aP/kyA:$EzO+W?F8&"!%/(!(4=H##5#"&'##"&'#"&&55#5!6335!32655!!#3265677'3%#"3265bC~v woiNm5ALl6U^;R@s;5DUMNEIV. 9:n<%.'#&aKq/kyE> EzO$78-JNf ;IZF]W?F,%!"&/)~&/##5#"&'#"&&55#5!6655!!#3265675'3~b a?Ty!?_Ll6Ud=2MTNEHV0 9:a#'C>?EzOE=-JQd ;HZF]$W?F$%2##5#"&'#"&&55#5!66325!67'36554&#"3$bO3Jj;SLl6U5a?2P1 9:<<52??2a#%H?1EzO.3$"&W?F]B-.@=12>3"*##5#"&'#"&&55#5!5!#67'3 67'33b3h=\\9Ll6UDQ: :81 9:a>.*(0EzO& X\05]<$ (23*.0P5>^2! !qcGe3JMA}]?4L76/,:8-a!%=h@Gg6{3-+8>/#(;kDb"+( Zj9c?E>B16%!BA2=));8-.7CO[6632#"'532654&#"#51#7&&55!326553#"&&5532655!5!66325!&#"3265<I1>\05]<$ (23*..wDQ! !qcGe3JMA}]?4L 6/,:8-/7a!%=h@Gg6{3-+8>/ sPb"+( Zj9c?E>B16%!BA2Y;8-.7=)i9ER_k##5#"&&'#4&#"#5#"&&55!326553#"&&5532655!5!66325!$6325!6636554&#"3$654&#"3ibO3De60*-.P5>^2! !qcGe3JMAz]?4Lq-<\2PF0j<<52??2q76/,:8-a#%=kD+8=0#(;kDb"+( Zj9c?E>B16%!BA2_*6$""B-.@=12> =));8-.7+5IU##5#"'#"&55!326553#"&&5532655!5!32655!7&5466325!3$654&#"3c)N #tK! !qcGe3JMApEA$.1W7M*XID>G-+)%10&a07Aa"+( Zj9c?D>G4BBA2<+00+3<32653#"&&547!326553#"&&5532655!5!##&675!3*QF9;GC}STI! !qcGe3JMAyP]A=5BF9OwA@tLb"+( Zj9c?E>BL7LBA2/9###"33#"&547!326553#"&&5532655!5!!36633b}=H?>+s! !qcGe3JMA&j?ae<77>|zzb"+( Zj9c?E>BBA2 7EQ##5#"&'&&#"33#"&547!326553#"&&5532655!5!6655!3663%#3265bb@s /+8??>+s! !qcGe3JMABC+$\%i@;TMNEIVa$'xi<77>{zzb"+( Zj9c?E>BCA4-BA2$$mJPj 8EZF*6##5#5&&#"!326553#"&&5532655!5!!36632cz>$1G ! !qcGe3JMA gC5VaM1-b"+( Zj9c?E>BBA2+/$28GT##5#"&&547#"33#"&547!326553#"&&5532655!5!6325!36636554&#"32bO3Ee6`=H?>+s! !qcGe3JMAC9R2P}&j?<<52??2a#%>nE<77>|zzb"+( Zj9c?E>B+$"BA2 B-.@=12>%9N##5#"&'!326553#"&&5532655!5!632##3266532654&#"#&547%bpOr! !qcGe3JMA%=]4LI6W3Wb!#.>wih"+( Zj9c?E>B 2]=gx0=/]BAB=/3?&% "F[g##5#"&'#"&'!326553#"&&5532655!5!632##32656532655#5!32654&#"#&547!#3265bbALr"({H! !qcGe3JMA $=]4KIVj RCVc "NTNEIVa$'8448yno"+( Zj9c?D>> 2]=dv1A^T GE->=/2<%%  "JRd ;HZF{4>32653#5#"&&55!326553#"&&5532655!5!##&6335!3B4-'4B):a:! !qcGe3JMArvK&I92-61+Ɠ3fJb"+( Zj9c?E>BR4PBA2O-7C####"&&547!326553#"&&5532655!5!!3663!654&#"3Ob~9_:! !qcGe3JMA`e `8)..%%0/&am/8=X,3aA b"+( Zj9c?E>BBA2""-$$..$$-%+4##5#"&'!326553#"&&5532655!5!35#!#3265b5_Mg! !qcGe3JMA5638a:JBb"+( Zj9c?E>BA2:DB3'-6##5#7&&'!326553#"&&5532655!5!35#!#3265bƪ8N! !qcGe3JMA5638a C4b"+( Zj9c?E>BA2:DB3?EN6632#"'532654&#"#5#"&'!326553#"&&5532655!5!35#!#3265NN3>[14^<(" (13*242YKez! !qcGe3JMA11/4a!%;g?Hi7 y5,+8F88JBb"+( Zj9c?E>BBA26@>/'3;C##5#"&&'!326553#"&&5532655!5!366325!654&#"327'bT4Do?! !qcGe3JMAnE2R J>2%4Q:5" a~$=nFb"+( Zj9c?E>BA25< 8OIf+48C####"&&547!326553#"&&5532655!5!36335!!#3#"3265fboiAd6! !qcGe3JMAwN;R@a<%.'#&aP/ky2\=b"+( Zj9c?E>BA2$&"!%/(+/8?KV##5#"&'##"&547!326553#"&&5532655!5!!6335!32655!!#3265#"3265+bC~v woicx! !qcGe3JMA<3E@^4;5DUMNEIV*<%.'#&aKq/kyo]b"+( Zj9c?E>BA278-JNf ;IZF1%!"&/)&/;##5#"&'!326553#"&&5532655!5!32655!!#3265b a?s! !qcGe3JMARBQSONEIUa#'whb"+( Zj9c?E>BA2=>:WNf 7EYGGV#"'52654&#"#54&#"37#"&&55!326553#"&&5532655!5!75!3663239C5/:B43C905>ArJb"+( Zj9c?E>Bo[BA2/1?3'3@##5#"&&'!326553#"&&5532655!5!366325!6554&#"3bO3De6! !qcGe3JMAcC2P<<52??2a#%>lDb"+( Zj9c?E>BA229$"ZB-.@=12>J4=C##!326553#"&&55!326553#"&&5532655!5!655!3%#3Ja !pdGe3! !qcGe3JMA[Ařa=s"+( Zj9c?^f"+( Zj9c?E>BE>2BA2B:, 5A632#54&'#"&55&&5467&&546335!5!#!32655&#!'17q&@>=A(4T1VT96),UJ g>  " uuFU;IJ:Q@?W+jJ]Mv$?)8BI,.>J####"&'#"32673#"&&5467&&546335!5!!#"633663!654&#"3,b~9_:Lw,53)".dKoص RO6> #Z632#"'532654&#"#54&#"327#"&54632367&&#"3&&5467&&546335!5!#!!&/5j%-LE T  ELH7E I:`f9\4XV86(,UJu  [L ?1?NO   ON??C= #)iX?[.dJ]Mv%?)8BI ;H632#5#"&54672&&#"&&5467&&546335!5!#!6554&'"3!')[|d #" EvJlN::G)0bT?W+jJ]Lv%?)8BIO$$""+7CO##5#"'#"&'##"&&546632366326655!5!#3265654&#"3 654&#"3bb@hAY5ChhB@i==i?A!e?3X"`MDIV77+,88,87,,76,a$'9)-=77=9iFFj9r;7+'A1-J8EZF6,,88-,55,-88,,6P ###5354&#"#54632PbbgccҹaEXXE+776632#&&#"6#"&54632h?_4w-(+1_hw.O1 +7/_Z*-y&54632#6&#"mYYSXSTsgY!$('P+546632#&&#"6#"&54632m6`?:Y0x,(*2MEe5.N1+7/MG>J#&&#"3##"332#"&'#332654&#"'&&546335!5!54663632#"&5q~.(,/&!,Xv]Q-?/&"%/((FdgQI[1iP=h]-:2JT_L` v#(!!MLNNIK:hB"y$#6#"3###5354#"#54632663T6bbbgTXr~:C3ZTI(Ra&yyIAyY"(%1#&&#"3###5354#"#54632663#"&5463^~)%&-bbbgTXr~9P: ]J(4,Ja&yyIAyX(1 "[y &#6#"3###5354&#"#5463 663T6bbbgccZG;ZTI(RaEXXE+7t*5 '3#&&#"3###5354&#"#54632663#"&5463^~)%&-bbbgcc\TB ]J(4,JaEXXE+7s0>'\"y'#6&#"#.##53663=R)25/41BSI(IHZH&%!%'@8~9::N')#4&#"#.##53663#"&5463P^j.*'0 )25/41@QG& UK\M %52))@8~45:Ma0"y0)#6&#"#'.##532.##5326635Lw 3+.763641%#93+96GLJ3 HA[I&%! b:5 cO[4E0)5#4&#"#'.##532.##532663#"&5463Q]j.*(/ 3+.763641%#93+96FKH2 TE]L %54+% b:5 cLW6Fg3###53.##53#"&5463a\Afbbh(15.4166&&55&"lua=6~5&&55&&5g$6&#"3###53.##536632Ifbbh(15.41BSI(IHHR0&%!!&a=6~9::NZHg$0#4&#"3###53.##53663632#"&5^j.*'0fbbh(15.41@QG& UKM\M %52)$.a=6~45:MT0*3###53.##532.##53#"&5463"V\Ukbbl>+/963641%#93+9666&&55&0$a'b:5 cY5&&55&&5T006&#"3###53.##532.##5326632C kbbl>+/963641%#93+96GLJ3 HACL0&%!a'b:5 cO[4E[IT00<#4&#"3###53.##532.##532663632#"&5]j.*(/ kbbl>+/963641%#93+96FKH2 TEN]L %54+#a'b:5 cLW6Fr+QTz T"zHR132#"'532654&#!326553#"&&5532655!5!! ooiX  #%  nbFc2eMAc}/H:b\Ra}g")&`p9b>B@2)32#54&#!326553#"&&5532655!5!! ?sx63 nbFc2eMA"/H:vg[X.4g")&`p9b>B@2Z=632#4&#"32#"&&7332654&#"&5467&&546335!5!###Oh2/*(4Hyk>1.AcOjx3s 82mrRO2A  D1GFEn-9327#"&54675%#57&&5466323###6654&'")4*',39[?;>@5cCDe6*2a-K %)#",C) %" z]a=Zxn(`=9Z31W77S-\ɃC#(2!-,?632##"327#"&54632&&#"3&&5467&&546335!5!#!!&/5}_H !)'$5EbZQ(B>^eAnDj^86(,UJW  ~h \ EH?KgWC^/hLbMv%?)8BI#54&&#"3###53>3V7Z4OocbbbWhNZ3BZ~eaxcbbb[tN\[_QSaZG #54&#"3###53663k]wrcbbb N^^_QTa #54&#"3###53663bcbbb N` ``PVa #54!"3###53663Õcbbb  PWa* #54&#"3###53!7󚪰bbbb  daQWa(b #54&#"3###5366!e|Jbbbb  f`#J;a '54&#"3###536$!։Mbbbb  ha$I<a#54&&#"3###53>3WPbbbbr GY,$J<acD '54&&#"3###5366$3[̫Sbbbbv H[,$J=adDE#54&&#"3###5366$3z_ٸVbbbbyPk I[-$K=adE~#54&&#"3###5366$3)~cŸZbbbc|Pl J]-%J>afD#54&&#"3###5366$36f\bbbc&Pn K].%K>agD'54&$#"3###5366$!(Bkabbbc1Qp  L^/&K>ahD)'54&$#"3###5366$!QOodbbbc=Qq N_/&K?aiCb#54&$#"3###5366$!y\rhbbbcH!Qr O`/&L?ajC#54&$!"3###5366$!hvkbbbcT-Qt Pa0&L@akC#54&$! 3###5366$!tznbbbc_9Ru Qb1'L@alC #54&$! 3###5366$!~qbbbcjFRw Rc1'M@amCD'54&$! 3###5366$!ubbbcuSRy Td2'MAanC|#54&$! 3###5366$!Dxbbbc_Rz Te2'MAanB'54&$! 3###5366$!l|bbbclS{ Uf3(MAaoB#54&$! 3###5366$!bbbcwS} Vg3(MBapB'#54&$! 3###5366$!bbbcS~ Xg4(NBaqB_*#&54632#299-,99,!!5'(66('5(Cs #'!#' s K s  g3##7##7#537#53733733!#3x!!!! |Ħ,Q")0$#5&&'35.546753#&'5654&'Q9oL@j4N]Fj@iz-SZG #! ];QR m^<&TI[nQQj^6$SH" !&! G $/632#"&5%#32654#632#"&5632654&#]JJ\\JJ]t016\JJ\\JJ\0sXXQQXXQ@YED""EXXQQXXQE"#D"""#$)1!'#"&&5467&&546632#6&#"66773$7'3WAaQxAGG4cDE`0 %0#[4H;2?J5aABk" ;#2R/2T2. ?W;5&%?&3(C #' s  W/5473#lpgirndt&+^hݚh/5654'53dnrigplah#h^լ]Jh'#7'7'7'38{{{z9hwf+*jXYl+(gW;_9] ##5#5353397#om:4( &54632#a99-,99,5'(66('5 E# q-_ 632#"&5$&#"32665-,EE,1001#ƬƮemmeDY77YD05!#;&;% 6>54&#"#>32!!5IbqN&&&+EqEwyq Qhr6).94Ur6zbkW*&+632#"&'332654&##532654&#"#7qKk7B,9B9mKx0.'+=C 3?(#&%wt4Z8BSXE>_6vw,3-%0+#-$(."1~ 7533##531I&&#"6632#"&54632#32654&#(%92S2bw;qMxKg5z951,32/:%ck#(|oIn>;`93/065./6#!5!ZG6R&2546632#"&&54676&#"326532654&#G8rSSq83+6:H{KK{H:5/''/0&&0:90079.k6Y55Y66P[=Gg66gG>[-.)'-.'3-*66*,449'63265#"&&546632#"&&'36654&#"3M5,L/@d9=qMv/o`Lk9}24,,330^j"5iKJnn #!!2'32654&##654&##3$J{nR:%$$&U'%%*!6632#&&#"32673#"&&5!Zf}M1ObbO1M}fZȣ[r,.n\\n.,r[h> #!!654&##3[[nVllaQQXhgXjaalh> 3#!!!R5> !3##֫!&&#"3267#5!#"&&546632G0Sdi\?Wt[Xh[[h~#%m[am@<~@nD[hh[zl> #!#3! B!>#B#"&533265}jo$"""ox~t,-(&> !#33쫫64>73!3u>Y ###3YB[Z> !##33⫫OM!&&546632#6654&#"3'aacc_`cTeeTUeeU\gg\\gg\p\]on^]o>U ###!2654&##3U8tVjTt:001]]e>:fBX.**.!'#"&&54663232654&#"2Z(&caacc_IAeUTeeTUexy\gg\\gZ1|op\]on^>e!##!232654&##)Su:OMj////j :e>Fn.*(.*<*&&'332654&&'.54632#&&#"#zI.%&,#3/DV>rt.$&@DDU>=tO2bE')#"*RBbooc"'!"&*P?<<@PSSL\?DD?]^BA^ #3B ##33ptϲe}xfB2 !'#373~Ǎ|eY#53ˆ*&2" 7!!5!5!.,x/#3!bEh3 qZ/!53#5!Ԍ,ыM7#3#ʬ񬘥UU3!5) T>'5vei6663253#5#"&&5$&#"3265ApE;YY;DpAG33GG33GnF0'OO'0GV?JI@@KJ@>632#"&'#3&#"3265Z:EpAApE;XG43GG33H0FVVG/'NIJ@@JK@@66632#&#"3273#"&&5GRiB/88/BhRGnFnd@IDDI@bpFWi66323#5#"&&5$&#"3265ApE7[Y;EpAG33GG33GnF.'P(0GV?JI@@KJ@L6!3273#"&&546632'4&#"L};+@InDRHGSQ~G<-+;4767X2FWWFD~T-,42.V###5354632&3V\>>vr 1(\`gk",i6+53#"&'332655#"&&54663&#"3265MY=}]| <,5?X;EpAApEG33GG33G60'OM}Jud %=CO'1GVVFJI@@KJ@>i#4&#"#3663t:11:Z84o/8>>8%,.! &54632##g99-,99,Uh5'(55('5:.! &54632###532653f99-,99,Vh]C)h5'(55('5Pg[x>g !'#373g>#>4"#4&#"#4&#"#36632663n{92299229T5?cd;4~p/6;;6/6;;6.F#)62.:>i4#4&#"#3663u:11:X74o/8>>8.J%+`6&&546632#6654&#"3KLRRLMR1EC12BA1FWVFFVVFHCCHGDCH>6632#"&'#3&#"3265X;EpAApE:YG43GG33H0FVVG0&8OIJ@@JK@i4"663253##"&&5$&&#"32665EuE5TS5DtE#88$$89#iI%!@P#*HS.=>--=>->4 63#"#3Z7/@@57E.] 6*&&'332654&'.546632#&&#"#rB0# #28N;7gD2W6$C90O.hV" E:1M,u%#"&55#53533#3uW]hDDpp[gގ9e.#5#"&&533265eY6@b6:12:.L%-9lIF8>>8/ h.%3#39yƷ._. ##33_X[O^_N.j.qsH. !'#373kZkZx.#3x㿁.]. 73!5#5!O[-16654'&&54633#"33#"&5467654&'[1.  hWH'  5665  'HWh  .1'$PW#U_Na7H  G8aL_V#WP")</#3竫G-1##532654'&54675&&547654&##532g.  hWH'  5665  'HWh  .1)"PW#V_La8G  H7aN_U#WP$'a6323273#"&'&&#"#.gN 3!"6 hN 3!!6 }?jBojB_]*< #"&54633#99,-99-K<5'(66('5!*2U$673#5&&546753#&#"3]0zZ@p}}p@ZzH3::3SgQQ oo QQgS9A::A$L$%!'6655#53&546632#&&#"3#L/,mQ=nGt|()(, "T*^EsD9Dd4~e(/100%s'T<`''#"''7&547'76327654&#"3#6B@+77,@B7!"8BC-42-BB6#+* **=.6C@@C7.<>-8CCBC6.?R)((**(()33##5#53''5333 d ȫ dˆs=rr=s7i/3##3i/f -/;$#"&'33254&&'&&5467&546632#&#"&654&#"3 7hGex68??RT38G7hGex68??RT38v--&&--&#P3R.gVE1 "#Y=2O;P3R.gVE1 "#Y=1KH-!!--!!- le &54632#2&54632#4** *+** *+l*+* **+* *&:#"&&54663326654&&#3267##"&546323&&#YYggYYgYGGYYGGY?e99e@Or2%**%#qP[hh\\hh[8J\[KK[\JN7fDDf7ZJ18668LX]663253#5#"&&532654&#",L.N)'M0M,, ,, ,IR,1,*/,R7&*+%%*+%-x 7'733'73TTWWCTTWWx/#5!5D4')0#"&&54663654&#"36#'##5323254##@c77c??c88c?HVVHHVVHa3R(Ho#*u7b?>c77c>?b7XHHXXHHX RJJ& t!5pvv[ 632#"&&5$&#"3265r]]qq\=^5,,-+daaSSc-R7*..++--+<o:r3!535#53533e__uu"`a3!57654&#"#6632z8 [MHL6@d`J#% $:FB-$6\]%632#"&'332654&##53254&#"#TREU$ JXHUU"'zF;.&=.7@:8! T>57evtKv.#5#"'#33265vW99229.R)/86;;6/y!####"&&54663!y>Qk22kQo<;a::b;2  /##532654&##53NR9Gg%999;^  ,`53#5]c[6632#"&&5$&#"32653]<<]34]<<\3*)(*FQ..Q55R//R5'**('*+&2x '3#%'3#WTT8WTT'( 53#5%###5#5733'3((Ò(NN]caB>>Dل( #53##3!57654&#"#6632d<nz8 [MHL6@]c`@d`J#% $:FB-$62g%)47632#"&'332654&##53254&#"#%###5#5733'3:TREU$ JXHUU"'z(Ç(NNF;.&=.7@:8!p@~>>Dَ"O< ##"&5463&546773#"32653#}99-,99,{e">">"k>"Y" " /"A"#!#53!654&##3#3ZZo??Vll`QQXhgXlaal>"!"!"!"!"!"Ej8X %''7'77ȋoppjnon (#"&'#7&&54663273&#"$'3265*.`cU###332654&##3U8tVjlTt:001]]%d<9c@Z0**0176632#"&'332654&'&&54676654&#"#1EWKs?(# #9MC6cAcz &"1VI2*54[j;1T1-?"N<5P-c\$=-0!##62i>"i>"i"i"i"iI"6)0<!32673#"&'#5#"&&54663253632'&&#"654&#"3bC.(4 |Y<_Z9EpAArF8X=yHq?D3/D GG33GG3 78Ul/)PP(0GVVF,*NNVE~R&/742J@@JI@@K@6*$732##532654&##5&&546632#&#"3srU4NR9Gg|GRiB/88/@Ul %999;^  ztWFnd@IDDILB"LB"L"L"|$>"{$>"{<"{N"{d(#"&&546632&'57&'37654&#"3$@MRQNI~M<9i>!$_1yDF/0EF0E[gKGVVE/( C#CHDDGGDDH>i"`B"`B"`"`"~`"54 &54632#!5&54632# 99-,99,99-,99,5'(66('5:u5'(66('5 h6%#"'#7&546632737&#"6'3265CMRaI%\NCLRcI&\^ %2B #1ENsVF0(UNtVF1)GD$HC9e>"9e>"9e"9e"x>"> 32#"'#3&&#"32665"kEuDDuEh<#98##98#4ISSHX>=-->=-x"|"i""i"'7#"&5467'!#33 +03AR(*/%WVy`<93v|By'p6#/7#"&54675#"&&546632533654&#"3F*/3AS%Y;DpAApE;Y.%GG33GG3y`;7 7E'0GVVF0'OJ@@JI@@K!"@>"!",@"!"@">"8*66323#5#"&&5#5255#53&#"3265ApE7[Y;EpAGE4?G33GG33GnF.'P(0GV:FRAB{sJI@@KJ@"&##5#"&&5466325#53533654&#"3>Y;EpAApE7[FF>GG33GG3OP(0GVVF.'nRCCJ@@JI@@K>|"?L"c>"\L">"L">'7#"&5467#!!3#!3*/3AS.%y`;722L6'.!3273327#"&547&&546632'4&#"L};+@_E%"*/3AS/WgGSQ~G<-+;476Aa`;77*iWFD~T-,42.>"kL"!"i"!")i"!+&&#"3267#5!#"&&546632#5255#53G0Sdi\?Wt[Xh[[h~GE4?#%m[am@<~@nD[hh[zl:FRAB{id +75463"3#53#"&'332655#"&&54663&#"3265 GE4?/Y=}]| <,5?X;EpAApEG33GG33G:FRAB{ 0'OM}Jud %=CO'1GVVFJI@@KJ@\"i"{\|"i"{?"L"{'7#"&546733*/3AS%.%y`;7 7B'! &54632#327#"&54673g99-,99,"*/3AS%.%h5'(55('51`;7 7$>"@K.#..> !##33#5255#5쫫GE4?64r<:FRAB{>g !#'#373#5255#5gԪGE5?g=9FRAB{>"\" >73!3#5255#53uxGE4?:FRAB{>##5255#53髬GE4?:FRAB{>73!3#5255#53uGE4?<:FRAB{>##5255#53FE4?9=FRAB{>33!&54632#>u$** ** ƄA* ** +>3#&54632#>++++"* ++ *  %!5737uAASS 8 #57378BAAB[?>">i>"> !##33#5255#53⫫GE4?OM:FRAB{>i4#4&#"#3663#5255#5u:11:X7 GE4?4o/8>>8.J%+<:FRAB{>">i"!|"`"z!"`"!"`."!%3#!!5"&&5466325!!32654&#"QIa\\`>h&eUTeeTUeHO\hh\((Fpp]]nn]6$+7!3273#"&'#"&&5466326632'&&#"654&#"3}8,AIoDe">>"|>e#!###!2'32654&###5255#5e)Su:OMj////jGE4? :e>Fnl.*(.<:FRAB{>4 63#"#3#5255#5Z7/@@FE4?57E.]9=FRAB{>e">"^*<" B"*<:$2##532654&##5&&'332654&&'.54632#&&#"rt.$&@DDU>v(999;^  } o[')#"*RBbooc"'!"&*P? 6:##532654&##5&&'332654&'.546632#&&#"NR9G[q0# #28N;[P)999;^  y gI$C90O.hV" E:@Y %*<" "x7!2##532654&##5##5!#_4NR9G&)999;^  ~5%##532654&##5&55#53533#33##DNR9GPDDpp=W%999;^  -|ގ%7"H #5255#5333#"&55#53533# GE4?=W]hDDpp(1>FA${_[gގ;"9e";|"9e";"9e";"9eI";"9e*";)$327#"&5467&&533265u_.%"*/3AS Zj><<@]r`;73p\?DD?9%l.'7#"&54675#"&&5332653#3B*/3AS%Y6@b6:12:.%{`;7 7D%-9lIF8>>8/"g_" "x""2"">"u2"""2"""W- #"&&547!&&#"#>367!3WVggV^E5O]SA_\FZllZSk*KV0*Hn>I@=L^3###7327#737663(%PQ5 s`!556 }~ eS'jb"}>"8*<*6&&'332654&&'.54632#&&#"##5255#53zI.%&,#3/DV>rt.$&@DDU>=tO[GE4?2bE')#"*RBbooc"'!"&*P?N;7gDHGE4?2W6$C90O.hV" E:1M,\:FRAB{7###5#5255#537cGE5?59FRAB{u%#"&55#53533#3#5255#5uW]hDDpp)GE4?[gގ<:FRAB{L6#"&&547!&&#"#>367#3HGSQ~G;+@InD-;<-6FWWFD~T4767X2K2.,41 T@57RvOOv T@'57@OOvWW t W_#"&55332653_^MM]U&//&VZ[R!""! l &54632#4** *+l*+* * WI #"&54632&&#"3265G44FF44GKBB77BB7'M3327#"&54677.%"*/3ASH[(`;7/N&]323273#"&'&&#"#r! %Xr! %W - - Y*#73#73siKXiZY. #####5FF.TT"y_>""_>"I"U_">"CL"g"x>""x"oFq!5qF\!5\& #3կps 13#eps73#Mps&#3#3կpspr  13#3#epsps 73#3#Npspr 2\ '#5'37\ = 2\7'#755'37 g d6&&546632#E((E)*E((E*(E)*E((E*)E((##} %1;E632#"&5%#32654&#632#"&5$632#"&5&32654&# 32654&#]JJ\\JJ]0]JJ\\JJ]m]JJ\\JJ]0=0rXXPPXXP@[CC!""!XXPPXXPPXXPPXXPCCC!""!CC!""!-x7'73TTWWx2x$'3#WTT' 0#0@-$673#"&'#53&547#536632#&&#"3#3#3L}|!N??O!{}L10LéM1.+roY  Znr+-*'Z  Y), #"'557557537732665Lg~~!-UZ Ȥaj9gâj:juN`!3##5#535#53!2#'32654&##^^^^Su:8tVjc-..-ccF!##7#%#'#'#37 S|S+qRSRmGRcc_#$3!5654&#"!53&546632e`edUUdeaf_dd_RTammaTSgTTg##"&&546632!3267&#"!(dZPjiPFXFv6;7\Z;(Qkkc\W?386D+2"E#6632&#"5632#"&&5$&#"3265"I}KD*{ "<8N]Bj>l*#4>+#3>SO+}Wc9sTu4^J87eL!5!IfW‚>| #####5FF>>( !!!57'5!08>ǹ4!5H E2 #'7SR0O 0P%1#"&'#"&54663266367&&#"3 654&#"3b0Q1;Y(X4Tb0Q1=V%Y61+ f 5.[Q5N*.('/[Q5N*1+*2!"V633#"##7327ss_W s_W[S'eS'HzaM&D1t3#!!#7#537!5!73)KQ|L`LLPK_)hbbha3; #'73!! orH3; 77'3!!3rɹFZ!g 7'!____a``_W!!####5354632&6&54632#L>>sn -$88--98..`gk",+2''33''2Q"h\##5 ֮P{ 6#52655#53LNK9DKZC"(7#5ٱBB#5#5󱱱BlJP8#5#52655#53MNK8BKZC"#532654&#"#&663#5w{e32#5&6655#"3rf:3S0xw}/)%0 HqFKvB\8#j*)$ '2)J1Ma.5&!=`7:mHN(3!!4>#4#4#4#4>#4#';7-97#"&54675#"&&54633&&#"#>323#"32665*/3AS$f:3S0xw}/)%0 HqFKvB.%hj*)$ 8#y`;7 6E'2)J1Ma.5&!=`7:mHe!3!4I#4#&2!'#"&&5467&&546632#6'&&#"$654&#"3=a %.#"--"#.)!6654&#"#>32!!5K9%%$*DqFPl4DXh /JV+$'74Tq68`;DvVg|--#"&'332654&##57#5!f>sLs..)1;3co\Dg9vw,32+08o,2#"&&54677363654&#"3b8CuIMvB&+55..77.6hFIp=@qI7o>7/.77./7'##"&&5466332654&#"nwB&+?d8DvIc5..66..5@qI9n?7gGJq=88//88/# td&&&&mKs9jmy6V8Ou;2a  S , U | 6 n  Z ? u ^1=IUamy#Cv[?KO7i ]$Lr ?rb}U < H}?m] H   J !D!""g""#9###$1$=$l$$%*%d%p%|%%%%&(&4&u&&''J'''((=(w((()@))*2*n*+A+,s,-5--.C./1/0001]12223934.4556677y88q89U9:u:;<<<=*=6=>>%>>? ???@@V@@AA_ABJVbnz+wDL\mu#:FR^jv 2F`%5E=l !l1=Rht-BWz $0:m_<ؤ6 TG<<BB5U <<K<<???)33'@g?Ti@/8\eC67d?7U7KXC<I]:K.\6"8&16H7c?a7g)CI/:!"&i0U9-x;%]*1T}>6g40DBXi>V&2a.8\C6|7c?cU7K]I.\,"8&16H7c?a7g I "&{{j7;@m~44rrsf GQ!:@::::wM [WW55#OhUC+DF,^AAjX*Ik}""UuIym"BKM*m~C CNNRrW<l1&777<nncc????P?J+pa`X'=P `#C ;LdWSXHWYFt1V77777zMih jQK0N+:Hd ?6s#jCCJzCCC?rCCCJqCBBHm"Xbs!i=U9 7?*B??????'''?g?g?g?T?T?Tr?8IIY]????????????????????????_(,f$(WJt;D4( -x;%]*1T}>6g4([2'9D?8I>!>>#>!>'>B>>>>!p>!>g*O; T2x"Z U# >]hh>'.&j>'>#>>}>>. 9r bLx[#<G|_w*$A<}iKo  &--/D4' u<"v K+29 -2(5({2"!>>>>''''>!!!!!}E;;;;p>1-]hhhhA$A$AA>}}}}}c5u 9999x>x!]!]!]>B>h>h>h>h>h!!!'A'A'A'''>AK>j>>'>'> >>>}> A >> >>>>!}!}!}'!>>>>>>g*. g*. g*. OO;9;9;9;9;9;9bxT2T2T2 -P.*. Oh:1J J  h   bbb>hxxFF:&:1$&122d(Q-Q2: B '>s##g"(4 +2 $|D335r\(3BHJr\4#c5((((/rrrrrrrrrrH)e-R,d  "iXKX^2NITFOdos .  ~#17H[e~Y    ( 0 3 9 E I M P ^ e o p r    " & 0 : D !!"!&!.""""""""+"H"`"e%% ! (69L^hY      * 1 5 < G K P X ` f p r    & 0 9 D !!"!&!.""""""""+"H"`"d%%sRPNJFEB@>.,l  9QA28 lnpnplzy{ O?E~|"# !}     6     &( \N : " 6 < @ * *H ,rCopyright 2020 The Poppins Project Authors (https://github.com/itfoundry/Poppins)PoppinsBoldITFO; Poppins Bold; 4.004b8Poppins Bold4.004Poppins-BoldIndian Type FoundryNinad Kale (Devanagari), Jonny Pinhorn (Latin)https://indiantypefoundry.comThis Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://scripts.sil.org/OFLhttps://scripts.sil.org/OFL 8 - @ . ( A 7 M / K   K  L 0 5  0  ' ?  > 0 K   G . > . 2 G . G   ( M .  > $ 8 M 5 $ ( M $ M 0 $ >  0 8 . > ( $ > * M 0 > * M $ 9 H dSquare dots in punctuation marksDouble-storey aAlternative ampersandAlternative 2, 3, 6, 92#      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjikmlnoqprsutvwxzy{}|~      !"#$%&'()*+,NULLCRdvAdvAAdvIdvIIdvUdvUUdvvRdvvRRdvvLdvvLLdvEdvAIdvOdvAU dvEcandra dvAcandra dvOcandradvmAAdvmIdvmIIdvmUdvmUUdvmvRdvmvRRdvmvLdvmvLLdvmEdvmAIdvmOdvmAU dvmEcandra dvmOcandradvKAdvKHAdvGAdvGHAdvNGAdvCAdvCHAdvJAdvJHAdvNYAdvTTAdvTTHAdvDDAdvDDHAdvNNAdvTAdvTHAdvDAdvDHAdvNAdvPAdvPHAdvBAdvBHAdvMAdvYAdvRAdvLAdvVAdvSHAdvSSAdvSAdvHAdvLLAdvK_SSAdvJ_NYAdvKxAdvKHxAdvGxAdvJxAdvDDxAdvDDHxAdvPHxAdvRxAdvKdvKHdvGdvGHdvNGdvCdvCHdvJdvJHdvNYdvTTdvTTHdvDDdvDDHdvNNdvTdvTHdvDdvDHdvNdvPdvPHdvBdvBHdvMdvYdvRdvLdvVdvSHdvSSdvSdvHdvLLdvK_SSdvJ_NYdvKxdvKHxdvGxdvJxdvPHx dvAnusvara dvCandrabindu dvVisarga dvAvagrahadvViramadvNuktadvZerodvOnedvTwodvThreedvFourdvFivedvSixdvSevendvEightdvNinedvOmdvAbbreviationsigndanda doubledandarupee indianrupeezerowidthnonjoinerzerowidthjoiner dottedcircledvReph dvEyelash dvRashtrasigndvK_RAdvKH_RAdvG_RAdvGH_RAdvNG_RAdvC_RAdvCH_RAdvJ_RAdvJH_RAdvNY_RAdvTT_RAdvTTH_RAdvDD_RAdvDDH_RAdvNN_RAdvT_RAdvTH_RAdvD_RAdvDH_RAdvN_RAdvP_RAdvPH_RAdvB_RAdvBH_RAdvM_RAdvY_RAdvL_RAdvV_RAdvSH_RAdvSS_RAdvS_RAdvH_RAdvLL_RAdvKx_RAdvKHx_RAdvGx_RAdvJx_RAdvPHx_RAdvK_RdvKH_RdvG_RdvGH_RdvNG_RdvC_RdvCH_RdvJ_RdvJH_RdvNY_RdvTT_RdvTTH_RdvDD_RdvDDH_RdvNN_RdvT_RdvTH_RdvD_RdvDH_RdvN_RdvP_RdvPH_RdvB_RdvBH_RdvM_RdvY_RdvL_RdvV_RdvSH_RdvSS_RdvS_RdvH_RdvLL_RdvKx_RdvKHx_RdvGx_RdvJx_RdvPHx_RdvK_KAdvKx_KxAdvK_KHAdvK_CAdvK_JAdvK_TTAdvK_NNAdvK_TAdvKx_TAdvK_T_YAdvK_T_RAdvK_T_VAdvK_THAdvK_DAdvK_NAdvK_PAdvK_P_RAdvK_PHAdvKx_PHA dvKx_PHxAdvKx_BAdvK_MAdvKx_MAdvK_YAdvK_LAdvK_VAdvK_V_YAdvK_SHA dvK_SS_MA dvK_SS_M_YA dvK_SS_YA dvK_SS_VAdvK_SA dvK_S_TTA dvK_S_DDAdvK_S_TA dvK_S_P_RA dvK_S_P_LAdvKH_KHAdvKH_TAdvKHx_TAdvKH_NAdvKH_MAdvKHx_MAdvKH_YAdvKHx_YAdvKH_VAdvKHx_VAdvKH_SHA dvKHx_SHAdvKHx_SAdvG_GAdvG_GHAdvG_JAdvG_NNAdvG_DAdvG_DHA dvG_DH_YA dvG_DH_VAdvG_NAdvG_N_YAdvG_BAdvG_BHA dvG_BH_YAdvG_MAdvG_YAdvG_R_YAdvG_LAdvG_VAdvG_SAdvGH_NAdvGH_MAdvGH_YAdvC_CAdvC_CHA dvC_CH_VAdvC_NAdvC_MAdvC_YAdvCH_YA dvCH_R_YAdvJ_KAdvJ_JAdvJx_JxA dvJ_J_NYAdvJ_J_YAdvJ_J_VAdvJ_JHA dvJ_NY_YAdvJ_TTAdvJ_DDAdvJ_TAdvJ_DAdvJ_NAdvJ_BAdvJ_MAdvJ_YAdvJx_YAdvJ_VAdvJH_NAdvJH_MAdvJH_YAdvNY_CAdvNY_CHAdvNY_JAdvNY_SHAdvTT_TTA dvTT_TTHAdvTT_YAdvTT_VA dvTTH_TTHAdvTTH_YAdvTTH_VAdvDD_DDA dvDD_DDHAdvDD_YAdvDD_VA dvDDH_DDHAdvDDH_YAdvDDH_VAdvNN_TTA dvNN_TTHAdvNN_DDA dvNN_DDHAdvNN_NNAdvNN_MAdvNN_YAdvNN_VAdvT_KAdvT_K_YAdvT_K_RAdvT_K_VA dvT_K_SSAdvT_KHA dvT_KH_RAdvT_TAdvT_T_YAdvT_T_VAdvT_THAdvT_NAdvT_N_YAdvT_PAdvT_P_RAdvT_P_LAdvT_PHAdvT_MAdvT_M_YAdvT_YAdvT_R_YAdvT_LAdvT_VAdvT_SAdvT_S_NAdvT_S_YAdvT_S_VAdvTH_NAdvTH_YAdvTH_VAdvD_GAdvD_G_RAdvD_GHAdvD_DAdvD_DHAdvD_NAdvD_BAdvD_B_RAdvD_BHAdvD_MAdvD_YAdvD_VAdvDH_NA dvDH_N_YAdvDH_MAdvDH_YAdvDH_VAdvN_KAdvN_K_SAdvN_CAdvN_CHAdvN_TTAdvN_DDAdvN_TAdvN_T_YAdvN_T_RAdvN_T_SAdvN_THA dvN_TH_YA dvN_TH_VAdvN_DAdvN_D_RAdvN_D_VAdvN_DHA dvN_DH_YA dvN_DH_RA dvN_DH_VAdvN_NAdvN_N_YAdvN_PAdvN_P_RAdvN_PHA dvN_PH_RAdvN_BHA dvN_BH_YA dvN_BH_VAdvN_MAdvN_M_YAdvN_YAdvN_VAdvN_SA dvN_S_TTA dvN_S_M_YAdvN_S_YAdvN_HAdvP_TTAdvP_TTHAdvP_TAdvP_T_YAdvP_NAdvP_PAdvP_PHAdvP_MAdvP_YAdvP_LAdvP_VAdvP_SAdvPH_JA dvPHx_JxAdvPH_TTAdvPH_TAdvPHx_TAdvPH_NAdvPH_PAdvPH_PHA dvPHx_PHxAdvPH_YAdvPH_LAdvPH_SHAdvPHx_SAdvB_JAdvB_JxAdvB_J_YAdvB_JHAdvB_TAdvB_DAdvB_DHA dvB_DH_VAdvB_NAdvB_BAdvB_BHA dvB_BH_RAdvB_YAdvB_LAdvB_L_YAdvB_VAdvB_SHAdvB_SAdvBH_NAdvBH_YA dvBH_R_YAdvBH_LAdvBH_VAdvM_TAdvM_DAdvM_NAdvM_PAdvM_P_RAdvM_BAdvM_B_YAdvM_B_RAdvM_BHA dvM_BH_YA dvM_BH_RA dvM_BH_VAdvM_MAdvM_YAdvM_LAdvM_VAdvM_SHAdvM_SAdvM_HAdvY_NAdvY_YA dvEyelash_YA dvEyelash_HAdvL_KAdvL_K_YAdvL_KHAdvL_GAdvL_JAdvL_JxAdvL_TTAdvL_TTHAdvL_DDAdvL_DDHAdvL_TAdvL_THA dvL_TH_YAdvL_DAdvL_D_RAdvL_PAdvL_PHAdvL_BAdvL_BHAdvL_MAdvL_YAdvL_LAdvL_L_YAdvL_VA dvL_V_DDAdvL_SAdvL_HAdvV_NAdvV_YAdvV_LAdvV_VAdvV_HAdvSH_KAdvSH_KxAdvSH_CAdvSH_CHAdvSH_TTAdvSH_TAdvSH_NAdvSH_MAdvSH_YAdvSH_LAdvSH_VAdvSH_SHAdvSS_KA dvSS_K_RAdvSS_TTA dvSS_TT_YA dvSS_TT_RA dvSS_TT_VA dvSS_TTHA dvSS_TTH_YA dvSS_TTH_RAdvSS_NNA dvSS_NN_YAdvSS_PA dvSS_P_RAdvSS_PHAdvSS_MA dvSS_M_YAdvSS_YAdvSS_VAdvSS_SSAdvS_KAdvS_K_RAdvS_K_VAdvS_KHAdvS_JAdvS_TTAdvS_TAdvS_T_YAdvS_T_RAdvS_T_VAdvS_THA dvS_TH_YAdvS_DAdvS_NAdvS_PAdvS_P_RAdvS_PHAdvS_BAdvS_MAdvS_M_YAdvS_YAdvS_LAdvS_VAdvS_SAdvH_NNAdvH_NAdvH_MAdvH_YAdvH_LAdvH_VAdvLL_YA dvmII.aLongdvReph_AnusvaradvAnusvara.amI dvReph.amIdvReph_Anusvara.amI dvII_AnusvaradvmII_Anusvara dvmII_RephdvmII_Reph_AnusvaradvmII_Anusvara.aLongdvmII_Reph.aLongdvmII_Reph_Anusvara.aLong dvmE_Anusvara dvmE_RephdvmE_Reph_AnusvaradvmAI_Anusvara dvmAI_RephdvmAI_Reph_Anusvara dvmO_Anusvara dvmO_RephdvmO_Reph_AnusvaradvmAU_Anusvara dvmAU_RephdvmAU_Reph_AnusvaradvmEcandra_AnusvaradvmOcandra_AnusvaradvRA_mUdvRA_mUUdvHA_mUdvHA_mUUdvDA_mvR dvSHA_mvRdvHA_mvRdvmI.a01dvmI.a02dvmI.a03dvmI.a04dvmI.a05dvmI.a06dvmI.a07dvmI.a08dvmI.a09dvmI.a10dvmI.a11dvmI.a12dvmI.a13dvmI.a14dvmI.a15dvmI.a16dvmI.a17dvmI.a18dvmI.a19dvmI.a20dvmI.a21dvmI.a22dvmI.a23dvmI.a24uni00A0uni00ADuni00B5AmacronamacronAbreveabreveAogonekaogonek Cdotaccent cdotaccentDcarondcaronDcroatEmacronemacronEbreveebreve Edotaccent edotaccentEogonekeogonekEcaronecaron Gdotaccent gdotaccentuni0122uni0123ItildeitildeImacronimacronuni012Cuni012DIogonekiogonekuni0136uni0137Lacutelacuteuni013Buni013CLcaronlcaronLdotldotNacutenacuteuni0145uni0146NcaronncaronOmacronomacronuni014Euni014F Ohungarumlaut ohungarumlautRacuteracuteuni0156uni0157RcaronrcaronSacutesacuteuni015Euni015Funi0162uni0163TcarontcaronUtildeutildeUmacronumacronUbreveubreveUringuring Uhungarumlaut uhungarumlautUogonekuogonek Wcircumflex wcircumflex Ycircumflex ycircumflexZacutezacute Zdotaccent zdotaccentuni018Funi01FCuni01FDuni0218uni0219uni021Auni021Buni0259uni02BCuni02C9WgravewgraveWacutewacute Wdieresis wdieresisuni1EBCuni1EBDYgraveygraveuni1EF8uni1EF9Eurouni20BAuni20BDuni2113uni2126 estimateduni2206uni2215uni2219 exclam.ss01 comma.ss01 period.ss01 colon.ss01semicolon.ss01 question.ss01exclamdown.ss01periodcentered.ss01questiondown.ss01 divide.ss01quoteleft.ss01quoteright.ss01quotedblleft.ss01quotedblright.ss01 ellipsis.ss01a.ss02 aacute.ss02 abreve.ss02acircumflex.ss02adieresis.ss02 agrave.ss02 amacron.ss02 aogonek.ss02 aring.ss02 atilde.ss02ampersand.ss03two.ss04 three.ss04six.ss04 nine.ss04 ""yz}}\_glss H~DFLTdev2"deva0abvm&abvm&abvm&blwm.blwm.blwm.    ,"yz\ghijkls $(*./0159>?DEHLMNOTZ[\]ajp$+,2:;=HKLNOQRSUVXYZ[\acpqv    !&)*+-./16<=AHLQTXYuvwxy{@FFFFF:@@@FFFFflrxx~~t t t t \ &,28>>DJPV\bhntz  F. "((.4:@FLRX^djpvv|  hum6C@b,6I0 97WDdrAk(]Wbg<Nla8^ 8L]^_$O,RwZ#           #\=vx?z#A[ 0 &,28>"DJPV\bhntz":@FRX^^ "(.,4:$$*@06<FLRTXZ``^djp~v|, >PV$*bh06z<B46ZC6-V_Z-9${Zb`Kafh]#"4F}d4v450Sl[4_4WZ/&&_""W< 4@}$(*./0159?DEHLMN$+,2:;=HKLNOQRSUVXYZ[\acpqv    !&')*+-./16<=AHLQTWXYb &,28>DJPbV\bhntz "(.4:@FLRX^djpv|r $*06<BHNTTZ`flrx~~56$CYqWV@3bN891] R# 9w"7t 8sW;i+%I_PRW$<)N.d 2DFLTdev2HR\H~I~J~K~L~M~N~O~$%&+019>" F}BG}-$+""}&R^jv*6BNZfr~}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>$=?EHK!NN%}> N}*Zdnx&0:DNX",6@JlT^hr|P}Q}R}S}U}V}W}X}Y}^}_}`}b}c}d}e}f}g}h}i}k}l}m}n}o}q}r}s}t}u}v}w}x}$KNO(&R\fpz$.8BLV`jt~}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}L  *4>HR\fpz$.8BLV`jt~ (2<FPZdnx$=?EHK!NN%Pi&kq@txG +\P$>r|6XrR~4~8 X  ( 2 d  :DLT\dlt|od?_=_@l=o.o0o3o$%)+.2345789<=?@AC"(.4%3 7 < =@A&.6>FLRX^djpv|b=b@c= g=&'+2567:;!<"=$?%@&C'7(<)="(.,V@*)+*-7.</=0= (06<BHNTZ`flrx6W=7W@2$3+8,:.;0<3=5>7?:@<A=C@5GD7E<F= G)H*I+JA K.L/M=N@O/P=Q@ R0S1T=U@V1W=X@$*06<Y.Z/[0\1]2^<_=`@6>FNV^fnv~bP=dP@i_=j_@mc=pd?sh=yo7zo={o@a$f%h3k4l7n8q9r<t=v?w@xCeFcgo|7}=~@  &,28>DJPV\&'567:;<=@  &c=7<=@&NX`hpx "(.4:@FLoh=PC_=_C`=`@a@b=b@c=g=g@h=o.o=$)*.03456789;<=@CD "(.4:@FLRX^_=./3789<=?@C  &,28>D+.3789=?A&.6>DJPV\bhntzW=b@k=+,3567:;=?@ACK 7=?@(08@FLRX^djpv|f=g=g@3578:;<=?@ACD 7=8@HPX^djpv|P= `=k=l0$%&+./0134 5 8 9:;<=?@CDK  $7=?@D  &,28>DJPV\$) *!."3#7$<%=&?'@(AH(08@HPV\bhntz,Z=.Z@0[=3^=8h=)$+.//2248697<9=:@;B*-152:BJRZ`flrx~>P@C_=E_@G`=Oh=<$?%@+A.B3F4H5I7J8L9M:N<P=Q?R@SC=DK &,T2U7V<W=X?Y@Z= h=<=@9= &,39:<HN &, 3 <=@AC B=4K 3CKN  =D=D#=1=u== PSUikuwx$&'()*6|:<~Z$p(T N(./0>DLOKLNOQRSUVX 15M $'89:@BHNXY )*36=T r &4Jh J+,-7;<?ACEFGK'  2/1W   %I+-. ! acnoq)*6 ";Zw45:;A H#*:=Y[jt!9H $/%)+,2T\ikluv~<=DJKLMR%)"#'(/<?CGH`erx}  "27BP*&"$&-.9ABFMPW_|   %FU'- !01Dfg#&@INQSV`( 3458>@EIJ^$() ]?Z*   p+ {E~,mC\- sz,0380.  dyG/ 7bO0 6 >&>V0123,Z   ">Zv`ycyaybiygyhlyjykoymynrypyqsyty\y  !"#*43$O,ZR|y\N*4y uvzwx{5>ADZ3"$9HN2acq )*6<=Labc$.8BLV`jt~T}Z}[}\}]}a}j}p}}}}}}}}(./015>D$      I  234567SUW !"}:f,ghijklmnopqrsvthuZvLw>x0y"z{|  >>[ ]^_def>y\abcriseup-vpn-0.24.5+ds1/gui/resources/fonts/Poppins-Light.ttf000066400000000000000000004701501461742244100235540ustar00rootroot00000000000000 PGDEF  5@GPOST<68GSUBAXvI&rOS/2وv `cmap5 ; glyfBnkbhead$Y6hhea L h$hmtxGKloca{Q.`Hmaxp1@ name݄ post:h`" !!!7'' ȪDMU:##'#"&&5332654&'#'&##5326654&#"#466323U?n[?d8=VDCO)I%%.@O:>R<5\;Vm@>6RX.8Vi3[;@RN@3)5#8####'#"&&5332654&'#'&##5326654&#"#466323!t??n[?d8=VDCO)I%%.@O:>R<5\;Vm@>RRX.8Vi3[;@RN@3)5#8?,: 6+<:1pAR1ZW#I`k][m^LTf8lh{[?9V 669V#"33#"3267#"&54675&&54633654&#"#54&#"327#"&5463236675!5!KV'+8:/+.-:=06:F\2&(0R:HBGJ7FDFLYS pyo]IU  I@ y]8,&+('1&,)' 2 ??,9 6+<9#I`k][m^LTf8lh{[?9V 66!32655!32653#"&5#5!##"'5t<6XVNV?wkwwwLX EK|c^i[Slyw66}hb:-32655!32653#"&5#5!.##5323##"'5t<6XVNV?wkww 6F@8&%FRZA{wLX EK|c^i[Slyw6VK5bn6}hb:MtJ####'#"&&5332654&'#'&##5326654&#"#466323!.##532t??n[?d8=VDCO)I%%.@O:>R<5\;Vm@>6F@8&%FRZA6RRX.8Vi3[;@RN@3)5#8R<5\;Vm@>!;G?;('9?E22G?5)(GNYG6RRX.8Vi3[;@RN@3)5#8U[\R6R6+AUUA;9]qp^)]#"&7332654&##532gZc~9\K?K4-HQWfeLL;6):3UA\#"&54632#54&#"327 EYeSp~5eQ=H=/ OFHU| #ds;2-61#"&54632#"327I,Mj`U:AH9$#QRH\-B2:7 3J%#"&54675&&54633#"33#"3267=:E\2&(0S:8$+9;.,--;=06T ??,9  5,<9''*((0',)' 2b4<7#"&5467654&#"#54&#"327#"&5463236632#"3:M;01014,2/25?: QXPC6<  ?9@M .24&_+=9/@5CM@ @MC6:G-`NLY@..@ZK$$-#'(bO67#"&54675&&54633654&#"#54&#"327#"&5463236632#"33#"3t& *3B$!;*1014,2/25?: QXPC6<  ?9@M ')! +,!(-/ )( ,+5CM@ @MC6:G-`NLY@..@ZK$$(6 .##5327GA8&%GRZBXM5dp1 #.##532.##53NZH7=H@;('9?E22G?5)( z3* + %+[R,U<###53.##532b78c>F\$dL%$L9.M-_I4@9fCGi74^R4N*5S-3@9iGDg8>3664Q),P3*O4R_0?##5#"'#"&5532655!567&&5466325!##3$6654&&#"3?P:rPn&BOU184[8:P_bQ`SBB C2)F)WA6R*3BS~oDX6R=1`B<[23*j[yO_-F&'F-$E.IS####"&54733265!5?KOLO>+01*6RI]ZH ,=>.6(##5#"&54675&&55#5!!33#"32665AvMf|Q;7CGN16QP`N;a8R;Z33+J/JT3U3U6L9#"&54675&&55#5!!!33#"326654&&#"#&5467jBT^mR@6CiwFLVUv[P#8 .F6P> jZaLqjGV KGr66pAA5M=RW@wQ3G#>@-324LS`####"&55332655!5!5!`@dVVa@@88CO}RpXllX>MM>6i&2##'#"&'#5332654&##&&546335!5!##"33i??ZUMW=9 VJABPJ3I`iNQͯ:OD6,R*TBU> 7I>/8@EEJB6\n)50,@&####"&'332654&&#"#66323!5!@?q6bC]p = OAPV&K5CO = n_bt ro]R5;_8bF/BgM0Q1D.GbsXB61 326653#"&&5466335!5!## 4\9;[3=AvNLyEJU X[id8Y24\;LvA?rITv;~664&#"&&546675!5!&&#"32665qBk=EyKKxE=iBߦ4\:9[44[9:\4AmEIr??rIEm@66Y22Y98Z22Z8]*332#"&&'332654&##"&546335!5!##NC4-VvkdJm9?[UHLXC*JegM}Vz)40-OXJ\1W9?PA3A7DIIB66 /32654&#"#&54632#"&&5466335!5!##;kEMd?1*;1WBJ[9kFTMMV-DYvqAf9Q@2@6, ?KZH9X1D}RZ|=|66j####"&5#5!#3265j?`WU`{"A78@RWklV*66;KJ<###"33#"&546335!5!ύ?hwibxRba]f4x}|6U0##5#"&54732654&#"#&54632#"'32665@wY~e[yA7:C:fR6R,q/oj=e;6R8P}BT5GF;Rc/R3dact3_@t~!326653#5#"&&5466335!5!##u^O&G/;?[9Ae8GxKR=^VO^ C1'06gELj4v66V2##5#"&54675&&54632#74&#"33#"326653?xO^yJ27K]JKW2:34=UK86HK\HGZR>M REG[VF.>A1=F5?5=?6`>s*%####"&&54663!5!5!654&#"3*@$1W69Z35\;OGMM;>NM?RH.6R-/U7:U.6K::LK<;I###"&55#5!!3265?X=hlvQRJTR--1r66[c^F*36632#"'532654&&#"##"&55#5!!!3265]E;`76`<$FY+J-8L#?S9chvLMEP4@8fCHi73_R4N*6U0,,1q66Yb]E )##5#"&&5466325!56654&&#327Ό>fHCoA?nCIg6!,W>5Z6Q4'6R3@:lGGm;B460>0X8V-24FR)&1####"&5463354&#"#&546323#"3265)@YROagRf24-8@XKTPd9FA25;6RUbh^LO[dCK=6M\na[!?64?LD #####"&546335!5!#3#"3265 @ZSO`gRg=f8FA25<RUbh^LO[665?64?LD"##5#"&54732655!5!#32665@qQ|[ajdpd:`8R4BK[K66Uc] gw1Y:5326553#"&5532655!5!##@@;E>eX]ckW[nRqn]GVOB\mvaYXk66kpvO:#"'532654&#"#54&#"327#"&&5463236675!5!IT5iK  SZICGJ7FDFLZR Ki5o]JTJCwZFn?9fSJ`k] \l^LSf9?nFg{Y@;U66'##5#"&&5466325!566554&&#"3?eHCh;gYckWoK@>K?n\\ok8@HxIXQC ^lweSOEOOC[nnbfo6R###"&55#5!!5673?X?invHhORSR+.2t66;0 [eN%##!326553#"&5532655!5!#!N@A@fX^cbV\wk($"RkGVPA Zkvb_Rb66b;Xg2632#&&#"32673#"&&5467&&546335!5!##C-& _m > QANWWN?Q >8\>Ig4;6'2ZIJ+.#0 ]B+@^FG]@**I-:c>@d=.??66j #0>#"&'##"&&54663236675!5!654&#"3$&&#"32665Qe:f?NnnM@f::f?Nh]F3)o\[KJ^,L05+L0K\[K0L,yZAe9S@@S9eADg9P@;N66]JL`_M1L*N+`LJ]*L1L.0<##!32653#5#"&54667&&54663236654&#".=4=)C9;E7; I;L^3I>F[2V42S1)&;\H-1K66K6R (<*4DK85\G6L/ ZH6N)'L31G1J@.6B>:9#####"&'#332654&##5!5!59?3;0U7?^><^@CNgQzv6RX>7U/7(DKRAKU56"$~-M"%~"&~O`"+~NA]"0~["1~"9~o5">~'76632#4&&#"#5#"&&5466325!5!66554&&#"3[D<_7@+K-7J#=`E>b78c>F\L%$L9.M-_I4@9gC4N*5S-3@9iGDg8>3664Q),P3*O4R_3+73267&&54632#"'#"&5532655!5!!#32654&#"`S>T27t``u6a>sPn&BOPbQ(UFGUUGFU]yO_?1^?^mm^?\1BT~oDX66j[HTTFFTTF##"&54733265!5!KOLO>+01*I]ZH ,=>.6mQ%33#"326653#"&54675&&55#5!GN16QP`N@-324VS/^CaLqjGV KGr66!5##"&55332655!0dVVa@@88C/66pXllX>MM>.33!'#"&'#5332654&##&&546335!5!##OD6,k?ZUMW=9 VJABPJ3I`iNQٯ)50,1*TBU> 7I>/8@EEJB66c"!53##"&'332654&&#"#663Nt 6bC]p = OAPV&K5CO = n_66sX7;_8bF/BgM0Q1D.Gb".}"/}]"0}"1}L ##"&5#5!#3265L`WU`{iA78@WklV*66;KJ<5!#"33#"&54633;hwibx66ba]f4x}|Ug+#"&54732654&#"#&54632#"'32665G~Pe[yA7:C:fR6R,q/oj@d9]Ip=~BT5GF;Rc/R3dact/V:"5}|VgO-#"&54675&&54632#74&#"33#"326653OC{Sd~J27K]JKW2:34=UK86HK_G@`48 h:YS>M REG[VF.>A1=F5?5>>,P3!!5663!!#"&&5654&#"3S_5\;$1W69Z3MM;>NM?66U.6H.6R-/U7K::LK<;I32653#"&55#5!QRJT64bClrv-Zd^F?c9r66&6632#4&#"##"&55#5!!!3265]EcoATN8L#?S9chv7LMEP4@ziQ[6U0,,1q66Yb]Ec9'!5#"&&54663654&&#"$3279o6:oKGrA@pH,X>&E!6Y5R4'66Fm;AnA;lGGm<>0Y89U.24FRor +##"&5463354&#"#&546323#"3265rYROagRf24-8@XKTPd9FA25;Ubh^LO[dCK=6M\na[5?64?LDon3##"&546335!5!#"3265ZSO`gRgf8FA25<5Ubh^LO[66?64?LDwg#"&54732655!5!!326653gC{O[ajdsc9`7:&p?K[K66Uc] hv0V75">}O;-5!66324&#"#54&#"327#"&&54632XVO;X0@ICGJ7FDFLZR Ki5o]JT66AX9fCJ`k] \l^LSf9?nFg{Y@h5#5!#"&&546632326654&&#"R6oPHp>?pGQo5S0T5gYckWoK@>K?n\\okhFF=G^lweSOEOOC[nnbfoxIXQC !#"&55#5!673z3bAosv.R SS(N3t6?)\dy!!!326553#"&5532655!5!#($A@fX^cbV\wX4GVPA Zkvb_Rb66bg"D}j !.<5!#"&&54663236632#"&'#$32654&#"326654&&#")nM@f::f?NhhO?f::f?Nn,L0J\[KJ^[K0L,+L0K\66S9eADg9P@?Q9gDAe9S@L*]JL`_MJ]*L13N+`LLw*632653#5#"&54667&&5466323!&6654&#"54=)C9;E7; I;L^3I>F[2V42S1)&ͥ\H-1K66Ky(<*4DK85\G6L/ ZH6N)'L31G1}J@.6B>:+!5!!#"&'#332654&##%3;0U7?^><^@CNgQ665X>7U/7(DKRAKU"P~-M3"Q~7"R~O"W~N"e~AI #"&54632ad4/ #"&54632#"&&53326653n+X??W,5@..@ 4KL..L-7""7? #"&54632#"&54632QA7532654&'.54633#"#Q,0:<0;*QAŷ,3<}z 6ko\^L>]P/?Zm3[;@RRC:U7%F\$*$L9.M-_I"" 4@9fCGi74^R4N*5S-#Ϟ8gEDg8>366U-,P3*O4R_ n7F##5#"'#57#"&5532655!567&&5466325!##3$6654&&#"3?P:E n&BOU184[8:P_bQ`SBB C2)F)WA6R*3-~mDX6R=1`B<[23*j[yO_-F&'F-$E.IS#####"&547332655!5>KiLNLO>+01*6R c_I\ZG ,>>.6-##53#7#"&54675&&55#5!!33#"32665AHf|Q;7CGN16QP`N;a8R^W@RKGT66PAC5E7BE3Z:X/;##"332#'#7&&'332654&##"&546335!5#"&5463ծ9NC4-VvMHEDS\?[UHLXC*JegMPv6)40-OX>W dI?PA3A7DIIB6)##5#7#"&&5467#5!#"32773665!5!@$G;a:72i!4O+aH.)*1R'ƙ0[>;Z33+J/JTW4U6L>#'#7&&54675&&55#5!!!33#"326654&&#"#&5467jBTEDR@6CiwFLVUv[P#8 .F6P> jZ}pcGV KGr66pAA5M=RW@wQ3G#>@-324LS`###5##"&55332655!5!5!`B?ZUMW=9 VJABPJ3I`iNQ:OD6,RM *TBU> 7I>/8@EEJB6\n)50,p+##5#5##"&&'332654&&#"#66323!5!p>DF5cD@_5=TBPV&K5CO = n__t @ROF:]60L,-DaH,K-D.GbgP.6%326653#'##7&&5466335!5!## 4\9;[3=l]EDZnJU X[id8Y24\;d]Tv;~66*#'#7&&546675!5!&&#"32665qBk=q[ED\r=iBߦ4\:9[44[9:\4AmE__Em@66Y22Y98Z22Z8X]/332#'#7&&'332654&##"&546335!5!##NC4-VvPLEDPY?[UHLXC*JegM}Vz)40-OX@W cH?PA3A7DIIB66q332654&#"#&54632#'#7&&5466335!5!##;kEMd?1*;1WBJ[fXEDcxMV-DYvqAf9Q@2@6, ?KZHNg gZ|=|66i#####"&55#5!#3265iRudD4U1@M REG[VF.>A1=F5?5=?6`>sF)##5#5##"&&54663!5!5!654&#"3F;HW$1W69Z35\;ngcMM;>NM?R_H.5R./U7:U.6K::LK<;I###7#"&55#5!!3265?HhlvQRJTR/q66[c^F.76632#"'532654&&#"##7#"&55#5!!!3265]E;`76`<$FY+J-8L#?H chvLMEP4@8fCHi73_R4N*6U0. o66Yb]E$-##5#7#"&&5466325!56654&&#327Ό>F CoA?nCIg6!,W>5Z6Q4'6Rӛ:jGGm;B460>0X8V-24FR=*5##5#5##"&5463354&#"#&546323#"3265=;Id[OOagRg35.7>XKTOg8FA35<6R\{D_jXHLVaDJ=5M[naX;20;LD '##5#5##"&546335!5!#3#"3265 :If[QO`gRg=g7F@35<R^T`i]KOZ664?54?LD'##5#57#"&54732655!5!#32665@$N|[ajdpd:`8R+K[K66Uc] gw1Y:e"?7.##5#7#"&&5466325!56554&&#"32773?&G Ch;^0 %K32IE/7O ###7#"&55#5!!5673?HinvHiPRSR,#s66:0 [e")##5#5!326553#"&5532655!5!!!8@;8199WLUZbV\w($VRk9 WfjW_Rb66b;Xg5632#7&&#"32673#"&&5467&&546335!5!##C.'Liy={G13L'YQ?R 98\>If5=7(4ZIJ+.$0 F4xz(0R1Le?*)H,>i@Ck?.??66 (5C#'#7&&'##"&&54663236675!5!654&#"3$&&#"32665QeYIED8MnM@f::f?Nh]F3)o\[KJ^,L05+L0K\[K0L,yZQt L3@S9eADg9P@;N66]JL`_M1L*N+`LJ]*L1/6IU6632#"'532654&&#"#5#7#"&&5466325!5!6554&&#"3277#"&5463A[C<_76_<EZ+K-7J">!G=a88b>E]L*$L9/L-_I' 3>9fCGi74^R4N*5S-'˞8gEDg8=266U-,P3*N5R_ Kn7FR##5#"'#57#"&5532655!567&&5466325!##3$6654&&#"3#"&5463?P:E n&BOU184[8:P_bQ`SBB C2)F)WA!6R*3-~mDX6R=1`B<[23*j[yO_-F&'F-$E.IS*#####"&547332655!5#"&5463>KiLNLO>+01*6R c_I\ZG ,>>.6`+###5##"&55332655!5!5!#"&5463`6632#4&&#"#5#7#"&&5466325!5!6554&&#"3277[D<_7@+K-7J"=G=b88c>F\*$L9.M-_I"" 4@9gC4N*5S-#Ϟ8gEDg8>366U-,P3*O4R_ n32>3267&&54632#"'#57#"&5532655!5!!#32654&#"`S>T27t``u6a> E n&BOPbQ(UFGUUGFU]yO_?1^?^mm^?\1*#~mDX66j[HTTFFTTF4##"&547332655!54LNLO>+01*u6I\ZG ,>>.6oDQ)33#"326653#7#"&54675&&55#5!GN16QP`N@-324VS/^C}pcGV KGr66!5##"&55332655!0bVVa@@89B/}66+XllXcc?LL?cC.233!'#"&'#5332654&##&&546335!5!##OD6,~?ZUMW=9 VJABPJ3I`iNQ쯹)50,1*TBU> 7I>/8@EEJB66'G#'!53##"&&'332654&&#"#663Gt 5cD@_5=TBPV&K5CO = n_<=66gP7:]60L,-DaH,K-D.Gb}IE"}"}]"}"} ##"&55#5#3265`WU`{A78@V\6WklV66M REG[VF.>A1=F5?5>>,P3!%!5663!!#"&&5654&#"3S_5\;$1W69Z3MM;>NM?k66U.6H.6R-/U7K::LK<;IuD32653#7#"&55#5!QRJT6(&H lrv-Zd^F7[r66!*6632#4&#"##7#"&55#5!!!3265]EcoATN8L#?H chv7LMEP4@ziQ[6U0. o66Yb]E9"+!5#7#"&&54663654&&#"$3279o6.*DGrA@pH,X>&E!6Y5R4'66Fm;:d!ǚ;lGGm<>0Y89U.24FRr +/##"&5463354&#"#&54632#"3265r[OOagRg35.7>XKTO:g8FA35?pG=R''Q=3T10T466Dk;2`!Ν:kGDi9b6S+.S5,Q68S,4'#5%'#57&&546632'76654&#"M ILN-T89U.;?223F:6F6::_+dB0Q0/O.>^0 %K32IE/7O !#7#"&55#5!3267z!Hosv.SS@R  @t6d?)!%!!326553#"&5532655!5!#($#;8199WLUZbV\w X2 WfjW_Rb66b}'Kkg"}j &3A!5#'#7&&'##"&&54663236632654&#"3 6654&&#"3 YIED8MnM@f::f?NhhO?f:\[KJ^,L0L,+L0K\[K66t L3@S9eADg9P@?Q9gD]JL`_M1L**L13N+`LJ]+>J6632#4&&#"#5#7#"&&5466325!5!6554&&#"3277#"&5463A[C<_7@+K-7J">!G=a88b>E]*$L9/L-_I' 3>9gC4N*5S-'˞8gEDg8=266U-,P3*N5R_ Kn32>J3267&&54632#"'#57#"&5532655!5!!#32654&#"#"&5463`S>T27t``u6a> E n&BOPbQ(UFGUUGFU]yO_?1^?^mm^?\1*#~mDX66j[HTTFFTTF4&##"&547332655!5&#"&54634LNLO>+01*u֗6I\ZG ,>>.6oDղ'!5##"&55332655!&#"&54630bVVa@@89B/}66+XllXcc?LL?cCz!*66632#4&#"##7#"&55#5!!!3265#"&5463=]Ddn@UM8L#@H cg7KMFOd3?ziP\6U0-p66Yb]E BQaq6632#"'532654&&#"#5#"&&54&#"#5#"&&5466325!5!66325!66366554&&#"3 66554&&#"3[D<_76_<FZ+K-7J#=`E>b7VDQL=`E>b78c>F\*Y_;F\7VCL%$L9.M-_I>L%$L9.M-_I4@9fCGi74^R4N*5S-3@9iGN^kJ3@9iGDg8>366x3..3>33=k4Q),P3*O4R_4Q),P3*O4R_ BQaq}6632#"'532654&&#"#5#"&&54&#"#5#"&&5466325!5!6325!663266554&&#"3 66554&&#"3#"&5463 #"&5463[D<_76_<FZ+K-7J#=`E>b7VDQL=`E>b78c>F\*~a=F\7VC9WL%$L9.M-_I>L%$L9.M-_I4@9fCGi74^R4N*5S-3@9iGN^kJ3@9iGDg8>3666>33=614Q),P3*O4R_4Q),P3*O4R_+7O_n##5#"'#"&554&#"#5#"&&5466325!5!6655!66367&&5466325!##3$66554&&#"3$6654&&#"3?Q:rPnVDQL=`E>b78c>F\_f;DVCU194[8;P_bQ`S(L%$L9.M-_IQC B2)F)WAR+3BR|knN^kJ3@9iGDg8>36YMFR3==1`B<[23+j[yO_k4Q),P3*O4R_!-G%&G-$E.IS';K##5#"&&5467#"#5#"&&5466325!5!!663!#"3266566554&&#"3@gBb78c>F\a_LO"O^-M.5S.L%$L9.M-_IR4=/\@?`dG3@9iGDg8>3662:4_J3J&3U34Q),P3*O4R__(;K####"&554&#"#5#"&&5466325!5!!663232655!66554&&#"3_@dVUaVDQL=`E>b78c>F\|VC<[3@78CL%$L9.M-_IRpXliRN]kJ3@9iGDg8>3663=6b>>MM>4Q),P3*O4R_4AQ326653#"&&5474&#"#5#"&&5466325!5!##"6335!663266554&&#"3 4\9;[3=AvNLyEVDQL=`E>b78c>F\[R VC>]L%$L9.M-_Iid8Y24\;LvA?rIN^kJ3@9iGDg8>3667~3=<64Q),P3*O4R_Y*2;K####"&'5&5&&#"#5#"&&5466325!5!5!663%#326566554&&#"3Y?`WK\  R:QL=`E>b78c>F\v6VBA78@L%$L9.M-_IRWkSF;FkJ3@9iGDg8>3682=|;KJ<4Q),P3*O4R_d76632#"'532654&&#"##"33#"&5467#5!5!5!\dJ=d:9fB+!O`.M/>R'=ixjbw;34@:jEJm93dV5Q,5P+_]Yb4|oFb6660<LX###"33#"&547654&#"#5#"&&5466325!5!!663263366554&&#"3#"&5463?hwibxN>MH=`E>b78c>F\,R?B_J~L%$L9.M-_I Rba]f4x UViH3@9iGDg8>3660;IGS4Q),P3*O4R_r7HVf##5#"&55&&#"33#"&5476&#"#5#"&&5466325!5!6655!6632663%#3266566554&&#"3r?qQ}@HZ_ibxMBMH=`E>b78c>F\C1RWP=>VjHym`pd:`8L%$L9.M-_IR4C{-aa]g3xcaiH3@9iGDg8>36MLVK09CC00Uc`an1Y:4Q),P3*O4R_.=M###5&&#"#54&&#"#5#"&&5466325!5!!6632663266554&&#"3ݍ>RudD4U1@+I,6G"=`E>b78c>F\XA=_iBIhZL%$L9.M-_IR#f6C,T:D_/5R.3@9iGDg8>3663?E@14?.4Q),P3*O4R_77J[k##5#"&&547#"33#"&5476&#"#5#"&&5466325!5!66325!663266366554&&#"3$66554&&#"37?eHCh;hwibxKDMH=`E>b78c>F\TY4IdQ>@W#~TR('S=2S1/S4L%$L9.M-_IR5?:kG9/ba]f4x qniH3@9iGDg8>36"%?40:RQ336R+.S5,Q68S,4Q),P3*O4R_ ;M]##5#"&&55&&#"#5#"&&5466325!5!632#"'3266532654&#"!66366554&&#"3 @xXSyAU;QL=`E>b78c>F\ 5R-q/ok36 /R3dact3`?tNBBT5G3=m4Q),P3*O4R_5BR326653#5#"&&5514&#"#5#"&&5466325!5!##$66335!66366554&&#"3u_O%G/;?[8Ae8VDQL=`E>b78c>F\Z"yKRmVCL%$L9.M-_I^VO^ C1'.6gEN^kJ3@9iGDg8>36656035v3=k4Q),P3*O4R_6-:JV####"&&547&&#"#5#"&&5466325!5!!6632663!66554&&#"3$654&#"36@$1W69Z3VBQL=`E>b78c>F\SVCB]S2OL%$L9.M-_IMM;>NM?RH.6R-/U7 KZkJ3@9iGDg8>3663=A<"4Q),P3*O4R_K::LK<;I{%-6F###"&'&&#"#5#"&&5466325!5!5!663%!326566554&&#"3{?X=\j G/MH=`E>b78c>F\.T?QRJTL%$L9.M-_IR--1h\2:kJ3@9iGDg8>36&2b78c>F\.T?QRJTL%$L9.M-_IR/e[3:kJ3@9iGDg8>36&2b78c>F\.4VCLMEPL%$L9.M-_I4@8fCHi73_R4N*6U0,,1g\3:kJ3@9iGDg8>366z,3b78c>F\-5VCLMEPL%$L9.M-_I14@8fCHi73_R4N*6U0,,1dY6=kJ3@9iGDg8>366z-3fHCoAVDQL=`E>b78c>F\+XnDIgVC!,W>P6L%$L9.M-_IV5Z6Q4'R3@:lGN^kJ3@9iGDg8>367160X804Q),P3*O4R_vV-24F2)59IT####"&547&&#"#5#"&&5466325!5!6335!663%#366554&&#"3%#"32652@ZSO` VAQL=`E>b78c>F\Oc0JgVCL%$L9.M-_I1f8FA25<RUbh^L%KXkJ3@9iGDg8>36OF$2=z4Q),P3*O4R_?64?LD2)59IT`####"&547&&#"#5#"&&5466325!5!6335!663%#366554&&#"3%#"3265#"&54632@ZSO` VAQL=`E>b78c>F\Oc0JgVCL%$L9.M-_I1f8FA25<RUbh^L%KXkJ3@9iGDg8>36OF$2=z4Q),P3*O4R_?64?LD'3BR##5#"&&5&&#"#5#"&&5466325!5!6655!663%#3266566554&&#"3@qQRv>I?7H"=`E>b78c>F\ZJOZCajd3`A:`8?L%$L9.M-_IR4BDyN4I4S.3@9iGDg8>36J;MRZ4?zdc^ <^51Y:4Q),P3*O4R_I\l#"'532654&#"#54&#"327#"&&547&&#"#5#"&&5466325!5!675!66326632366554&&#"3IT5iK  SZICGJ7FDFLZR Ki5VBQL=`E>b78c>F\0JCVC9YX9JTL%$L9.M-_IwZFn?9fSJ`k] \l^LSf9?nFKYkJ3@9iGDg8>366U2=83,/Y@4Q),P3*O4R_&5FV##5#"&&54&#"#5#"&&5466325!5!66325!66366554&&#"3$66554&&#"3nj?eHCh;VDQL=`E>b78c>F\7XiAIdVCR('S=2S1/S4&L%$L9.M-_IR5?:kFN^kJ3@9iGDg8>366039?42=h6R+.S5,Q68S,4Q),P3*O4R_,>L^n##5#"&'#"&&54&#"#5#"&&5466325!5!66326655!663%#32665&5&&#"3266566554&&#"3@qPSviQHp>VDQL=`E>b78c>F\UXoGWqPUSVCjdqd:_8^N3T10T436714:S@MVa2=zke` Yg1Y: ;T,Q68S,6R-4Q),P3*O4R_14:K[326553#"&554&#"#5#"&&5466325!5!632###32654&#"!66366554&&#"3GF=G>hYckVDQL=`E>b78c>F\"\ol9@h \WnK@+VCL%$L9.M-_IHxIXQC ^lweN^kJ3@9iGDg8>36 nbfo6RbSSOEO3=m4Q),P3*O4R_L(<HLW####"&547!32653#5#"&54667&&546632!5!5!6654&#"%#3#"3265(?ZROa04=)C9;E7; I;L^3I>F[2V42S1)&w\H-1K66Ke9FA25<R~Uai^MK. (<*4DK85\G6L/ ZH6N)'L31G6J@.6B>:p6?54@LDLBNUcn##5#"&5##"&547!32653#5#"&54667&&546632!5!5!6654&#"2655!%#32665%#"3265?qQ}ZROa34=)C9;E7; I;L^3I>F[2V42S1+&\H-1K66KS]lapd:`8.d8GA25;R5BUbh^LN. (<*4DK85\G6L/ ZH6N)'L32H6J@.6B>:EVbjc^ gw1Y:?54@LDL<HU##5#"&55#32653#5#"&54667&&54663232655#5!6654&#"%#32665@pO}4=)C9;E7; I;L^3I>F[2V42S1+&Sa\H-1K66Kpd:`8R4Bw (<*4DK85\G6L/ ZH6N)'L32HEVb6J@.6B>:qb ^m1Y:LAM^##5#"&&547!32653#5#"&54667&&546632366325!56654&#"66554&&#"3?eHCh;4=)C9;E7; I;L^3I>F[2V42S1)&qIIdQa\H-1K66KR('S=2S1/S46R4@:kG (<*4DK85\G6L/ ZH6N)'L31G?H?46J@.6B>:_6R+.S5,Q68S,G2?FV##!326553#"&55#4&#"#5#"&&5466325!5!2655!6632#!66554&&#"3G@A@fX^cWCQL=`E>b78c>F\dlV\VCIf($"L%$L9.M-_IRkGVPA ZkvbDYkJ3@9iGDg8>36_Rb2=SDb;X4Q),P3*O4R_GT_o326653#"&&547!326553#"&55#4&#"#5#"&&5466325!5!##2655!6632$6335!!66554&&#"34\9;[3=AvNLyE3A@fX^cWCQL=`E>b78c>F\[8V\VCIf_ ($L%$L9.M-_Iid8Y24\;LvA?rI"GVPA ZkvbDYkJ3@9iGDg8>366^_Rb2=SDKJ~b;X4Q),P3*O4R_}O\gw332#"&&'332654&##"&'!326553#"&554&#"#5#"&&5466325!5!##2655!6632$6335!!66554&&#"3 NC4-VvkdJm9?[UHLXC*;[ A@fX^dWCQL=`E>b78c>F\pV\VCIfgL}($$L%$L9.M-_I)40-OXJ\1W9?PA3A7+/GVPA ZkvbDYkJ3@9iGDg8>366__Rb2=SDMAb;X4Q),P3*O4R_ANYi###"33#"&547!326553#"&55#4&#"#5#"&&5466325!5!2655!6632!!663366554&&#"3܍?hwibx#A@fX^cWCQL=`E>b78c>F\V\VCIf($6%vL[L%$L9.M-_IRba]f4x?2GVPA ZkvbDYkJ3@9iGDg8>36_Rb2=SDb;X**4Q),P3*O4R_<IR[k###7#"&'!326553#"&55#4&#"#5#"&&5466325!5!2655!6632%&55#!326566554&&#"3?HRf"A@fX^cWCQL=`E>b78c>F\V\VCIf($QRJTL%$L9.M-_IR/PIGVPA ZkvbDYkJ3@9iGDg8>36_Rb2=SD b;X[c^F4Q),P3*O4R_ ]js#"'532654&#"#54&#"327#"&'#"&'!326553#"&554&#"#5#"&&5466325!5!2655!6632%&55#$675!32676632366554&&#"3 IT5iK  SZICGJ7FDFLZR av4`Pg"A@fX^dWCQL=`E>b78c>F\ RJGVPA ZkvbDYkJ3@9iGDg8>366_Rb2=SD b;X'UZd7-WcY@4Q),P3*O4R_]#=Uap##5#"'#"&'#"'#"&5532655!5!67&&546326655!##3 67&&5466325!##3$654&#"3$6654&&#"3]?Q;rPf P2sPn&BOz,T27t`Sm =HbQ`SU184[7;Q_bQaSUUGFUUFC B2)F)WAR+3BRmaBT~oDX6R?1^?^mUJFSj[yO_=1`B<[23+j[yO_TFFTTFFT-G%&G-$E.ISq$?K###"33#"&'#"'#"&5532655!5!!##3267&&546326633654&#"3q@iwjbk9asPn&BObQ`S>U18s_Mj#vMUUGFUUFRba]f4ea9BT~oDX66j[yO_?1]@^mIA,+TFFTTFFTKq'~#>JV####"&'#"'#"&5532655!5!!##3267&&54632663!654&#"3654&#"3?$1U6>\\<sPn&BO9bQ`S>T27s_GfV7PUUGFUUFMM<>MM>RH.6S,60+.BT~oDX66j[yO_?1^?^m?9%'TFFTTFFTK:;KK<;I :>JU####"&'#"'#"&5532655!5!67&&546326335!##3#3654&#"3%#"3265?XR?4j[yO_f6R+.S5,Q68S,%TFFTTFFTKl'~,2Q]326553#"&'#"'#"&5532655!5!632###67&&5463232654&#"!##3$654&#"35FF=G?hY`kO0sPn&BO \ok8AU18s_Vo ]WoL@bQ`SZUUGFUUFHxIXQC ]mobBT~oDX6 nbfo7SR?1]@^mYNSOEOj[yO_TFFTTFFTK"~K)DKWc##!326553#"&5#"'#"&5532655!5!2655!##3267&&54632#!654&#"3#"&5463@A@;F>fX^dR2sPn&BOlV]>bQ`S>U18s_Mk($"UUGFUUFRkGVPA Zkub BT~oDX6_Rbj[yO_?1]@^mIBb;XTFFTTFFT-####"&54733265!#"&54733265!5!?KOLO>+01*KOLO>+01*RI]ZH ,=>.I]ZH ,=>.6(;##5#"&54675&&55##"&54733265!5!!33#"32665AvMf|Q;7CKOLO>+01*GN16QP`N;a8R.66RAA5E7BE3Z:.####"&55332655!5!#"&54733265!5!@dVVa@@88C.KOLO>+01*#RpXllX>MM>I]ZH ,=>.6#,####"&5##"&54733265!5!#3265?`WU`KOLO>+01*;"A78@RWklV*I]ZH ,=>.66;KJ<+4326653#5#"&&5466335!#"&54733265!5!##u^O&G/;?[9Ae8GxKRKOLO>+01*H^VO^ C1'06gELj4vI]ZH ,=>.66I##5#"&54675&&547##"&54733265!5!632#74&#"33#"326653?xO^yJ27KKOLO>+01*KW2:34=UK86HK\HGZR>M RE9*I]ZH ,=>.6 VF.>A1=F5?5=?6`>sgWf##5#"&'#"&54675&&547##"&54733265!5!632#74&#"33#"326'54732655#5!#32665g@rQVyxWd~J27KKOLO>+01*KW2:34=UK86HK_Gbm[`jcqd:_8R4CLELUYS>M RE9*I]ZH ,=>.6 VF.>A1=F5?5>>lK[K66Uc]gw1Y::Wh##5#"&'#"&54675&&547##"&54733265!5!632#74&#"33#"32675>325!566554&&#"3:?eHNt5e|J27KKOLO>+01*KW2:34=UK86HK`J[o =g@IdR4R('S=2S1/S46R4@OEYS>M RE9*I]ZH ,=>.6 VF.>A1=F5?5>>]bBd7?466R+.S5,Q68S,,8####"&&54663!5!#"&54733265!5!654&#"3ߍ@$1W69Z35\;OVKOLO>+01*MM;>NM?RH.6R-/U7:U.I]ZH ,=>.6K::LK<;I5AM##5#"&'##"&&54663!2655!#"&54733265!5!#32665654&#"3@qQz%2V69Z35\;M\`KOLO>+01*rd:_8MM;>NM?R4BI.6S-/U8:U.?QKI]ZH ,=>.66Up1Y:K;:LK<;J{)3<##5#"&&5466325!#"&54733265!5!6654&&#327{>fHCoA?nCIgKOLO>+01*(6!,W>5Z6Q4'R3@:lGGm;B4I]ZH ,=>.60>0X8V-24F5@####"&5463354&#"!#"&54733265!5!6323#"3265ώ@ZROahRf34KOLO>+01* TPe8GA35;6RUbh^LO[dCKI]ZH ,=>.6 na[!?64?LDHVa##5#"&'##"&5463354&#"#&547##"&54733265!5!63232655#5!#32665%#"3265?qQ|YROagRf24-8@KOLO>+01*!TPT\kcpe:_8Sd9FA25;R4BUbh^LO[dCK=6>,I]ZH ,=>.6 na[GYK66Udbgw1Y:?64?LD'+6####"&546335!#"&54733265!5!#3#"3265܍@ZSO`gRgZKOLO>+01*f8FA25<RUbh^LO[I]ZH ,=>.665?64?LD'5##5#"&54732655!#"&54733265!5!#32665@qQ|[aKOLO>+01*jdpd:`8R4BK[KI]ZH ,=>.66Uc] gw1Y:,:##5#"&'#&54732655!#"&547332655!5!#32665@qQRvKE [aLNLO>+01*jdpd:`8R4BD??-9K[KI\ZG ,>>.66Uc] gw1Y:OOM#"'532654&#"#54&#"327#"&&5463236675!#"&54733265!5!KIT5iK  SZICGJ7FDFLZR Ki5o]JTJC\KOLO>+01*lwZFn?9fSJ`k] \l^LSf9?nFg{Y@;UI]ZH ,=>.66n):##5#"&&5466325!#"&54733265!5!66554&&#"3n?eHCh;+01*R('S=2S1/S4R5?:kGDi9?4I]ZH ,=>.66R+.S5,Q68S,18##!326553#"&5532655!#"&54733265!5!#!@A@fX^cbV\ZKOLO>+01* ($"RkGVPA Zkvb_RbI]ZH ,=>.66b;X 7C####"&'#"&54675&&55#5!!33#"32677663!654&#"3@$1W6BcoS_sQ;7CGN*/QPYDQZ nROMM;>NM?RH.6R->6I@_X@RKGT66RAA5E7BEN` KUK::LK<;I37B####"&'#"&54675&&55#5!6335!33#"32677#3#"3265@ZS=X6_uQ;7C%aEgGN8=QPYDM`f8FA25<RUbh;3p_X@RKGT6BRAA5E7BEBKh5?64?LD6D##5#"&'#"&54675&&55#5!667&54732655!33#"3#32665Ȍ@qQQvToQ;7C_8[aGN16QP`Njdpd:`8R4BC>@K^Y@RKGT61V7K[KRAA5E7BE Uc] gw1Y:'6##5#"&'#"&&5467#5!#"32665!5!67!"3267@gBHo> jZaLVP+00\?;Z33+J/JTL75@KGr66pAA5M=RW@wQ3G#>@-324LS<^k#5#"&&5467&&'#"&&5467#5!#"36676675&&55!5!!!33#"326654&&#"#&5467#32665BKLUTA2E" jZ_'@+2/U8:WO<+00\?;Z33+J/JTL75@KGr66pAA5M=RW@wQ3G#>@-324LS OCCN,C#3?####"&'#"&&5467#5!#"326754663!5!5!654&#"3@$1W6;]cCNM?RH.6R-3-8@/[?;Z33+J/0F%T@:U.6K::LK<;I-1<####"&'#"&&5467#5!#"326766335!5!#3#"3265@ZS9U^@hsqjGV KGr6p@wQ3G#>@-324VS2/ERMpAA5M=RWZUd^gp1Y:v!IX##5#"&'#'#7&&54675&&55#5!6654&&#"#&546326655!33#"3##732665v@mMQt eEDR@6CrP#8 .F6eG2RVWFLVUvri p`:`8R4AC>UnpcGV KGr6p@wQ3G#>@-324VS2/ERMpAA5M=RWZUd^gp1Y:.FV6632#"'532654&&#"#5#"&&547##"&55332655!66325!5!66554&&#"3@[D<_76_<FZ+K-7J#=`E>b7dVVa@@88C(R/F\KdL%$L9.M-_I4@9fCGi74^R4N*5S-3@9iG;1pXllX>MM>!>3664Q),P3*O4R_-####"&55##"&55332655!32655!5!5!@dVVadVVa@@88CF@88CRpXllXppXllX>MM>>MM>6'~N'~N3H3####"&'#332654&#!#"&55332655!5!5!H>3<0U7>^?<^@BOhQdVVa@@88CfeRX?7V/6)DKT@LUrXllX>MM>6b7E##5#"&'###"&55##"&55332655!32655!2655!5!#32665b@sPzeVUadVVa@@88CFA78C[`dlbpd:`8R4COWmlXNNXllX>MM>>MM>@OK66UZWp1Y:<M##5#"&&547##"&55##"&55332655!32655!66325!5!66554&&#"3?eHCh;dVVadVVa@@88CF@88C&W3Id:R('S=2S1/S4R5?:kG;0pXllXppXllX>MM>>MM>!#?466R+.S5,Q68S,;G##'#"&'#5332654&##&&547##"&55332655!66335!5!##"33??ZUMW=9 VJABPJ3I`dVVa@@88CO//ͯ:OD6,R*TBU> 7I>/8@EE pXllX>MM>6\n)50,72?##5#"&'&&###"&'#332654&##5!26655!5!#326657?qQy A23;0U7?^><^@CNgQ>TNRTja:`8R4C%-X>7U/7(DKRAKU5.'LTK66U jt1Y:13326653#"&&547##"&55332655!6335!5!##-4\9;[3=AvNLyE(dVVa@@88CELz 4[id8Y24\;LvA?rIXMM>:~66g?332#"&&'332654&##"&547##"&55332655!66335!5!##NC4-VvkdJm9?[UHLXC*JedVVa@@88CO.}L)40-OXJ\1W9?PA3A7DIpXllX>MM>66*###"33#"&547!#"&55332655!5!5!@iwjbxfdVVa@@88CRba]f4t;mXllX>MM>65326653#5#"&&547##"&55332655!66335!5!##)u^O&G/;?[9Ae8dVVa@@88C4$f;R^VO^ C1'06gEB/pXllX>MM> "v66J)5####"&&547##"&55332655!5!5!654&#"3J?%1W69Y35dVVa@@88CegMM;>NM?RI.6S,/T8T2pXllX>MM>6L::LK<;J*4=##5#"&&547##"&55332655!66325!5!6654&&#327>fHCoAdVVa@@88C" ]6Ig (6!,W>5Z6Q4'R3@:lG>0pXllX>MM>#'B460>0X8V-24FN%)4####"&547##"&55332655!5!5!#3#"3265N@ZQOa3dVVa@@88Cdkd9FA25;ReZa]KL-bXllX>MM>665@54@D=)%3##5#"&'###"&55332655!2655!5!#32665)AqP{dVVa@@88C[aFlbpd:_8R4AOXllX>MM>@OK66UYXp1Y:)"A~N*;##5#"&&547##"&55332655!66325!5!66554&&#"3?eHCh;dVVa@@88C&W3IdR('S=2S1/S4R5?:kG;0pXllX>MM>!#?466R+.S5,Q68S,T1BN####"&''#"&'#5332654&##&&546335!5!!#"33!4663!654&#"3T@$1W6Jh?ZUMW=9 VJABPJ3I`iNQqI:OD6,.5]:OMM;>NM?RH.6R-LA*TBU> 7I>/8@EEJB66)50,9T-K::LK<;Ia.>BM####"&''#"&'#5332654&##&&546335!5!6335!#"33!#3#"3265a@ZSL_?ZUMW=9 VJABPJ3I`iNQ~"bGg=:OD6,9f8FA25<RUbhXH)UBU> 7I>/8@EEJB6E)50,n5?64?LD&,@N##5#"&''#"&'#5332654&##&&546335!5!&54732655!#"33#32665&@qQY{?ZUMW=9 VJABPJ3I`iNQCW[a:OD6,jdpd:`8R4BPH*TBU> 7I>/8@EEJB6\()K[K)50,nUc] gw1Y:@##5#"&&'##"&'332654&&#"#66323667#5!#"32665!5!@gB9`; t`]p = OAPV&K5CO = n_Ec64)i!4O+aH4S.$R4=.W jZaLqj#;_8bF/BgM0Q1D.GbsX* KGr66pAA5M=RW@wQ3G#>@-324LS9####"&'##"&'332654&&#"#663235332655!5!5!@dVO`t6bC]p = OAPV&K5CO = n_bt t@@88C*RpXl]M;_8bF/BgM0Q1D.GbsX>MM>6YKQ326553#"&55##"&'332654&&#"#66323532654&#"#&547!5!632###FF=G>gYckvud]p = OAPV&K5CO = n_bs wWoK@>K?/6"%\ok8@HxIXQC ^lwec\xbF/BgM0Q1D.GbrWSOEOOCS76 nbfo6RL/32653"32653#"&&5467&&546335!5!##ff[b`>~Vme\b`>}Qt>I;>FnEOJFCSYLfvBNDRYLfw3\=EW\@_go66M'332653#"&5467&&546335!5!##&#"3265ee\^d=C@?FuuE?@DmFMgZ[ghZZgJFCSZKEcYC_ii_CY]?_go66VMMGFNMG/?##5#"&5732654&#!"326653#"&&5466335!5!65!!23>4hoGGR?e1W78W0>?rKIuBJU X!Z[PTQRu}m #,6"id8Y21X8Iq??rITv;~6xbZ:9 Q^'432653#5#"&&5467&&546335!5!###"326655gf]_e>K;V<9X2?4@FmHLڂSKTZSB2D"JFCSZKm;8*30V9>\a@_go66NEBM,C$M*6#"&5467&&54675!5!&#"3265&#"3265rew>:9?rq?9:>vcӧdWWcdVWddWWcdVWdpf[AZX@_ii_@XZA[fp66NNGFNMGNNGFNMG'7G##5#"&54732654&###"&&546675!5!65!!23$&&#"32665>[DgoFGP<28DxKKxE=iB+Z.b[PTQ4\:9[44[9:\4R7?wi #,6"hAGq??rIEm@6wcV:9 KXY22Y98Z22Z8*7#5#"&&5467&&54675!5!&#"3265#"32665ucuI;V<7U0=4>Cyg΢bVZgeYWdF3DS]P>2F!nf[c6<+30X:@YZBZfn66MMGGNNGKHCN,D#nD32#"32#"&'332654&#"&547&&5332654&#"&546335!5!##IFeof`SMJGhmc_j=\VCCRN^g`3>=\VCCUL\h_LxTP,=MAJ%+,L=$[%&]M;RO34C1-9(1FA:o66[ DB;E';R32654&#"#&54632##1"32654&#"#&54632#"&&5467&&546335!5!## {ziRc94/9.SEMT9hGcziRc94/9.SEKV}oTHUJKTuI=rb\Xd@4,6-& 8@N@0I(c^Wd@4+7-& 8@O?IY6iIRknOpwm66@Q##5#"&5473654&#!"32654&#"#&54632#"&&5466335!5!65!32'3>ZDhoELQ9 Q]7C32654&#"#&54632#5#"&5467&&546335!5!###"326655 {ziLZ5,-8.QDEO*'7P7PgD8GSuAEk71M;/Ab\XdB5*5-& 8@M>+EW)2`OAWpNpwm66Zb7zhwibxS1F\dL%$L9.M-_I4@9fCGi74^R4N*5S-3@9iG;-b`]f4x}{!#>3664Q),P3*O4R_}9ETd##5#"&&5&&#"#5#"&&547#"33#"&5463366325!5!6655!663%#3266566554&&#"3}@qQRv>I?7H"=`E>b7zhwibxS1F\ZJOZCajd3`A:`8?L%$L9.M-_IR4BDyN4I4S.3@9iG;-b`]f4x}{!#>36J;MRZ4?zdc^ <^51Y:4Q),P3*O4R_H[6632#"'532654&&#"#5#7#"&&547#"33#"&5463366325!5!6554&&#"3277[D<_76_<FZ+K-7J"=G=b8zhwibxS1F\*$L9.M-_I"" 4@9fCGi74^R4N*5S-#Ϟ8gE;-b`]f4x}{!#>366U-,P3*O4R_ L8GXh##5#"&&54&#"#5#"&&547#"33#"&5463366325!5!66325!66366554&&#"3$66554&&#"3L?eHCh;VDQL=`E>b7zhwibxR1F\i7XiAIdVCR('S=2S1/S4&L%$L9.M-_IR5?:kFN^kJ3@9iG<-ba]f4x}| #>366039?42=h6R+.S5,Q68S,4Q),P3*O4R_HT##!32653#5#"&554&#"33#"&54632667&&547!5!63236654&#"ύ=4=)C9;E7; I;L^P_S`ibxjdhF;F[%&2S1)&;\H-1K66K6R (<*4DK85\G(V}d_]f4xzsX- ZH@-6 'L31G1J@.6B>:U,DS##5#"'#"&55&&#"33#"&546326655!5!67&&5466325!##3$6654&&#"3U@P:qPo QJ]gibxvUk?J:rU184[7:P`bQaSAB B2)F)VBR)3BR~oe+Aba]f4x|~B4EU6R=1`B<[22*j[jO_-F&'F-$E.ISnU1IX##5#"'#57#"&55&&#"33#"&546326655!5!67&&5466325!##3$6654&&#"3U@P:,E n QJ]gibxvUk?J:rU184[7:P`bQaSAB B2)F)VBR)39%~me+Aba]f4x|~B4EU6R=1`B<[22*j[jO_-F&'F-$E.IS###"33#"&5467#5!5!5!@iwjbw=4RfeYb4|oMh66(6##5#"&55&#"33#"&5467#5!26655!5!#32665@rP|xXcjbw2*D1RVmapd:`8R4B{I`aZb4|oJd6MLVK66Uc`an1Y:k*;##5#"&&547#"33#"&5467#5!66325!5!66554&&#"3k?eHCh;}iwjbw=4Y4IdCR('S=2S1/S4R5?:kG9/feYb4|oMh6"%?466R+.S5,Q68S,A##5#"&'#"33#"&54633254&#"#&547!5!632#"'32665@wY}zdqh` xA7:C;&{"6R,p4ojNM?RH.6S-/T8T2ba]f4x}|6K;:KK<;Io0<H##5#"&'##"&&547#"33#"&5463!2655!5!#32665654&#"3o@qQz%2V69Z34iuhaxg\`Xrd:_8MM;>NM?R4BI.6S-/U8S2WXW_4zrsr?QK66Up1Y:K;:LK<;J(###"&'#"33#"&546335!5!!3265?X=fl]hwibx_1QRJTR--1nba]f4x}|66[c^F#,###7#"&'#"33#"&546335!5!!3265?Hfl]hwibx_1QRJTR/}mba]f4x}|66[c^FEX#"'532654&#"#54&#"327#"&'#"&'#"33#"&546335!5!675!326766323~IT5iK  SZICGJ7FDFLZR av4`dm]hwibx_0JCMM5H kTJTwZFn?9fSJ`k] \l^LSf9hV>nba]f4x}|66UZd7-WcY@e;D6632#"'532654&&#"##"&'#"33#"&546335!5!!!3265t]E;`76`<$FY+J-8L#?S9bg]hwibx_LMEP4@8fCHi73_R4N*6U0,,1~oba]f4x}|66Yb]E#'2####"&547#"33#"&5463!5!5!#3#"3265@ZROa)zivibxse8F@25<RTbi^MF,YXV^4yqts666?55?LDy)0?J##5#"&5##"&547#"33#"&5463!5!5!2655!%#32665%#"3265y@qP}ZSO`*guhaxwmT[maqd:_80f8FA25<R4BUbh^LG,VVSZ4unqp6FWKUb^gw1Y:?54@LD&4##5#"&55&&#"33#"&546326655!5!#32665?qQ}@HZ_ibxt1RWAm`pd:`8R4C{-aa]g3x|}MLVK66Uc`an1Y:&4##5#"&'#565&&#"#466326655!5!#32665@rPnRr`B6V2@@qIU}JOkdqd:_8R4Asdc4A,T:Hl:QCMR66d] `o1Y9L#"'532654&#"#54&#"327#"&&547#"33#"&5463363236675!5!IT5iK  SZICGJ7FDFLZR Ki5vhwibx4TJTJC;wZFn?9fSJ`k] \l^LSf9?nFF4ba]f4x}|1Y@;U66J(9##5#"&&547#"33#"&5463366325!5!66554&&#"3J?eHCh;hwibxY4IddgR('S=2S1/S4R5?:kG9/ba]f4x}|"%?466R+.S5,Q68S,4;##!326553#"&554&&#"33#"&5463232655!5!#!?B@;F>gX]d#K9]gibxvOjgX]d#K9]gibxvOjNM?RH.6R-/U7 GVPA Zkvbq:'ba]f4x|~:/`Rq66q;X28K::LK<;I:DS##5#"&'!326553#"&554&&#"33#"&5463232655!5!!2655!%##32665@qQ|AB@;F>gX]d#K9]gibxvOjgX]d#K9]gibxvOjNM?RH.6R-3.;CBT5GF;Rc/R3daeuZH:U.6K::LK<;IU<K##5#"&'#"&54732654&#"#&54632#"'3265732655#5!#32665@qQXz}Xe[yA7:C:fR6R,q/migu[`jcpe:_8R4BNHNX~BT5GF;Rc/R3dacts'K[K66Uc]gw1Y:U>O##5#"&'#"&54732654&#"#&54632#"'3267>325!566554&&#"3?eHKqyRe[yA7:C:fR6R,q/rlWpJ<,#,GYUC *<>- cH`dv665326653#5#5#"&547332655&&546335!5!##bRF$E.79B.P3ILGK7+/1*GPpZ(HG>J<,ݿ-#,>GYUB *;=.D cH`dv661J326653#5#"'#"&54675&&5463266335!5!##&547&#"33#"3267u_O%G/;?[9$!~ZWrJ27I`\,X&$c9R8(?AADLFDHQ?Ba^VO^ C1'/ Ye[S?O K@DZv66fEP8$@06?3B5>@RH9/33#"32653#5#"&54675&&546325!5!##WGA\]?CNBLX6>YEThA45Cq]?xa06+80:09>TM)5VJ9G B5LCc66G326653#5#"'#"&54675&&54632&33#"3267&&5466335!5!##u_O%G/;?[9$!~ZWrJ27I`\ LMLFDHQ?Ba38GxKR^VO^ C1'/ Ye[S?O K@CZ5A46?3B5>@RHfELj4v66v7CG####"&&54663!5!#"326653#5#"&&5466335!5!654&#"3#'v@$1W69Z35\;ONM?zCwRH.6R-/U7:U.^VO^ C1'06gELj4v6K::LK<;I9y'09326653#5#"&&5467&&546335!5!##65567'3a)E)$F-78U87W1;05ApYCaQ95$ l@Q@HG(>"<,ɞ/3/U89SX<_av66,$"2ANy*3?326653#5#7#"&&5467&&546335!5!##6557'32773a)E)$F-78D 7W1;05ApYCaQ95$ 0Q@"HG(>"<,ɞ#}/U89SX<_av66,$"2AN d"a;;&A*5####"&546335#"&546335!5!##"333#"3265A@RKHV_LUvTheUgv^ȟ;FI;X1>8,/4x9AZ_SDJOlPIRLv66260366/+5B<3##5#"&54675&&546325!5!##5#"33#"3265׍?~^`xN./MgI'̩<=TQAACBN[JlRGFTLA?9;E;b66,5202277u%3326653#5#"&5467&&546335!5!##326655aRE$E.7;P4Qg4*6@pZF]P67EO=-?HG>J<,Θ(-bP6QY?_av66)F8=G)> VCO####"&'#"&54675&&54632#74&#"33#"32675663!5!5!654&#"3@$1W6@`{Yc~J27K]JKW2:34=UK86HK`J[q qXPMM;>NN>RH.6S,:3BFYS>M REG[VF.>A1=F5?5>>UQTb6K::LK<;IVJVb##5#"&'##"&'#"&54675&&54632#74&#"33#"327663!2655!5!#32665654&#"3ҍ@qPz%1V6DetVc~J27K]JKW2:34=UK86HK`JpUN\`.rd:_8MM<>NN>R4BI.6S-B:69YS>M REG[VF.>A1=F5?5>>Q]@PK66Up1Y:K;;KK<;JV@DO####"&'#"&54675&&54632#74&#"33#"3267766335!5!#3#"3265@ZR8RvUc{J27K]JKW2:34=UK86HK_GZl eNfe8F@25<RUbh1+/5YS>M REG[VF.>A1=F5?5>>J;HR665?64?LDV@O##5#"&'#"&54675&&54632#74&#"33#"326'54732655#5!#32665@rQVyxWd~J27K]JKW2:34=UK86HK_Gbm[`jcqd:_8R4CLELUYS>M REG[VF.>A1=F5?5>>lK[K66Uc]gw1Y:V@Q##5#"&'#"&54675&&54632#74&#"33#"32675>325!566554&&#"3?eHNt5e|J27K]JKW2:34=UK86HK`J[o =g@IdR4R('S=2S1/S46R4@OEYS>M REG[VF.>A1=F5?5>>]bBd7?466R+.S5,Q68S,DT`6632#"'532654&&#"#5#"&&547##"&&54663!66325!5!66554&&#"3$654&#"3[D<_76_<FZ+K-7J#=`E>b7$1W69Z35\;rO.F\dL%$L9.M-_IMM;>NM?4@9fCGi74^R4N*5S-3@9iG?2H.6R-/U7:U.>3664Q),P3*O4R_K::LK<;I>DQXht##!326553#"&55#4&#"#5#"&&547##"&&54663!66325!5!2655!6632#!66554&&#"3$654&#"3>@A@fX^cWCQL=`E>b7$1W69Z35\;rO.F\[lV\VCIf($"L%$L9.M-_IMM;>NM?RkGVPA ZkvbDYkJ3@9iG?2H.6R-/U7:U.>36_Rb2=SDb;X4Q),P3*O4R_K::LK<;I/;##5#"&&5467!#"&&54663!#"32665!5!654&#"3?hB=a950&2V69Z35\;T!P^aG5T.MM;>NM?R4>.X<6VJ/6S-/U7:V.4XCEP2V3U6L::KK<:JL-O[#"&'&&'#"&&54663326675&&55!5!!!33#"326654&&#"#&5467654&#"3iBT^mkD"1W69Z35\;;\#E,7C~iwFKVUvZQ#9 .F6Q=MM;>NM? jZaLnfYl G,6R-/U7:U.ZZ&/JGq66nAB5N=RW@wQ3G#>@(833MSK::LK<;I11=326653#"&&547##"&&54663!6335!5!##654&#"34\9;[3=AvNLyE+$1W69Z35\;Ku k[MM;>NM?id8Y24\;LvA?rIY@H.6R-/U7:U.6~66K::LK<;IB=I332#"&&'332654&##"&547##"&&54663!66335!5!##654&#"3NC4-VvkdJm9?[UHLXC*Je$1W69Z35\;VL,}q_NM?)40-OXJ\1W9?PA3A7DIH.6R-/U7:U.66K::LK<;I(4###"33#"&547!#"&&54663!5!5!654&#"3č?hwibxY%2V69Z35\;MM;>NM?Rba]f4x@H.6S-/U7:U.6K;:KK<;I{6DP##5#"&55&&#"33#"&547!#"&&54663!26655!5!#32665654&#"3{?qQ}@HZ_ibxK%1W69Z35\;*1RWKm`pd:`8LM;>NM?R4C{-aa]g3x@I.6R-/U7:U.MLVK66Uc`an1Y:J<:KK<;I)5###5&&#"##"&&54663!6632!5!654&#"3>RtdD2V$1W79Y35\;8 b:IhMM;>NM?R$e6D0/I.5S..T7:V..0?.6K;:KK<:JELX##!326553#"&554&&#"33#"&547!#"&&54663!3232655!5!#!654&#"3?B@;F>gX]d#K9]gibxQ%2V69Z35\;.OjNM?R[GVPA Zkvbq:'ba]f4xAH.6S-/U7:U.:/`Rq66q;XK;:KK<:JAM##5#"&'##"&&5463!2654&#"#&547!5!632#"'32665654&#"3@wY|$2V69Z3rZ\xA7:C;&l"6S,q/okNM?6R8PI-6S-/U7Wf@Q1AF;G/6 ,N1a^j|3`?tK;:KJ<;JM\h##5#"&'#"&'##"&&5463!2654&#"#&547!5!632#"'3265732655#5!#32665654&#"3@qQXz}X$2V69Z3rZ[yA7:C:'k#6R,q/migu[`jcpe:_8-MM;>NM?R4BNHNX{I.6S-/U7WfBT5GF;G/6 /R3dacts'K[K66Uc]gw1Y:K;:KK<:JO`l##5#"&'#"&'##"&&5463!2654&#"#&547!5!632#"'3267>325!566554&&#"3654&#"3?eHKqyR$2V69Z3rZ[yA7:C:'l"6R,q/rlWpNM?6R4@JBCJ{I.6S-/U7WfBT5GF;G/6 /R3dactcWCg8?466R+.S5,Q68S,9K;:KK<:Jk3?326653#5#"&&547##"&&54663!66335!5!##654&#"3u^O&G/;?[9Ae8$1W69Z35\;r$c:RPMM;>NM?^VO^ C1'06gEE1H.6R-/U7:U.v66K::LK<;Ij:F32776653#5#7#"&&547##"&&54663!66335!5!##654&#"3u^O&"$+;? G Ae8$1W69Z35\;r$c:RPMM;>NM?^VO^B/Ԥ6fDE1H.6R-/U7:U.v66K::LK<;I>[8DR326653#5#"&5467&&547##"&&54663!66335!5!##654&#"3$326655aRE$E.7;P4Qg4*6@$1W69Z35\;[b?Z`xMM;>NM?P67EO=-?HG>J<,Θ(-bP6QY?*"H.6R-/U7:U.v66K::LK<;I,)F8=G)> NZ##5#"&55&&'#"&&54663326675&&547!5!632#74&#"33#"326653654&#"3ˋ@wP^x gK"1W69Z35\;;d68J KW2;34NM?R>FZRHV H,6R-/U7:U.OH" SE9*6 VF .>A1=F5@4=?6`>sK::LK<;I[jv##5#"&'#"&55&&'#"&&54663326675&&547!5!632#74&#"33#"326'54732655#5!#32665654&#"3@rQVyxWd~ gI"1W69Z35\;;d77KKW2:34=UK86HK_Gbm[`jcqd:_8gMM;>NM?R4CLELUYS FT H,6R-/U7:U.NH! RE9*6 VF.>A1=F5?5>>lK[K66Uc]gw1Y:K::LK<;IR^##53#7#"&55&&'#"&&54663326675&&547!5!632#74&#"33#"326653654&#"3ˌ?I^y gI"1W69Z35\;;d77KKW2:34=UK86HK\HNM?R$YR FT H,6R-/U7:U.NH! RE9*6 VF.>A1=F5?5=?6`>sK::LK<;I}[lx##5#"&'#"&55&&'#"&&54663326675&&547!5!632#74&#"33#"32675>325!566554&&#"3$654&#"3}?eHNt5e| gI"1W69Z35\;;d77KKW2:34=UK86HK`J[o =g@IdR4R('S=2S1/S4IMM;>NM?6R4@OEYS FT H,6R-/U7:U.NH! RE9*6 VF.>A1=F5?5>>]bBd7?466R+.S5,Q68S,K::LK<;I*'3?####"&&547##"&&54663!5!5!654&#"3 654&#"3*@$1W69Z36$1W69Z35\;OGMM;>NM?;MM;>NM?RH.6R-/U7T3H.6R-/U7:U.6K::LK<;IK::LK<;I1=IU##5#"&'##"&&5467##"&&54663!2655!5!#32665654&#"3 654&#"3@qQz%2V69Z3%2V69Z35\;L\`rd:_8MM;>NM?:MM;>NM?R4BI.6S-/U8*EI.6S-/U8:U.?QK66Up1Y:K;:LK<;JK;:LK<;J(4###"&5##"&&54663!5!5!!3265654&#"3?X=hl$1W69Z35\;5QRJTMM;>NM?R--1rH.6R-/U7:U.66[c^FK::LK<;I#,8###7#"&5##"&&54663!5!5!!3265654&#"3?Hhl$1W69Z35\;5QRJTMM;>NM?R/qH.6R-/U7:U.66[c^FK::LK<;I<EQ6632#"'532654&&#"##"&55##"&&54663!5!5!!!3265654&#"3]E;`76`<$FY+J-8L#?S9ch$1W69Z35\;6LMEPMM;>NM?4@8fCHi73_R4N*6U0,,1qH.6R-/U7:U.66Yb]EK::LK<;I@IU6632#"'532654&&#"##7#"&55##"&&54663!5!5!!!3265654&#"3]E;`76`<$FY+J-8L#?H ch$1W69Z35\;6LMEPMM;>NM?4@8fCHi73_R4N*6U0. oH.6R-/U7:U.66Yb]EK::LK<;I#8CO####"&547##"&&5463!54&#"#&547!5!6323#"3265654&#"3#@ZROa+%1W69Z3rZ^34-8?d TQe9FA25NM?6RUbh^LG.I.6R-/U7WfVCK=6>,6 naM@54?LCL;:KK<;JCQ\h##5#"&'##"&547##"&&5463!54&#"#&547!5!63232655#5!#32665%#"3265654&#"3?qQ|YROa+$2V69Z3rZ^24-8@d!TPT\kcpe:_8Sd9FA25;MM;>NM?R4BUbh^LG.I.6S-/U7WfdCK=6>,6 na[GYK66Udbgw1Y:?64?LDK;:KJ<;JIZeq##5#"&&547##"&547##"&&5463!54&#"#&547!5!632366325!566554&&#"3%#"3265654&#"3?dHCi;YROa+$2V69Z3rZ]24-8@e!TPmEHdCBS((R>2S0/S3:d9FA25;MM;>NM?6R4@:kGUbh^LG.I.6S-/U7WfdCK=6>,6 na[8??466R+.S5,Q68S,?64?LDK;:KJ<;J:"&1=####"&547##"&&5463!5!5!#3#"3265654&#"3:@ZROa,%1W69Z3rZ^wWe8GA25NM?RUbh^LG.I.6R-/U7Wf665@54?LCL;:KK<;J )0?JV##5#"&5##"&547##"&&54663!5!5!2655!%#32665%#"3265654&#"3 @qP}ZSO`,%2V69Z35\;_v'mT[maqd:_80f8FA25NM?R4BUbh^LH.J/6R-/U7:U.6FWKUb^gw1Y:?54@LDK;:KK<:J".:##5#"&'##"&&54663!2655!5!#32665654&#"3@qQz%2V69Z35\;M\`rd:_8MM;>NM?R4BI.6S-/U8:U.?QK66Up1Y:K;:LK<;J(9E##5#"&&547##"&&54663!66325!5!66554&&#"3$654&#"3?eHCh;$1W69Z35\;{U1IdR('S=2S1/S4MM;>NM?R5?:kG>2H.6R-/U7:U.!?466R+.S5,Q68S,K::LK<;IL6=I##!326553#"&55#4&###"&&546633232655!5!#!654&#"3L@A@fX^cFIB$1W69Z35\;Mc4V\yi($"MM;>NM?RkGVPA Zkvb-9H.6R-/U7:U.1._Rb66b;XK::LK<;IKVb326653#"&&547!326553#"&55#4&###"&&546633232655!5!##6335!!654&#"34\9;[3=AvNLyE3A@fX^cFIB$1W69Z35\;Mc4V\y[_ ($MM;>NM?id8Y24\;LvA?rI"GVPA Zkvb-9H.6R-/U7:U.1._Rb66J~b;XK::LK<;I FPWfr}##5#"&5##"&547!326553#"&554&###"&&546633232655!5!!6335!2655!%#32665654&#"3%#"3265 @qP}ZSO`7A@NM?df8FA25<R4BUbh^L+$GVPA  Zkvb-9H.6R-/U7:U.1._Rb6W'bFWKUb^gw1Y:K::LK<;I?54@LD<FS_##5#"&'!326553#"&55#4&###"&&546633232655!5!!2655!%#32665654&#"3@qQ|AA@fX^cFIB$1W69Z35\;Mc4V\y!($[apd:`8 MM;>NM?R4BvGVPA Zkvb-9H.6R-/U7:U.1._Rb6XHYnbbw ]k1Z9K::LK<;IREQ632#&&#"32673#"&&5467&&547##"&&54663!66335!5!##654&#"3C-& _m > QANWWN?Q >8\>Ig4;6'2$1W69Z35\;]H-_oNM?+.#0 ]B+@^FG]@**I-:c>@d=.H.6R-/U7:U.66K::LK<;I1' -326653#"&&'#"&55#5!##6335!32674\9;[3=AvNFtG8`jpvD[p QR8Lid8Y24\;LvA7dA>r66.e~Zd7.4A#3#"&&'#"&55#5!676675!3$&&#"32665Bk=EyKErH8`jpv^7O xPQR_4\:9[44[9:\4AmEIr?6bA>r66X@3J\ZdaY22Y98Z22Z8<(###"33#"&55#"&55#5!!32676633NM?RH.6R-I?;s66Zd5-DNK::LK<;I%(###"&'#"&55#5!67&55!3!3265%?X=Ia`IhmvB^QQRQRJTR--1B=>Ar6"XP[c[c^Fv0:C6632#"'532654&&#"##"&'#"&55#5!6755!3!3265]E;`76`<$FY+J-8L#?S9E^`Hhmv PQR LMEP4@8fCHi73_R4N*6U0,,1A<=@r66XXO[cYb]E"&1####"&'#"&55#5!6335!3267#3#"3265@ZSH^.N\av-^@gEE*=f8FA25<RUbhQC4{k69S\+%X5?64?LDx#1##5#"&'#"&55#5!674732655!3#32665x@qQaU:glvM[aMMyjdpd:`8R4B]U+/r6"O=K[KZdUc] gw1Y:O4G#"'532654&#"#54&#"327#"&'#"&55#5!675!326766323IT5iK  SZICGJ7FDFLZR av4`glv10JCMM5H kTJTwZFn?9fSJ`k] \l^LSf9hV>r66UZd7-WcY@7"3##5#"&'#"&55#5!6766325!366554&&#"37?eHUy7dglvT6I ~YId-MMR('S=2S1/S4R5?]QGr6"@5Wh?4Zdj6R+.S5,Q68S, .5##!326553#"&55#"&55#5!2655!32655#!@A@fX^cK0glvlV\MMBK)($"RkGVPA ZkvbC #r6_RbZdT=b;XL )<####"&554&#"##"&55#5!65!3!663232655!L?eVU`VEQL?S9chvi+PLMNWC;\2@79BRpWmiRN]kJ,,1q6"]EYb3=6b>>MM>L"'~~sN-6C326653#"&&547&&#"##"&55#5!##65!3$6335!6632 4\9;[3=AvNLyESL8L#?S9chv[PLMfT x[DC^id8Y24\;LvA?rI Wc6U0,,1q66]EYb;~4??:*3@###"33#"&547#654&#"##"&55#5!65!3!66326633Ѝ?hwibxVJ8L#?S9chvPLM[DIe%yORba]f4x de6U0,,1q6"]EYb4?PM.-"~&%.;G####"&&547&&#"##"&55#5!65!3!6632663!654&#"3&@$1W69Z3UCRN?S9chvCQPLM'VB@aS3OMM;>NM?RH.6R-/U7 USnM,,1q6"]EYb26U0,,1q6"]EYb-12={[c^F:CKT6632#"'532654&&#"##"&'&&#"##"&55#5!65!35!663%!3265]E;`76`<$FY+J-8L#?S9We L;6H"?S9chvPLM3V@LMEP4@8fCHi73_R4N*6U0,,1cY6>6U0,,1q66X]EYb-12={Yb]E"'~~d )5C##5#"&&55&&#"##"&55#5!65!36655!663%#32665?rQRw>I=7J"?S9chvPLMZKO[Cc3_B:`8R4CDyN2F6U0,,1q6"]EYb.J;MRZ3>zd <^51Y:BK^#"'532654&#"#54&#"327#"&&5516&#"##"&55#5!65!3$675!663266323IT5iK  SZICGJ7FDFLZR Ki5LI3D ?S9chvPLMJCT>hYckVDRN?S9chv"\nl9@k ^WoK@'VAPLMHxIXQC ^lwezN^mM,,1q6 nbfo6R_QSOEO1<]EYb6*3@GS##!326553#"&55#4&#"##"&55#5!65!3%2655!6632#!#"&54636@A@fX^cWCRM?S9chvSAPLMpV\WBIg($"RkGVPA ZkvbDYnM,,1q6"]EYb_Rb1:SEb;X )4=####"&'#"&&546632132655!5!5!654&&#"$327 @bU6LqMGrA@pHQq7@79B(,X>&E!6Y5R4'RpXl-)9E;lGGmLM>6>0Y89U.24F "~2N2@KT##5#"&'##"&'#"&&546632132655!2655!5!#32665654&&#"$327ӌ@qP{bU6LqMGrA@pHQq7@79B[`lbqc:`8,X>&E!6Y5R4'R4BOXl-)9E;lGGmLM>@OK66UZWo1Y:}>0Y89U.24F-=IR##'#"&'#5332654&##&'#"&&546632&#"665546335!5!##"3373-??YUNV;7 VJABPKHU- yeGrA@pH,*,'(F!iNJվ:OD6C1&6Y5R)UBU=!7I>/8@*`z;lGGm< /K'/JB6\n)50,33H:U.'2;###"33#"&'#"&&54663266335!5!654&&#"$327?hwibf a?GrA@pH`x$zO,o,X>&E!6Y5R4'Rba]f4^Y(.;lGGm0Y89U.24F9-8A326653#5#"&'#"&&54663266335!5!##654&&#"$327u^O&G/;?[9DhoLGrA@pHRo QRV,X>&E!6Y5R4'^VO^ C1'0;78C;lGGm0Y89U.24FLU##5#"&'#"&&546632&#"676675&&547!5!632#74&#"33#"326653327?xOGlhDCrD@pE,!('G"G-7KKW2:34=UK86HK\HG633:9kHHn< - &)5@ RE9*6 VF.>A1=F5?5=?6`>s0U-13H8Zkt##5#"&'#"&'#"&&546632&#"676675&&547!5!632#74&#"33#"32675>325!566554&&#"3$3278?eHNt5MpiCCrD@pE,!('G"G-7KKW2:34=UK86HK`J[o =g@IdR4R('S=2S1/S46Z6O4&6R4@OE532:9kHHn< - &)5@ RE9*6 VF.>A1=F5?5>>]bBd7?466R+.S5,Q68S,xU-13H%1:F####"&'#"&&546632663!5!5!747.#"$327654&#"3@$1W6:[oLGrA@pHXtX6O ,W>&E!6Y5R4'MM;>NM?RH.6R-0+8B;lGGmfHHtpNGrA@pHRnrHIg%(6!,W>,X>&E!^5Z6Q4'D6Y5R4'R3@C<;E;lGGm0X8>0Y8;V-24FGR####"&'#"&&54663263354&#"'!5!632377654&&#"$327%#"3265֌@YR8ShFGrA@pHbx2Xf24dTP,X>&E!6Y5R4'e8GA35;6RUbh1+08;lGGm&E!6Y5R4'g8FA35<6R]zD_j*%4<;lGGm&E!6Y5R4'R4C@;AN;lGGm0Y89U.24FOVGR[#"'532654&#"#54&#"327#"&'#"&&546632663236675!5!654&&#"$327RIT5iK  SZICGJ7FCGLZR MjlIGrA@pHRpX:JTJCs,X>&E!6Y5R4'wZFn?9fSJ`k] \l^LSf9H>5=;lGGm0Y89U.24FWGT_h##5#"&55&&#"#54&#"327#"&'#"&&5466326632366326655!5!#32665654&&#"$327W?rQ|A6IL7FCGLZR MjlIGrA@pHRpX:JTXP?WMRotpd:`8g,X>&E!6Y5R4'R4C{&;j^ \l^LSf9H>5=;lGGm0Y89U.24F|"->G##5#"&'#"&&54663266325!5!654&&#"66554&&#"3$327|?eHFkpMGrA@pHQolEId2v,X>&E!XR('S=2S1/S46Y5R4'R5?@9:D;lGGm0Y8@6R+.S5,Q68S,yU.24F28CL326553#"&'#"&&54663232654&#"!5!632###654&&#"$327EGF=F?hY\g eBGrA@pHh|eWoK@?!]ol8A,X>&E!6Y5R4'HxIXQC ]ml],2;lGGm0Y89U.24F+2=F##!326553#"&'#"&&54663232655!5!#!654&&#"$327@A@;F>fXX` eAGrA@pH_x9U]($",X>&E!6Y5R4'RkGVPA Zkm\,1;lGGm<^H_Rb66b;X>0Y89U.24FR,:FQ####"&&547##"&5463354&#"#&546323663!5!5!654&#"3%#"3265,@$1W69Z3YROagRf24-8@XKTPM.PMM;>NM?fd9FA25;RH.6R-/U7+&Ubh^LO[dCK=6M\na[6K::LK<;I?64?LDR1?J##5#"&'##"&5463354&#"#&5463232655#5!#32665%#"3265?qQ|YROagRf24-8@XKTPT\kcpe:_8Sd9FA25;R4BUbh^LO[dCK=6M\na[GYK66Udbgw1Y:?64?LDR6DO##5#"&'#&5##"&5463354&#"#&5463232655#5!#32665%#"3265?qQDj!II[OOagRg35.7>XKTOT\kcpe:_8Tg8FA35<R4B/-C>VD_jXHJUdDJ=5M[na[GYK66Udbgw1Y:;20;LDRO\g#"'532654&#"#54&#"327#"&&547##"&5463354&#"#&546323663236675!5!#"3265IT5iK RZHDGJ6GCGLZR  Ki6 YROagRf24-8@XKTPY:JU  KBsd9FA25;wZFn?9fSJ`k] [m^LSf9?nF*"Ubh^LO[dCK=6M\na[.3Z?;U66?64?LDR7HS##5#"&&547##"&5463354&#"#&54632366325!566554&&#"3%#"3265?dHCi;YROagRf24-8@XKTPmEHdCBS((R>2S0/S3:d9FA25;6R4@:kGUbh^LO[dCK=6M\na[8??466R+.S5,Q68S,?64?LD#*5###"33#"&547##"&546335!5!!3633#"3265?hwibx)ZSO`gRgIusf8FA25<Rba]f4xXNM?_f8FA25<RH.6R-/U7+&Ubh^LO[66K::LK<;I?64?LD(3###"&'##"&546335!5!55#%!3265#"3265?X=[j ZSO`gRg=QRJTf8FA25<R--1eZUbh^LO[6[c^F?64?LD#,7###7#"&'##"&546335!5!55#%!3265#"3265?H[j ZSO`gRg=QRJTf8FA25<R/cYUbh^LO[6[c^F?64?LD'1:E##5#"&&547##"&546335!5!66325!6654&&#"327%#"3265>fHCoAZSO`gRgrGIgD,W>P6=5Z6Q4'f8FA25<R3@:lG"Ubh^LO[6;BB4>0X80V-24F=?64?LD#0ALU`##5#"&'#"&&547##"&546335!5!66326655!%###732665654&&#"$327%#"3265?qQPtuSGrAZSO`gRgvKSpTZJrg n_:`8 ,X>&E!6Y5R4'f8FA25<R4C@;AN;lG"Ubh^LO[6;CI;LXKUde ^i1Y:}>0Y89U.24F??64?LD!+5>I##5#7#"&&547##"&546335!5!66325!6654&&#"327%#"3265>F CoAZSO`gRgrGIgD,W>P6=5Z6Q4'f8FA25<Rӛ:jG"Ubh^LO[6;BB4>0X80V-24F=?64?LD '0;F####"&547##"&546335!5!6323!54&#"!#"3265%#"3265 @YROa0ZSO`gRgTPP24,Udbgw1Y:?64?LDX?64?LD +3>I##5#5##"&547##"&546335!5!6323!54#"!#"3265%#"3265 :Hd\OOa)ZSO`gRgSP8gf8FA26;f8FA25<6R\yD_jXHA+Ubh^LO[6 na[!d;20;LEF?64?LD8IZep##5#"&&547##"&547##"&546335!5!632366325!5!54&#"#&547#66554&&#"3%#"3265%#"3265?dHCi;YROa+ZSO`gRg!TPmEHdCz24-8@S((R>2S0/S39f8FA25<d9FA25;6R4@:kGUbh^LG.Ubh^LO[6 na[8??46dCK=6>,6R+.S5,Q68S,?64?LDX?64?LD"&1<####"&547##"&546335!5!!5!!#3#"3265%#"3265@ZSO`+ZSO`gRg7tBf8FA25<f8FA25<RUbh^LG.Ubh^LO[65?64?LDX?64?LD!0;##5#"&5##"&546335!5!2655!%#32665%#"3265@qP}ZSO`gRg mT[maqd:_80f8FA25<R4BUbh^LO[6FWKUb^gw1Y:?54@LDO>LW#"'532654&#"#54&#"327#"&&547##"&546335!5!675!366323%#"3265IT5iK  SZICGJ7FDFLZR Ki5 ZSO`gRg0JCAY;JTf8FA25<wZFn?9fSJ`k] \l^LSf9?nF*"Ubh^LO[66U.3Y@?64?LD'8C##5#"&&547##"&546335!5!66325!66554&&#"3%#"3265?eHCh;ZSO`gRglEIdR('S=2S1/S4 f8FA25<R5?:kGUbh^LO[68??46R+.S5,Q68S,?64?LD,)/BM326553#"&55##"&54633!5!632###2654&#"#&547##"3265GF=F?iYcjZSO`gRg%\ol8AXnK@>K?/fX^dZSO`gRg\]0($"f8FA25<RnGVPA ZkvbUbi^MOZ6`R^b:V8@54?LCF:BM632#&&#"32673#"&&5467&&'##"&546335!5!##6335!3#"3265C-& _m > QANWWN?Q >8\>Ig4;6- ZSO`gRgcWDf8FA25<+.#0 ]B+@^FG]@**I-:c>@d -Ubh^LP[6666?54@LD0<####"&'#"&54732655!5!!3267663!654&#"3@$1W6@`oIx[a/jdk_Fg qXOMM;>NM?RH.6R-:38@K[K66Uc] gwSCTbK::LK<;I/=##5#"&'#"&&54732655!5!6754732655!3#32665nj@qQX{rSPv?[af[aqjdm^jdpd:`8R4BNHFPEVK[K6r]K[KUc] hvUc] gw1Y:&##5#"&'&&'32655!5!#32665@qQ{[~632#&&#"32673#"&&5467'#"&&53327&546335!5!##C-& _m > QANWWN?Q >8\>Ig4;6.<3\;@d(U@GB#/??66Zj6632#"'532654&&#"#5#"&&55&&#"#54&#"327#"&&546323663266325!5!66554&&#"3[D<_76_<FZ+K-7J#=`E>b7H>GJ7FDFLZR Ki5o]JTVO5Oe@F\WdL%$L9.M-_I4@9fCGi74^R4N*5S-3@9iGBPk] \l^LSf9?nFg{Y@AX1.5<>3664Q),P3*O4R_O[jz##5#"&&5&&#"#5#"&&55&&#"#54&#"327#"&&546323663266325!5!6655!663%#3266566554&&#"3@qQRv>I?7H"=`E>b7H>GJ7FDFLZR Ki5o]JTVO5Oe@F\WZJOZCajd3`A:`8?L%$L9.M-_IR4BDyN4I4S.3@9iGBPk] \l^LSf9?nFg{Y@AX1.5<>36J;MRZ4?zdc^ <^51Y:4Q),P3*O4R_\?Wf##5#"'#"&55&&#"#54&#"327#"&&54632366326655!5!67&&5466325!##3$6654&&#"3\?P:rPnG=GJ7FDFLZR Ki5o]JTVOG`6"~!N1WI326653#"&&547&&#"#54&#"327#"&&546323663266335!5!##4\9;[3=AvNLyEFBGJ7FDFLZR Ki5o]JTVO:T#V t[id8Y24\;LvA?rIRWk] \l^LSf9?nFg{Y@AX75;=~664q?O#"&&547&&#"#54&#"327#"&&54632366326675!5!&&#"32665 Bk=EyKKxEHBEH7FDFLZR Ki5o]JTTK=Wg@4\:9[44[9:\4AmEIr??rI SYk] \l^LSf9?nFg{Y@AX;93>66Y22Y98Z22Z8T332#"&&'332654&##"&'4'5&#"#54&#"327#"&&546323663266335!5!##{NC4-VvkdJm9?[UHLXC*>^jEH7FDFLZR Ki5o]JTSL,FY9} )40-OXJ\1W9?PA3A704pk] \l^LSf9?nFg{Y@@X$"($66 IY32654&#"#&54632#"&&'=4&#"#54&#"327#"&&546323663266335!5!##‹;kEMd?1*;1WBJ[9kFSNIEEH7FDFLZR Ki5o]JTTK;W$Y-fYvqAf9Q@2@6, ?KZH9X1D{Q^gk] \l^LSf9?nFg{Y@AX<:AC|66xE###"33#"&547654&#"#54&#"327#"&&546323663266335!5!x?hwibxK?FI7FDFLZR Ki5o]JTUL@^%zO7Rba]f4xSXk] \l^LSf9?nFg{Y@@YHE..6T##5#"&&55&&#"#54&#"327#"&&546323663232654&#"!5!632#"'32665?xXSyAC9HJ7FDFLZR Ki5o]JTVNDZ7\xA7\6R-p0ok###"&'&&#"#54&#"327#"&&54632366325!5!!32658?X=Yj A0GJ7FDFLZR Ki5o]JT TLK/UQRJTR--1bX-5k] \l^LSf9?nFg{Y@@Y166[c^FQZ6632#"'532654&&#"##"&'&&#"#54&#"327#"&&54632366325!5!!!3265]E;`76`<$FY+J-8L#?S9Ue B1GJ7FDFLZR Ki5o]JT TLL/LMEP4@8fCHi73_R4N*6U0,,1`W/6k] \l^LSf9?nFg{Y@@Y266Yb]E}>HQ##5#"&&55&&#"#54&#"327#"&&546323663266325!5!6654&&#327}>fHCoAG=GJ7FDFLZR Ki5o]JT VM5QrGIg0(6!,W>5Z6Q4'R3@:lGBRk] \l^LSf9?nFg{Y@@Y3.;BB460>0X8V-24FLW####"&5514&#"#54&#"327#"&&5463236632663354&#"!5!6323#"3265Ό@ZRO`DEGJ7FDFLZR Ki5o]JTVMBWK.f24Y TPe8GA25<6RUbh^Ligk] \l^LSf9?nFg{Y@AXMNdCK6 na[!?64?LD>BM####"&5514&#"#54&#"327#"&&546323663266335!5!#3#"3265@ZSO`DEGJ7FDFLZR Ki5o]JTVMBWK.gf8FA25<RUbh^Ligk] \l^LSf9?nFg{Y@AXMN665?64?LD:G##5#"&55&&#"#54&#"327#"&&54632366326655!5!#32665?rQ|A6IL7FDFLZR Ki5o]JTYP>VNR#pd:`8R4C{&;j^ \l^LSf9?nFg{Y@AXB3LTZ66d an1Y:ORc#"'532654&#"#54&#"327#"&&55&&#"#54&#"327#"&&5463236632663236675!5!NIT5iK  SZICGJ7FDFLZR Ki5H?GJ7FDFLZR Ki5o]JTVM7S[VNRsppd:`8R4C{&;j^ \l^LSf9?nFCUk] \l^LSf9?nFg{Y@AX6015Y@AXB3LTZ66d an1Y:q>O##5#"&&55&&#"#54&#"327#"&&546323663266325!5!66554&&#"3q?eHCh;H=GJ7FDFLZR Ki5o]JTUM5RkEId=R('S=2S1/S4R5?:kGAQk] \l^LSf9?nFg{Y@@Y3.8??466R+.S5,Q68S,J*br332#"&&'332654&##"&546335!5!##$#"&&55&&#"#54&#"327#"&&54632366326636654&&#"3NC4-VvkdJm9?[UHLXC*JegM}ig1o56oPHp>H=GJ7FDFLZR Ki5o]JTUM6RtK=R('R=3U10T5)40-OXJ\1W9?PA3A7DIIB66@Dk;:jD:kGAQk] \l^LSf9?nFg{Y@@Y4.8@b6S+.S5,Q68S,GN##!326553#"&55#4&#"#54&#"327#"&&546323663232655!5!#!@A@fX^cC=EG7FDFLZR Ki5o]JT TKCY3V\($"RkGVPA Zkvb9Kj^ \l^LSf9?nFg{Y@@YI@_Rb66b;XY632#&&#"32673#"&&5467&&'&&#"#54&#"327#"&&546323663266335!5!##ZC-& _m > QANWWN?Q >8\>Ig4;6$08'EG7FDFLZR Ki5o]JT OHO-P7+.#0 ]B+@^FG]@**I-:c>@d6'$*l^ \l^LSf9?nFg{Y@@Y@$$66%7C####"&'#"&&546632663!5!5!66747.#"3$654&#"3ݍ@$1W6:\gJHp>?oFSmY7ON*'Q<3T10T4MM;>NM?RH.6R-1,6A:kGDi9O?%)6/I).R4,Q68S,K::LK<;I-?##5#"&'#"&&5466326655!5!#32665&5&&#"32665@qPSviQHp>?oFWqPU#jdqd:_8^N3T10T4?oFNj\=JTJCk/R''Q=3T10T4wZFn?9fSJ`k] \l^LSf9I@3=:kGDi9F927Y@;U666S+.S5,Q68S,m"2C##5#"&'#"&&54663266325!5!6654&&#"3 66554&&#"3m?eHGlhKHp>?oFLhmFIdAR''Q=3T10T4R('S=2S1/S4R5?@:7C:kGDi9C79A?466S+.S5,Q68S,6R+.S5,Q68S,:K632#&&#"32673#"&&547#"&&54663266335!5!##&'&#"326767ZC-& _m > QANWWN?Q >8\>Ig4:OEl=&:kGDi9Y&%663%m,Q6Tb(!2`)\l326553#"&5532654&#"#&54632#6632#"'532654&&#"#5#"&&5466325!5!66554&&#"3FF=G>gYckWoK@>K?n\\ok[D<_66_< FY+J.7J"=_F>a78b>F]ncM%%L8/M-_IHxIXQC ^lweSOEOOC[nnbfof3?8gCGi74^R4N*5R.4@9iGDg8>3664Q),P3*N5R_`"~-4-3B##5#"&547#5%32655%#57&&54663276654&&#"-;V96GF(5,DRѼGNO-S79U-:? 42 ;'5G7>6RQ2:D3(*3aL( %_>,L-,K,7T1z (A.6 A-3K`{"m*/`)J326553#"&5532654&#"#&54632#$326653#"&&5466335!5!##FF=G>gYckWoK@>K?n\\ok4\9;[3>AwNLyEJUe[HxIXQC ^lweSOEOOC[nnbfoid8Y24\;LvA?rITv;~66`)C326553#"&5532654&#"#&54632####"33#"&546335!5!FF=G>gYckWoK@>K?n\\okٍ@iwjbxCHxIXQC ^lweSOEOOC[nnbfofRba]f4x}|64.<H####"&''#57&&546632&54663!5!5!76654&#"654&#"3@#1V68XINO-T89U.:>4\;P; 23F:6F9>LL<>MM>RH.6S,,)}(dB0Q0/O.>]/X :U.6 %K32IE/7PJ;;KK<;I`7)>BM326553#"&5532654&#"#&54632#####"&546335!5!#3#"3265FF=G>gYckWoK@>K?n\\ok/@YROagRfe8FA25;HxIXQC ^lweSOEOOC[nnbfofRUbh^LO[665?64?LD` )>L326553#"&5532654&#"#&54632###5#"&54732655#5!#32665FF=G>gYckWoK@>K?n\\ok@qQ|[ajdpd:`8HxIXQC ^lweSOEOOC[nnbfofR4C*K[K66Uc] gw1Y:`)d326553#"&5532654&#"#&54632##"'532654&#"#54&#"327#"&&5463236675!5!FF=G>gYckWoK@>K?n\\okIT5iK  SZHDGJ7FDFLZR Ji6o]JT LBXHxIXQC ^lweSOEOOC[nnbfofwZFn?9fSJ`k] \l^LSf9?nFg{Y@:V664-$3@##5#"&&5467'#57&&54663276654&&#"655'&#"3-;V93O,iPGNO-S79U-:? 42 ;'5G7>Q/(,BRI:6RM.5)I.J^G &^>,L-,K,7R3z (A.6 A-3K[^K(E96B`F"mA09CS6632#"'532654&&#"#5#"&'#"&55#5!6325!6765366554&&#"3[D<_76_<FZ+K-7J#=`EOqU6jpvaoLF\3EcN SSL%$L9.M-_I4@9fCGi74^R4N*5S-3@ZO!'t66Q>3:' \da4Q),P3*O4R_4=GZ6632#"'532654&&#"#5#7#"&'#"&55#5!6325!676536554&&#"3277[D<_76_<FZ+K-7J"=GMqU6jpvaoLF\3EcN SS*$L9.M-_I"" 4@9fCGi74^R4N*5S-#ϞWL 't66Q>3:' \d5U-,P3*O4R_ 1,!(1326653#"&&'#"&55#5!##6335!67534\9;[3=AvNFrHO2jpvI[a KhP SSid8Y24\;LvA6c@"t66N~=)\d07GP##5#"&5732654&#!"326653#"&&'#"&55#5!5!66365!!23$6753>4hoGGR?e1W78W0>?rKDnEO2jpvKatZ[PTQiP SSRu}m #,6"id8Y21X8Iq?6c@"t6~JNJxbZ:9 Q^=)\d,&-6326653#'##7&&'#"&55#5!##6335!67534\9;[3=l]EDRj O2jpvI[a KhP SSid8Y24\;dpQ"t66N~=)\d!(/9F32653#5#"&&5467&'#"&55#5!##6335!67&53#"326655tgf]_e>K;V<9X2?4P"Z;jpv>ڂ_H;\M SSKTZSB2D"JFCSZKm;8*30V9>\B&0t66Oo5%\dXNEBM,C$4F&6#"&&'#"&55#5!6675!673$&&#"32665Bk=EyKDrHP2jpvcoHPSSc4\:9[44[9:\4AmEIr?5a@"t66=LT@)\deY22Y98Z22Z8)/?GW##5#"&54732654&###"&&'#"&55#5!6675!65!!23$673$&&#"32665>[DgoFGP<28DxKDrHP2jpvQoHZ.b[PTQaPSSc4\:9[44[9:\4R7?wi #,6"hAGq?5a@"t6=LwcV:9 KX@)\deY22Y98Z22Z8F"*:#'#7&&'#"&55#5!6675!673$&&#"32665Bk=q[EDRn P2jpvcoHPSSc4\:9[44[9:\4AmE^oR"t66=LT@)\deY22Y98Z22Z8"*####"&'#"&55#5!!#3265673э?`W;SY;flv..A78@KOPRWk5/(3t66;KJ<|@* \da#&/=E##5#"&54732655!#"&'#"&55#5!!#3265#32665673a@qQ|[a`W;SY;flv~6..A78@jdpd:`8KOPR4BK[KWk5/(3t66;KJ<0Uc] gw1Y:p@* \d "*###"&'#"&55#5!&55!!3265673 ?X=@[]@flv))QRJT2KOPR--130-:t66[c^F@* \d &.###7#"&'#"&55#5!&55!!3265673 ?H@[]@flv))QRJT2KOPR/2/-;t66[c^F@* \d]/4=E6632#"'532654&&#"##"'#"&55#5!!&55!!3265673l]E;`76`<$FY+J-8L#?S9y4\?flvz:)nLMEPEKOP4@8fCHi73_R4N*6U0,,1a,9t66Yb]E@* \d!+6####"&'#"&55#5!66335!!#367673%#"3265@ZSH]H+flv=I,g@I OPf8FA25<RUbhNBt63# \d?64?LDt")8AL##5#"&5##"&'#"&55#5!66335!2655!%#326656773%#"3265t@qP}ZSG^9UflvlJ-gJT[maqd:_8GOPf8FA25<R4BUbhNA6t6FWKUb^gw1Y:p3# \d?54@LDt+3##5#"&'#"&55#5!4732655!!#32665673t@qQ^~V9flvP[ajdpd:`8KOPR4BYO&.t6K[KUc] gw1Y:p@* \d:&7##5#"&'#"&55#5!66325!675366554&&#"3:?eHTxQ4flvWvPId(K OPR('S=2S1/S4R5?\O!'t6HS?4T<) \df6R+.S5,Q68S,%-###"&'#"&55#5!&55!!5673 673?X?A\]?flv-(HhORSKOPR+.241,9t66;0 [e@* \dCP`6632#"'532654&&#"#5#"&&547!326553#"&5532655!5!6325!!66554&&#"3%[D<_76_<FZ+K-7J#=`E>b7@A@fX^cbV\w0boKF\($L%$L9.M-_I4@9fCGi74^R4N*5S-3@9iGGVPA Zkvb_Rb66Q>3b;X4Q),P3*O4R_GTg6632#"'532654&&#"#5#7#"&&547!326553#"&5532655!5!6325!!6554&&#"3277%[D<_76_<FZ+K-7J"=G=b8@A@fX^cbV\w0boKF\($^*$L9.M-_I"" 4@9fCGi74^R4N*5S-#Ϟ8gEGVPA Zkvb_Rb66Q>3b;XU-,P3*O4R_ 7DSdt##5#"&&54&#"#5#"&&547!326553#"&5532655!5!6325!!$66325!66366554&&#"3$66554&&#"3ӌ?eHCh;VDQL=`E>b7@A@fX^cbV\woKF\($XiAIdVCR('S=2S1/S4&L%$L9.M-_IR5?:kFN^kJ3@9iGGVPA Zkvb_Rb6Q>3b;X6039?42=h6R+.S5,Q68S,4Q),P3*O4R_*5M\##5#"'#"&55!326553#"&5532655!5!32655!67&&5466325!##3$6654&&#"3>Q;sPn>A@fX^cbV\w%BN)$+T194[8fX^cbV\w($@@88CRpXllXGVPA Zkvb_Rb66b;XW>MM>3>326653#"&&547!326553#"&5532655!5!##6335!!4\9;[3=AvNLyE3A@fX^cbV\w[_ ($id8Y24\;LvA?rI"GVPA Zkvb_Rb66J~b;X-8###"33#"&547!326553#"&5532655!5!!!6633?hwibx#A@fX^cbV\w($6%vLRba]f4x?2GVPA Zkvb_Rb66b;X**6ES##5#"&55&&#"33#"&547!326553#"&5532655!5!6655!!663%#32665?qQ}@HZ_ibx .A@fX^cbV\wC1RW($nKym`pd:`8R4C{-aa]g3x0*GVPA Zkvb_Rb6MLVKb;X56Uc`an1Y:(5###5&&#"!326553#"&5532655!5!!36632=RteD?_A@fX^cbV\w($mIIgR$e6D?9GVPA Zkvb_Rb66b;X9>>/^6GX##5#"&&547#"33#"&547!326553#"&5532655!5!66325!!66366554&&#"3^?eHCh;hwibx#A@fX^cbV\w{Y4Id($6%vLR('S=2S1/S4R5?:kG9/ba]f4x?2GVPA Zkvb_Rb6"%?4b;X**6R+.S5,Q68S,8M##5#"&'!326553#"&5532655!5!632#"'32665!254&#"#&547#@wY|?A@fX^cbV\w"6R,q/ojfX^cbV\w"6R,q/migu[`'"^[yA7:C:'jcpe:_8R4BNHNX{GVPA Zkvb^R`6 /R3dacts'K[K6VBT5GF;G/``Uc]gw1Y:4?326653#5#"&&547!326553#"&5532655!5!##6335!!u^O&G/;?[9Ae8>A@fX^cbV\w\R($^VO^ C1'06gE GVPA Zkvb_Rb66Nvb;X<,7C####"&&547!326553#"&5532655!5!!!663!654&#"3<@$1W69Z3>A@fX^cbV\wY<($^<OMM;>NM?RH.6R-/U7GVPA Zkvb_Rb66b;X+0K::LK<;I$-6###"&'!326553#"&5532655!5!&55#!3265?X=Rf"A@fX^cbV\w($QRJTR--1RJGVPA Zkvb_Rb6 b;X[c^F(1:###7#"&'!326553#"&5532655!5!&55#!3265?HRf"A@fX^cbV\w($QRJTR/PIGVPA Zkvb_Rb6 b;X[c^F @IR6632#"'532654&&#"##"&'!326553#"&5532655!5!&55#!3265/]E;`76`<$FY+J-8L#?S9Nb A@fX^cbV\w=c($LMEP4@8fCHi73_R4N*6U0,,1RJGVPA Zkvb_Rb66 b;XYb]E'4>G##5#"&&547!326553#"&5532655!5!66325!6654&&#"327ڌ>fHCoA@A@fX^cbV\w|RIg($,W>P6=5Z6Q4'R3@:lGGVPA Zkvb_Rb6JWB4b;X>0X80V-24F=(26A####"&547!326553#"&5532655!5!!6335!%#3#"3265=@ZSO`5A@fX^cbV\wZn($/0Jg<f8FA25<RUbh^L.$GVPA Zkvb_Rb6X$bb5?64?LD .8?NY##5#"&5##"&547!326553#"&5532655!5!!6335!2655!%#32665%#"3265 @qP}ZSO`6A@fX^cbV\w*($,2Lg;T[maqd:_80f8FA25<R4BUbh^L+$GVPA Zkvb_Rb6X'bFWKUb^gw1Y:?54@LD$.;##5#"&'!326553#"&5532655!5!!2655!%#32665@qQ|AA@fX^cbV\w#($[apd:`8R4BvGVPA Zkvb_Rb6XHYnbbw ]k1Z9HY#"'532654&#"#54&#"327#"&&547!326553#"&5532655!5!675!!66323IT5iK  SZICGJ7FDFLZR Ki5DA@fX^cbV\w0JCF($dEJTwZFn?9fSJ`k] \l^LSf9?nFGVPA Zkvb_Rb66Ub;X?FY@'4E##5#"&&547!326553#"&5532655!5!66325!66554&&#"3?eHCh;LA@fX^cbV\wuPId($R('S=2S1/S4R5?:kGGVPA Zkvb_Rb6HS?4b;X6R+.S5,Q68S,O2<C##!#326553#"&55!326553#"&5532655!5!655!!#!O@,A@eY^c>A@fX^cbV\wl\>($\)#!RpGVPA [jvbGVPA Zkvb_Rb6`S\b;Xb9UF3?632#54'#"&55.5467&&546335!5!#!32655&#>F6G1g;55;?5q`Pw@88&1UFՉ-&"!'"''*<v/8EE8iJf.KOJs";*:;66&00&0AM####"&'#"32673#"&&5467&&546335!5!!#"633663!654&#"3@$1W6Lj PWVO?Q >8\>Ig4;6'2ZIJ4C-& qUOMM;>NM?RH.6R-QE^FG]@++I-:c=Ad=.??66+.#0 P^K::LK<;I->BM####"&5#"32673#"&&5467&&546335!5!6335!#"633#3#"3265@ZSNaOWVO?Q >8\>Ig4;6'2ZIJ(_Dg4C-& f8FA25<RUbh^K^FG]@++I-:c=Ad=.??6?+.#0 b5?64?LD-F##5#"&5473254&#".5467&&546335!5!65##"63239\B^g P:Gd3&"7ATmUISF8>lU [4.=iBIsC/QUM{$<+:;6w`'* , FH?=@PE\632#"'532654&#"#54&#"327#"&546323667&&#"3&&5467&&5463!5!5!#!>H6I`w*2C?  +/&!%('(#"'.+  >C<3*0$_Jwu;nIYG99'2UF '*=UE@1:H$3)&060/70%*3$H:7A/"+2>~`Dk>,KPHs#;+:;66F;G632#5#"&54632&&#".5467&&546335!5!##654&#"3>&!39Lm8/<*j@v&L>F9+$(-IIWN@(2<9@ 54632#&&#"6#"&54632-XJ/E$28/4=  VU\'D**8CU[t& 8,JC*/6.Q6R6+AUUA;9]q]$+Q%1#6&#"3###5354&#"#54632663632#"&5OD4-')0?3==5>U[s' >.4M>(/:3N6R6+AUUA;9]q\'-R"[y$#6&#"3###5354&#"#54! 663DA9($&)?z}=`C;3JC*/6.Q6R6 ZmmZ.9$0#6&#"3###5354&#"#54! 663632#"&5OD4-')0?z}=`EA54M>(/:3N6R6 ZmmZ1;6"yd6a#6&#"#.##532&5463D7-%*1=7GA8&%>JL0BBL=&074)(XM5EI ;S6u'#&&#"#.##5325463#"&5463+J.4,1:=7GA8&%=JJ/JGK?*5<6,)XM5BG =Th1  "yj1\ '#6&#"#.##532.##5325463C3-%*17=H@;('9?E22G?5)(?GK5AAL=&074#3* + %+[R,U_;S1u '3#&&#"#.##532.##5325463#"&5463+J.4,1:7=H@;('9?E22G?5)(>GK4IFL>*5=7&$3* + %+[R,T^JL0BBL=&074'&6R6VK5EI ;SU#/#&&#"3###53.##5325463632#"&5JJ.4,1:?6F@8&%=JJ/JG4K?*5<6+&6R6VK5BG =TN< *###53.##532.##5326&54632#GK4IF6L>*5=7&$6R61* + %+[R,T^` @@;E>eX]ckW[nB;[SLW4;68?GVOA \mvaXYc66c *32#54&#!7#326553#"&5532655!5!!FmekeX]ckW[n';d[dcCHGVOA \mvaXYc66cg?632#4&&#"32#"&7332654&#"&&5467&&546335!5!##C-%Ka-=!G5NWh^ghm_i9cQDPKLSv<;6'2ZIJ+.#0 :\4&D,]EH\QMISfaIK72469b>?c=.??66gE632#6&&#"2#54&#"327#"&5467&&5467&&546335!5!##C-%Kb-=!H5NWXOo}6dR=H=/ EY)%;?;6'2ZIJ+.#0 ;\4&E,]EG\}#dr;1.60OF-EdA?c=.??66 e,33#"32653#"&546675&&546335!5!##KL>;=:MWHRf7ndy(:0NbNN ,2,41468>UOjkUM,:B7EBs6644/=327#"&54675%#57&&5466323###76654&#"VAH9$#,MjMEκILN-T89U.;?ˌ23F:6F6:B2:7 3QR@X *eB0Q0/O.>^06R %K32IE/7O @>632##"327#"&54632&#"3&&5467&&5463!5!5!#!>H6Ijz +d01;+&$4;SJE<$#wt>tN_I99'2UFw'*=gR.$() ) >;5Cj}`El>/LQHs#;+:;66#54&&#"3###53663U>Jn;d?4nTFW%Um6R6u #54&#"3###53663N>rw?{|g]Un6R6u?#54&#"3###53663{??|~h^Vn6R6tt#54&#"3###53663??Ź}~i_Wn6R6u#54&#"3###53663??}i_Wn6R6t#54&#"3###53>3>¼~S?`j`$VL6R6[n2'54&#"3###53>3*?ЋU?bɠ ka%WK6R6Zo3G'54&#"3###53>3W>◵W?dӭခ kb&WK6R6[n4}'54&#"3###53>3?Y?eݹ⁂ ld'WK6R6[o4'54&&#"3###53>3?dٱZ?gゃ H\-'XK6R6[o5'54&&#"3###53>3tr?g澼\?i3u?j^?k>tW  H]0*WK6R6[p6R#54&&#"3###5366$3x@m`?m >tW H]0*XJ6R6[o7'54&$#"3###5366$3%{@pb?o?uX  H_1+XJ6R6[p7'54&$#"3###5366$! 2}>se?q@vW  H^3,XJ6R6\o8#54&$#"3###5366$!3>?vg?t*AvW H_3-XJ6R6[p9&'54&$! 3###5366$!YJ?yi?v4BwX  H`5.YI6R6\o:['54&$! 3###5366$!V?|l?x?(CwX Ha6.YJ6R6\p:'54&$! 3###5366$!c?n?{J4DxW  Ha70YI6R6[p<'54&$! 3###5366$!o@p?}V?EyX Ib81YI6R6[q<'54&$! 3###5366$!z?r?~aMFyX Hb91YI6R6\p</'54&$! 3###5366$!>t?kYGzW Gd:2ZH6R6[q=f'54&$! 3###5366$!>@w?vdH{X Hd;3ZH6R6[q>'54&$! 3###5366$!d?zy?pI{X Ge<3[H6R6[q?X#&54632# ;@%Z#'3#'j 1 1 #3##7##7#537#53733733##3Z'.C..C.'.C..C.'͹>>>><$+2$#5&&'3.546753#&&'654&'.\B,YnKA;CQ8n^,Sd J=3AS8E@OO>=O0fG|--&&..&O==OO==Of..&&--&wOO@AOOAD#3//44/.4-OOAAOOAb4..43//3''1!'#"&&5467&&54632#6&#"6773$67'3d_3tIFl;:GG@"L 7533##5!"lSkkE,5=kH0 !6632#"&'332654&#"#!`8Rh.5mQgE ^EWYZT:XB#-Ck=FqBk[BHgUS]6.H8$#"6632#"&532#32654&#ǁbbqIi{3iNq`n AT5`\M\ZSDN?sLLs?NDZMMZ\KK\hdVUdgRV=6U11U6JJ>JKHRSGJKE.&6326'#"&546632#"&'3>54&#"3ND^[kEi4jMpocn AO0]WM]\T~F7?~pCl>kW|'L5Rj`PT`)"n'GZ%'73BYSQ!5!5Q<<;;NZ3#7NYYZ"$##'32654&#"#4663&54632#9c7s<gwSDDPC7a?U2]=lenA^BNJ@nF2E =3:+?!K`xn[J XgiXAL1=85P,<8|TbNY5..5\OJN,*JCNw;XEvz"1$Qd0V78G>c7:D l %!#3#'=JOJRNzP$!##32%32654&##654&##3R5fGjoF7GMMJUYK^bA5U1bNAQC;:BH??K06632#&&#"32673#"&&50Z`u&R{WM{FF{MW{R&t`Zţ[oeGPHYYHOFdn[gP ##3654&##3XXtϒTmlSP !!!!! 'm:::P !!!#F::0"&&#"32667!5!#"&&546632v{SN|HH|NIuGpZ^a[[ap&EOHXXH?uN93\V[gg[pdPW #!#3!WFFF{EG:P#FE%#"&533265bRUeG7;86PagX9HB1P! !#33FF/YJCGP73!3F99P ###3F3FJ  N'%VP_ !##33_F}FFFLK0&&546632#>54&&#"3)[[abZZbN|HH|NN|HH|N[gg[[gg[=HYYHHYYHP ###3254&##3vvFuwHNVnn[FH0w#'#"&&546632326654&&#"38a[[abZ^RH|NN|HH|NN|H[gg[[gj,HHYYHHYP !##3232654&##ĭFuyWU~RSPV$p[Lk]PCEK8,&&'332654&&'.546632#&&#"#i<JPMGS.D>8E>8wF#3#XX:;`eZ3GDR^F#53#53XX;:&97#3#nH?IVS!5S#AAL'56w?0S*"663253#5#"&&5$&&#"326650CwKNqFFqNJwC6]8:\55\:8]6fEH8xy8IFTAd64cDCe56dBPr"632#"&'#3&&#"32665qMKvCCwJNqEE5\:8]66]8:\5HETTFG9xSc46dBBd65eC04*6632#&&#"32673#"&&50DxMeK]E7X33X7E]KdMxDfEdV;C2cHHd2C*!!32673#"&&546632.#"!>;6X4D]JcMzEDzNNu?F3X4Nn >X-B8PeEUUDDsF?V,d['###535463"3'FLL[fD7;&YT<4=&0S* 053#"&'3326655#"&&54663&&#"32665rFAtJiEeI5T0qMKwCCwK6]8:\55\:8]6*H7wKt?dV9D-X<8IFTTEd64cDCe56dBP.#4&#"#3663c9EYMO^FFe?,4kM8Y^da16@ &54632##^#Fg" &54632###532653c"BB1&'"FB?,ys8Y^da"]250R*&&546632#>54&&#"3{GH|MM}GH~M6\98\66\77[6EUUEEUTE=1cHHc11cHHc1Pr*"632#"&'#3&&#"32665qNJwCCwJMrEE5\:8]66]8:\5IETTFI7$xTc46dBBd65eC0S*"663253##"&&5$&&#"326650DwKMrFFsNJwC6]8:\55\:8]6fEI7xz7IFTAd64cDCe56dBPQ, 63#"#3_EL\FF8IR`"a0*+&'332654&&'.546632#&&#"#wHMA9A$7/=L50X8XlFE<5B':1;F20V8WK.96($  ?5(D(YN0;2% ):0,E(A33#"&5#53533&0@KJHLLG2&b|EYMO^"`36ys?Y^da)"%3#3JOKD" " ##33 FGGF"6"%$" !'#373nJOI"#3IjM".%" 7!!5!5!ud:::::VEl1654'&&54633#"33#"&5467654'Vi  NC2&,-  7997  -,&2CN  i].R ]'HI=*/#Y T07K  K7/T Y#/*=IH'] S,]`#3FFdz1EG1##532654&'&54675&&5476654&##532  NC2&,-  7997  -,&2CN  i@],S ]'HI=*/#Y T/7K  K70T Y#/*=IH'] R.]9&63232673#"&'&&#"#1?2*#5g'$5AA$%Xq1 #"&54633#!; L1?$f$673#5&&546753#&&#"3~X B rZ,iyyi,Zr B XCQhhQDB:Mddekk`_dM:Bg^^f.'%!'6654'#53&&546632#&&#"3#Q +)r`4_=cl@MD=Q± %&:;*1S<$-2,A(<\3rX@OIJ$@.203V(BD''#"''7&547'76327654&#"3!=/;.E<;GF<o5;#"&&54663326654&&#3267##"&546323&&#WWeeWWe^LL]]LL^>JI>-x 7'733'73ccGffcccGffx-_#5!5_Eȏ9U63)2#"&&54663654&#"36'##53232654&##5Y33Y99Z33Z9HYYHIYYIW<37+]!'z//4\99[44[99\4^II^^II^!VUU# k!5k66[m 632#"&5$&#"3265^JJ^+M1K\>10>=10?Y``O4O,`O>FF>>EE>JnGt3!535#53533iA}<<;;!`#576654&#"#6632o"$"!9@95A,0S/(_3!!!/<<.(>&@['632#"&'332654&##532654&#"#$E84H"%G;9D8A &) 00 '%; 65:+* * (862<' 2L57w6P."#5#"&'#33265.Fd?2PEE\OM["q&@&'+69632#"&'332654&##532654&#"#%###5#5733'3.E84H"%G;9D8A &) 00 '%; 6$By29I2izz5:+* * (862<' 2VDGG#(^' $#"&5463&&546373#"32653#Wc7s<gwSDDPC7a?'72]=lenA^BNJ@1.-5/0j]eg[oeGPHYYHP"pP"pPw"ZP["[""w"[" ###533654&##3#3XXt__Б̉TmlS|AP_K"0"0"0w"0K"0["UE %''7'77ͥ....-.*#-#"&'#7&&54663273&&#"$'32665+/ZbAs-C<_+.[aAs-C;>$]4N|H$?w$]5N|HU0~Ig[)'Ih/~Ig[)'I+O !HYwOT "HYMI"MI"MIw"MI[""P ###332654##3vvFEuwOnn[KDB\4632#"&'332654&'&&54676654&#"#BslA^1.+1DGA`TTkGC7390:PB&&$#K@LLFs+H,/>%!$K9GV_R7A3,(08,#3! .09RK00S"0S"0S"0S"0S"0S*"0%*+4D!32673#"&'#5#"&&546632536632.#"!6654&&#"3%3:Y1H` LaJv=sLKwCDxLKp; rIMs>F4X64Y8]66]8:\55\:@Y,B8PeG?~~"0>"0>"0>""{"{"{"{0P.#"&&546632&&'57&'376654&&#"3 GF{QPzDDyMDh8/l1H4jK]77\78[54Z9KehHHVR}D>>=g30)%(-/)%4eEFf42bDHh6P."0R"0R"0R"0R"0R"Ci@} &54632#!5&54632#.;;/T*(#"'#7&&54663273&#"$'32665 EH~MdJ-5F!$H|MgI/4#+#6O6\7+6L6\9MvTE:2M%c"uPv"Y0>"PQ"0>"P77#"&547!!!!!!3"$$0ARm '*)1!32673327#"&547.546632.#"!>;6X4D]JR?+?""$$0A3Hn>DzNNu?F3X4Nn >X-B8"0v"0S"0Q"D0S" 0".&&#"32667!5!#"&&546632#5255#53v{SN|HH|NIuGpZ^a[[ap&.,.+OEOHXXH?uN93\V[gg[pd83#8E0S -=5463"3#53#"&'3326655#"&&54663&&#"32665.-.Q^rFAtJiEeI5T0qMKwCCwK6]8:\55\:8]6#61$M)H7wKt?dV9D-X<8IFTTEd64cDCe56dB K" "{L""{v""{87#"&54773#3w"$$0AlF:?"1 -/I1E*8 &54632#327#"&54773#^X""$$0AlF:?1 -/I1*DQ")P"#F""P! !##33#5255#5!\FF/Yi.,.+CGn&83#8EP !#'#373#5255#5_FFbG.,.+J&83#8EP"L"P73!3#5255#53F.-.*N9992#8EE##5255#53FP.-/+O92#8EP73!3#52655#53F[.Q991$g$LP4##52655#53F.-.Q*+61$LP33!&54632#PF~9JP-3#&54632#PFFB  %!5737VVF}}77C"7"A171  #5737LFKKFL!jx!7!5!P_"P."P_ !##33#5255#53_F}FFF.,-*NLK83#8EP.,#4&#"#3663#5255#5|EYMO^FFb>.,.+,ys8Y^da"]25&83#8EP_u"P."0L"0R"0v"0R"0t"0R"0 *!!!!5#"&&5466325!!326654&&#" ("`_ZZ_`"nH|NN|HH|NN|H{78T^[gg[_R8HHXXHHX0*%5>!32673#"&'#"&&54663266326654&&#"3&&#"!>5V4E]JcQy}QM|FH|MQ|{RNu?]\98\66\77[63X43V6>Y.B8PeOIHPEUUEOHHOCsF2dHHd11dHHd26X--X?P"PQ"UP "!###32'32654&###5255#5TFuyWU΍RSPV.,-*$p[Lk4PCEKL&83#8EEQ, 63#"#3#5255#5_EL\FF.,.+8IR`"a #92#8EPu"Pd"@8"0"w8<$6##532654##5&&'332654&&'.546632#&&#"/\@;E@5dV%#H.]qJPMGS.D* xHhdciK6,"#7#"&54775#"&53326533 "$$0Ald>b|EYMO^F9CB! 9KL e`275:C>:(:5UO; 7"0%"88,8&&'332654&&'.546632#&&#"##5255#53i<JPMGS.D*!#"&&547!.#"#66367!3zEDzNNu?6X4D]JcQn3X4*EUUDDsF$>X-B8Pe d[=V,\$57T9RR9[$'57$RR8SSk^' #"&5533253'GAAF,[[-FF5 PP ow &54632#6ob* #"&54632&&#"3265:,+;;+,:+"!!"77--77-!!""7&3327#"&5477"""K""vAUH!5H;;AU!51;;#73iQW33#YQX3`73#2QX3`4#73#73iQW3XQX3;3#73#YQX3QX3`73#73#2QX3QW3`( '#5'37׼EE9) 7'#755'37EE)9999C* 6&54632#DD/1CC1C01CC10C)b##^) '3?K632#"&5%#32654&#632#"&5$632#"&5&32654&# 32654&#)O==OO==OeE..&&--&O==OO==OAO==OO==O..&&--&--&&..&vNN?@OO@D%3-.44.-3.NN@@NN@@NN@@NN@a3.-33-.33.-33-.3-x7'73ccGffx2x'3#fGccG'#eGD.$673#"&'#53&547#53>32#&&#"!!!#3{R'tv h]\f_Pt&R{W\ Z9NEdnp2"2Lt?oeFOgY2 2Ua$#"'55755753773265ͮATH$)+4+s-3-241s040,@3##5#535#5332#'32654##FUUUUuwvvUP*l99l:Wn[Zn:JDP`3###%###3[:[5v*u4Gx|.2. `,%$3!5>54&&#"!53&&546632XO@d8JOPH9c@PW]aa^'8; MzLXJKWLzM ;8'bg[[g2 #"&&546632!3267&&#"!(bXNhgO)iKIvD$g hACm$OihaZU=64AC&.257(%6632#"5632#"&5$&#"32665(CyM7J!10+lwLSRjC=8Z3E7:\30_8D , hsoUJNRTMJ!5!j77{+/ ##!##5QFFQ8||8( !!!55! A {{87P+,PAU!5{;;.Z+' [#''7"v=xn[y#'E0&#/#"&'#&&5463266367&&#"3654&#"3]S<;%D=:)D&&&SQ[!!#7#537!5!733y U7UvxQT8Tu;ff;>^^Hx 5463"3#.-.Qw&61$LHy #52655#53y.-.Q'51#LH 5463"3#65463"3#.-.Qo...Qw&61$L2#61$LH #52655#53#52655#53y.-.Q\-Q'51#L1%f#L+]"#a0*'$#"&&54633&&#"#6632#56655#"3rG5S.lgNH?T E y_Ad8GZ7EHD9=G)I.L^SZG?Vm7jJtA/X;;1/90#0#0#0#0#0#07*+77#"&54775#"&&54633&&#"#66323&6655#"3"$$0AlrG5S.lgNH?T E y_Ad832!!5_KNGMTDoGJo=GM/8JbbRRccR;kEFn>@oDbi^eRRddQSe+##"&&5466332654&#"io="%M+9Gl;>oGbRRccRRb@oD5c6 eeRTeeS# yd&&&&v X/`4)Kr (4Q I 5 p  G y i % Y S[ ".:F<Hz+amy!a3pTIJp G{kE YUG  ; !!Y!!!"."c""#N#$8$w$%%q%%&-&9&p&&'9'y''''''(C(O((()8)))*3*?*~**+#+/++,`,,-)-.///0]011223!34445d5567878889@9:V:;N;<[<=X=>??@{AA~ABB{BBCCCD DDDE4EtEEF`FGqGH-HHI]IIJGJKKPKLLoLM0MNNrNO:OP+PiPyPQQQR=RRSS[STTITTTU\UV3VWWTWXXLXXY>YYZNZ[[j[\B\\]7]]^%^s^__``aabb}bbcGccdKdde bbn£)mxä!ięNŒ=w+h?dȉȮ!IqɛJxʥ2aː˿;N}gt͑ͯ"N]΁κ @Tϟ#ZAd|ђ #2OeҖҶVhӆӛӹ"2DQ^Ԕ.cՀ.FSև֨E\ל׺ %;Pؕء+[ٕ lڑ/>Fۑ۞?Lp܉ܒܭܼ,eݸ+7]ޟޫ޷+7CO[gsߍ6-o{*6BNZq'_@a$Jg %1=HUbo|#1\d1Ja+Mdz*Vir -=w&x1hC_<ؤ6 8MPMEEBdWMWM:MWMQ]bb61UN/CL#A}MUaV  R#`1JLCA}/ <"A}/U`VqR`J L A?;QTVhA$<3I2e"iHuHp:qESU 2P72TM/C#A}LU`V) R4bJC/ <"A}/U`VqR4J "hB<GUf^^ LLLL*` @TTOOlkJ_s2QpZZ}}+EnK01  6D Ui<Q\]}Xrpap099yO|QfG\h-CUUUvvZ\\F$XVVVVMV /w%^}MM?4 tt/6 $~Yc[.. flfdk9:_RRRRRMzzs")?;Q#[t  la,7T-1P``4^```4```4)`ssk)t)E?WXX|An 2tSIEQQQ666111UUUNNN?JJF4X%,#U<+'%^(;I).hA$<3I2e"iHuHp:qE)GSN"K UP0PPP0PP%8PPJPP04P0KP<8MI)4 +ow[eo^^&V0Pe00n0E0yP@PPPyP0P0jP0dyK#/!%V`1&X?T.BI"`<2;#5#--6JB!C~P4+ #2Z)&&(      r 0PPPP P00000OU*MMMM44PB000000T0e0n0n0n0n00yP00000}C/yKyKyKyK!P! 0 0 00e00e00e0P0 0Nn0Pn0Pn0Pn0Pn0000000DP8PPPPEP<PPP PyPPyPPyP000000D0H0KPjPKPjEKPjP<80<80<80dgMyKMyKMyKMyKMyKMyK/4!4 +% +% +%ILr V0<80dn0<<?NE////Pn04!4!AQAVV3()nC)) - 22,$e,P,2/(/(A.+&&S@B'($+S +4!"S+-}C+O0O0O0O0O0O0Q0O0O0O0&K7R5=+d  !L,XKX^2GITFOdos "  ~#17H[e~Y    ( 0 3 9 E I M P ^ e o p r    " & 0 : D !!"!&!.""""""""+"H"`"e%% ! (69L^hY      * 1 5 < G K P X ` f p r    & 0 9 D !!"!&!.""""""""+"H"`"d%%sRPNJFEB@>.,l  9QA28 lnpnplzy{ O?E~|"# !}     8      && \L : " 6 :  H R @ @ *^ ,Copyright 2020 The Poppins Project Authors (https://github.com/itfoundry/Poppins)Poppins LightRegularITFO; Poppins Light; 4.004b84.004Poppins-LightIndian Type FoundryNinad Kale (Devanagari), Jonny Pinhorn (Latin)https://indiantypefoundry.comThis Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://scripts.sil.org/OFLhttps://scripts.sil.org/OFLPoppinsLight 8 - @ . ( A 7 M / K   K  L 0 5  0  ' ?  > 0 K   G . > . 2 G . G   ( M .  > $ 8 M 5 $ ( M $ M 0 $ >  0 8 . > ( $ > * M 0 > * M $ 9 H dSquare dots in punctuation marksDouble-storey aAlternative ampersandAlternative 2, 3, 6, 92#      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjikmlnoqprsutvwxzy{}|~      !"#$%&'()*+,NULLCRdvAdvAAdvIdvIIdvUdvUUdvvRdvvRRdvvLdvvLLdvEdvAIdvOdvAU dvEcandra dvAcandra dvOcandradvmAAdvmIdvmIIdvmUdvmUUdvmvRdvmvRRdvmvLdvmvLLdvmEdvmAIdvmOdvmAU dvmEcandra dvmOcandradvKAdvKHAdvGAdvGHAdvNGAdvCAdvCHAdvJAdvJHAdvNYAdvTTAdvTTHAdvDDAdvDDHAdvNNAdvTAdvTHAdvDAdvDHAdvNAdvPAdvPHAdvBAdvBHAdvMAdvYAdvRAdvLAdvVAdvSHAdvSSAdvSAdvHAdvLLAdvK_SSAdvJ_NYAdvKxAdvKHxAdvGxAdvJxAdvDDxAdvDDHxAdvPHxAdvRxAdvKdvKHdvGdvGHdvNGdvCdvCHdvJdvJHdvNYdvTTdvTTHdvDDdvDDHdvNNdvTdvTHdvDdvDHdvNdvPdvPHdvBdvBHdvMdvYdvRdvLdvVdvSHdvSSdvSdvHdvLLdvK_SSdvJ_NYdvKxdvKHxdvGxdvJxdvPHx dvAnusvara dvCandrabindu dvVisarga dvAvagrahadvViramadvNuktadvZerodvOnedvTwodvThreedvFourdvFivedvSixdvSevendvEightdvNinedvOmdvAbbreviationsigndanda doubledandarupee indianrupeezerowidthnonjoinerzerowidthjoiner dottedcircledvReph dvEyelash dvRashtrasigndvK_RAdvKH_RAdvG_RAdvGH_RAdvNG_RAdvC_RAdvCH_RAdvJ_RAdvJH_RAdvNY_RAdvTT_RAdvTTH_RAdvDD_RAdvDDH_RAdvNN_RAdvT_RAdvTH_RAdvD_RAdvDH_RAdvN_RAdvP_RAdvPH_RAdvB_RAdvBH_RAdvM_RAdvY_RAdvL_RAdvV_RAdvSH_RAdvSS_RAdvS_RAdvH_RAdvLL_RAdvKx_RAdvKHx_RAdvGx_RAdvJx_RAdvPHx_RAdvK_RdvKH_RdvG_RdvGH_RdvNG_RdvC_RdvCH_RdvJ_RdvJH_RdvNY_RdvTT_RdvTTH_RdvDD_RdvDDH_RdvNN_RdvT_RdvTH_RdvD_RdvDH_RdvN_RdvP_RdvPH_RdvB_RdvBH_RdvM_RdvY_RdvL_RdvV_RdvSH_RdvSS_RdvS_RdvH_RdvLL_RdvKx_RdvKHx_RdvGx_RdvJx_RdvPHx_RdvK_KAdvKx_KxAdvK_KHAdvK_CAdvK_JAdvK_TTAdvK_NNAdvK_TAdvKx_TAdvK_T_YAdvK_T_RAdvK_T_VAdvK_THAdvK_DAdvK_NAdvK_PAdvK_P_RAdvK_PHAdvKx_PHA dvKx_PHxAdvKx_BAdvK_MAdvKx_MAdvK_YAdvK_LAdvK_VAdvK_V_YAdvK_SHA dvK_SS_MA dvK_SS_M_YA dvK_SS_YA dvK_SS_VAdvK_SA dvK_S_TTA dvK_S_DDAdvK_S_TA dvK_S_P_RA dvK_S_P_LAdvKH_KHAdvKH_TAdvKHx_TAdvKH_NAdvKH_MAdvKHx_MAdvKH_YAdvKHx_YAdvKH_VAdvKHx_VAdvKH_SHA dvKHx_SHAdvKHx_SAdvG_GAdvG_GHAdvG_JAdvG_NNAdvG_DAdvG_DHA dvG_DH_YA dvG_DH_VAdvG_NAdvG_N_YAdvG_BAdvG_BHA dvG_BH_YAdvG_MAdvG_YAdvG_R_YAdvG_LAdvG_VAdvG_SAdvGH_NAdvGH_MAdvGH_YAdvC_CAdvC_CHA dvC_CH_VAdvC_NAdvC_MAdvC_YAdvCH_YA dvCH_R_YAdvJ_KAdvJ_JAdvJx_JxA dvJ_J_NYAdvJ_J_YAdvJ_J_VAdvJ_JHA dvJ_NY_YAdvJ_TTAdvJ_DDAdvJ_TAdvJ_DAdvJ_NAdvJ_BAdvJ_MAdvJ_YAdvJx_YAdvJ_VAdvJH_NAdvJH_MAdvJH_YAdvNY_CAdvNY_CHAdvNY_JAdvNY_SHAdvTT_TTA dvTT_TTHAdvTT_YAdvTT_VA dvTTH_TTHAdvTTH_YAdvTTH_VAdvDD_DDA dvDD_DDHAdvDD_YAdvDD_VA dvDDH_DDHAdvDDH_YAdvDDH_VAdvNN_TTA dvNN_TTHAdvNN_DDA dvNN_DDHAdvNN_NNAdvNN_MAdvNN_YAdvNN_VAdvT_KAdvT_K_YAdvT_K_RAdvT_K_VA dvT_K_SSAdvT_KHA dvT_KH_RAdvT_TAdvT_T_YAdvT_T_VAdvT_THAdvT_NAdvT_N_YAdvT_PAdvT_P_RAdvT_P_LAdvT_PHAdvT_MAdvT_M_YAdvT_YAdvT_R_YAdvT_LAdvT_VAdvT_SAdvT_S_NAdvT_S_YAdvT_S_VAdvTH_NAdvTH_YAdvTH_VAdvD_GAdvD_G_RAdvD_GHAdvD_DAdvD_DHAdvD_NAdvD_BAdvD_B_RAdvD_BHAdvD_MAdvD_YAdvD_VAdvDH_NA dvDH_N_YAdvDH_MAdvDH_YAdvDH_VAdvN_KAdvN_K_SAdvN_CAdvN_CHAdvN_TTAdvN_DDAdvN_TAdvN_T_YAdvN_T_RAdvN_T_SAdvN_THA dvN_TH_YA dvN_TH_VAdvN_DAdvN_D_RAdvN_D_VAdvN_DHA dvN_DH_YA dvN_DH_RA dvN_DH_VAdvN_NAdvN_N_YAdvN_PAdvN_P_RAdvN_PHA dvN_PH_RAdvN_BHA dvN_BH_YA dvN_BH_VAdvN_MAdvN_M_YAdvN_YAdvN_VAdvN_SA dvN_S_TTA dvN_S_M_YAdvN_S_YAdvN_HAdvP_TTAdvP_TTHAdvP_TAdvP_T_YAdvP_NAdvP_PAdvP_PHAdvP_MAdvP_YAdvP_LAdvP_VAdvP_SAdvPH_JA dvPHx_JxAdvPH_TTAdvPH_TAdvPHx_TAdvPH_NAdvPH_PAdvPH_PHA dvPHx_PHxAdvPH_YAdvPH_LAdvPH_SHAdvPHx_SAdvB_JAdvB_JxAdvB_J_YAdvB_JHAdvB_TAdvB_DAdvB_DHA dvB_DH_VAdvB_NAdvB_BAdvB_BHA dvB_BH_RAdvB_YAdvB_LAdvB_L_YAdvB_VAdvB_SHAdvB_SAdvBH_NAdvBH_YA dvBH_R_YAdvBH_LAdvBH_VAdvM_TAdvM_DAdvM_NAdvM_PAdvM_P_RAdvM_BAdvM_B_YAdvM_B_RAdvM_BHA dvM_BH_YA dvM_BH_RA dvM_BH_VAdvM_MAdvM_YAdvM_LAdvM_VAdvM_SHAdvM_SAdvM_HAdvY_NAdvY_YA dvEyelash_YA dvEyelash_HAdvL_KAdvL_K_YAdvL_KHAdvL_GAdvL_JAdvL_JxAdvL_TTAdvL_TTHAdvL_DDAdvL_DDHAdvL_TAdvL_THA dvL_TH_YAdvL_DAdvL_D_RAdvL_PAdvL_PHAdvL_BAdvL_BHAdvL_MAdvL_YAdvL_LAdvL_L_YAdvL_VA dvL_V_DDAdvL_SAdvL_HAdvV_NAdvV_YAdvV_LAdvV_VAdvV_HAdvSH_KAdvSH_KxAdvSH_CAdvSH_CHAdvSH_TTAdvSH_TAdvSH_NAdvSH_MAdvSH_YAdvSH_LAdvSH_VAdvSH_SHAdvSS_KA dvSS_K_RAdvSS_TTA dvSS_TT_YA dvSS_TT_RA dvSS_TT_VA dvSS_TTHA dvSS_TTH_YA dvSS_TTH_RAdvSS_NNA dvSS_NN_YAdvSS_PA dvSS_P_RAdvSS_PHAdvSS_MA dvSS_M_YAdvSS_YAdvSS_VAdvSS_SSAdvS_KAdvS_K_RAdvS_K_VAdvS_KHAdvS_JAdvS_TTAdvS_TAdvS_T_YAdvS_T_RAdvS_T_VAdvS_THA dvS_TH_YAdvS_DAdvS_NAdvS_PAdvS_P_RAdvS_PHAdvS_BAdvS_MAdvS_M_YAdvS_YAdvS_LAdvS_VAdvS_SAdvH_NNAdvH_NAdvH_MAdvH_YAdvH_LAdvH_VAdvLL_YA dvmII.aLongdvReph_AnusvaradvAnusvara.amI dvReph.amIdvReph_Anusvara.amI dvII_AnusvaradvmII_Anusvara dvmII_RephdvmII_Reph_AnusvaradvmII_Anusvara.aLongdvmII_Reph.aLongdvmII_Reph_Anusvara.aLong dvmE_Anusvara dvmE_RephdvmE_Reph_AnusvaradvmAI_Anusvara dvmAI_RephdvmAI_Reph_Anusvara dvmO_Anusvara dvmO_RephdvmO_Reph_AnusvaradvmAU_Anusvara dvmAU_RephdvmAU_Reph_AnusvaradvmEcandra_AnusvaradvmOcandra_AnusvaradvRA_mUdvRA_mUUdvHA_mUdvHA_mUUdvDA_mvR dvSHA_mvRdvHA_mvRdvmI.a01dvmI.a02dvmI.a03dvmI.a04dvmI.a05dvmI.a06dvmI.a07dvmI.a08dvmI.a09dvmI.a10dvmI.a11dvmI.a12dvmI.a13dvmI.a14dvmI.a15dvmI.a16dvmI.a17dvmI.a18dvmI.a19dvmI.a20dvmI.a21dvmI.a22dvmI.a23dvmI.a24uni00A0uni00ADuni00B5AmacronamacronAbreveabreveAogonekaogonek Cdotaccent cdotaccentDcarondcaronDcroatEmacronemacronEbreveebreve Edotaccent edotaccentEogonekeogonekEcaronecaron Gdotaccent gdotaccentuni0122uni0123ItildeitildeImacronimacronuni012Cuni012DIogonekiogonekuni0136uni0137Lacutelacuteuni013Buni013CLcaronlcaronLdotldotNacutenacuteuni0145uni0146NcaronncaronOmacronomacronuni014Euni014F Ohungarumlaut ohungarumlautRacuteracuteuni0156uni0157RcaronrcaronSacutesacuteuni015Euni015Funi0162uni0163TcarontcaronUtildeutildeUmacronumacronUbreveubreveUringuring Uhungarumlaut uhungarumlautUogonekuogonek Wcircumflex wcircumflex Ycircumflex ycircumflexZacutezacute Zdotaccent zdotaccentuni018Funi01FCuni01FDuni0218uni0219uni021Auni021Buni0259uni02BCuni02C9WgravewgraveWacutewacute Wdieresis wdieresisuni1EBCuni1EBDYgraveygraveuni1EF8uni1EF9Eurouni20BAuni20BDuni2113uni2126 estimateduni2206uni2215uni2219 exclam.ss01 comma.ss01 period.ss01 colon.ss01semicolon.ss01 question.ss01exclamdown.ss01periodcentered.ss01questiondown.ss01 divide.ss01quoteleft.ss01quoteright.ss01quotedblleft.ss01quotedblright.ss01 ellipsis.ss01a.ss02 aacute.ss02 abreve.ss02acircumflex.ss02adieresis.ss02 agrave.ss02 amacron.ss02 aogonek.ss02 aring.ss02 atilde.ss02ampersand.ss03two.ss04 three.ss04six.ss04 nine.ss04 ""yz}}\_glss H~DFLTdev2"deva0abvm&abvm&abvm&blwm.blwm.blwm.  l  ,"yz\ghijkls $(*./0159>?DEHLMNOTZ[\]ajp$+,2:;=HKLNOQRSUVXYZ[\acpqv    !&)*+-./16<=AHLQTXYuvwxy{@FFFFF:@@@FFFFflrrxx~hVhVhVhV  &,,28>DXJPV\bhhntz4(( "(.4:@F|LRXX^djpv||GD4yMTj[jA=\ K;@rvtiRzy\NGJ"MHm%/1F ? J^]^_$O,Rw"lZU<(^G{3h r 0 &,28>(.DJPV\bhntz.FLRX^dd "(.4:@*F606<LBHNRX^dflljpv|  8J$*\b06nt<BHNm}{ib?im.X}o{mi.HAb' Ks{iaiqp~:-iNM?Q@??,+JNV?J?"of%y 4@}$(*./0159?DEHLMN$+,2:;=HKLNOQRSUVXYZ[\acpqv    !&')*+-./16<=AHLQTWXYb &,28>DJPbV\bhntz "(.4:@FLRX^djpvv| $*06<BHNTTZ`flrx~~kz1x4e O^jeRlkzxe^A=\O1 OFO(@1p7QQxQee14| yOtOM-9&>f1J>1I14 O}1OMOOO<)1'4F JOREO"1O14m%1/OtKoKJ 2DFLTdev2HR\H~I~J~K~L~M~N~O~$%&+019>" F}BG}-$+""}&R^jv*6BNZfr~}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>$=?EHK!NN%}> H}*Zdnx *4>HR",6@JfT^hr|P}Q}R}S}U}V}W}X}Y}^}_}`}b}c}d}e}f}g}h}i}k}l}m}n}o}q}r}s}t}u}v}w}x}$KNO(&R\fpz$.8BLV`jt~}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}L  *4>HR\fpz$.8BLV`jt~ (2<FPZdnx$=?EHK!NN%Pi&kq@txG +\P$>r|6XrR~4~8 X  ( 2 d  :DLT\dlt|od?_=_@l=o.o0o3o$%)+.2345789<=?@AC"(.4%3 7 < =@A&.6>FLRX^djpv|b=b@c= g=&'+2567:;!<"=$?%@&C'7(<)="(.,V@*)+*-7.</=0= (06<BHNTZ`flrx6W=7W@2$3+8,:.;0<3=5>7?:@<A=C@5GD7E<F= G)H*I+JA K.L/M=N@O/P=Q@ R0S1T=U@V1W=X@$*06<Y.Z/[0\1]2^<_=`@6>FNV^fnv~bP=dP@i_=j_@mc=pd?sh=yo7zo={o@a$f%h3k4l7n8q9r<t=v?w@xCeFcgo|7}=~@  &,28>DJPV\&'567:;<=@  &c=7<=@&NX`hpx "(.4:@FLoh=PC_=_C`=`@a@b=b@c=g=g@h=o.o=$)*.03456789;<=@CD "(.4:@FLRX^_=./3789<=?@C  &,28>D+.3789=?A&.6>DJPV\bhntzW=b@k=+,3567:;=?@ACK 7=?@(08@FLRX^djpv|f=g=g@3578:;<=?@ACD 7=8@HPX^djpv|P= `=k=l0$%&+./0134 5 8 9:;<=?@CDK  $7=?@D  &,28>DJPV\$) *!."3#7$<%=&?'@(AH(08@HPV\bhntz,Z=.Z@0[=3^=8h=)$+.//2248697<9=:@;B*-152:BJRZ`flrx~>P@C_=E_@G`=Oh=<$?%@+A.B3F4H5I7J8L9M:N<P=Q?R@SC=DK &,T2U7V<W=X?Y@Z= h=<=@9= &,39:<HN &, 3 <=@AC B=4K 3CKN  =D=D#=1=u== PSUikuwx$&'()*6 R.l>THp H(./01>DLMOKLNOQRSUX  59NVY $38:@BHTX &')*6=Jh ^47;<?FG' , +,-2ACK  E/1W   %I+-. !q456; "Zacno)*: P#%:;Y[jw!9A $)"#*=T\iklrtuv7<=H%*!$'()+,/2C`e~"2BDJKLMR@&-&-.<?GHMPW_x}  #%FPUV'59>@ABF^|   $&(INQS~( 01DEIJfg@*)  348]?*   + pZ,h- ms{,038E6. zC/ yG067bd >O&>V0123,Z   ">Zv`ycyaybiygyhlyjykoymynrypyqsyty\y  !"#*43$O,ZR|y\N*4y uvzwx{5>ADZ3"$9HN2acq )*6<=Labc$.8BLV`jt~T}Z}[}\}]}a}j}p}}}}}}}}(./015>D$      I  234567SUW !"}:f,ghijklmnopqrsvthuZvLw>x0y"z{|  >>[ ]^_def>y\abcriseup-vpn-0.24.5+ds1/gui/resources/fonts/Poppins-Regular.ttf000066400000000000000000004647601461742244100241200ustar00rootroot00000000000000 PGDEF  /T@GPOS_/GSUBC|&tOS/2w`cmap5 ;`glyfEmRhead$a6hhea u $hmtxf1PlocaFxHmaxp, name4post:h " !!!7'' ȪDJV7##'#"&&5332654'#'&##532654&#"#46323VSo\@e9NM=1@M4cDEn=P)G,AOKL.$>CVuzSlH?a79fA*D'QA1gkW 9FTCm*5cCEn=P)G,AOKL.$>CVeSad\`@<@B=6M=`69fA*D'QA?A5""!TjN?C=BCGA>AFSL  r|5^=HTD:y[8,;/42C UQ>WDVbTRdVFO\InGh7T>5O FF.V#"33#"3267#"&54675&&5467654&#"#54&#"327#"&54663236675!5!GT%)47+//+8:-8<Ic3')1R9C=BCGA>AFSL  r|5^=HTD:y[8,"(%$?#)'# ? BC,;  6-;:DVbTRdVFO\InGh7T>5O FF!32655!32653#"&5#5!##"'5o71QLGOR{kxypMY?CrqU_SJlyvFFtgdJ-32655!32653#"&5#5!.##5323##"'5o71QLGOR{kxy3B>5*)IUZAupMY?CrqU_SJlyvFPHDeoFtgdJJ|G####'#"&&5332654'#'&##532654&#"#46323!.##532|TSo\@e9NM=5*)IUZAFbbG'+Xi3\<9JG9+ .DC-6@?4UeaQ:QXPHDeoJ|R####'#"&&5332654'#'&##532654&#"#46323!.##532.##532|TSo\@e9NM=3RiTYK}Tjj9uUDV%ShFbFXs5C@###5354&#"#54632@T0:;1R[cdXFbF*>RR>>:cwvd&R#"&7332654&##532j\eKWF;E2,OW[iiGI72&6BYF^#"&54632#54&#"327H]iVv~E^O8D:, QIKY~ )bm7.*2>#"&54633#"327Y0PodY"6!)57+/.+8:-6K AB-;  5-=:0#'&$>$('# ?X1<7#"&5467654&#"#54&#"327#"&5463236632#"3>P9.-,./8.--2;5T[TD5>  A8AQ -02$f7?;.@ 2  A8AQ %& ! H* 3/1!+)!+, 26*)IVZBRIDfq,#.##532.##53PZKH=B=;+):5*)IUZAFbFPHDeoO@###53.##532.##532@T;A=:+):6632#"'532654&#"#5#"&&5466325!5!6654&&#"3X?<`56_<%?QT?JLP[B>a67b?@ZkE"!F3BYWD0::gBGh7BUJGVbC/99iFEh88.FF 0I'(I.VGKW/<##5#"'#"&5532655!567&&5466325!3$6654&#"3SK6rOr$BLM+14Z85LpbQZO@=DB;ON<Fb&,?OsCSyFb4*\=<\2,%΃j_gJZ)@#7TJ?BL####"&5533265!5SQSQVR'+.%FbNb]N)99,F(##5#"&54675&&55#5!!33#"32665TqHd{L84@~@H/5JHWF7Z5b7=_X?P  IDMFFI<5TBBT@CL0R2@FL9#"&54675&&55#5!!!33#"326654&&#"#&5467qAQ]oN=3@|g?ENMrXK2*@EM=| iWaLriEU JEiFFf;=EF7KP;nL.A!::%823KR c####"&55332655!5!5!cSiZZfT;24=Y~b_ZooZ:HH:Fl&2##'#"&'#5332654&##&&546335!5!##"33lR1YSGQOKNC:pFFr####"&5#5!#3265rSd[Zdv;22:bZnpXFF6CC6###"33#"&546335!5!фT`m`[!wbZXU^Cx}|FO/##5#"&&5473254&#"#&54632##32665TvWS{Ac:24<LiT7T.t3gc;b:Fb6LB{S0??5Vc/T6deYi3_@i|!326653#5#"&&5466335!5!##jUH#A*MRU5@d8FyKHMVOGV=-#*6fGLi5nFFQ3##5#"&54675&&54632#74&#"33#"326653TtM_zI16K_LMY@5./6SE96BFTC:]5b9@[S>K SDI\XG *8;,9AD:0793]<p0%####"&&54663!5!5!654&#"30S3X79]57_<HKGG78HG9bD)8T,0W:L6&1####"&5463354&#"#&546323#"32656S^WSfmU^-/)3S[QZS\5A<.17FbMdkaPS]^=D81O_rdQ920:F>,#####"&546335!5!#3#"3265,T^XSelU_G׷]4A<.17bMdkaPS]FFE:10:F>!##5#"&54732655!5!#32665SnM~YZi^8[4b0;IWEFFS_m/V72326553#"&553255!5!##:85=PgYaei~MxprS?LG:]nvbȧ`FF`ryE;#"'532654&#"#54&#"327#"&&54663236675!5!EQ6lLKTC?ADGA>AFTK Ll65^=ITH>uYGo?I^LEXcTSdWFL^I?oGFh7T=7PFF&##5#"&&5466325!566554&&#"3QaCCh9:hBDaM%%M7/L,^IFb09;kGDh:90F1L(*L0(K2MZZI*0326553#"&5532654&#"#&546632###?@8?Qj\foUkB99CS3^?^roAT@nBPI= _nygMK>GG= <\3pcjpFb###"&55#5!!67%3RUPiZ`g\TXi b]@LG:  ZkwaZN[FF[4Rd2632#&&#"32673#"&&5467&&546335!5!##<&!ao P I;FOOF:I P9_?Hi693&.YI]'** _F';VABT9'-L-:d??b>+>AuFF_#/;#"&'##"&&54663236675!5!654&#"3$&#"3265M_;g?KmlK?f;;f>LgY?CvTTDDVWCVCETTDCWxWBf9O=>N9fBDh9L>8I{FF UDFWWGDTWXEDUTDH;/;##!32653#5#"&54667&&54663236654&#";Q2:'>47@GM G7N`1G9BV4Y73V2%"FUC),D32DFby %8'/@G30\H5J0YF6Q+(L5.D-D<)1>:4@#####"&'#332654&##5!5!5@R-50U6:YQNV:>G^Iw{FbS:7T.0&?EK;EMDF"$~t5?"%~"&~Bc"+~vX2X"0~I"1~"9~k`2">~%36632#4&#"#5#"&&5466325!5!6654&&#"3X?<`5UT?JLP[B>a67b?@ZE"!F3BYWD0::hCGVbC/99iFEh88.FF 0I'(I.VGKW>*63267&&54632#"'#"&5532655!5!!32654&#YbQZO9N,1waaw8b>sPr$BLYMM@AMMA_gJZ6+Y:^nn^?\1APsCSyFF;L@@LL@@L##"&5533265!5!QSQVR'+.%Nb]N)99,FiQ%33#"326653#"&54675&&55#5!@H/5JHWF:Z2GCzPpL84@~lI<0??5Vc/T6deYicS"5}zQaY-#"&54675&&54632#74&#"33#"32653YDUhI16K_LMY@5./6SE96BFXC\lIj;ZU>K SDI\XG *8;,9AD:088ZIu!!5663!!#"&&5654&#"3OZ7_<3X79]5GG78HG9FFX.FD)8T,0W:zE65FE76D32653#"&55#5!KMENE5dEovp3T]YBAg:rFF%6632#4&#"##"&55#5!!!3265ZAcmTLHLMSP6dip,FGAJ09|iITgG(,qFFR[W@[=&!5#"&&5466354&&#"$327%=q7:qNIs@?rJ)R:$@2T2L0FFEme|3##"&546335!5!#"3265^XSelU_]4A<.17EMdkaPS]FF:10:F>oq#"&54732655!5!!326653qE~QYZm\7Z4L!qAIWEFFS`l-R32">}EB.5!66324&#"#54&#"327#"&&546632]VM;[3TC?ADGA>AFTK Ll65^=ITFF>S8hEEXcTSdWFL^I?oGFh7T=`9"5!#"&&546632326654&&#"T7qRJq>?qISq6]`K7L%%L70N-FFpkC:lGDh:DkGG= <\3pcjpnBPI= !#"&55#5!67%3x5fErwp9M NN+S5uF#9'V^x"!!326553#"&5532655!5!# -::5>PiZ`g\TXRE@LG:  ZkwaZN[FF[d"D}_!-95!#"&&54663236632#"&'#$32654&#"32654&#"lK?f;;f>LghJ?g;;g?KmWCDTTDDVTDCWVCETFFN9fBDh9L>>L9hDBf9O=TUDFWWGCUTDGWXEH)532653#5#"&54667&&5466323!&6654&#"12:'>47@GM G7N`1G9BV4Y73V2%"UC),D32Dp%8'/@G30\H5J0YF6Q+(L5.D>D<)1>:4#!5!!#"&'#332654&##%-50U6:YQNV:>G^IFFDS:7T.0&?EK;EM"P~t5?>"Q~"R~B"W~vX"e~k4C #"&54632[!!!!d!!!!24) #"&54632#"&&5332653m.[BB\.EFAAFDNP//P1.EE.;$ #"&54632#"&54632!!"!!""! !!!!!!L=7532654&'.54633#"#L)*58/<*SD˸'.8809)MG=H#!;0';G""@.)9H)6FF'3@zT|al #"&54632   t !!>5&31(XI9I>!<<I4O  j&54632#&&53326653##"'5326554&#"###"&&5332654&##532654&#"#46323265463.B\.D=,+=D.[B/[z(:2"hS4>:4V_q\Ae8OM==GFG''>DG67HNs[Yp?<<:9Xd/P14!!41P/:|{ FgiQUE:bT*5Zm3\<9JJ=4NGF09C>4TeeS=V4A^gQ #"&&5466332654&#A\\H0M++M02AA20==0[HFZ*J..J)4=00=#R#!#R%SM B###3232654&###"&'332654&&'.546632#&&#"Y\oZ[v{KIHL$61Yn];63:n sZG=?F$ >5-H(\S.8/'% ;2-I+]Q.7/&3S#3##3253#"&552667!5!55!5!#ҁ =s_vtTh`cgrm2I BEN"Odfnc15BZCC+3/0'#'7'77_H/E!]_!_` ``0KaI!]_!__ `_ 2Y #/;GS_kw#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632XyJj/fQ|".BGQNPG?3!I54632#6&#"RTNUJ/(ZYXi]L,6zYj5!#"&'33267@#`PbD FF _eF@2R'#73iWpa3D6632#"'532654&#"#5#7#"&&5466325!5!654&&#"3277X?<`56_<%?QT?JKP\=a77b?@Z.!F3BYWD 0::gBGh7BUJGVbC Ŗ8fDEh88.FF*S-(I.VGKW q3@##5#"'#57#"&5532655!567&&5466325!3$6654&#"3SK6 Zr$BLM+14Z85LpbQZO@=DB;ON<Fb&,.rCSyFb4*\=<\2,%΃j_gJZ)@#7TJ?BL##5###"&55332655!5Q`lQSQVR'+.%FbeMNa]M*99+F-##53#7#"&54675&&55#5!!33#"32665T \ d{L84@~AG/5JHWF7Z5b]V?P  IDMFFG<>D?2;?/U6]/;##"332#'#7&&'332654&##"&546335!5#"&5463۱2F;/-WvGCWWLVRSLAEO=)KihMwc}F%.+(PY#'#7&&54675&&55#5!!!33#"326654&&#"#&5467qAQ~WW|N=3@|g?ENMrXK2*@EM=| iWz o_EU JEiFFf;=EF7KP;nL.A!::%823KR c##5#5##"&55332655!5!5!cN]agYZfT:34=U~bijZpo[ca;GG;aF,8##5#5'5'#"&'#5332654&##&&546335!5!!#"33OU1YSGQOKNC:Xq0O/)=XB?W<*JdaNF%326653#'##7&&5466335!5!##v/U57U/PfWWWVfIVgea[4R.0U7`ZSuUaE:G:/:2DMIDyFFs332654&#"#&54632#'#7&&5466335!5!##7eBI_8,&5?XDM\`UWW_qLU(Q_oj=`6J;-:1'  @J[IKf dY|>pFFq##5###"&55#5!#3265qO`ld[Zdv;22:bvHYooYFF6DD6###5&&#"#&66325!5!уQkv]=LdSK SDI\XG *8;,9AD:0793]<pO)##5#5##"&&54663!5!5!654&#"3OK\T2X89]57_<kijGG78HG9baD)6S/0W:LJ*5##5#5##"&5463354&#"#&546323#"3265JL]g`TSfmU_.1)2Q[QXT^4A<.27Fb\s=an]KOY[>C80N^rdN6.,6F>,'##5#5##"&546335!5!#3#"3265,L]h_VRflU`GӼ_4@;/27b]Kam`NR]FFD:00:F?%##5#57#"&54732655!5!#32665S g~YZi^8[4b%IWEFFS_m/V7]"?Y)##5#7#"&&5466325!566554&&#"3Q \Ch9:hBDaM%%M7/L,^IFb"9jFDh:90F1L(*L0(K2MZ-A-##5'#5%'#57&&54663276654&#"ARNb_IL/X:;Y09>01@51A36Fb*X *dA2S0/Q0=]0$F0.C?,3H###7#"&55#5!!3267%R]kpp5NM7Jb·tFF?_5-#*##5#5!326553#"&5532655!5!!!IR33,4IZOX^\TX Cbh26BC7  WglXZN[FF[4R~d4632#7&&#"32673#"&&5467&&546335!5!##<'"OmqMr@-GSSI:J J9_?Hi6:4'/YI]'** J7st%`HH\9&,J,=kBBi=->AuFF(4@#'#7&&'##"&&54663236675!5!654&#"3$&#"3265M_QCWW1ElK?f;;f>LgY?CvTTDDVWCVCETTDCWxWMrE.>N9fBDh9L>8I{FF UDFWWGDTWXEDUTD,4EQ6632#"'532654&#"#5#7#"&&5466325!5!654&&#"3277#"&5463OV?<`56_<%?RT@2C Q[=a77b?@ZG-!F3BYWD /8:gBGh7BUJGV0K*!Ŗ8fDEh87.FF*R.(I.VGKW Cq3@L##5#"'#57#"&5532655!567&&5466325!3$6654&#"3#"&5463SK6 Zr$BLM+14Z85LpbQZO@=DB;ON<Fb&,.rCSyFb4*\=<\2,%΃j_gJZ)@#7TJ?BL)##5###"&55332655!5#"&5463Q`lQSQVR'+.%FbeMNa]M*99+Fc+##5#5##"&55332655!5!5!#"&5463cN]agYZfT:34=U~CbijZpo[ca;GG;aF|0+4@6632#"'532654&#"##7#"&55#5!!!3265#"&5463PZA<_56_<" @PT?KNT \diKFFAJl/89fBHi7AVJGVgGՁoFFR[W@(96632#4&#"#5#7#"&&5466325!5!654&&#"3277X?<`5UT?JKP\=a77b?@Z.!F3BYWD 0::hCGVbC Ŗ8fDEh88.FF*S-(I.VGKW q>.:3267&&54632#"'#57#"&5532655!5!!32654&#YbQZO9N,1waaw8b>!Zr$BLYMM@AMMA_gJZ6+Y:^nn^?\10rCSyFF;L@@LL@@L=##"&55332655!5=QSQVR'+.%|FNa]M*99+FuXQ)33#"326653#7#"&54675&&55#5!@H/5JHWF:Z2G/,\pL84@~lI<K SDI\XG *8;,9AD:088ZI!%!5663!!#"&&5654&#"3OZ7_<3X79]5GG78HG9nFFX.FD)8T,0W:zE65FE76D}Y32653#7#"&55#5!KMENE)'[ovp3T]YB9^rFF(6632#4&#"##7#"&55#5!!!3265ZAcmTLHLMS]dip,FGAJ09|iITgGՁoFFR[W@=!*!5#7#"&&5466354&&#"$327%=q7,)W Is@?rJ)R:$@2T2L0FFEm<9c!œC80N^rdND6.,6F>seO|#3##"&546335!5!#"3265_VRflU`_4@;/27`DKam`NR]FF:00:F?l|Or"#57#"&54732655!5!!326653r-*fYZm\7Z4L0a"IWEFFS`l-R3"}9&!5#7#"&&54663326654&&#"9q6)'Z Jq>?qI_J7K%%K7/M-FFDk<2]!̖:lGDh:Z1M(*L0(K2-&#5%'#57&&546632'76654&#"e _IL/X:;Y08>@01@51A36JW +cA2S0/Q0=\1#$F0.C?,3H!#7#"&55#5!3267%x[rwp9NN;M !AuF^9'"&!!326553#"&5532655!5!# 33,4IZOX^\TXRA6BC7  WglXZN[FF[,_gd"}k&2>!5#'#7&&'##"&&54663236632654&#"3632654&#"QCWW1ElK?f;;f>LghJ?g;TTDDVWCTDCWVCETFFrE.>N9fBDh9L>>L9hDUDFWWGDTUUTDGWXE):F6632#4&#"#5#7#"&&5466325!5!654&&#"3277#"&5463OV?<`5TT@2C Q[=a77b?@Z-!F3BYWD /8:hCGV0K*!Ŗ8fDEh87.FF*R.(I.VGKW Cq>.:F3267&&54632#"'#57#"&5532655!5!!32654&##"&5463YbQZO9N,1waaw8b>!Zr$BLYMM@AMMA_gJZ6+Y:^nn^?\10rCSyFF;L@@LL@@L=%##"&55332655!5&#"&5463=QSQVR'+.%|FNa]M*99+FuX'!5##"&55332655!&#"&5463/gYZfT:34=9yFFZpo[ca;GG;aUł(46632#4&#"##7#"&55#5!!!3265#"&5463PZAbnULGKNT \di+FFAJl/8}hITgGՁoFFR[W@@O]k6632#"'532654&#"#5#"&&54&#"#5#"&&5466325!5!66325!6636654&&#"3 6654&&#"3X?<`56_<%?QT?JLP[B>a6N?IFP[B>a67b?@Z RY6@Z[S?E"!F3BYWD(E"!F3BYWD0::gBGh7BUJGVbC/99iFGVaD/99iFEh88.FFo+''+8..7y0I'(I.VGKW0I'(I.VGKW@O]kw6632#"'532654&#"#5#"&&54&#"#5#"&&5466325!5!66325!6636654&&#"3 6654&&#"3#"&5463 #"&5463X?<`56_<%?QT?JLP[B>a6N?IFP[B>a67b?@Z P[9@Z[S?E"!F3BYWD(E"!F3BYWD    0::gBGh7BUJGVbC/99iFGVaD/99iFEh88.FFo.++.8..7y0I'(I.VGKW0I'(I.VGKW! !! !+7N\i##5#"'#"&554&#"#5#"&&5466325!5!6655!66367&&5466325!3$6654&&#"3$6654&#"3SK6qOsN?IFP[B>a67b?@Zha383S?M,14Z85LpbPZN2E"!F3BYWDB<CB;PN=b&,?Oo^GVaD/99iFEh88.FRHEGy.64*]<<\2,%΃i`gJZb0I'(I.VGKW!)@#7TJ?BLx':H##5#"&&5467#"#5#"&&5466325!5!!663!#"326656654&&#"3xSf?<`950TOP[B>a67b?@Z~\GC#GVYB2N+E"!F3BYWDb18.Y?:Z[C/99iFEh88.FF-5CVCEN0R20I'(I.VGKWR)<J####"&&554&#"#5#"&&5466325!5!!663232655!6654&&#"3RSiZa67b?@ZmS?<[1;24<E"!F3BYWDb_Zo1V6 FTaD/99iFEh88.FF.76`<:HG;0I'(I.VGKW4AO326653#"&&5474&#"#5#"&&5466325!5!##$66335!6636654&&#"3v/U57U/PBxON{EN?IFP[B>a67b?@ZeW&yLS?E"!F3BYWDa[4R.0U7MvA?sI GUaD/99iFEh88.FFL4/.0t.7y0I'(I.VGKWM'/8F####"&'&&#"#5#"&&5466325!5!5!663%#32656654&&#"3MSd[Yd I3IFP[B>a67b?@Zh1R=;22:E"!F3BYWDbZnnW1:aD/99iFEh88.F&-5v6CC60I'(I.VGKW`76632#"'532654&&#"##"33#"&5467#5!5!5!l_E>c89eA"#GW)F+8K#Q`maZ!u0+{0:;jDIl9CZN0J(0J(WURZCzn?ZGFF0<JV###"33#"&547654&#"#5#"&&5466325!5!!66326336654&&#"3#"&5463T`m`[!wH8FBP[B>a67b?@ZJO;>ZJE"!F3BYWD  bZXU^Cx MP`B/99iFEh88.FF,3?=F0I'(I.VGKW! !b8JXf##5#"&'&#"33#"&547#654&#"#5#"&&5466325!5!6655!6632663%#326656654&&#"3bSnL}nSY`[!wF9FBP[B>a67b?@Z}\JKL8:R hDki\i^8[4E"!F3BYWDb0;zEZXU^Cy RQ`B/99iFEh88.F)"KOE*2=;+*S_bXg/V70I'(I.VGKW,;I###5&&#"#5#4&#"#5#"&&5466325!5!!663266326654&&#"3̃Qkv]=LdSR?HIP[B>a67b?@Z(T=7Z d>EdqE"!F3BYWDb `0<]Q^dbC/99iFEh88.FF/9<8+-9+0I'(I.VGKW#:M]k##5#"&&547#"33#"&547#654&#"#5#"&&5466325!5!66325!663266366554&&#"3$6654&&#"3#QaCCh9w`m`[!wD;FBP[B>a67b?@Z>U2DaM9;T%xNM%%M7/L,^IE"!F3BYWDb09;kG2+ZXU^Cx \Y`B/99iFEh88.F"90+3IG--1L(*L0(K2MZ0I'(I.VGKW:KY##5#"&&55&&#"#5#"&&5466325!5!632##326653254&#"!6636654&&#"3TvWS{BL6IFP[B>a67b?@Z7U.u2gd;b:`#:2JS?E"!F3BYWDHd6LB{S4?aD/99iFEh88.F /T6deYi3_@iG<0?.6}0I'(I.VGKWq5BP326653#5#"&&5514&#"#5#"&&5466325!5!##&6335!66326654&&#"3jVH#A*LQT6@d8N?IFP[B>a67b?@ZrFHS?5UE"!F3BYWDVOGV=-$*6gFGVaD/99iFEh88.FF-n.7.*0I'(I.VGKW*-:HT####"&&547&&#"#5#"&&5466325!5!!6632663!6654&&#"3$654&#"3*S3X79]5Na67b?@ZES?>VP/HE"!F3BYWDGG78HG9bD)8T,0W: DPaD/99iFEh88.FF.7960I'(I.VGKWE65FE76Dp%-6D###"&'&&#"#5#"&&5466325!5!5#663%!32656654&&#"3pSU:Yj A.FBP[B>a67b?@Z'P;KLEOE"!F3BYWDb)-bV28aD/99iFEh88.F-4sT]YB0I'(I.VGKWp(09G###7#"&'&&#"#5#"&&5466325!5!5#663%!32656654&&#"3pS ] [k ?,FBP[B>a67b?@Z'P;KLEOE"!F3BYWDbdX.4aD/99iFEh88.F-4sT]YB0I'(I.VGKW?GP^6632#"'532654&#"##"&'&&#"#5#"&&5466325!5!5!663%!32656654&&#"3ZA<_56_<%?QT@LMSP6Xg G/IFP[B>a67b?@Z4-S?FGAJE"!F3BYWD099fBHi7AWIGVgG(,h[,3aD/99iFEh88.FFs.5sR[W@0I'(I.VGKW"~t5?GP^jv6632#"'532654&#"##"&'&&#"#5#"&&5466325!5!5!663%!32656654&&#"3#"&5463#"&5463ZA<_56_<%?QT@LMSP6Wf H1IFP[B>a67b?@Z3.S?FGAJE"!F3BYWD  F  099fBHi7AWIGVgG(,dY/6aD/99iFEh88.FFs.5sR[W@0I'(I.VGKW/! !h! !&5>LUa##5#"&&54&#"#5#"&&5466325!5!66325!663654&&#"6654&&#"3$327%#"&5463PbDDo@N?IFP[B>a67b?@Z:Q i?Dc2S? )R:I2E"!F3BYWDP1T3K0  b/:;mGGVaD/99iFEh88.F/+04;/.7.:-S4,0I'(I.VGKWlQ*-.>! !,)59GR####"&547&&#"#5#"&&5466325!5!6335!663%#36654&&#"3%#"3265,T^XSe Ma67b?@ZG^/G_S?E"!F3BYWD]4A<.17bMdkaP#BNaD/99iFEh88.FF>-6s0I'(I.VGKW:10:F>,)59GR^####"&547&&#"#5#"&&5466325!5!6335!663%#36654&&#"3%#"3265#"&5463,T^XSe Ma67b?@ZG^/G_S?E"!F3BYWD]4A<.17  bMdkaP#BNaD/99iFEh88.FF>-6s0I'(I.VGKW:10:F>! !&2@N##5#"&&'&&#"#5#"&&5466325!5!6655!663%#326656654&&#"3SnMRv?B9IJP[B>a67b?@Z$V@B'V@H0Z>8[4UE"!F3BYWDb0;CwM/AbC/99iFEh88.FE8 LIR.8s`7W1/V70I'(I.VGKWI\j#"'532654&#"#54&#"327#"&&547&&#"#5#"&&5466325!5!675!6632663236654&&#"3EQ6lLKTC?ADGA>AFTK Ll6N=IFP[B>a67b?@Z2H>S?4RT5ITE"!F3BYWDuYGo?I^LEXcTSdWFL^I?oGDQaD/99iFEh88.FFP-60,')T=0I'(I.VGKW&5ES##5#"&&54&#"#5#"&&5466325!5!66325!66366554&&#"3$6654&&#"3QaCCg:N?IFP[B>a67b?@ZFQb=DaBS>M%%M7/L,^I4E"!F3BYWDb09:jFGVaD/99iFEh88.F-)-190-6x1L(*L0(K2MZ0I'(I.VGKW,>K\j##5#"&'#"&&54&#"#5#"&&5466325!5!66326655!663%#32665&5&&#"326656654&&#"3TnLMq!gLIq?N?IFP[B>a67b?@ZiQ kCUqGIS>j]8[4" UE/M-_J7J$E"!F3BYWDb0:727B:jFGVaD/99iFEh88.F.+.3N?LNX-6sf R`/V7%4H(K2MZ0L*0I'(I.VGKW*4:KY326553#"&554&#"#5#"&&5466325!5!632###32654&#"!6636654&&#"3@?7AQk\foN?IFP[B>a67b?@Z#_qnAUcJUlD9;S?E"!F3BYWD@nBPJ< _nygrGVaD/99iFEh88.F odiqFbXLMK=H.6}0I'(I.VGKWH>;GKV####"&547!32653#5#"&54667&&546632!5!5!6654&#"%#3#"3265>S^WSf'2:'>47@GM G7N`1G9BV4Y73V2%"oUC),D32D\5A<.17bsMdkaPE- %8'/@G30\H5J0YF6Q+(L5.DFD<)1>:4fE:10:F>H AMTbm##5#"&'##"&547!32653#5#"&54667&&546632!5!5!6654&#"32655!!#32665%#"3265 SnM{^WSf)2:'>47@GM G7N`1G9BV4Y73V2'$UC),D32DNTg]i^8[4-[5A;/16b1;~LdkaOH. %8'/@G30\H5J0YF6Q+(L5/EFD<)1>:4CNYe]`_m/V79119F>H<HV##5#"&&55!32653#5#"&54667&&54663232655#5!6654&#"%#32665TlKSy@2:'>47@GM G7N`1G9BV4Y73V2'$NZUC),D32Dxe`j^8Z4b0:@vO %8'/@G30\H5J0YF6Q+(L5/EBOYFD<)1>:4gY`eWg/V7H@L\##5#"&&547!32653#5#"&54667&&546632366325!56654&#"66554&&#"3RaBCh:2:'>47@GM G7N`1G9BV4Y73V2%"mGCaZjUC),D32DL%%L7/L,^IFb08;kG %8'/@G30\H5J0YF6Q+(L5.D:B8/FD<)1>:4l1L(*L0(K2MZ73@GU##!326553#"&55#4&#"#5#"&&5466325!5!2655!6632#!6654&&#"37R.::5>PiZ`gO>IFP[B>a67b?@ZRaTXS?F` E"!F3BYWDb]@LG:  Zkwa>QaD/99iFEh88.FZN[-6M@[4R0I'(I.VGKWHU`n326653#"&&547!326553#"&55#4&#"#5#"&&5466325!5!##2655!6632$6335!!6654&&#"3 v/U57U/PBxON{EI::5>PiZ`gO>IFP[B>a67b?@Ze3TXS?F`]  E"!F3BYWDa[4R.0U7MvA?sI@LG:  Zkwa>QaD/99iFEh88.FFHZN[-6M@IFt[4R0I'(I.VGKWcN[ft332#"&'332654&##"&'!326553#"&554&#"#5#"&&5466325!5!##2655!6632$6335!!6654&&#"3F;/-WvnepRSLAEO=)9]";86>QiZagO>IFP[B>a67b?@Z~lTVS?F`gJr E"!F3BYWD%.+(PYL\iX:G:/:2(.?MF; Zkwa>QaD/99iFEh88.FFNYO[-6M@K?y[4R0I'(I.VGKWBOZh###"33#"&547!326553#"&55#4&#"#5#"&&5466325!5!2655!6632!!66336654&&#"3˄T`m`[!w=::5>PiZ`gO>IFP[B>a67b?@ZTXS?F`u "%tIuE"!F3BYWDbZXU^Cx7-@LG:  Zkwa>QaD/99iFEh88.FZN[-6M@[4R((0I'(I.VGKW<IR[i###7#"&'!326553#"&55#4&#"#5#"&&5466325!5!2655!6632%&55#%!32656654&&#"3S ] Pf7::5>PiZ`gO>IFP[B>a67b?@ZTXS?F` pKLEOE"!F3BYWDbMG@LG:  Zkwa>QaD/99iFEh88.FZN[-6M@ [4RT]YB0I'(I.VGKW ]js#"'532654&#"#54&#"327#"&'#"&'!326553#"&554&#"#5#"&&5466325!5!2655!6632%&55#$675!3267663236654&&#"3 EQ6lLKTC?ADGA>AFTK `w5YQg7;86>QiZagO>IFP[B>a67b?@Z "TVS?F` H>GH2C nQIT=E"!F3BYWDuYGo?I^LEXcTSdWFL^IbS5PH?MF; Zkwa>QaD/99iFEh88.FFYO[-6M@ [4R#PT]4,T_T=0I'(I.VGKW`";R^k##5#"'#"&'#"'#"&5532655!5!67&&546326655!3 67&&5466325!3$654&#"3$6654&#"3`SL6sOc8[sPr$BL{(N,1waQm6?'~ 6CO##5#"'#"'#"&5532655!5!67&&546326655!3#32665654&#"3SnM<`>sPr$BLN,1waJhD5bQZORbe]8\4MMA@MM@b1;w.1APsCSyFb6+Y:^nD<QTRj_gJZX`efXa/V7L@@LL@@L<'~ d:JV##5#"&'#"'#"&5532655!5!6325!3267&&5463266554&&#"3$654&#"3dRaCDdV8sPr$BLb@D`bQZO9N,1ta<[ L%%L8.L,]IMMA@MM@b09<7%&APsCSyF780Ӄj_gJZ6+Y:^n,)1L(*L0(K2MZ%L@@LL@@L<d'~+1O[326553#"&'#"'#"&5532655!5!632###67&&5463232654&#"!3$654&#"3@?@8@Qk\\n7UrPr$BL!_roAUN,0taRnMUkD:bQZOXMMA@MM@@nBPI= _ncY,@PsCSyF odjpHdb6*Y;^nQHMK>Gj_gJZL@@LL@@L<"~<(BIUa##!326553#"&'#"'#"&5532655!5!2655!3267&&54632#!654&#"3#"&5463U0:95>QhZ[h9ZrPr$BL bTW[bQZO9N,0taLk MMA@MM@  b]@LG: [jjX1@PsCSyFZN[j_gJZ6*Y;^nF?[4RL@@LL@@L! !+####"&5533265!#"&5533265!5!ƄSQSQVR'+.%QSQVR'+.%bNb]N)99,Nb]N)99,F':##5#"&54675&&55##"&5533265!5!!33#"32665TqHd{L84@QSQVR'+.%@H/5JHWF7Z5b7=_X?P  IDMNb]N)99,FFI<K SD0&Nb]N)99,F XG *8;,9AD:0793]<ptYf##5#"&'#"&54675&&547##"&5533265!5!632#74&#"33#"326'=4732655#5!#32665tSnMSvxShI16KQSQVR'+.%!MY@5./6SE96BFXC]gYZi^8[4b0;D?EMZU>K SD0&Nb]N)99,F XG *8;,9AD:088wcIWEFFS_m/V7?Vf##5#"&'#"&54675&&547##"&5533265!5!632#74&#"33#"3267>325!566554&&#"3?R`CMo:g~I16KQSQVR'+.%!MY@5./6SE96BFYEThK SD0&Nb]N)99,F XG *8;,9AD:097TWBf880F1L(*L0(K2L[+7####"&&54663!5!#"&5533265!5!654&#"3S3X79]57_<H`QSQVR'+.% GG78HG9bD)8T,0W:4?####"&5463354&#"!#"&5533265!5!6323#"3265S^WSfmU^-0QSQVR'+.%"ZS\5A<.17FbMdkaPS]^=DNb]N)99,F rdQ:10:F>GT_##5#"&'##"&5463354&#"#&547##"&5533265!5!63232655#5!#32665%#"3265SnM{^WSfmU^-/)3SQSQVR'+.%"ZSOSi^8[4P\5A<.17b0;~MdkaPS]^=D816)Nb]N)99,F rdQAREFFS_m/V7920:F>&*5####"&546335!#"&5533265!5!#3#"3265T^XSelU_bQSQVR'+.%׷]4A<.17bMdkaPS]Nb]N)99,FFE:10:F>&3##5#"&54732655!#"&5533265!5!#32665SnM~YZQSQVR'+.%i^8[4b0;IWENb]N)99,FFS_m/V7+8##5#"&'#&54732655!#"&55332655!5!#32665SnMRu `K YZQSQVR'+.%i^8[4b0;B=C(3IWENa]M*99+FFS_m/V7E]M#"'532654&#"#54&#"327#"&&54663236675!#"&5533265!5!gEQ6lLKTC?ADGA>AFTK Ll65^=ITH>fQSQVR'+.%xuYGo?I^LEXcTSdWFL^I?oGFh7T=7PNb]N)99,FFx(8##5#"&&5466325!#"&5533265!5!66554&&#"3xQaCCh9:hBDaQSQVR'+.%M%%M7/L,^Ib09;kGDh:90Nb]N)99,F1L(*L0(K2MZ18##!326553#"&5532655!#"&5533265!5!#!R.::5>PiZ`g\TXnQSQVR'+.% b]@LG:  ZkwaZN[Nb]N)99,FF[4R6B####"&'#"&54675&&55#5!!33#"32677663!654&#"3ބS3X7@d5`sL84@~@H*0JHQ?JTpOHGG78HG9bD)8T,;4{_X?P  IDMFFI<Y:atL84@~eG_@H65B##5#"&'#"&54675&&55#5!67&54732655!33#"3#32665SnMNr!!zOpL84@~nYZ@H/5JHWFi^8[4b0;<89B^Y?P  IDMFaLIWEI</7D JEiFFf;=EF7KP;nL.A!::%823KR ;]j#5#"&&5467&&'#"&&5467#5!#"32676675&&55!5!!!33#"326654&&#"#&5467#32665EFOM=.A| iW\'D(/0V86UF4'*/[?5TBBT@CL>/7D JEiFFf;=EF7KP;nL.A!::%823KR K=?I(?!1=####"&'#"&&5467#5!#"366754663!5!5!654&#"3S3X7:]a@=e:/+k#GVV>?R 7_<HGG78HG9bD)8T,0,39/Y?5TBBT@BKN:+8##5#"&'#"&5467#5!#"32654732655!5!#32665ڄSnMRvqJc|/+k#GVUBMbYZi^8[4b0;C>GGi`5TBBT@CLpuIWEFFS_m/V7oCR##5#"&'#"&54675&&55#5!6654&&#"#&546326655!33#"3#732665oUiHMp!#N=3@|xK2*@EfJ3QKL6?ENMrod j]6[5b/9<8_jriEU JEiF;nL.A!::%823WS/-AIGf;=EF7KP;S_abk0U7o!IX##5#"&'#'#7&&54675&&55#5!6654&&#"#&546326655!33#"3#732665oUiHMp!\WW|N=3@|xK2*@EfJ3QKL6?ENMrod j]6[5b/9<8Kc o_EU JEiF;nL.A!::%823WS/-AIGf;=EF7KP;S_abk0U7&DR6632#"'532654&#"#5#"&&547##"&55332655!66325!5!6654&&#"3HX?<`56_<%?QT?JLP[B>a6iZZfT;24=1N.@ZAkE"!F3BYWD0::gBGh7BUJGVbC/99iF4-_ZooZ:HH:8.FF 0I'(I.VGKW-####"&55##"&55332655!32655!5!5!SiZZfiZZfT;24=[;24= b_ZooZ__ZooZ:HH::HH:F'~vX'~X3S3####"&'#332654&#!#"&55332655!5!5!SR-5/T6;ZROV;>H_IiZZfT;24=hnbT:7T.0&=EL;ENcZooZ:HH:Fd7E##5#"&'###"&55##"&55332655!32655!2655!5!#32665dToLy"iZZfiZZfT;24=Z;34< YZtg]i^8[4b0;>ZooZ<G^I@VEFSf^ b[8[4b1;"(S:7T.0&?EK;EMD,&KLEFFS^e`j/V7+3326653#"&&547##"&55332655!6335!5!##4v/U57U/PBxON{E iZZfT;24=MLvBea[4R.0U7MvA?sIM8_ZooZ:HH:7tFFd>332#"&'332654&##"&547##"&55332655!66335!5!##F;/-WvnepRSLAEO=)KiiZZfT;24=M.r\%.+(PYL\iX:G:/:2DM _ZooZ:HH:yFF*###"33#"&547##"&55332655!5!5!R_maZ vSiZZfT;24=bZXU^C}s~:^ZooZ:HH:F5326653#5#"&&547##"&55332655!66335!5!##.jUH#A*MRU5@d8iZZfT;24=<$c9H$VOGV=-#*6fG;+`ZooZ:HH:nFFS)5####"&&547##"&55332655!5!5!654&#"3ST3Y79]5(iZZfT;24=jnFF78HG9bD*8S-0W:H2_ZooZ:HH:FE66EE76D*3<##5#"&&547##"&55332655!66325!5!654&&#327%PbDDo@iZZfT;24=)![4Dc22)R:1T3K0 b/:;mG6+_ZooZ:HH:"$;/F,.:-S4Q*-.>[%)4####"&547##"&55332655!5!5!#3#"3265[T^WRf)iZZfT;24=gv׸\4A;.17bZ]f`MF,TZooZ:HH:FFE:10:?7+%3##5#"&'###"&55332655!2655!5!#32665+TmLy#iZZfT;24=YZFg^i^8[4b0:>ZooZ:HH:?JEFFSV[eu/V7+"A~vX*:##5#"&&547##"&55332655!66325!5!66554&&#"3QaCCh9iZZfT;24=.T2DaM%%M7/L,^Ib09;kG3+_ZooZ:HH:!90F1L(*L0(K2MZW1AM####"&''#"&'#5332654&##&&546335!5!!#"33!663!654&#"3WS3X7Il1YSGQOKNC:BM####"&''#"&'#5332654&##&&546335!5!6335!#"33!#3#"3265hT^XNc1YSGQOKNC:%,@M##5#"&''#"&'#5332654&##&&546335!5!&54732655!#"33#32665%SnMYz1YSGQOKNC:O(BBT@CL0R2@Fn5W#"&547##"&&'332654&#"#66323675&&55!5!!!33#"326654&&#"#&5467AQ]om wb?_7O H:HOOH;I O r``u &73@b?ENMrXK2*@EM=| iWaLriZr/O0+;^FE^<*JdmV% JEiFFf;=EF7KP;nL.A!::%823KR 8####"&'##"&&'332654&#"#663235332655!5!5!SiZPc m wb?_7O H:HOOH;I O r``u kT;24=6b_ZoXJZr/O0+;^FE^<*JdmV:HH:FaKQ326553#"&55##"&&'332654&#"#66323532654&#"#&547!5!632###?@8?Qj\fom xb?_7O H:HOOH;I O r``u oUkB99CS%G %^roAT@nBPI= _nygO[s/O0+;^FE^<*JdlVMK>GG= I3F pcjpFb8/3265332653#"&&5467&&546335!5!##_]UZZPPd]UZZP~Qx?B8:@r8^EB?MSGiy>I?MTGiz5_>BW\>akgFF8'332653#"&5467&&546335!5!##&#"3265 `^TX]O=;:@vv?:;>q8]_TS__ST_FA?MTFCbYAbmmbAY]=akgFF]IICBIIB /@##5#"&5732654&#!"326653#"&&5466335!5!65!!23 R4}gr ?AJ8\v-Q34P,P?sLKxCIVg'V^oUNOKbi|o!'1a[4R.-Q4Jq??sISubmmb>X[?[j hFFIICBJJBIBCIICBI&7G##5#"&54732654&###"&&546675!5!65!!236654&&#"3R4}gr ?@I5+.DyLLzF;g@0V:`^oUNNLU//U65U//U5biwk (0 `;Gq??sJEjA{Fo\K}@I9<EQ.S44R..R44S.*7#5#"&&5467&&54675!5!&#"3265#"32665atEMR98W0709>xd̯[PT_^SQ\@0@LVI;.Ae i\b7<).1Y:=W[@[i eFFHHCCJKBFB?H)?!hD32#"32#"&'332654&#"&547&&5332654&#"&546335!5!##B@gojdJEDAjngajPSN<>LG`iW/9PSN<>OF^i`MneH(>ODK!&(>ODLYN1=-)4#4BNE/0=-(3$6CA=fFFYI3232654&#"#&54632#"&&5467&&5332654&#"&546335!5!##C@gpZsk^HV0,'/9ODJSwjO|FOE5BPSN<>NF_iaKpriH(>O \VN[;1'1)" 9@P@KZ4gHPhK20=-(3$6CA=fFF9I##5#"&54732654&#!"332#"&'332654&##"&546335!5!65!323S6zgs?CM82F;/-WvnepRSLAEO=)KihMrhUUNOLbhxl ")2"%.+(PYL\iX:G:/:2DMIDyFo\Kz9;ESt3@#5#"&&5467&&5332654&#"&546335!5!###"32665$91ak(GK14R/=25?PTM==OJVmaKpg}'2OWH7*9JAM<%Z"$+N4:QL1/=-)5$4IA=fFF_ @?7A#6S32654&#"#&54632##1"32654&#"#&54632#"&&5467&&5466335!5!##uqdN]4.*3:TFNU9jG^{qdN]4.*3:TEMWrTJNEENDxL@Kr]WS_;0'1(" 9?OA1K)^XS^;0'1(" 9@OALZ7jJNilLKh5cFF?O##5#"&5473654&#!"32654&#"#&54632#"&&5466335!5!65!32#3R4}gr>FI9j7eBI_8,&5?XDM\;lJVNLU(Q*VXKNLbd|o $*3"oj=`6J;-:1'  @J[I:Y0D|SY|>pFhVXr=;HW8E32654&#"#&54632#5#"&5467&&5466335!5!###"326655uqdHV0')2:REHQ(&FM6Sh>4BLDxL9Rl,*Y]I7,=]WS_<2&/(" 9?N?+DV'-cP=VnLKh5cFFaBB8B(?"}+)2326653#"&&5466335!#"&5#5!##%#3265#v/U57U/PBxON{EIVFd[Zdve;22:a[4R.0U7MvA?sISupZnpXFF6CC6"+####"&5##"&5#5!#3265#3265Sd[Zdd[Zdv;22:&;22:bZnpXZnpXFF6CC6'6CC6C&*5####"&546335!#"&5#5!#3265#3#"3265CT^XSelU_qd[Zdv^C;22:混]4A<.17bMdkaPS]ZnpXFF6CC6'E:10:F>&3##5#"&54732655!#"&5#5!#3265#32665SnM~YZd[Zdv ;22:i^8[4b0;IWEZnpXFF6CC6'S_m/V7(8##5#"&&5466325!#"&5#5!#326566554&&#"3߄QaCCh9:hBDad[Zdv;22:M%%M7/L,^Ib09;kGDh:90ZnpXFF6CC61L(*L0(K2MZBP6632#"'532654&#"#5#"&&547#"33#"&5463366325!5!6654&&#"3X?<`56_<%?QT?JLP[B>a6s`m`[!wP/@ZkE"!F3BYWD0::gBGh7BUJGVbC/99iF1-YWU^Cx|{!8.FF 0I'(I.VGKWn8DR`##5#"&&'&&#"#5#"&&547#"33#"&5463366325!5!6655!663%#326656654&&#"3nSnMRv?B9IJP[B>a6s`m`[!wP/@Z$V@B'V@H0Z>8[4UE"!F3BYWDb0;CwM/AbC/99iF1-YWU^Cx|{!8.FE8 LIR.8s`7W1/V70I'(I.VGKWEV6632#"'532654&#"#5#7#"&&547#"33#"&5463366325!5!654&&#"3277X?<`56_<%?QT?JKP\=a7s`m`[!wP/@Z.!F3BYWD 0::gBGh7BUJGVbC Ŗ8fD1-YWU^Cx|{!8.FF*S-(I.VGKW 68GWe##5#"&&54&#"#5#"&&547#"33#"&5463366325!5!66325!66366554&&#"3$6654&&#"36QaCCg:N?IFP[B>a6s`m`[!wO.@ZQFQb=DaBS>M%%M7/L,^I4E"!F3BYWDb09:jFGVaD/99iF3-ZXU^Cx}| 8.F-)-190-6x1L(*L0(K2MZ0I'(I.VGKWGS##!32653#5#"&554&#"33#"&54632667&&547!5!63236654&#"؃Q2:'>47@GM G7N`NVMZ`[!wk`jA/BV'3V2%"FUC),D32DFby %8'/@G30\H%Os\VU^CxykS)YF8*F (L5.D-D<)1>:4W,CP##5#"'#"&55&&#"33#"&546326655!5!67&&5466325!3$6654&#"3WSL6qOs LDW``[!wxTm8?IrM+14Z76LpcPZO@=DB;PO<b&-?OsU(:ZXU^Cx|~>3DLFb4*^<<\2,&ϐi`ZJZ)@#7TJ?BLqW0GT##5#"'#57#"&55&&#"33#"&546326655!5!67&&5466325!3$6654&#"3WSL6(Zs LDW``[!wxTm8?IrM+14Z76LpcPZO@=DB;PO<b&-0"rU(:ZXU^Cx|~>3DLFb4*^<<\2,&ϐi`ZJZ)@#7TJ?BL###"33#"&5467#5!5!5!T`ma[!v3,b^[RZCznE`FF'5##5#"&'&#"33#"&5467#5!26655!5!#32665SnM|nQ\a[!u)$K6IK-g]i^8[4b0;yFXYR[BznB]FKLNEFFS_aXg/V7j*:##5#"&&547#"33#"&5467#5!66325!5!66554&&#"3jQaCCh9v`ma[!v3,U2DaPM%%M7/L,^Ib09;kG2+^[RZCznE`F"90F1L(*L0(K2MZA##5#"&'#"33#"&546332654&#"#&547!5!632##32665SvWzx\f_X#v~Ym:14<Lw#7U.s9gd;b:Fb6L|IIHQCrmki,F .Q3ab_p3_@i'3####"&&547#"33#"&5463!5!5!654&#"3S2X7:]5(u`m`[!wkGG78HG9bD*8T-0X9H3ZXU^Cx}|FE65EE75Ds0=I##5#"&'##"&&547#"33#"&5463!2655!5!#32665654&#"3sSnMx3X79]5)x`k_Y!wjZYeh_k\8[4GG78HG9b0;D*8T-0W:I2PPOVCxssq=KEFFSW]ew/V7E66EE76D(###"&'#"33#"&546335!5!!3265SU:dmY`m`[!w]%/KLEOb)-{jZXU^Cx}|FFT]YB"+###7#"&'#"33#"&546335!5!!3265S ] dmY`m`[!w]%/KLEObxiZXU^Cx}|FFT]YB|EX#"'532654&#"#54&#"327#"&'#"&'#"33#"&546335!5!675!326766323EQ6lLKTC?ADGA>AFTK `w5YenY`m`[!w]%2H>GH2C nQITuYGo?I^LEXcTSdWFL^IbS5{jZXU^Cx}|FFPT]4,T_T=_9B6632#"'532654&#"##"&'#"33#"&546335!5!!!3265~ZA<_56_<%?QT@LMSP6`iY`m`[!w]%zFGAJ099fBHi7AWIGVgG(,zkZXU^Cx}|FFR[W@#'2####"&547#"33#"&5463!5!5!#3#"3265S^WSfo`m`[!wt׸\4A;.17bLdlaP>*QPOVCxrtsFFE:10:F>)0>I##5#"&'##"&547#"33#"&5463!5!5!32655!!#32665%#"3265SnM|^XSeu^j_X!wy NTh]i^8[4.]4A;/17b1;~MdlaP>+OMKRCtoqpFCPES^`_m/V7:119F>%3##5#"&'&#"33#"&546326655!5!#32665SnL}nSY`[!wuH\JKTi\i^8[4b0;zEZXU^Cy||)"KOEFFS_bXg/V7%2##5#"&'#547&&#"#466326655!5!#32665SnMiksY;MfSAtLR~ @B+i^8[4b1:f\^.8]QHnAFTK Ll6q`m`[!w6OITH>9uYGo?I^LEXcTSdWFL^I?oG>2ZXU^Cx}|-T=7PFFD(8##5#"&&547#"33#"&5463366325!5!66554&&#"3DQaCCh9w`m`[!wU2Dav_M%%M7/L,^Ib09;kG2+ZXU^Cx}|"90F1L(*L0(K2MZ4;##!326553#"&554&&#"33#"&5463232655!5!#!S/:96>Ph[`g H6W``[!wxOj,TX bP@LF; [jwae7%ZXU^Cx|~7.YNiFFi4QBMY####"&&547!326553#"&554&&#"33#"&5463232655!5!!3663!654&#"3݄S3X79]5U:96>Ph[`g H6W``[!wxOj,TXD c@HGG78HG9bD)8T,0W:@LF; [jwae7%ZXU^Cx|~7.YNiFFi4Q03E65FE76D:DS##5#"&'!326553#"&554&&#"33#"&5463232655!5!32655!!##32665TmLzW:96>Ph[`g H6W``[!wxOj,TX YZ`W i[8[4b0:s@LF; [jwae7%ZXU^Cx|~7.YNiF4QFSp~Z`S_/V7Z<IY##5#"&&55!326553#"&554&&#"33#"&5463232655!5!6325!366554&&#"3ZQaCCh9_:96>Ph[`g H6W``[!wxOj,TXuuQDa &M%%M7/L,^Ib09;kG@LF; [jwae7%ZXU^Cx|~7.YNiFU90i4Q1L(*L0(K2MZO->J####"&'#"&5473254&#"#&54632##3267663!5!5!654&#"3-T2X7;]"yNc:24<LiT7T.t3kgTpuZGGG78GF9bD)8T,1,7<0??5Vc/T6deZkSEWcFE65FE76DO:H##5#"&'#"&5473254&#"#&54632##3265732655#5!#32665SnMUx }Tc:24<LiT7T.t3fbcsX[daj^8[4b1;HBGP0??5Vc/T6deYi~k'JVEFFS`^_m/V7O<L##5#"&'#"&5473254&#"#&54632##3267>325!566554&&#"3RaCIm!wOc:24<LiT7T.t3jgRk;g@D`_0L%%L8.L,]IFb09D>=B0??5Vc/T6deYi\QAe780F1L(*L0(K2MZ=1326653##"&547332655&&546335!5!##ZK@!@)INH-NPKOG'+-%BJqO.DA9E8(&uK^WF &69*~dFbhnFF5326653#5#5#"&547332655&&546335!5!##ZK@!@)IJT.H-NPKOG'+-%BJqO.DA9E8(ۯ.&6K]VF &69*?dFbhnFF1J326653#5#"'#"&54675&&5463266335!5!##&547&#"33#"3267'kVH#A*LRU4#[YtH26Hb`+X%$c8H,4!;8BI:=ZVOGV=-¾")Yg\T>O J@E[nFFdDH4:,19B<08;ND=/33#"32653#5#"&54675&&546325!5!##O@;UV9BI:=Z/4GxKH,VOGV=-¾")Yg\T>O J@EZE;/19B<08;NDdDLi5nFF|7CG####"&&54663!5!#"326653#5#"&&5466335!5!654&#"3#'|S3X79]57_<HFRjUH#A*MRU5@d8FyKHMGG78HG9|VzbD)8T,0W:K SDI\XG *8;,9AD:097NKUaFE65FE76DQKXd##5#"&'##"&'#"&54675&&54632#74&#"33#"327663!2655!5!#32665654&#"3ЃTmLx3X7DfrQeI16K_LMY@5./6SE96BFYE#tXGZZ8g_j\8[4FF79HH9b0:D*8T-@814ZU>K SDI\XG *8;,9AD:097wS_=KEFFSW]ew/V7E66EE76DQAEP####"&'#"&54675&&54632#74&#"33#"3267766335!5!#3#"3265U_V8U vQe}I16K_LMY@5./6SE96BFXCUe iP^ض\5@;.17bMcl.)+0ZU>K SDI\XG *8;,9AD:088D7KRFFE920:F>QCP##5#"&'#"&54675&&54632#74&#"33#"326'=4732655#5!#32665SnMSvxShI16K_LMY@5./6SE96BFXC]gYZi^8[4b0;D?EMZU>K SDI\XG *8;,9AD:088wcIWEFFS_m/V7Q@P##5#"&'#"&54675&&54632#74&#"33#"3267>325!566554&&#"3R`CMo:g~I16K_LMY@5./6SE96BFYEThK SDI\XG *8;,9AD:097TWBf880F1L(*L0(K2L[AO[6632#"'532654&#"#5#"&&547##"&&54663!6325!5!6654&&#"3$654&#"3X?<`56_<%?QT?JLP[B>a63X79]57_<rPiZ`gO>IFP[B>a63X79]57_<rQaD/99iF:.D)8T,0W:Ph[`g H6W``[!wA3X7:\57_<.Oj,TX 7GG78HG9bP@LF; [jwae7%ZXU^CxtAD*8S,/W:325!566554&&#"3654&#"3RaCIm!wO3X79]57_<:24<L{#7T.t3jgRk;g@D`_0L%%L8.L,]IGG78HG9Fb09D>=BxC*8T-0W9=X.0??5=-F /T6deYi\QAe780F1L(*L0(K2MZ7E66EE76Dl3?326653#5#"&&547##"&&54663!66335!5!##654&#"3jUH#A*MRU5@d83X79]57_<v#_7H]GG78HG9VOGV=-#*6fG>.D)8T,0W:.D)8T,0W:325!566554&&#"3$654&#"3zR`CMo:g~ \C3X79]57_<:d!16K!MY@5./6SE96BFYEThE75EE76DDQ\h##5#"&'##"&547##"&&54663!54&#"#&547!5!63232655#5!#32665%#"3265654&#"3SnM{^WSf!3X79]57_<X-/)3Sq"ZSOSi^8[4P\5A<.17GG78HG9b0;~MdkaP?,E*7S-0W9E66DE75DJZeq##5#"&&547##"&547##"&&54663!54&#"#&547!5!632366325!566554&&#"3%#"3265654&#"3RaCDh9^WSf!3X79]57_<X-/)3Sq"ZShBD`O?M%%M8.L,]I.\5A<.17GG78HG9Fb1::lGMdkaP?,E*7S-0W9E66DE75DF#'2>####"&547##"&&54663!5!5!#3#"3265654&#"3FT^WSf!3X79]57_<W}aط[4B<.16GG78HG9bMdlbP?,E*8S,0W9IU##5#"&'##"&547##"&&54663!5!5!32655!!#32665%#"3265654&#"3SnM|^XSe"3X79]57_<X|-NTh]i^8[4.]4A;/17GG78HG9b1;~MdlaP@-E*8S-0W:E66EE76D"/;##5#"&'##"&&54663!2655!5!#32665654&#"3SnMx3X79]57_<GZYh_k\8[4GG78HG9b0;D*8T-0W:aDaM%%M7/L,^IGG78HG9b09;kG7.D)8T,0W:J##!326553#"&55#4&###"&&546633232655!5!#!654&#"3NR.::5>PiZ`gBF43X79]57_PiZ`gBF43X79]57_PiZagBF43X79]57_=GUa##5#"&'!326553#"&55#4&###"&&546633232655!5!32655!!#32665654&#"3SnLyV::5>PiZ`gBF43X79]57_+D)8T,0W:7rFF]tT];//9#3#"&&'#"&55#5!675!3267&&#"32665Ag7rFFd {T]0)R..R44S..S4:'###"33#"&'#"&55#5!!32676633:T`m`[!t3LkppUFKK.BebZXU^Cxr'rFFT]*#LM!4B##5#"&'&#"33#"&'#"&55#5!6655!32673663%#32665SnL}nSY`[!p 2Qkpp \JKJK5AzYki\i^8[4b0;zEZXU^Cpl,rF)"KOER[90HHS_bXg/V7%1####"&'#"&55#5!!3267663!654&#"3S3X7Fi3SjnpHH,> oNHGG78HG9bD)8T,F=3tFFT]2)ELE65FE76D&'###"&'#"&55#5!5!3265%!3265&SU:F`_GiopAKLFM~KLEOb)->9:=rFT]]QT]YBq.7@6632#"'532654&#"##"&'#"&55#5!655!3!3265ZA<_56_<%?QT@LMSP6C\_FiopMKLFGAJ099fBHi7AWIGVgG(,=89w#0##5#"&'#"&55#5!674732655!3#32665wSnM^}T7iopGYZ$GHii^8[4b0;VN&)rF(J:IWET]S_m/V7E4G#"'532654&#"#54&#"327#"&'#"&55#5!675!326766323EQ6lLKTC?ADGA>AFTK `w5Yiop,2H>GH2C nQITuYGo?I^LEXcTSdWFL^IbS5rFFPT]4,T_T=/"2##5#"&'#"&55#5!6766325!366554&&#"3/QaCRt9\iopJPiZ`g4YippaTXGH>F$ b]@LG:  Zkwa/9rFZN[T]P:[4RF )<####"&554&#"##"&55#5!655!3!663232655!FTiZZdO?IFSP6dipa0JFG:S?;[2;24<b_ZojS FTaD(,qF(W@R[/86`<:HG;F"'~k~YX,5B326653#"&&5514&#"##"&55#5!##655!3$6335!6632v/U57U/PBxON{ELGLMSP6dipeJFG`|OW?>Ya[4R.0U7MvA?sIR^gG(,qFFW@R[4t/873)2?###"33#"&547#654&#"##"&55#5!655!3!66326633DŽT`m`[!wNCLMSP6dipJFG$W?Ca&rHbZXU^Cx  []gG(,qF(W@R[/8GC''"~k#%.;G####"&&55#6&#"##"&55#5!655!3!6632663!654&#"3#S3X79]5NBLGSP6dip>SJFGR><[R0HGG78HG9bD)8T,0W:XWfH(,qF(W@R[-698E65FE76D|&.7###"&'&&#"##"&55#5!655!35!663%!3265|SU:Zj D6IJSP6dipJFG.R;KLEOb)-dX15gG(,qF(W@R[#-6tT]YB7@HQ6632#"'532654&#"##"&'&&#"##"&55#5!655!35!663%!3265ZA<_56_<%?QT@LMSP6Vg D6IJSP6dipJFG.R;FGAJ099fBHi7AWIGVgG(,cX07gG(,qFFnW@R[#-6tR[W@"'~k~='3@##5#"&&'&&#"##"&55#5!655!36655!663%#32665TnLRw>B8KKSP6dipJFGY@A$X@Jj\8[4b/:DxN.?fH(,qF(W@R[D9 KIR.7s`Tk/V7AJ]#"'532654&#"#54&#"327#"&&55#6&#"##"&55#5!655!3$675!663266323EQ6lLKTC?ADGA>AFTK Ll6FBEFSP6dipJFGH>R:6PT4ITuYGo?I^LEXcTSdWFL^I?oGRWgG(,qFFnW@R[P-6.,&(T="-3DM326553#"&554&#"##"&55#5!632###32654&#"!663655!3@@8?Qk\foO>LGSP6dip#^roAUfOUlC:5RPiZ`gO>LFSP6dipIHJFGZTXT>Fd   b]@LG:  Zkwa>QeI(,qF(W@R[ZN[,5NB[4R! !(2;####"'#"&&546632132655!5!5!54&&#"$327%SdZg- pKIs@?rJRs9:34<)R:$@2T2L0b_[nK5>325!566554&&#"3$327%)R`CMo:JngAEsD@qF*!&%BD+6Kx!MY@5./6SE96BFYETh45<;/F.:-S49.T43Q*-.>8Q+./<1;DO####"&'#"&&54663263354&#"'!5!6323654&&#327%%#"3265݃T^W7S gDIs@?rJ^x4S^-/l!YT@)R:2T2L0[5A<.16FbMdk,(,2BDFA>AFSL Jh jFIs@?rJNnU6HUG>g)R:$@2T2L0uYGo?I^LEXcTSdWFM]IA9/5AFSL Jh jFIs@?rJNnU6HUWNS?3 KKRFF``^Xg/V7b9.T41Q+./<p",<E##5#"&'#"&&54663266325!5!54&&#"66554&&#"3$327%pQaCBenKIs@?rJMmf@DaJ)R:$@PM%%M7/L,^I2T2L0b09734;1L(*L0(K2MZoQ+./<28BK326553#"&'#"&&54663232654&#"!5!632###54&&#"$327%M?@7@Rk\Wj b>Is@?rJe{WUlD9A"_rnAU)R:$@2T2L0@nBPI= _n_T&*PhZTb !`>Is@?rJ^x(TW )R:$@2T2L0b]?MG: [jaR%*L1>I##5#"&'##"&5463354&#"#&5463232655#5!#32665%#"3265SnM{^WSfmU^-/)3S[QZSOSi^8[4P\5A<.17b0;~MdkaPS]^=D81O_rdQAREFFS_m/V7920:F>L6CN##5#"&'#&'##"&5463354&#"#&5463232655#5!#32665%#"3265SnMAf"]K`TSfmU_.1)2Q[QXTOSi^8[4Q^4A<.27b0;+(AC80N^rdQAREFFS_m/V76.,6F>LE\g#"'532654&#"#54&#"327#"&&547##"&5463354&#"#&546323663236675!5!#"3265DQ6lLKSC>ADGA>AFSKLl7^WSfmU^-/)3S[QZSY7IUI>t\5A<.17vXGo?I^LEXcTSdWFL^I?oG$#MdkaPS]^=D81O_rdQ+.T=7PFF920:F>L7GR##5#"&&547##"&5463354&#"#&54632366325!566554&&#"3%#"3265RaCDh9^WSfmU^-/)3S[QZShBD`O?M%%M8.L,]I.\5A<.17Fb1::lGMdkaPS]^=D81O_rdQ3:91F1L(*L0(K2MZ920:F>#*5###"33#"&547##"&546335!5!!3633#"3265T`m`[!w"^XSelU_Fpp]4A<.17bZXU^CxP8MdkaPS]FF,q:10:F>q*2=326653#5#"&&547##"&546335!5!##&6335!3#"3265jUH#A*MRU5@d8^XSelU_zLH]4A<.17VOGV=-#*6fG MdkaPS]FF6nE:10:F>#")5@####"&&547##"&546335!5!!363!654&#"3%#"3265#S3X79]5 ^XSelU_>R:[HGG78HG9R]4A<.17bD)8T,0W:'$MdkaPS]FF2E65FE76D:10:F>'2###"&'##"&546335!5!35#!!3265#"3265SU:Zj^XSelU_.KLEO]4A<.17b)-dXMdkaPS]FT]YB&:10:F>!*5###7#"&'##"&546335!5!35#!!3265#"3265S ] Zj^XSelU_.KLEO]4A<.17baWMdkaPS]FT]YB&:10:F>'09D##5#"&&547##"&546335!5!6325!3654&&#"327%%#"3265ăPbDDo@^XSelU_nDDcw)R:I2;1T3K0 ]4A<.17b/:;mGMdkaPS]F=;/.:-S4,Q*-.>7:10:F>#0AKT_##5#"&'#"&&547##"&546335!5!6326655!3%###73266554&&#"$327%%#"3265TnLKp"sQIs@^XSelU_sJRrKMqoff\8[4")R:$@2T2L0]4A<.17b0;84;F!+4=H##5#7#"&&547##"&546335!5!6325!3654&&#"327%%#"3265ăP [ Do@^XSelU_nDDcw)R:I2;1T3K0 ]4A<.17bΖ:kFMdkaPS]F=;/.:-S4,Q*-.>7:10:F>"'0;F####"&547##"&546335!5!6323!54&#"!#"3265%#"3265"T_VTe%^XSelU_"ZTT-/N]4A<.17\5A<.17FbMclaP@+MdkaPS]F rdQ^=D:10:F>Q:10:F>2CP[f##5#"&'##"&547##"&546335!5!63232655#5!!54&#"#&547#!#32665%#"3265%#"3265SnM{^WSf!^XSelU_#ZSOS-/)3Ski^8[4G]4A<.17 \5A<.17b0;~MdkaP?,MdkaPS]F rdQAREF^=D816)S_m/V7:10:F>Q920:F>8+4?J##5#5##"&547##"&546335!5!6323!54&#"!#"3265%#"32658L]g`TSf^XSelU_ YS:.0^4A<.27]4A<.17Fb[r>am\K;(MdkaPS]F rdQ^=D6/,6F?@:10:F>8IYdo##5#"&&547##"&547##"&546335!5!632366325!5!54&#"#&547#66554&&#"3%#"3265%#"3265RaCDh9^WSf!^XSelU_#ZShBD`Oz-/)3SM%%M8.L,]I%]4A<.17 \5A<.17Fb1::lGMdkaP?,MdkaPS]F rdQ3:91F^=D816)1L(*L0(K2MZ:10:F>Q920:F>-"&1<####"&547##"&546335!5!!5!!#3#"3265%#"3265-T^XSe!^XSelU_HqM]4A<.17]4A<.17bMdkaP?,MdkaPS]FE:10:F>Q:10:F>!/:##5#"&'##"&546335!5!32655!!#32665%#"3265SnM|^XSelU_NTh]i^8[4.]4A;/17b1;~MdlaPS^FCPES^`_m/V7:119F>E>LW#"'532654&#"#54&#"327#"&&547##"&546335!5!675!366323#"3265EQ6lLKTC?ADGA>AFTK Ll6^XSelU_2H>NY7IT]4A<.17uYGo?I^LEXcTSdWFL^I?oG$#MdkaPS]FFP+.T= :10:F>'7B##5#"&&547##"&546335!5!6325!366554&&#"3%#"3265QaCCh9^XSelU_gBDaM%%M7/L,^I]4A<.17b09;kGMdkaPS]F:901L(*L0(K2MZ:10:F>=)/CN326553#"&55##"&54633!5!632###654&#"#&547#!#"3265@@8?Rl\eo^XSelU_&_qoAUlC:8CS%Bp]4A<.17TBPI= _nyg}MdkaPS]F h]gmFbJH7AH< I3E:10:F>F'.5@##!326553#"&55##"&546335!5!655!!%#!#"3265FS.;96=QiZag^XSelU_aWK !]4A<.17bc?MF;  ZkwaMdlbPR]FYOV[4PI:10:F=J9AL632#&&#"32673#"&&5467&'##"&546335!5!##&6335!3#"3265<&!ao P I;FOOF:I P9_?Hi6939^XSelU_eUB0]4A<.17'** _F';VABT9'-L-:d??b3MdkaOT]FF5uE:10:F>/;####"&'#"&54732655!5!!3267663!654&#"3S3X7>a mGyYZ=eYHc rSHGG78HG9bD)8T,713:IWEFFS^nYGLVE65FE76D.;##5#"&'#"&&54732655!5!4732655!3267#32665ȄSnMUwpOQyBYZIYZhXXai^8[4b0;GA@IEVIWEFIWES`lu^S_m/V7%##5#"&'&&'32655!5!#32665SnMy^NcDXYi^8[4b0;z`aC@JVEFFS_m/V7@632#&&#"32673#"&&5467&&'#"&&53327&546335!5!##<&!ao P I;FOOF:I P9_?Hi693.?4^AuFFXf6632#"'532654&#"#5#"&&'&&#"#54&#"327#"&&5466323663266325!5!6654&&#"3X?<`56_<%?QT?JLP[B=_7C=ADGA>AFTK Ll65^=ITVM0M`<@ZnkE"!F3BYWD0::gBGh7BUJGVbC/97eCBRcTSdWFL^I?oGFh7T=>S,)058.FF 0I'(I.VGKWNZhv##5#"&&'&&#"#5#"&&'&&#"#54&#"327#"&&5466323663266325!5!6655!663%#326656654&&#"3SnMRv?B9IJP[B=_7C=ADGA>AFTK Ll65^=ITVM0M`<@Zn$V@B'V@H0Z>8[4UE"!F3BYWDb0;CwM/AbC/97eCBRcTSdWFL^I?oGFh7T=>S,)058.FE8 LIR.8s`7W1/V70I'(I.VGKWY@Wd##5#"'#"&55&&#"#54&#"327#"&&546632366326655!5!67&&5466325!3$6654&#"3YSK6rOrA9ADGA>AFTK Ll65^=ITVMD`5;GtM+14Z85LpbQZO@=DB;ON<b&,?Osj5CcTSdWFL^I?oGFh7T=>SKCDIyFb4*\=<\2,%΃j_gJZ)@#7TJ?BL@####"&'.#"#54&#"327#"&&546632366323265!5!TORDL .'??GA>AFTK Ll65^=ITSJMP %$-&bNbC=&0bUSdWFL^I?oGFh7T=>SWU#(9,FC####"&'&&#"#54&#"327#"&&5466323663232655!5!5!TiZXd<;?AGA>AFTK Ll65^=ITUI7W1<24<b_ZofWEPcTSdWFL^I?oGFh7T==T1Y; ;FF9F"~ X+LJ326653#"&&5514&#"#54&#"327#"&&5466323663266335!5!##v/U57U/PBxON{EA@ADGA>AFTK Ll65^=ITVM6R%~Qgea[4R.0U7MvA?sIQXcTSdWFL^I?oGFh7T=>S0.36tFF/e>N#"&&'4&#"#54&#"327#"&&546632366326675!5!&&#"32665!AgAFTK Ll65^=ITSJ8U_:/U65U//U56U/zAkEKr?=pIU[cTSdWFL^I?oGFh7T=>S32+6{FFR..R44S..S4Q332#"&'332654&##"&'&#"#54&#"327#"&&5466323663266335!5!##yF;/-WvnepRSLAEO=)Ce \@BGA>AFTK Ll65^=ITSI'CV5r%.+(PYL\iX:G:/:26>ZcTSdWFL^I?oGFh7T==S#!yFFCZ32654&#"#&54632#"&&=4&#"#54&#"327#"&&5466323663266335!5!##7eBI_8,&5?XDM\;lJUOD@@BGA>AFTK Ll65^=ITSJ7U&S(^_oj=`6J;-:1'  @J[I:Y0C|RX_cTSdWFL^I?oGFh7T=>S43:AFTK Ll65^=ITUJ<]%tJJbZXU^Cx MQcTSdWFL^I?oGFh7T=>S@>()FS##5#"&&55&&#"#54&#"327#"&&546632366323254&#"!5!632##32665SvVS{B =2BEGA>AFTK Ll65^=ITVL@Z'91b7T.t3hd;b:Fb6LB{S+5cTSdWFL^I?oGFh7T=>S>90?F /T6deXj3_@i_l##5#"&'#"&55&&#"#54&#"327#"&&546632366323254&#"!5!632##32654732655#5!#32665TnLUy }T =2BEGA>AFTK Ll65^=ITVL@Z'91b7T.t3gbcrYZi^8[4b0;GBGO+5cTSdWFL^I?oGFh7T=>S>90?F /T6deXj}l IWEFFS_m/V7I326653#5#"&&54&#"#54&#"327#"&&5466323663266335!5!##jUH#A*MRU5@c9@=ACGA>AFTK Ll65^=ITUK2N#xJH9VOGV=-#*5fF@QcTSdWFL^I?oGFh7T=>S,)24nFFK326653#5#7"&&54&#"#54&#"327#"&&5466323663266335!5!##jUH#A*MR \@c8@=ACGA>AFTK Ll65^=ITUK2N#xJH8VOGV=- ͟5dE@QcTSdWFL^I?oGFh7T=>S,)24nFF26?###"&'&&#"#54&#"327#"&&546632366325!5!!32652SU:Vi =/ADGA>AFTK Ll65^=ITSI@.MKLEOb)-[Q.6cTSdWFL^I?oGFh7T==T&FFT]YB}PY6632#"'532654&#"##"&'&&#"#54&#"327#"&&546632366325!5!!!3265ZA<_56_<%?QT@LMSP6Tf<-ADGA>AFTK Ll65^=ITSI@.FGAJ099fBHi7AWIGVgG(,_U+1cTSdWFL^I?oGFh7T==T&FFR[W@r?HQ##5#"&&'#&&#"#54&#"327#"&&5466323663266325!5!654&&#327%rPbDBmBBAFTK Ll65^=ITTJ1P mCDcF22)R:1T3K0 b/:9hDBScTSdWFL^I?oGFh7T==T-)5;;/F,.:-S4Q*-.>JU####"&5514#"#54&#"327#"&&5466323663263354#"!5!6323#"3265ԃT^WSfADGA>AFTK Ll65^=ITUK>W5[]\Z"ZT[5A<.16FbMdkaPcTSdWFL^I?oGFh7T=>SEF2^F rdQ:10:F>=AL####"&5514#"#54&#"327#"&&546632366326335!5!#3#"3265T^XSeADGA>AFTK Ll65^=ITUK>W5Z_׷]4A<.17bMdkaPcTSdWFL^I?oGFh7T=>SEF2FFE:10:F>;H##5#"&55&&#"#54&#"327#"&&546632366326655!5!#32665TnL}<1DEGA>AFTK Ll65^=ITYN;VDE;i]8[4b/:{#5bUSdWFL^I?oGFh7T=>S?3 KKRFF`Xg/V7EJc#"'532654&#"#54&#"327#"&&'4&#"#54&#"327#"&&54663236632663236675!5!TEQ6lLKTC?ADGA>AFTK Lk6C?ADGA>AFTK Ll65^=ITUK3QZ8ITH>euYGo?I^LEXcTSdWFL^I>nGEXcTSdWFL^I?oGFh7T=>S/,,/T=7PFFDcp##5#"&55&&#"#54&#"327#"&&'4&#"#54&#"327#"&&546632366326632366326655!5!#32665DTnL};2DEGA>AFTK Lk6C?ADGA>AFTK Ll65^=ITUK3QZ8ITYN;VDE_i]8[4b/:{#5bUSdWFL^I>nGEXcTSdWFL^I?oGFh7T=>S/,,/T=>S?3 KKRFF`Xg/V7d?O##5#"&&55&&#"#54&#"327#"&&5466323663266325!5!66554&&#"3dQaCCh9C9ADGA>AFTK Ll65^=ITUJ2Of@DaVM%%M7/L,^Ib09;kGS+)1790F1L(*L0(K2MZ?)bq332#"&'332654&##"&546335!5!##$#"&&55&&#"#54&#"327#"&&546632366326636654&&#"3F;/-WvnepRSLAEO=)KihMrZ0q67qRJq>C9ADGA>AFTK Ll65^=ITUJ2P pG9L%%L70N-`K%.+(PYL\iX:G:/:2DMIDyFFJDk<:kC:lGS-)28o1M)*M0(L2M[IP##!326553#"&55#4&#"#54&#"327#"&&5466323663232655!5!#!ۅR.::5>PiZ`g>8@BGA>AFTK Ll65^=ITSIAZ!TX b]@LG:  Zkwa5FbUSdWFL^I?oGFh7T=>SE?ZN[FF[4RZ632#&&#"32673#"&&5467&&'&&#"#54&#"327#"&&5466323663266335!5!##[<&!ao P I;FOOF:I P9_?Hi693"-2"BBGA>AFTK Ll65^=ITMDJ-M4鍷'** _F';VABT9'-L-:d??b5%"dVSdWFL^I?oGFh7T=>S8 "uFF%5A####"&'#"&&546632663!5!5!6747.#"3$654&#"3؄S3X77[dEJq>>pHOkW5HT$K7/M-_JGG78HG9bD)8T,,)0::lGDh:G:"$FW<)K/(K2MZE65FE76D,=##5#"&'#"&&5466326655!5!#32665&5&&#"32665TnLMq!gLJq>>pHUqGI=j]8[4" UE/M-_J7J$b0:727B:lGDh:N?LNXFFf R`/V7%4H(K2MZ0L*EDGV#"'532654&#"#54&#"327#"&'#"&&546632663236675!5!6654&&#"3NEQ6lLKTC?ADGA>AFTK NmbBJq>>pHJgZ:ITH>_4K%%K7/M-_JuYGo?I^LEXcTSdWFL^IB;-5:lGDh:>4-1T=7PFF1M(*L0(K2MZ_"1A##5#"&'#"&&54663266325!5!6654&&#"3 66554&&#"3_QaCBfeFJq>>pHHegBDa[zK%%K7/M-_JM%%M7/L,^Ib09942;:lGDh:;23:90F1M(*L0(K2MZ1L(*L0(K2MZ9I632#&&#"32673#"&&55#"&&54663266335!5!##&'&&#"32767X<&!ao P I;FOOF:I P9_?Hi66GFm<;jDk>M5捷,G5G\^I^22'** _F';VABT9'-L-:d? !;kGDh:M!"uFF1"+3ZKLZB0Z *[i326553#"&5532654&#"#&546632#6632#"'532654&#"#5#"&&5466325!5!6654&&#"3?@8?Qj\foUkB99CS3^?^ro%W?<_56_<%?QT@JKP[C>a67b?AZvjF"!F3BYVD@nBPI= _nygMK>GG= <\3pcjp^/8:gBGh7BUJGVbC099iFEh88/FF 0I'(I.VGKWZ "~5-73A##5#"&547#5%32655%#57&&54663276654&#"7MS96FZ62(ANԲ\JL.V9;X/7<11A63B59FbG18C3 $&0]H! &^>.N--M.6S0t&?,,?@+/DZ"m*3Z*K326553#"&5532654&#"#&546632#$326653#"&&5466335!5!##?@8?Qj\foUkB99CS3^?^rou0U56U/PBxON{EIVfd@nBPI= _nygMK>GG= <\3pcjp`\4R.0V6MvA?sISuGG= <\3pcjp^bZXU^Cx}|F- ,:F####"&''#57&&5466325463!5!5!76654&#"654&#"3 T3X79\_JN/X:;Y07;v]G001@51A69FF78HG9bD)8S-.*} )d@2S0/Q0;[0OZhF$F0.C?,3IE65FE76DZG*?CN326553#"&5532654&#"#&546632#####"&546335!5!#3#"3265?@8?Qj\foUkB99CS3^?^ro?T^VTekU_ط\5A<.17@nBPI= _nygMK>GG= <\3pcjp^bMdkaPS]FFE:10:F>Z*?L326553#"&5532654&#"#&546632###5#"&54732655#5!#32665?@8?Qj\foUkB99CS3^?^roSnM~X[i^8\4@nBPI= _nygMK>GG= <\3pcjp^b1; JVEFFS_m/V7Z*f326553#"&5532654&#"#&546632##"'532654&#"#54&#"327#"&&54663236675!5!?@8?Qj\foUkB99CS3^?^roER7lL LSC>ADGA?AESKLk74_=ITH>]@nBPI= _nygMK>GG= <\3pcjp^uYGo?I]MEXcTSdWFL^I?oGFh7T=7O FF-7$2?##5#"&&5467'#57&&54663276654&#"655'&#"37MT83Q-cK\KL.V9;X/7<11A63B59L&-*.N--M.5S1t&?,,?@+/DaZE!A42=ZS"mA .7@N6632#"'532654&#"#5#"&'#"&55#5!66325!675%36654&&#"3X?<`56_<%?QT?JLP[BMmQ3lspWkH@ZPJ NNE"!F3BYWD0::gBGh7BUJGVbC/9UK$uFFAJ8.i7%V^_0I'(I.VGKW1:CT6632#"'532654&#"#5#7#"&'#"&55#5!66325!675%3654&&#"3277X?<`56_<%?QT?JKP\JnR3lspWkH@ZPJ NN.!F3BYWD 0::gBGh7BUJGVbC ŖRG#uFFAJ8.i7%V^?S-(I.VGKW +& '0326653#"&&'#"&55#5!##"6335!677%3v/U57U/PBxOErI <[lspAe];hH NNa[4R.0U7MvA3^=9uFFGt5%V^.5FO##5#"&5732654&#!"326653#"&'#"&55#5!5!66365!!23$677%3R4}gr ?AJ8\v-Q34P,P?sLf<[lspr;!]yV^oUNOKcH NNbi|o!'1a[4R.-Q4Jq?q]9uFtDGXp\PxBI9;IW5%V^&%,5326653#'##7&&'#"&55#5!##"6335!677%3v/U57U/PfWWWJb <[lspAe];hH NNa[4R.0U7`gI9uFFGt5%V^ )0;H32653#5#"&&5467&'#"&55#5!##6335!67&55%3#"326655{a_VY^P%#LS:9Y291F!W7lsp9Ї~[<,^FNNBNSM=.@ EB?MTF5V:(.1Y8#*uFFHg-"V^sI?=I(?"/@$4#"&'#"&55#5!6675!67%3$&&#"32665AgZ]?iop,~KLEO7F KKb0,-8uFF T]YB:(V^\.2;C6632#"'532654&#"##"&'#"&55#5!!55!!326567%3{ZA<_56_<%?QT@LMSP6iopwIkFGAJJF KK099fBHi7AWIGVgG(,0-,6uFFR[W@:(V^)4####"&'#"&55#5!6335!!#36767%3%#"3265T^XH` 9Oiop65Z_1BKK]4A<.17bMdkJ@/uF2ؿ+V^z:10:F>{")7@K##5#"&'##"&'#"&55#5!66335!32655!!#32665677%3%#"3265{SnM|^XHb 7QiopiJ+_{NTh]i^8[4AKK]4A;/17b1;~MdlL@0uFCPES^`_m/V7k/!V^z:119F>w)1##5#"&'#"&55#5!732655!!#3266567%3wSnM\}U7iopKYZ!i^8[4F KKb0;TL%+uF IWES_m/V7k:(V^6&6##5#"&'#"&55#5!66325!675%366554&&#"36QaCRuO1iopQqLDaDE KKM%%M7/L,^Ib09VL$uFBL90i9'V^d1L(*L0(K2MZ#+###"&'#"&55#5!55!!67%3 67%3RU<@]\>iop25cJNMF KKb)-3/+7uFF 5-U_:(V^BO]6632#"'532654&#"#5#"&&547!326553#"&5532655!5!6325!36654&&#"3)X?<`56_<%?QT?JLP[B>a6T::5>PiZ`g\TX"mkI@Z E"!F3BYWD0::gBGh7BUJGVbC/99iF @LG:  ZkwaZN[FFK8.[4R0I'(I.VGKWERc6632#"'532654&#"#5#7#"&&547!326553#"&5532655!5!6325!3654&&#"3277)X?<`56_<%?QT?JKP\=a7T::5>PiZ`g\TX"mkI@Z M.!F3BYWD 0::gBGh7BUJGVbC Ŗ8fD @LG:  ZkwaZN[FFK8.[4RS-(I.VGKW 8ETdr##5#"&&54&#"#5#"&&547!326553#"&5532655!5!6325!3$66325!66366554&&#"3$6654&&#"3QaCCg:N?IFP[B>a6T::5>PiZ`g\TXkI@Z Qb=DaBS>M%%M7/L,^I4E"!F3BYWDb09:jFGVaD/99iF @LG:  ZkwaZN[FK8.[4R-)-190-6x1L(*L0(K2MZ0I'(I.VGKW+6M[##5#"'#"&55!326553#"&5532655!5!32655!67&&5466325!3$6654&&#"3RL8rOsR::5>PiZ`g\TX#BL!M+13Z78LnbP[O?==-;ON<b'.?Osb@LG:  ZkwaZNeF>Pye5R4*]=<\2.&уd\pJZ)@##?)J?BLt(:####"&55!326553#"&5532655!5!!35332655!tSiZZfI::5>PiZ`g\TX T;24=b_ZooZ@LG:  ZkwaZN[FF[4RQ:HH:4?326653#"&&547!326553#"&5532655!5!##&6335!! v/U57U/PBxON{EI::5>PiZ`g\TXe] a[4R.0U7MvA?sI@LG:  ZkwaZN[FFFt[4R.9###"33#"&547!326553#"&5532655!5!!!6633T`m`[!w=::5>PiZ`g\TX "%tIbZXU^Cx7-@LG:  ZkwaZN[FF[4R((5ES##5#"&'&#"33#"&547!326553#"&5532655!5!6655!!663%#32665SnL}nSY`[!w E::5>PiZ`g\TX\JK  nIki\i^8[4b0;zEZXU^Cy,$@LG:  ZkwaZN[F)"KOE[4R12S_bXg/V7)6###5&&#"!326553#"&5532655!5!!36632Pmw]==Y::5>PiZ`g\TX kGEcb `0<<7@LG:  ZkwaZN[FF[4R6;9+U7HX##5#"&&547#"33#"&547!326553#"&5532655!5!66325!!66366554&&#"3UQaCCh9w`m`[!w=::5>PiZ`g\TXpU2Da- "%tIM%%M7/L,^Ib09;kG2+ZXU^Cx7-@LG:  ZkwaZN[F"90[4R((1L(*L0(K2MZ9O##5#"&'!326553#"&5532655!5!632#"'32665!2654&#"#&547SvWzV::5>PiZ`g\TX#7T.t$gc;b:jCZt:24=LFb6Lu@LG:  ZkwaZN[F /T6fgXg3_@iF[3P@Q0??5>,DXf##5#"&'#"&'!326553#"&5532655!5!632##3265732655#5!!254&#"#&547!#32665SnMUx }TU::5>PiZ`g\TX#7T.t3fbcsX[:C:24<Ldaj^8[4b1;HBGPy@LG:  ZkwaYNYF /T6deYi~k'JVEFFYe80??5=-S`^_m/V75@326653#5#"&&547!326553#"&5532655!5!##6335!3jUH#A*MRU5@d8R::5>PiZ`g\TXYH VOGV=-#*6fG@LG:  ZkwaZN[FFIn[4R@-8D####"&&547!326553#"&5532655!5!!3663!654&#"3@S3X79]5S::5>PiZ`g\TX[D ^;HGG78HG9bD)8T,0W:@LG:  ZkwaZN[FF[4R*,E65FE76D%.7###"&'!326553#"&5532655!5!&55#%!3265SU:Pg7::5>PiZ`g\TX pKLEOb)-PH@LG:  ZkwaZN[F [4RT]YB(1:###7#"&'!326553#"&5532655!5!&55#%!3265S ] Pf7::5>PiZ`g\TX pKLEObMG@LG:  ZkwaZN[F [4RT]YB?HQ6632#"'532654&#"##"&'!326553#"&5532655!5!&55#%!32656ZA<_56_<%?QT@LMSP6Mc"::5>PiZ`g\TX2b sFGAJ099fBHi7AWIGVgG(,PH@LG:  ZkwaZN[FF[4RR[W@(5>G##5#"&&547!326553#"&5532655!5!6325!3654&&#"327%ՃPbDDo@T::5>PiZ`g\TXyODc )R:I2;1T3K0 b/:;mG @LG:  ZkwaZN[FQ;/[4R.:-S4,Q*-.>E)37B####"&547!326553#"&5532655!5!!6335!!#3#"3265ET^XSe O::5>PiZ`g\TX`h 2L_D]4A<.17bMdkaP)@LG:  ZkwaZN[F4R$E:10:F>/9@NY##5#"&'##"&547!326553#"&5532655!5!!6335!32655!!#32665%#"3265SnM|^XSe M::5>PiZ`g\TX/ 2K_B NTh]i^8[4.]4A;/17b1;~MdlaP&"@LG:  ZkwaZN[F4R$CPES^`_m/V7:119F>%/=##5#"&'!326553#"&5532655!5!32655!!#32665SnLyV::5>PiZ`g\TX! YZg^i^8[4b0;s@LG:  ZkwaZN[F4RFScq^`Vc0V7IZ#"'532654&#"#54&#"327#"&&547!326553#"&5532655!5!675!366323EQ6lLKTC?ADGA>AFTK Ll6W::5>PiZ`g\TX2H>M cCITuYGo?I^LEXcTSdWFL^I?oG @LG:  ZkwaZN[FFP[4RPiZ`g\TXrMDa "M%%M7/L,^Ib09;kG@LG:  ZkwaZN[FN90[4R1L(*L0(K2MZN3=C##!#326553#"&55!326553#"&5532655!5!2655!%#!NS: ::5>Qh[`gR::5>PiZ`g\TXibTWR >bf@LG: [jwa@LG:  ZkwaZN[F[NS[4R795A632#54&'#"&55.5467&&546335!5!#!32655@5C>+3=76<;04]+>AuFF'** O[E65FE76D->BM####"&'#"32673#"&&5467&&546335!5!6335!#"633#3#"3265T^XPdGPNG:I P8`?Hi693&.YI]dE_/<&!]4A<.17bMdk[KVABT9(.L-:d??b>+>AuF?ز'** PE:10:F> .E##5#"&&54732654&#".5467&&546335!5!65##"6323IX>?Y- CCI6cm:jG]L;7)0UG0Q,8?2?XoQBLAΔ273X7 ),.+z`El><OVLx$<+9=wFoY#'6HI=?9J8]632#"'532654&#"#54&#"327#"&546323667&&#"3&&5467&&5463!5!5!#!7"5Ebx)1D@  (+$!%1$ %+(  @E?4)/ "ZGrr;jEYJ:8'1UG#'( VF?2LghJ=cHKccgX8[4KTTDDVWCWVCETTDb0;406?O=>N9fBDh9L>>L92KOEFFS^a T`/V7UDFWWGDTTDGWXEDU@###5354&#"#54632@TuxPĤFbF VhiU"uvF76632#&&#"6#"&54632eR4N(A5.3:bYa*H,(5A9ahBCy54632#6&#":KEBIJ'"%)KL]TE&/85C54632#&&#"6#"&54632:^N2K%A4.2;  TYa)I,(5A9SX <H#&&#"3##"332#"&'#332654&##&&546335!5!5463632#"&5[D7.473G=0,Xv_UGUOKPD;?P=5HajMw\]Z3YL*:F@NF%/*(P[H^RR>>:cw[#*C%1#6&#"3###5354&#"#54632663632#"&5eJD-&).T0:;1R[cw,A0?SC%/92MFbF*>RR>>:cwY&-m"[y%#6&#"3###5354&#"#5463 663UEK$#$%TuxPJ =5QH(.2,QFbF VhiU"u-7%1#6&#"3###5354&#"#5463 663632#"&5eJD-&).TuxPI F7?SC%/92MFbF VhiU"u}/;2"yq2m#6&#"#.##5325463%HH)#(-O4C>6*)>MJ.DDRA$.40('RIDAE6*)>KH-MJQC)4:3*+RID?B>Xk,"yv,e&#6&#"#.##532.##532663 EA)#(-H=B=;+):5*)IUZA2!!!!FbFPHDeoZ!!!!X##6&#"3###53.##5325463KHH)#(-T3B>5*)>MJ.DDRA$.40'$FbFPHDAE5*)>KH-MJ<QC)4:3)(FbFPHD?B>XO@*###53.##532.##5326&54632#@T;A=:+):RB)4:5"&FbF.& 6"(TL7P[:O29)z^)"z*l/232#"'532654&#!326553#"&553255!5!!7#;biaR"3;A8\:85=PgYaei~NEj=]ULZE5127?LF:]mvbϧYFF '*32#54&#!326553#"&553255!5!!7#;ahmNJE:85=PgYaei~'Ej=g_ba?C?LF:]mvbϧYFFd>632#4&#"32#"&&7332654#"&&5467&&546335!5!##<& Kc.OHGFObVikpbDm>J\K@JUx=83&-YI]'** :^58RU?BUUPLW-\BDE4-b8c@>`=+>AuFFdE632#6&&#"2#54&#"327#"&5467&&5467&&546335!5!##<& Kd.OB0FOQGv}E_O9C:,  H]$"7983&-YI]'** ;^6$@(U?BT}")am6.*2>QI,E`>=a=+>AuFFh+33#"32653#"&54675&&546335!5!##DF9696EPBK^Gpe}M/0KbN[(-(.?.128OIklTNք01@51A36 sLbN:8'1UGp#'( kV+"$& 4 @>7E./y^Di;;KUIt#=+:3$R͈STdϣ j`%SHFbF[s7Y'54&#"3###53>3cQTTfٱꉆ jb%THFbF\s7'54&&#"3###53>3R_ʣWTh늇 H[,&THFbF]s7'54&&#"3###53>3 RbְYTj싈 H[-&UHFbF]s8'54&&#"3###53>3tQf㽹[Tm@z[ H\.'UHFbF]s91'54&&#"3###5366$3wQi^ToB{[  H]/)UGFbF^s9g#54&&#"3###5366$3 zSk`TrB{\ I]0)UHFbF^s:'54&$#"3###5366$3,}SobTtC|]  I_1*VGFbF^t:'54&$#"3###5366$!8RrdTw%D}\  I_2*VHFbF^t; #54&$#"3###5366$!AESugTy0E}] I_3,VGFbF^u;>'54&$! 3###5366$!hPRxiT|;E^  J`4,WGFbF_t<t'54&$! 3###5366$!]R|mT~F+G~^ Ib5-VHFbF_t='54&$! 3###5366$!jSoTQ7G^ Jb6.WGFbF_u='54&$! 3###5366$!uSrT]CH_ Jc7/WGFbF_u>'54&$! 3###5366$!StTgPI_ Jd7/WGFbF_u>K'54&$! 3###5366$!)RvTs\J_ Jd90WGFbF`u>'54&$! 3###5366$!PSyT}gJ` Ke91WGFbF_v?'54&$! 3###5366$!wS|{TtK` Kf:1XGFbF`u@X#&54632# L $$## A$$$$#U#'3#'y ? ? !3##7##7#537#53733733##3u&+W++W+&+W++W+&̴PPPP<$+2$#5&&'35.546753#&&'5654&'0]A6[ra72CR:q^6Uha4+BS9:84>=<7W:QQeN*>$L@QjSS_L#9 #LA493EB.15* '3632#"&5%#32654&#632#"&5632654&#*R@@RR@@RHkZ''""(("R@@QQ@@Ro((""(("tQQDEQQEF-/..01-./BQQEDRQE]/.-//-./%(1!'#"&&5467&&546632#6&#"773$67'3d[3tIHo=SQ -T76P([0&(1!'DbRtW'̀UD\534`@Io &@&,G(*K.)/-#8)r!B*,1j;N#U{#'{ ? lF5473#kqi_pqkg_\"+a iٟj !FZ5654'530gkqp_iqk` j'i aլ^=h'#7'7'7'3$&yKy'%|LA:9CXYD:8CYWoUm ##5#53533UUUGMq~7#p=I~ :H,v &54632#P$$##$$$$5V#ZX>5 632#"&5$&&#"32665>ppppGCDGGDCG¯WyJJyWZzJJzZ&53#&\S-3>54&#"#6632!!5c?FDKXegyc~bXEAKUGpzrdSwOLA1+632#"&'332654&##536654&#"#CfDc3G9AL4hIjXTFFIde\^E@>LYyh1T5>Z ^L9[4of5@@6(X 7533##5!(_mddZ E$OI9 !6632#"&'332654&#"#! Z4Sh-6oRiY T@OPPN5OV )Em=HrBlZ9@_NNU3,I>%#"6632#"&&5!2#32654&#sYXkBg{5kLgt.bp TL/XRFSPM4;qDl@\wojQ#G3L_WJNY!#!5!\~tN<<'3&546632#"&&5467$&#"326532654&#<6kLLk7>6>I@uLLs@H>PFEPSBCS^[MMZ\KT<6W33W6:W_CAa55aAC`BB>8DE8EE@NN@CGI4&6326'#"&&54632#"&'36654&#"3I>SOb-37jKk~VnUSGK\XHIX,""q#'TS%'73Esem!5!5mMMMM^S3#7^ssS%###'32654&#"#4663&54632#bzoOcpH=>GV6cAY$$##p^ie_%Qd5[64A9]25>! %!#3#'8`i`R~~K`M4##!32%32654&##654&##3?%6gFGd2C7@FFBLPCa2J*5U1/P2>Q%<55<@9:C+6632#&&#"32673#"&&5+\ar'mmLItBBtILmm'ra\ã\ne?DD}TS}DC?dm[fM ##3654&##3YYrه~~UkkSM 3#!!!woKKKM !3##[JJ+!&&#"3267!5!#"&&546632]nIIuCCuIf w\\a]]ao'=CC}RR|CzhJFVS[ff[ndMf #!#3!f[[[cG<2M#[G)#"&533265jWXj[3332Vgi[3@=/M> !#33[[ s?>CM73!3[JJM ###3[@[bL<Mq !##33q[[[n[+*+&&546632#>54&&#"3(]]ab\\bIuCCtJJtCCuI[ff[[gg[OD~ST}DD}TS~DM ###32654##3wz[v{HsrZB=+|#'#"&&546632326654&&#"|35a]]ab\XMCuIIuCCtJJtC[ff[[gd.~DD~ST}DD}TM)!##3232654&##n[Om6SSJJIK6\;HnfI=>D9,&&'332654&&'.546632#&&#"#m>aGDAK,B8ES;:iDb}dJ=9H+?9ET<6jH1W91CA3(2$MA9X0bQ(=;5&0%MB3Z8"###5[JoJKX32653#"&&5[QP[[FwJJwEG]ZZ]HWw::wW#3iaGY #33feafG1OM-A ##33jgeff\\]5#35[eNa. 7!!5!5!T@ROOH"OHF9#3#9__K7L`V3Z9XnF"#53#53"__LK%Q7#3#^U_ i}!5}&TTM'5DrO+W-"663253#5#"&&5$&&#"32665+DwIHj\\kGIvD2U33T22T33U2hF>/df0?HS=\10\>?]11]>My"632#"&'#3&&#"32665lEJvDDwIGk[[t2U32U33U23U2>FTSH>0el\01]=>]11]?+3-6632#&&#"32673#"&&5+DyNebQ?]11]>+A- !32673#"&&546632.#"!AJeH;ObbN{FD{PNxA^.O0EaZ Q[7.OcFUUEDwKGK'XN,###535463"3,s[GG_i<1s'K'\UL/6'+W-/53#"&'332655#"&&54663&&#"32665vk\@wOl Z^BK_jGIwDDwI2U33T22T33U2->/dKuBfX2=^Us0@HSTF\10\>?]11]>M8#4&#"#3663d9ZRGHU[[_;.5jL6RWZV*.> &54632##b$$##,[}$$$$Y$ &54632###532653d####-JG5&&[}$$$$ IDM$M !'#373[[MM#[M.##4&#"#4&#"#36632663 d:ZQEGTZQEGT[[jjA.5jL6RW[V6RW[V$O+.><:@M8.#4&#"#3663|ZRGHU[[]8.yr6RWZV$N*.+U-&&546632#>54&&#"3}GI~NN~IKN1V54T12S21R1 FUTEEUUFP.\BB\--\BC\-My-"632#"&'#3&&#"32665kGIwDDwIFk[[t2U32U33U23U2?FTSH?/(em\01]=>]11]?+W-"663253##"&&5$&&#"32665+DwJGk\\lHHvD2U33T22T33U2hF?.di.@HS=\10\>?]11]>MY. 63#"#3Y@[[4^$Y/-+&&'332654&'.546632#&&#"#d:^E84<@C=M72\;[p[?51:#5/;J52[; +M2)4.#$#!A5*F)\P+4*"# >2-H)K33#"&5#53533"*CRLLGG[(!MFPCKKH3$#5#"&&5332653[]8@f;ZRGIT$Q*/5jLAQWZV- $$%3#3ajbT$ '$ ##33'^^]~]|$M$43 $ !'#373k}_g|_ %$#3%^le$D)$ 7!!5!5!  qKKKJJiE/654'&54633#"33#"&547654'if QD:)'& 5775 &'):DQ fV&\b,HLO#(U`,5G  H5,`U(#OLH,b\&Vd#3[[jDEe/##532654&'&54675&&5476654&##532 QD:)'& 5775 &'):DQ f?V&\b,HLO#(U`,5H  G5,`U(#OLH,b\&VG%3232673#"&'&&#"#?s+%Du(&C##Xu4 #"&54633###$$*L b4$$$$ A,c$673#5&&546753#&&#"3M U qW6lxxl6Wq U L=L__LP71Jb^^ kk \\bI08aVV`,!&%!'6654'#53&&546632#&&#"3#!B*) q[ 7c@fnTC?:I® GJL4/V?$@#?&@_4vZ;HDF!;(@$_M?J''#"''7&547'76327654&#"3 ;)-<*==*<,?v?77@?88>;33##5#535''5333[ffB4'CC'4B:`d3##3d[[[[[{.<5A$#"&'332654&&'&&5467&&546632#&&#"&32654&#"91]>\u[;96;D@fcGC391]?\t[;96<D@edFDRECORDDOH@/+H*WN-8++%!"TF8W?/+H*XN,9+)%"!TF8VrBC02@B0n# &54632#2&54632#6n1:#"&&54663326654&&#3267##"&546323&&#WWefXXf]JJ]\JJ\>c::c/.BFR--R65S..R6:BB;:AB92x '3#%'3#cY``YbY``Y'&\ 53#%###5#5733'3&~HVv0Ha0voo8(2FEE*$s "#53##!576654&#"#6632Z6~HWnm!#ID;9E,1O8ZF;4X1/<@.&;$8#)-8;632#"&'332654&##532654&#"#%###5#5733'3,I:8L"%M=GV6cA,$$$$8p^ie_F<o3632#"&'332654&'&&54676654&#"#5ji3?HSTF95eenEwHAM)\O1]>>\10\>?]1+3--$6736##532654&##5.546632#&&#"3rPbuX;FD6sa!!2Ej;DyNebQ E^ )](^\U32T22S10R2iJGUSF\_M,2 !#,3 0^AA^//[AB_1M8"+U"+U"+U"+U"+U"N[L &54632#!5&54632#5$$##$$##$$$$sMM$$$$&[- )#"'#7&&54663273&#"$'32665 #KNaJ*AH #I~NeJ+A-# 0F2S2p#/B1V5%b:UF7.O&c;TE905$)-\BM1&.\BH3"H3"H3"H3" %"My"632#"&'#3&&#"32665kHIwDDwIHj[[t2U32U33U23U2EFTSHG:^\01]=>]11]? %"}!V"+W"!"+W"!27#"&5467'!#33 f$&&3H*048`i6! z~~ <13":K"v`+2`-!17#"&5475#"&&546632533&6654&&#"3;%(%3GbkGIvDDwIHj\7< U22U33T22T3 <13G4U0?HSTF>/d)1]>>\10\>?]1+"+3"+h"E+3"+"+3"M"+/66323#5#"&&5#52655#53&&#"32665+DwJ@n\\jGIwD331\2U33T22T33U2hF;0"g1?HS%:7+Vm\10\>?]11]> "+*##5#"&&5466325#535336654&&#"3=\jGIwDDwJ@npp\=U22U33T22T3]g1?HSTF;06QQ1]>>\10\>?]1MV"=+A"uM"_+A"Mb"+A"M27#"&547#!!3#!3%(%3GEw7<  <13<.KKK)+@A-(0!32673327#"&547.546632.#"!AJeH;ObYC< %(%3G+Dh:D{PNxA^.O0EaZ Q[7.=Y) <131% IyNUEDwKGK'XNM"c+A"+"+W"+b"@+W" + !,&&#"3267!5!#"&&546632#5255#53]nIIuCCuIf w\\a]]ao'e00Z=CC}RR|CzhJFVS[ff[nd$s*8R+W! *:543"3#53#"&'332655#"&&54663&&#"32665e/0[Sk\@wOl Z^BK_jGIwDDwI2U33T22T33U2,q*6V'>/dKuBfX2=^Us0@HSTF\10\>?]11]>Y""{*V"*"{ " "{37#"&5473#3%(%3Gc[5<  <13H3G)3 &54632#327#"&5473#b$$##G %(%3Gc[5<}$$$$  <13H3)Fb"3M$#[$$M > !##33#5255#5>w[[ sV d/0>Cs)*s*8RM  !#'#373#5255#5|[[6 d//M+(s*8RM"T"M 73!3#5255#53[e/0[JJ*s*8RK ##5255#53[df00[$s*8RM73!3#52655#53[321\JJ0+:8+UMX##52655#53[ e2\0,q+VM33!&54632#M[JCMC3#&54632#M[[:  %!5737RR[mmFF4E?'F'  #5737G[GG[GQHLMq"M8"M q !##33#5255#53q[[[n[d./Z+**s*8RM 8.#4&#"#3663#5255#5|ZRGHU[[]8 e/0.yr6RWZV$N*.-&s*8RMq"M8"+V"+U"+"+U"+"+U"+*3#!!5#"&&5466325!!326654&&#"'X^\\]X'vCuIIuCCuIIuCGHHN[fg[LGG|DD|RR}CC}R+ -$4<!32673#"&'#"&&54663266326654&&#"3&&#"! L`IDa+(s*8RK Y. 63#"#3#5255#5Y@[[ e//4^$Y)*s*8RM)"Mq"K9"/"9=$6##532654&##5&&'332654&&'.546632#&&#"/[?;FD6sa!!2^taGDAK,B8ES;:iDb}dJ=9H+?9ET29"/"i"!6##532654&##5##5!#.;FD6sa!!2ؾ:40/8;roJJd&##532654&##5&5#53533#33#"'FD6sa!!3DGG["*CR940/8;hCKK(!M;""sm #52655#533#33#"&5#5353m331["*CRLLGG[!3.*VK(!MFPCKKXY"H3"KXV"H3"KX"H3"KX"H31"KX"H3"K2X!327#"&547&&533265XiW7< %(%3GA^r[[QP[Hl) <13;,qG]ZZ]H1<$%7#"&5475#"&&5332653#3%(%3Gc]8@f;ZRGIT[7<  <13H3A*/5jLAQWZV-)"I '"5" %"~5h".")"`.b")"."s)"ID"#"&&547!.#"#663667!3TSc`R.>hANsi!v?h?.:iDZhiZMg!GmaGDAK,B8ES;:iDb}dJ=9H+?9ET<6jH8e//Z1W91CA3(2$MA9X0bQ(=;5&0%MB3Z8S*s*8R/ -+6&&'332654&'.546632#&&#"##5255#53d:^E84<@C=M72\;[p[?51:#5/;J52[;1e//Z +M2)4.#$#!A5*F)\P+4*"# >2-H)W$s*8R" ###5#5255#53[!d//ZJoJ(s*8R K33#"&5#53533#5255#5"*CRLLGG[b 3200(!MFPCKK)*;8*8R+A- #"&&547!&&#"#66367!3{FD{PNxAeH;ObbIa.O0-FUUEDwKQ[7.OcXN4K' U&57UHSSHU&'57&RRHUUqZ.#"&55332653.KCCL6*/.*6II:&''&n| &54632#2n_1 #"&54632&&#"3265=.->>-.=59://:90 2/3327#"&546777< %(%3G7>1) <13&A]G63232673#"&'&&#"#5( 46( 56 26 Y>#73#73N=CQ=32#&&#"3#3#3ml&qv"aSS`aOq&llLT}}QLB=dmm@?Io=ne>BVL?@JS#"'55755753773265ҮJa^ -'B'd'?),B+d*B*$L3##5#535#5332#'32654&##[VVVVv{wzKIHL#`IzzI`HNrZWsHE=?EM`3###%#'##3UHVCm3lB]mp8(8` )#3!56654&&#"!53&&546632KGWlDwJKvClWFK^ab^*HKhT~EEShKH*Yf[[f/ #"&&546632!3267&&#"!(bXNhgO'cEIw@(s a=?e"OjhaZU=/.?@,),00'&6632&&#"5632#"&5$&#"32665'F|L/AJL$,./o{OSVn>74R.>34T07]*0du 5hwrPDvHMNFvD!5!zGGn' ##!##5OZ[OHrrH( !!!55! 9{nGGjiLH!5qMM5V/ e#''7-}Areo&/T"!#/#"&'#"&5463266367&&#"3654&#"3AWYB2L&R3CUXB2L%S4>"3%-,%`-,%#?7!OEDQ3.+6OEDQ5/,8*$++,'&+,'&+,%(+;4633#"##73267KD\JE\TBL"JBK$D%.&ezmb!!#7#537!5!733vTETeu^TFTdMbbMMbbMJVS #'73!!xxcHEKVS 77'3!!Kxvc9E$lO'77'򏎏^񐐏!####535463"6&54632#7[[FF_i<1####$'K'\UL/62$$$$"IR##5 K gm pp!^ 6#5255#53o36e%$~.>\0p7#5mppp<#5#5nnnooUpp!#5#5255#53mto36epp $~.>\%##532654&#"#4663#5bzoVcpH=>GV6cAmp^ie_GV6cAppp^ie_>;34>*J/KaGR@9Zn8jJc(N6 2*(1+#+#+#+#+#+#+2-+77#"&5475#"&&54633&&#"#66323&6655#"3%(%3GanB5T/njI@:K Y }cAg;7< T5>>;3 <13G3S/>*J/KaGR@9Zn8jJ)(N6 2*(1+1#+#%(5!'#"&&546633'&&546632#654&#"$654&&#"3,tmH8_84X4 $"*Q8:S*Z2*(0uH$;"4FJ5BV5_=<\3 -G(*J.-J))32$-+DK7%>#H::L96654&#"#>32!!5 ZGDCDJX>hBiyRf\ Wn7;EWJMl6q]DcLA5#"&'332654&##57!5!{rg[QEFRPEftihzof=LPFGPALF:'#"&&547363654&#"3j;>pGIq>Mc'/@WWKKZZK;kEFn?@pEjp n[LL[[KL\*##"&&5466332654&#"jp>%(e',Gk;?pHYKKXXKKY@pE9k9JnJjM{;bBtERhpxBkx!.L+L]Gh&](WN  J ! !!T!!" "U"#%##$$h$% %7%q%}%&&5&|&&&&&''='}''( (3(o(()2)e)q))**R*^*++++,E,-. ../]/0011~2223r34>445r66u67l78s999:; ;<<=3=>T??@@!@AAAABBBBC1CnCCDXOaQL.Z3J!H&H>1"9>4OaQnLZ JH"4;@LFat>@&?3M1u(tI{I"!w<vI OQUM{32I&21H*>VOaQ6L&-mJH1"9>4OaQnL- J"]7}4FG VVV |v#HHHHI FTTJJy~Z%mC^lUU 9ItJ=A=O SlGMYZ\~)fSf==OXbEfi)?OOO#b``Z2[QQQQNQ5z'bQQD1{{,37  Vq]++bhbbd2,VLLLLLV ~",0w>2FWqcX#*J%*DZZ-dZZZ--ZZZ-8Zhh s %}%RA`\Zz:m%+3w&FBD&C&C&C&&&222,,,&X&X&X&O&O&O&=JJJ&-&&&&&&&&&&&&&&&&&&&&&&&&*X$#H!n<*%#l!=W':,5t>@&?3M1u(tI{I"!w<vI,+Te^ %H!eM+MMM +MM)WMM]MM+CM+`MK9"Km-H.nu%i+M_++l+I+M>MMMM+M+uM /lH1 4  3 )i#dD% *XAl,?S#d?.:1!-)':4XJLMT/!2&$#.!!!!!! +MMMM M+++++g#KKKKHCM<++++++I+_+l+l+l+l+~+M+++++N&HHHH3 M3 !+!+!++_++_++_+M+ +Ml+Ml+Ml+Ml+Ml+ ++ ++ ++FMWMMMMKMqMM'M MMMMMM++++++>+8+`MuM`MuK`MuMK9 /K9 /K9 /"l"oKHKHKHKHKHKH4 H3 H.).).)DL L+K9 /"ll+ 77@YX'4 4 4 Ml+H3 H3 LuL || ^",#-SE,)-2 +>p$M )/<''('L5/!%eJK*$;>R!0<! %R0 0N))F0V+V+V+V+V+V+W+V+V+V+%T9Y5R:*d n "SXKX^2HITFOdos $  ~#17H[e~Y    ( 0 3 9 E I M P ^ e o p r    " & 0 : D !!"!&!.""""""""+"H"`"e%% ! (69L^hY      * 1 5 < G K P X ` f p r    & 0 9 D !!"!&!.""""""""+"H"`"d%%sRPNJFEB@>.,l  9QA28 lnpnplzy{ O?E~|"# !}     <    " &@ \f : " 6 T @ B *` ,Copyright 2020 The Poppins Project Authors (https://github.com/itfoundry/Poppins)PoppinsRegularITFO; Poppins Regular; 4.004b8Poppins Regular4.004Poppins-RegularIndian Type FoundryNinad Kale (Devanagari), Jonny Pinhorn (Latin)https://indiantypefoundry.comThis Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://scripts.sil.org/OFLhttps://scripts.sil.org/OFL 8 - @ . ( A 7 M / K   K  L 0 5  0  ' ?  > 0 K   G . > . 2 G . G   ( M .  > $ 8 M 5 $ ( M $ M 0 $ >  0 8 . > ( $ > * M 0 > * M $ 9 H dSquare dots in punctuation marksDouble-storey aAlternative ampersandAlternative 2, 3, 6, 92#      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjikmlnoqprsutvwxzy{}|~      !"#$%&'()*+,NULLCRdvAdvAAdvIdvIIdvUdvUUdvvRdvvRRdvvLdvvLLdvEdvAIdvOdvAU dvEcandra dvAcandra dvOcandradvmAAdvmIdvmIIdvmUdvmUUdvmvRdvmvRRdvmvLdvmvLLdvmEdvmAIdvmOdvmAU dvmEcandra dvmOcandradvKAdvKHAdvGAdvGHAdvNGAdvCAdvCHAdvJAdvJHAdvNYAdvTTAdvTTHAdvDDAdvDDHAdvNNAdvTAdvTHAdvDAdvDHAdvNAdvPAdvPHAdvBAdvBHAdvMAdvYAdvRAdvLAdvVAdvSHAdvSSAdvSAdvHAdvLLAdvK_SSAdvJ_NYAdvKxAdvKHxAdvGxAdvJxAdvDDxAdvDDHxAdvPHxAdvRxAdvKdvKHdvGdvGHdvNGdvCdvCHdvJdvJHdvNYdvTTdvTTHdvDDdvDDHdvNNdvTdvTHdvDdvDHdvNdvPdvPHdvBdvBHdvMdvYdvRdvLdvVdvSHdvSSdvSdvHdvLLdvK_SSdvJ_NYdvKxdvKHxdvGxdvJxdvPHx dvAnusvara dvCandrabindu dvVisarga dvAvagrahadvViramadvNuktadvZerodvOnedvTwodvThreedvFourdvFivedvSixdvSevendvEightdvNinedvOmdvAbbreviationsigndanda doubledandarupee indianrupeezerowidthnonjoinerzerowidthjoiner dottedcircledvReph dvEyelash dvRashtrasigndvK_RAdvKH_RAdvG_RAdvGH_RAdvNG_RAdvC_RAdvCH_RAdvJ_RAdvJH_RAdvNY_RAdvTT_RAdvTTH_RAdvDD_RAdvDDH_RAdvNN_RAdvT_RAdvTH_RAdvD_RAdvDH_RAdvN_RAdvP_RAdvPH_RAdvB_RAdvBH_RAdvM_RAdvY_RAdvL_RAdvV_RAdvSH_RAdvSS_RAdvS_RAdvH_RAdvLL_RAdvKx_RAdvKHx_RAdvGx_RAdvJx_RAdvPHx_RAdvK_RdvKH_RdvG_RdvGH_RdvNG_RdvC_RdvCH_RdvJ_RdvJH_RdvNY_RdvTT_RdvTTH_RdvDD_RdvDDH_RdvNN_RdvT_RdvTH_RdvD_RdvDH_RdvN_RdvP_RdvPH_RdvB_RdvBH_RdvM_RdvY_RdvL_RdvV_RdvSH_RdvSS_RdvS_RdvH_RdvLL_RdvKx_RdvKHx_RdvGx_RdvJx_RdvPHx_RdvK_KAdvKx_KxAdvK_KHAdvK_CAdvK_JAdvK_TTAdvK_NNAdvK_TAdvKx_TAdvK_T_YAdvK_T_RAdvK_T_VAdvK_THAdvK_DAdvK_NAdvK_PAdvK_P_RAdvK_PHAdvKx_PHA dvKx_PHxAdvKx_BAdvK_MAdvKx_MAdvK_YAdvK_LAdvK_VAdvK_V_YAdvK_SHA dvK_SS_MA dvK_SS_M_YA dvK_SS_YA dvK_SS_VAdvK_SA dvK_S_TTA dvK_S_DDAdvK_S_TA dvK_S_P_RA dvK_S_P_LAdvKH_KHAdvKH_TAdvKHx_TAdvKH_NAdvKH_MAdvKHx_MAdvKH_YAdvKHx_YAdvKH_VAdvKHx_VAdvKH_SHA dvKHx_SHAdvKHx_SAdvG_GAdvG_GHAdvG_JAdvG_NNAdvG_DAdvG_DHA dvG_DH_YA dvG_DH_VAdvG_NAdvG_N_YAdvG_BAdvG_BHA dvG_BH_YAdvG_MAdvG_YAdvG_R_YAdvG_LAdvG_VAdvG_SAdvGH_NAdvGH_MAdvGH_YAdvC_CAdvC_CHA dvC_CH_VAdvC_NAdvC_MAdvC_YAdvCH_YA dvCH_R_YAdvJ_KAdvJ_JAdvJx_JxA dvJ_J_NYAdvJ_J_YAdvJ_J_VAdvJ_JHA dvJ_NY_YAdvJ_TTAdvJ_DDAdvJ_TAdvJ_DAdvJ_NAdvJ_BAdvJ_MAdvJ_YAdvJx_YAdvJ_VAdvJH_NAdvJH_MAdvJH_YAdvNY_CAdvNY_CHAdvNY_JAdvNY_SHAdvTT_TTA dvTT_TTHAdvTT_YAdvTT_VA dvTTH_TTHAdvTTH_YAdvTTH_VAdvDD_DDA dvDD_DDHAdvDD_YAdvDD_VA dvDDH_DDHAdvDDH_YAdvDDH_VAdvNN_TTA dvNN_TTHAdvNN_DDA dvNN_DDHAdvNN_NNAdvNN_MAdvNN_YAdvNN_VAdvT_KAdvT_K_YAdvT_K_RAdvT_K_VA dvT_K_SSAdvT_KHA dvT_KH_RAdvT_TAdvT_T_YAdvT_T_VAdvT_THAdvT_NAdvT_N_YAdvT_PAdvT_P_RAdvT_P_LAdvT_PHAdvT_MAdvT_M_YAdvT_YAdvT_R_YAdvT_LAdvT_VAdvT_SAdvT_S_NAdvT_S_YAdvT_S_VAdvTH_NAdvTH_YAdvTH_VAdvD_GAdvD_G_RAdvD_GHAdvD_DAdvD_DHAdvD_NAdvD_BAdvD_B_RAdvD_BHAdvD_MAdvD_YAdvD_VAdvDH_NA dvDH_N_YAdvDH_MAdvDH_YAdvDH_VAdvN_KAdvN_K_SAdvN_CAdvN_CHAdvN_TTAdvN_DDAdvN_TAdvN_T_YAdvN_T_RAdvN_T_SAdvN_THA dvN_TH_YA dvN_TH_VAdvN_DAdvN_D_RAdvN_D_VAdvN_DHA dvN_DH_YA dvN_DH_RA dvN_DH_VAdvN_NAdvN_N_YAdvN_PAdvN_P_RAdvN_PHA dvN_PH_RAdvN_BHA dvN_BH_YA dvN_BH_VAdvN_MAdvN_M_YAdvN_YAdvN_VAdvN_SA dvN_S_TTA dvN_S_M_YAdvN_S_YAdvN_HAdvP_TTAdvP_TTHAdvP_TAdvP_T_YAdvP_NAdvP_PAdvP_PHAdvP_MAdvP_YAdvP_LAdvP_VAdvP_SAdvPH_JA dvPHx_JxAdvPH_TTAdvPH_TAdvPHx_TAdvPH_NAdvPH_PAdvPH_PHA dvPHx_PHxAdvPH_YAdvPH_LAdvPH_SHAdvPHx_SAdvB_JAdvB_JxAdvB_J_YAdvB_JHAdvB_TAdvB_DAdvB_DHA dvB_DH_VAdvB_NAdvB_BAdvB_BHA dvB_BH_RAdvB_YAdvB_LAdvB_L_YAdvB_VAdvB_SHAdvB_SAdvBH_NAdvBH_YA dvBH_R_YAdvBH_LAdvBH_VAdvM_TAdvM_DAdvM_NAdvM_PAdvM_P_RAdvM_BAdvM_B_YAdvM_B_RAdvM_BHA dvM_BH_YA dvM_BH_RA dvM_BH_VAdvM_MAdvM_YAdvM_LAdvM_VAdvM_SHAdvM_SAdvM_HAdvY_NAdvY_YA dvEyelash_YA dvEyelash_HAdvL_KAdvL_K_YAdvL_KHAdvL_GAdvL_JAdvL_JxAdvL_TTAdvL_TTHAdvL_DDAdvL_DDHAdvL_TAdvL_THA dvL_TH_YAdvL_DAdvL_D_RAdvL_PAdvL_PHAdvL_BAdvL_BHAdvL_MAdvL_YAdvL_LAdvL_L_YAdvL_VA dvL_V_DDAdvL_SAdvL_HAdvV_NAdvV_YAdvV_LAdvV_VAdvV_HAdvSH_KAdvSH_KxAdvSH_CAdvSH_CHAdvSH_TTAdvSH_TAdvSH_NAdvSH_MAdvSH_YAdvSH_LAdvSH_VAdvSH_SHAdvSS_KA dvSS_K_RAdvSS_TTA dvSS_TT_YA dvSS_TT_RA dvSS_TT_VA dvSS_TTHA dvSS_TTH_YA dvSS_TTH_RAdvSS_NNA dvSS_NN_YAdvSS_PA dvSS_P_RAdvSS_PHAdvSS_MA dvSS_M_YAdvSS_YAdvSS_VAdvSS_SSAdvS_KAdvS_K_RAdvS_K_VAdvS_KHAdvS_JAdvS_TTAdvS_TAdvS_T_YAdvS_T_RAdvS_T_VAdvS_THA dvS_TH_YAdvS_DAdvS_NAdvS_PAdvS_P_RAdvS_PHAdvS_BAdvS_MAdvS_M_YAdvS_YAdvS_LAdvS_VAdvS_SAdvH_NNAdvH_NAdvH_MAdvH_YAdvH_LAdvH_VAdvLL_YA dvmII.aLongdvReph_AnusvaradvAnusvara.amI dvReph.amIdvReph_Anusvara.amI dvII_AnusvaradvmII_Anusvara dvmII_RephdvmII_Reph_AnusvaradvmII_Anusvara.aLongdvmII_Reph.aLongdvmII_Reph_Anusvara.aLong dvmE_Anusvara dvmE_RephdvmE_Reph_AnusvaradvmAI_Anusvara dvmAI_RephdvmAI_Reph_Anusvara dvmO_Anusvara dvmO_RephdvmO_Reph_AnusvaradvmAU_Anusvara dvmAU_RephdvmAU_Reph_AnusvaradvmEcandra_AnusvaradvmOcandra_AnusvaradvRA_mUdvRA_mUUdvHA_mUdvHA_mUUdvDA_mvR dvSHA_mvRdvHA_mvRdvmI.a01dvmI.a02dvmI.a03dvmI.a04dvmI.a05dvmI.a06dvmI.a07dvmI.a08dvmI.a09dvmI.a10dvmI.a11dvmI.a12dvmI.a13dvmI.a14dvmI.a15dvmI.a16dvmI.a17dvmI.a18dvmI.a19dvmI.a20dvmI.a21dvmI.a22dvmI.a23dvmI.a24uni00A0uni00ADuni00B5AmacronamacronAbreveabreveAogonekaogonek Cdotaccent cdotaccentDcarondcaronDcroatEmacronemacronEbreveebreve Edotaccent edotaccentEogonekeogonekEcaronecaron Gdotaccent gdotaccentuni0122uni0123ItildeitildeImacronimacronuni012Cuni012DIogonekiogonekuni0136uni0137Lacutelacuteuni013Buni013CLcaronlcaronLdotldotNacutenacuteuni0145uni0146NcaronncaronOmacronomacronuni014Euni014F Ohungarumlaut ohungarumlautRacuteracuteuni0156uni0157RcaronrcaronSacutesacuteuni015Euni015Funi0162uni0163TcarontcaronUtildeutildeUmacronumacronUbreveubreveUringuring Uhungarumlaut uhungarumlautUogonekuogonek Wcircumflex wcircumflex Ycircumflex ycircumflexZacutezacute Zdotaccent zdotaccentuni018Funi01FCuni01FDuni0218uni0219uni021Auni021Buni0259uni02BCuni02C9WgravewgraveWacutewacute Wdieresis wdieresisuni1EBCuni1EBDYgraveygraveuni1EF8uni1EF9Eurouni20BAuni20BDuni2113uni2126 estimateduni2206uni2215uni2219 exclam.ss01 comma.ss01 period.ss01 colon.ss01semicolon.ss01 question.ss01exclamdown.ss01periodcentered.ss01questiondown.ss01 divide.ss01quoteleft.ss01quoteright.ss01quotedblleft.ss01quotedblright.ss01 ellipsis.ss01a.ss02 aacute.ss02 abreve.ss02acircumflex.ss02adieresis.ss02 agrave.ss02 amacron.ss02 aogonek.ss02 aring.ss02 atilde.ss02ampersand.ss03two.ss04 three.ss04six.ss04 nine.ss04 ""yz}}\_glss H~DFLTdev2"deva0abvm&abvm&abvm&blwm.blwm.blwm.   ,"yz\ghijkls $(*./0159>?DEHLMNOTZ[\]ajp$+,2:;=HKLNOQRSUVXYZ[\acpqv    !&)*+-./16<=AHLQTXYuvwxy{@FFFFF:@@@FFFFflrxx~~&bVnnbVnbVnbVn &,,28>DJPtV\bhhntz "((.4d:@FLRX^djppv| NO@nsiqOPl h<G| (  uLw$VT@N>-QO|*6=LF DX]^_$O,Rw#mZ          \%N3i\ Aw' 0 &,28>(.DJPV\bhntz.FLR^djj "(.4:$@0F<6<BLHNTRX^ldrxxjpv|&  DV$*hn06z<BHNspk=ps.Wlip.D3k#z{ h}papnn(#"wYX=UQ==.,LTW=N=-lb* 4@}$(*./0159?DEHLMN$+,2:;=HKLNOQRSUVXYZ[\acpqv    !&')*+-./16<=AHLQTWXYb &,28>DJPbV\bhntz "(.4:@FLRX^djpv||  $*06<BHNTZ``flrx~o+/kEe_kE\okeOPu+lE|+w EaE+G+w<>? ?kk+/E"E#=4)0r+S0+R+/E{+EOEEEK*+&/GNEQHE-+E+ /|*+6E@ l@? 2DFLTdev2HR\H~I~J~K~L~M~N~O~$%&+019>" F}BG}-$+""}&R^jv*6BNZfr~}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>$=?EHK!NN%}> J}*Zdnx",6@JT",6@JhT^hr|P}Q}R}S}U}V}W}X}Y}^}_}`}b}c}d}e}f}g}h}i}k}l}m}n}o}q}r}s}t}u}v}w}x}$KNO(&R\fpz$.8BLV`jt~}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}L  *4>HR\fpz$.8BLV`jt~ (2<FPZdnx$=?EHK!NN%Pi&kq@txG +\P$>r|6XrR~4~8 X  ( 2 d  :DLT\dlt|od?_=_@l=o.o0o3o$%)+.2345789<=?@AC"(.4%3 7 < =@A&.6>FLRX^djpv|b=b@c= g=&'+2567:;!<"=$?%@&C'7(<)="(.,V@*)+*-7.</=0= (06<BHNTZ`flrx6W=7W@2$3+8,:.;0<3=5>7?:@<A=C@5GD7E<F= G)H*I+JA K.L/M=N@O/P=Q@ R0S1T=U@V1W=X@$*06<Y.Z/[0\1]2^<_=`@6>FNV^fnv~bP=dP@i_=j_@mc=pd?sh=yo7zo={o@a$f%h3k4l7n8q9r<t=v?w@xCeFcgo|7}=~@  &,28>DJPV\&'567:;<=@  &c=7<=@&NX`hpx "(.4:@FLoh=PC_=_C`=`@a@b=b@c=g=g@h=o.o=$)*.03456789;<=@CD "(.4:@FLRX^_=./3789<=?@C  &,28>D+.3789=?A&.6>DJPV\bhntzW=b@k=+,3567:;=?@ACK 7=?@(08@FLRX^djpv|f=g=g@3578:;<=?@ACD 7=8@HPX^djpv|P= `=k=l0$%&+./0134 5 8 9:;<=?@CDK  $7=?@D  &,28>DJPV\$) *!."3#7$<%=&?'@(AH(08@HPV\bhntz,Z=.Z@0[=3^=8h=)$+.//2248697<9=:@;B*-152:BJRZ`flrx~>P@C_=E_@G`=Oh=<$?%@+A.B3F4H5I7J8L9M:N<P=Q?R@SC=DK &,T2U7V<W=X?Y@Z= h=<=@9= &,39:<HN &, 3 <=@AC B=4K 3CKN  =D=D#=1=u== PSUikuwx$&'()*6N2rB V Ht J(./01>DLMOKLNOQRSUVX  59NY $38:@BHTX &')*6=Jh b 47;<?F' 2+,-2ACGK  E/1W   %I+-. !noq456 "Zacw)*:; N#%:;Y[j!9AH $(*=T\iklrtuv~7<=JK%*"#$'()+,/2?C`ex"2BDLMR>&*!&-.<GHMPW_}   #%FPUV'$59>ABDF^fg|  $&(INQSv( 018@EIJ@*) 34]?*   + pZ, {E`- ms,038C8.  z /yG067bd >O&>V0123,Z   ">Zv`ycyaybiygyhlyjykoymynrypyqsyty\y  !"#*43$O,ZR|y\N*4y uvzwx{5>ADZ3"$9HN2acq )*6<=Labc$.8BLV`jt~T}Z}[}\}]}a}j}p}}}}}}}}(./015>D$      I  234567SUW !"}:f,ghijklmnopqrsvthuZvLw>x0y"z{|  >>[ ]^_def>y\abcriseup-vpn-0.24.5+ds1/gui/resources/fonts/Poppins-Thin.ttf000066400000000000000000004735001461742244100234110ustar00rootroot00000000000000 PGDEF  =P@GPOSZ=>GSUBHLP&nOS/2Uu`cmap5 ;LglyfD!head,$L6hhea $hmtx4<locaI(Hmaxp6 name< post:h" !!!7'' ȪDVT<##'#"&&5332654&&##5326654&&#"#46632!T"%lZ;`72W7Sc%R@""8L%.N/2R04Z75V1EC,O-Vh1Z95R-`N*N2,D$2I&&F05N)+N4>U  SVc@####'#"&&5332654&&##5326654&&#"#46632!!c"%lZ;`72W7Sc%R@""8L%.N/2R04Z75V1EC,,O-Vh1Z95R-`N*N2,D$2I&&F05N)+N4>U  Sx-332#"&&'#5332654&##"&546335!5!##dVB-Wu`YA\0 n^QVmO-J^jL"2C<7MWD[-;NcR=QCBAH==#4&#"3##"332#"&&'#5332654&##"&546335!5!5463G?4<=IdVB-Wu`YA\0 n^QVmO-J^jLHBL<4DOMR2C<7MWD[-;NcR=QCBAH=STWk(#"&&53326654&&##532655!5!#H8KX3`AAh<8a;:Y0)[E""RTW vN>a79c;7[53Z91[;YA;32#"'532654&###"&&53326654&&##532655!5!!H8dpU  Odx]4;3`AAh<8a;:Y0)[E""RTDW_fe[T]_Vh?>a79c;7[53Z91[;YA932553#"327#"&54675####5&&#"#46632!5!g DNO>  !DZTJJplT?d9=kCKj(^NN;DB LJAW.fyNf7hEJn  !DZTJ UPSYTOTZid  jrd[NT  RNrԤz^8,N;DB LJAW'-XsqoqZbzibyhEDfQV#"33#"3267#"&54675&&54633654&#"#54&#"327#"&5463236675!5!|S[,1AC6%,1AC653=M/#&,K8 UPSYTOTZid  jrd[NT  RNrԤz^8,.30/.30/  88*6 4)98'-XsqoqZbzibyhEDf 32655!32653#"&5#5!##'5}KArjkairitrцIST_Brqfmzyg\,32655!32653#"&5#5!.##5323##'5}KArjkairitr8>QF< ?KXAIST_BrqfmzybW^ig\VcL####'#"&&5332654&&##5326654&&#"#46632!!.##532c"%lZ;`72W7Sc%R@""8L%.N/2R04Z75V1EC >QF< ?KXA,,O-Vh1Z95R-`N*N2,D$2I&&F05N)+N4>U  SbW^iVcW####'#"&&5332654&&##5326654&&#"#46632!!.##532.##532c"%lZ;`72W7Sc%R@""8L%.N/2R04Z75V1ECU  S72  .4nbs""V]"":Vc""23#5!#U,D#54&#"3###535463p̈́Ƣ͖bumZSy,[p2###5354&#"#546322;CC=FKKD,.H[[H44OdcP.x#"&7332654&##532_T]riVJX:19CPa\VWF@.DM5W#"&54632#54&&#"327>O\L?e;6\9HRE7I=AO;tR Hi8G94A#"&54633#"327S&F^WL DNS@#LJBWN;DB `%#"&54675&&54633#"33#"3267V3IE KQH@7<=<=C 08;*L74/??OZNNZO?CU^IFWJ12IXE(6)//yN67#"&54675&&54633654&#"#54&#"327#"&5463236632#"33#"3i% %+7!5'99:=;7:>IE KQH@7<=<=C -.%#//% )'&&))?OZNNZO?CU^IFWJ12IXE( ##!$ != .##532?QG< @KXBcX_k=#.##532.##53KXB=SI< QF< ?KXA,bW^iL2###53.##532.##5322d9;d@a25a?3^@Cb30A###"'#"&5532655!567&&546632!##3$66554&&#"3\FqQdx,@Uh?K6\8G[9^Nn^EQ&&Q=2U21T4,7GG]tbHa,VBgM<[0F6iPZl8V,.V7,S8;W-####"&5533265!5΢>B@?59<3,=PQ:2HH56(###"&54675&&55#5!!33#"32665Yj}ZBQCBAH=  ###5#"&&5467#5!#"32665!5!pHd:i?326653#"&&546335!5!##>mCEl<@sKHuB35D-}xCj<>mFKuA@qG?&#"&&546675!5!&&#"32665\Fq@BuHHuB@pF>mCCm>>mCCm>ԥAoFGq@@qGFoAj;;jCBj<QCBAH=/326654&#"#&54632#"&&546335!5!##EyK:\4O=4KS=FW7d@PI;#L-KtA-N1>RD7 ?KZF6V0E{OW####"&5#5!!3265WWMKWzBOCDN,QddQEI[[I###"33#"&546335!5!̢~t{,uup{w~|d0###"&54732654&#"#&54632##32665 >b@|l^QEIS^O3K)i]z?l@,&D,y J`AWWGM_-L/eU|6a>"326653#5#"&&5466335!5!##pCs`,V:hBEg6HxIhy<0bG_s%O<0?9fCMi3b3###"&54675&&54632#74&#"33#"326653٢U\uL48MUGFSH@@KZV66UVmSAm@,IVXP?N RFCXSB 8LPJN;jCx$##!#"&&5463!5!5!&#"3265/?.R47T-gScu>\GJ]\KG\,V;3P--O2ObYYHFXZF###"&55#5!!32665`Dfh^`9S,,`8A|rks3U4+56632#"'5326654&&#"##"&55#5!!!32665dP:b:7`<7X35Z6DY*[Aac Y[6O)@R7fDHi73bC?_3Ac5`8A|rks2V4!*###"&&546632!5&&#"66573բqSBoA@mBUrE1eH-PC~>8=f>, ?R8jGIl;U@fA N&<8=^Cb4_ &1####"&5463354&#"#&546323#"3265 OGEU[Jz>@7EN?GHzBRM<>G,h]`UEFUoT\KAHUe[p'L?>LZR#####"&54633!5!#3#"3265OGEU[Jz%zBRM<>G,h]`UEFUL?>LZR%###"&54732655!5!###32665 >b?{anvjs?l@,%C+MgYYmW }5b?>326553#"&5532655!5!##uRPKWaRX[n]hFaqevZkcR Zktbdenkh8#"'532654&#"#54&#"327#"&5463236675!5!|S[rj  diUPSYTOTZid  jrd[NT  RNrԤz^izbXsqoqZbzibyhEDf'###"&&546632!566554&&#"3̢pVBj=?j@Wob/.cJ;c:9b=,?S8jHEh8S@Ab26c@3aADb4n,)/326553#"&5532654&#"#&54632###WUKWaR]`^t^OM^fVWg~e%]ZkcR ZktbbWUbaSYkj]_j,###"&55#5!!65673`Dfhqu[^`,`8A|rD8LksN%##!326553#"&5532655!5!#!NRPKWaRX[nZkFqI<y,ZkcR Zktbl]qqRgn4632#.#"32673#"&&5467&&546335!5!##S?3#Yi/Q7A[.-\ANbiWGc1C>)@[I%49/< W:;'6Z56X5M39X:a9Dj @4@=)&6F#"&&'##"&&54663236675!5!6654&&#"3&&#"32665;^59d?8Y88Y8?d99d>XjhV LC[22[<:\45\:o4\:<[22[;:\5Ԕ:d@>d8,J++J,8d>Cf8]BA]4\:=_54_>;\3_45_=:\43\;U2?##!32653#5#"&5466767&&5463236654&&#",:B.NDEQ#A.JY/D; OlcH.N/40"oU5;*G)@Z,-E0=QVB,!ZD3I/ _MNT'I18M ">~%'86632#4&&#"##"&&546632!5!66554&&#"3 cP:b:5Z6DY*hO>d9;d@a25a?3^@Cb3*63267&&54632#"'#"&5532655!5!!#32654&#"un^KhAJp]^pr\pRdx,@U=^NgUUhgVUgzZlWBgI]nn]]mG^tbHaiPdffTUffU##"&5533265!5!Ǎ>B@?59<3=PQ:2HH56tP%33#"326653#"&54675&&55#5!U]66ebv`DrBDwLj}ZBd:JN3\; !563!!#"&&5$&#"3265ZngS~/?.R47T-[\GJ]\KG\bV;3P--O2HYYHFXZF326653#"&55#5!u^`9S,0[>fhks3U4;]4|r'6632#4&#"##"&55#5!!!32665dPeqg^DY*[AacRY[6O)@RwjcnAc5`8A|rks2V4x2'!5#"&&54663654&&#"732l4:jGBoA@mB1eH-PCH>8=g=Hm9?kA8jGIl;N&7fAG<8=^Cb4_P +##"&5463354&#"#&546323#"3265POGEU[Jz>@7EN?GHzBRM<>Gh]`UEFUoT\KAHUe[pL?>LZRM3##"&54633!5!#"3265gOGEU[JzpzBRM<>Gh]`UEFUL?>LZRP!326653#"&54732655!5!!#bs?l@BsG{ansvj }5b?Bi;MgYYmW>">}h*+5!6632#4&#"#54&#"327#"&54632#M WSW^UPSYTOTZid  jrd[NT Fg{`XsqoqZbzibyhE}*#5!#"&&546632326654&&#"#M3iMCk>?lAOi1<9d>Ia..aIXjjX>d99d?8Y8d5\:;[22[<:\42[;:\54\:<[2'J,8d>Cf8]BB]8fC>d8,J+\34\:=_54_>:\43\;>_45_=UZ,932653#5#"&5466767&&546323!&6654&&#"<,:B.NDEQ#A.JY/D; OlcH.N/40oU5;*G)@Z-E0=QVB,!ZD3I/ _MNT'I18M iW!L8,A"JF@!!5!!#"&&'#332654&##%DR0W94R4 :U0P_}edK9X1%97M&dN[h"P~l"Q~v"R~m "W~8"e~`W #"&54632o  e 8# #"&54632#"&&53326653o  &M88N%"F33F" CC,,C";'';Fw #"&54632#"&54632w     ]K7532654&&'.5433#"#]59%5/2;)7@&70HJ>AK1%=4)+;F%e%0!@6*=Z2*<s '3stOO>XFDVXDDXN>>NM=>P#Q#3#U ?###323254&###"&'332654&&'.54632#&&#"kgזsn`m+>6;F1WFVo aT@H,B69E/ZJPd VLCMd3j]V]/ ;2>NYL?TD6+3 70@LXM>UC7Aa%3##32653#"&552667!5!55!5!#9zuSRMP^S\\|z3e $LLZ`[U_cj\CE+3/0'#'7'77_H/E!]_!_` ``0KaI!]_!__ `_ 2Y #/;GS_kw#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632XyJj/fQ|".BGQNPG?3!p}54632#4&#"HBd9;d@a25a?3^@Cb3i5F###"'#57#"&5532655!567&&546632!##3$66554&&#"3\F+'(dx,@Uh?K6\8G[9^Nn^EQ&&Q=2U21T4,7G@) tbHa,VBgM<[0F6iPZl8V,.V7,S8;W-#####"&5533265!5΢_>B@?59<3,6`=PQ:2HH5,###7#"&54675&&55#5!!33#"3266513QCBAH=  '##5#7#"&&5467#5!#"32665!5!+')mCEl<mFHsCBmC,#'#7.546675!5!&&#"32665\Fq@mCCm>>mCCm>ԥAoFDmBAnDFoAj;;jCBj<QCBAH=m5326654&#"#&54632#'#7.546335!5!##EyK:\4O=4KS=FW6a?Gq?;#L-KtA-N1>RD7 ?KZF5U1GvIW#####"&5#5!!3265W^WMKWzBOCDN,5_QddQI[[I###5&&#"#46632!5!̢ovT;a8'326653#5#7#"&&5466335!5!##pCs`,V: %,Eg6HxIhy<0bG_s%O<"޺9fCMi3b7###7#"&54675&&54632#74&#"33#"326653٢2.6\uL48MUGFSH@@KZV66UVmSAm@,=)XP?N RFCXSB 8LPJN;jCx/(###5!#"&&5463!5!5!&#"3265/\/?.R47T-gSwaRw\GJ]\KG\, ]V;3P--O2ObYYHFXZF###%#"&55#5!!32665$"*fh^`9S,,`/ |rks3U4/96632#"'5326654&&#"##%#"&55#5!!!32665dP:b:7`<7X35Z6DY*!!"ac Y[6O)@R7fDHi73bC?_3Ac5`0 |rks2V4%.###7#"&&546632!5&&#"665327բ&(4BoA@mBUrE1eH-PCD=f>]>8,1#8jGIl;U@fA N&Eb4<8=^_*5###5##"&5463354&#"#&546323#"3265^QEEU[Jz>@7EN?GHzBRM<>G, ^T[bP@BOoT\KAHUe[p'F;9GZR'###5##"&546335!5!#3#"3265`OGEU[Jz%zBRM<>G, `h]`UEFUL?>LZR)###5%#"&54732655!5!###326657 *1{anvjs?l@,:(MgYYmW }5b?y"?+###7#"&&546632!566554&&#"3̢*'4Bj=?j@Wob/.cJ;c:9b=,6%߷8jHEh8S@Ab26c@3aADb4D!1##5'#5%'#57'&&54663276654&&#"`EE)L34M*<:,87%F/+C'>E,6s'a>,L.-K+=]-+U;&C)&@$A\'###%#"&55#5!!65673$"*fhqu[^`,`/ |rD8Lksl")###5!326553#"&5532655!5!!!l HF*A[I%490< =,$29^79^8M39X>fXjhV LC[22[<:\45\:o4\:<[22[;:\5Ԕ:d@;_:\?+J,8d>Cf8]BA]4\:=_54_>;\3_45_=:\43\;47HT6632#"'5326654&&#"##7#"&&546632!5!66554&&#"3#"&5463cP:b:7`<7X35Z6DY*.",>d9;d@a25a?3^@Cb30  i"~"~Z"~1R%/9E6632#"'5326654&&#"##%#"&55#5!!!32665#"&5463dP:b:7`<7X35Z6DY*!!"acHY[6O)L  @R7fDHi73bC?_3Ac5`0 |rks2V4  +<6632#4&&#"##7#"&&546632!5!66554&&#"3 cP:b:5Z6DY*.",>d9;d@a25a?3^@Cb3i/;3267&&54632#"'#57#"&5532655!5!!#32654&#"un^KhAJp]^pr\-'(dx,@U=^NgUUhgVUgzZlWBgI]nn]]m?+ tbHaiPdffTUffU##"&5533265!5>B@?59<3a=PQ:2HH5bP)33#"326653#7#"&54675&&55#5!U]66ebv`DrB-(333#"326654&&#"#&54632#'#7#"&54675&&55#5!U]igb],F'8W_A-M0OZ^GjBfKpFW3`CHh6df/#5%#"&54732654&#"#&54632##326653f-*-3|l^QEIS^O3K)i]zDk<\y J`AWWGM_-L/eU|5a?"}b52#7#"&54675&&54632#74&#"33#"3266535&$4>\uL48MUGFSH@@KZV66UVmSFl<SXP?N RFCXSB 8LPJN3\; $!563!!#"&&5$&#"3265ZngS~/?.R47T-[\GJ]\KG\cbV;3P--O2HYYHFXZFtd326653#%#"&55#5!u^`9S,$""+fhks3U43S |r!+6632#4&#"##%#"&55#5!!!32665dPeqg^DY*!!"acRY[6O)@RwjcnAc5`0 |rks2V42"+!5#7#"&&54663654&&#"$3272l4,)'1BoA@mB1eH-PCz=g=]>8Hm97`!ٵ8jGIl;N&7fAOb4<8=^_P +/##"&5463354&#"#&54632#"3265PQEEU[Jz>@7EN?GHzBRM<>GqCT[bP@BOoT\KAHUe[pF;9GZRlCM#3##"&546335!5!#"3265gOGEU[JzpzBRM<>Gg\h]`UEFUL?>LZRb\P&326653#5%#"&54732655!5!!#bs?l@0+ ,0{ansvj }5b?8^MgYYmW"}*'!5#7#"&&546636654&&#"3*i1))'2Ck>?lAIa..aIFk82`"ڷ8jHEh8AAb36c@3aADb4D*%#5%'#57'&&546632'76654&&#" EE)L34M*<:87%F/+C'>Es'a>,L.-K+=]- +U;&C)&@$A\'!#%#"&55#5!6673%/fhN-^`6|r&9Nks{!%!!326553#"&5532655!5!#I<YHFXjjX>d9[22[<:\45\:\54\:<[22[;@_:\?+J,8d>Cf8]BB]8fC4\:=_54_>;\33\;>_45_=:\4+<H6632#4&&#"##7#"&&546632!5!66554&&#"3#"&5463cP:b:5Z6DY*.",>d9;d@a25a?3^@Cb30  i"~"~"~1R!+76632#4&#"##%#"&55#5!!!32665#"&5463dPeqg^DY*!!"acRY[6O)L  @RwjcnAc5`0 |rks2V4  NETev6632#"'5326654&&#"##"&&54&&#"##"&&546632!5!6632!66366554&&#"3 66554&&#"39cP:b:7`<7X35Z6DY*hO>d91U5DT%hO>d9;dSIISO>>NG@a25a?3^@Cb3@a25a?3^@Cb3NETev6632#"'5326654&&#"##"&&54&&#"##"&&546632!5!6632!66366554&&#"3 66554&&#"3#"&5463 #"&54639cP:b:7`<7X35Z6DY*hO>d91U5DT%hO>d9;dSIISO>>NG@a25a?3^@Cb3@a25a?3^@Cb3t -:Rct###"'#"&554&&#"##"&&546632!5!32655!66367&&546632!##3$66554&&#"3$66554&&#"3Ϣ\FqQdx1U5DT%hO>d9;dfXHa>NVBgM<[0F6iPZl@a25a?3^@Cb3 8V,.V7,S8;W-(=N##5#"&&5467#"##"&&546632!5!!663!#"3266566554&&#"3pHd9;dZ/8]5@a25a?3^@Cb3}*=N##!#"&554&&#"##"&&546632!5!!663232655!66554&&#"3}ZMIV1U5DT%hO>d9;d>N7fDI[[I@a25a?3^@Cb36CT326653#"&&5474&&#"##"&&546632!5!##6335!663266554&&#"3'>mCEl<@sKHuB1U5DT%hO>d9;dmFKuA@qG@_2@c6 =P7iHDf7O>AQ>N\Q@a25a?3^@Cb3t)2;L####"&55&&#"##"&&546632!5!!663%!326566554&&#"3tWMKW fIDT%hO>d9;dA9>NI[[I@a25a?3^@Cb3n86632#"'5326654&&#"##"33#"&5467#5!5!5!6pX=h=:jD$ "@a68_8Le/~t{dO?R9jGKn;7gFBc5@a2pplu~s_r1>O[###"33#"&547654&#"##"&&546632!5!!6632663366554&&#"3#"&5463֢~t{_J@P#hO>d9;db?{JJlot{\L@P#hO>d9;d. MgYO###5&&#"#514&&#"##"&&546632!5!!6632663266554&&#"3ovT;a85Y4AW(hO>d9;d?Of_KQL7@a25a?3^@Cb3h:M^o###"&&547#"33#"&547654&#"##"&&546632!5!6632!663266366554&&#"3$66554&&#"3hpVBj=$~t{ZM@P#hO>d9;d(-S@b@|1U5DT%hO>d9;d -L/eU|6a>_NJ`AW>NG@a25a?3^@Cb38EV326653#5#"&&5514&&#"##"&&546632!5!##6335!663266554&&#"3GpCs`,V:hBEg61U5DT%hO>d9;dBR>NTJ@a25a?3^@Cb3Q/<MY##!#"&&547.#"##"&&546632!5!!6632663!66554&&#"3&#"3265Q/?.R47T-1T5DT%hO>d9;dc\++[E8\65\9\GJ]\KG\,V;3P--O2 ?]1@c6 =P7iHDf7O>>N^R07@a25a?3^@Cb3YYHFXZF&/9J###"&'&&#"##"&&546632!5!5!663%!3266566554&&#"3`DZf X<@P#hO>d9;d72=Mks3U4@a25a?3^@Cb3*3=N###%#"&'&&#"##"&&546632!5!5!663%!3266566554&&#"3$"*Zf X<@P#hO>d9;d72=Mks3U4@a25a?3^@Cb3CLZk6632#"'5326654&&#"##"&'&&#"##"&&546632!5!5!663%!13266566554&&#"3dP:b:7`<7X35Z6DY*[AWc`BDT%hO>d9;d83>NSX2V4@a25a?3^@Cb3"~CLVgs6632#"'5326654&&#"##"&'&&#"##"&&546632!5!5!663%!3266566554&&#"3#"&5463#"&5463dP:b:7`<7X35Z6DY*[AVa bCDT%hO>d9;d94>Nks2V4@a25a?3^@Cb3  h *9DU^j###"&&5514&&#"##"&&546632!5!6632!663&&#"66566554&&#"373#"&5463qSBoA1U5DT%hO>d9;d8=f>  , ?R8jG@_2@c6 =P7iHDf7O>TJNYU@>NfA N&@a25a?3^@Cb3<8=^Cb4m >+8<MX####"&547.#"##"&&546632!5!6633!663%#366554&&#"3#"3265>OGEU1T5DT%hO>d9;dG,h]`UE'"?\2@c6 =P7iHDf7O>jZ>N@a25a?3^@Cb3L?>LZR>+8<MXd####"&547.#"##"&&546632!5!6633!663%#366554&&#"3#"3265#"&5463>OGEU1T5DT%hO>d9;dG  ,h]`UE'"?\2@c6 =P7iHDf7O>jZ>N@a25a?3^@Cb3L?>LZR )6GX###"&&54&&#"##"&&546632!5!32655!663%###3266566554&&#"3 >b?Qu=&M8CX(hO>d9;d^ anaOvj;nK?l@ \++[E8\65\9,%C+CwK+M1@c6 =P7iHDf7O>V?Mgm@QmmW Hp>5b?@a25a?3^@Cb3I\m#"'532654&#"#54&#"327#"&547.#"##"&&546632!5!675!66326632366554&&#"3S[rj  diUPSYTOTZid  jr2T4DT%hO>d9;d[1@c6 =P7iHDf7O>f>NVL@JhE@a25a?3^@Cb3(7HY###"&&54&&#"##"&&546632!5!6632!66366554&&#"3$66554&&#"3pVBj=1U5DT%hO>d9;dSIJVS@>NEAb26c@3aADb4@a25a?3^@Cb3/BUhy###"&'#"&&54&&#"##"&&546632!5!663232655!663%###32665%14&&#"32665566554&&#"3 >b?cp`Ck>1U5DT%hO>d9;dI`,0\++[E8\65\9,%C+YOLi8jH@_2@c6 =P7iHDf7O>UKLX_DMgw>NwmW kx5b?0V73aADb4Ab3@a25a?3^@Cb3A6<N_326553#"&554&&#"##"&&546632!5!632###32654&#"!66366554&&#"3WUKWaR]`1U5DT%hO>d9;d j]_j,5cCbWUb >NG@a25a?3^@Cb3U?LP[####"&5467!32653#5#"&5466767&&54632!!5!6654&&#"%#3#"3265OGEU.(,:B.NDEQ#A.JY/D; OlcH.N/40oU5;*G)@ZzBRM<>G,h]`UE1H-E0=QVB,!ZD3I/ _MNT'I18M +W!L8,A"JFL?>LZRUHU\lw##5#"&547##"&5467!32653#5#"&5466767&&54632!!5!6654&&#"2655!###32665%#"3265ʢ >b?{OGEU.(,:B.NDEQ#A.JY/D; OlcH.N/40oU5;*G)@ZanOvjs?l@2zBRM<>G,%C+ h]`UE1H-E0=QVB,!ZD3I/ _MNT'I18M ,W!L8,A"JFMgx,xmW }5b?GL?>LZRU@M]###"&547#32653#5#"&5466767&&5463232655#5!6654&&#"%###32665Ӣ >b?{,:B.NDEQ#A.JY/D; OlcH.N/40anoU5;*G)@Zvjs?l@,%C+t -E0=QVB,!ZD3I/ _MNT'I18M MgxW!L8,A"JFxmW o|5b?UCPa###"&&547#32653#5#"&5466767&&5463236632!56654&&#"66554&&#"3pVBj=,:B.NDEQ#A.JY/D; OlcH.N/40|QWod9;dl]q>NaM:qRg@a25a?3^@Cb3HU`q326653#"&&547!326553#"&554&&#"##"&&546632!5!##2655!6632$6335!!66554&&#"35>mCEl<@sKHuB RPKWaRX[1U5DT%hO>d9;dmFKuA@qG)*ZkcR Zktb7V0@c6 =P7iHDf7O>l]q>NaMQRqRg@a25a?3^@Cb3Q^k|332#"&&5332654&##"&'!326553#"&554&&#"##"&&546632!5!##2655!6632$6335!!&566554&&#"3,bTA-Wuf`Kj5nkY\mO->W RPKWaRX[1U5DT%hO>d9;dQC00ZkcR Zktb7V0@c6 =P7iHDf7O>l]q>NaM[=qRg@a25a?3^@Cb3BOYj###"33#"&547!326553#"&554&&#"##"&&546632!5!2655!6632!!63366554&&#"3~t{#RPKWaRX[1U5DT%hO>d9;dl]q>NaM:qRg^@a25a?3^@Cb3=JS]n###%#"&'!326553#"&554&&#"##"&&546632!5!2655!6632&55#!3266566554&&#"3ڢ$"*SeRPKWaRX[1U5DT%hO>d9;dl]q>NaM#qRg;ks3U4@a25a?3^@Cb3 Y_lu#"'532654&#"#54&#"327#"&'#"&'!326553#"&554&&#"##"&&546632!5!2655!6632&55#$675!32676632366554&&#"3 3S[rj  diUPSYTOTZid  grU=O`RPKWaRX[1U5DT%hO>d9;dl]q>NaM#qRg.fksQAMZhE@a25a?3^@Cb3U$?Wct###"'#"&55#"'#"&5532655!5!67&&5463232655!##3 67&&546632!##3$654&#"366554&&#"3U\FqQdxeFpRdx,@Ux7hAJp]Um @Ul^Nn^h?K6\8G[9^Nn^hgVUggUQ&&Q=2U21T4,7GG]tbD9AG^tbHa,WBgI]n\OHaiPZlVBgM<[0F6iPZlfTUffUTf8V,.V7,S8;W-u&AM###"33#"&55#"'#"&5532655!5!!##3267&&546326633654&#"3u~t{]=pRdx,@Ut^Nn^KhAJp]Zm`hgVUggU,uup{w-2G^tbHaiPZlWBgI]nfXA?fTUffUTflu'~#>MY##!#"&'#"'#"&5532655!5!!##3267&&54632663!674754&#"3$&#"3265آ/?.R4F^gGpRdx,@U^Nn^KhAJp]Rj [>cwegVUggU\GJ]\KG\,V;3P-E:Q`ApRdx,@UhAJp]ZoJ0z^Nn^hgVUggUzBRM<>G,h]`G:27G^tbHa,WBgI]ngX"%iPZlfTUffUTfL?>LZRl'~ ;JY###"&'#"'#"&5532655!5!67&&54632326655!##3!##32665%&5&&#"3265 >b?hz jPpRdx,@UhAJp]OjCQ&a^Nn^(XK}t?l@eOUggUUh,%C+^SHSG^tbHa,WBgI]nPF&WKmiPZlmO^+u5b?LXfUTffTl'~ ;LX###"&'#"'#"&5532655!5!67&&546326632!##3$66554&&#"3$654&#"3pVUzhJpRdx,@U hAJp]Lh{RWoj^Nn^b/.cJ;c:9b=hgVUggU,?S[P@HG^tbHa,WBgI]nKCMXS@iPZl}Ab26c@3aADb4#fTUffUTfl'~-3R^326553#"&55#"'#"&5532655!5!632###67&&5463232654&#"!##3$654&#"3WUKWaR]`eFpRdx,@U!Wg~e%xhAJp]]p^t^O!^Nn^`hgVUggU]ZkcR ZktbM9AG^tbHa j]_j,,WBgI]nl\bWUb iPZlfTUffUTfl"~l*ELXd##!326553#"&55#"'#"&5532655!5!2655!##3267&&54632#!654&#"3#"&5463RPKWaRX[eFpRdx,@UZk^Nn^KhAJp]Pl*I<yahgVUggU  ,ZkcR ZktbM9AG^tbHal]qiPZlWBgI]nRI:qRgfTUffUTf b+####"&5533265!#"&5533265!5!b>B@?59<3}>B@?59<3,=PQ:2HH56=PQ:2HH56r':###"&54675&&55##"&5533265!5!!33#"32665rYj}ZBB@?59<3GU]66ebv`DrB,IW^YETNMf=PQ:2HH56fMNUCRU;jC-##!#"&55332655!5!#"&5533265!5!ڢZMIVNADQ>B@?59<3,QddQI[[I=PQ:2HH56"+####"&5##"&5533265!5!!3265WMKW>B@?59<3BOCDN,QddQE=PQ:2HH56I[[I 4326653#5#"&&5466335!#"&5533265!5!##pCs`,V:hBEg6HxIh>B@?59<30y<0bG_s%O<0?9fCMi3=PQ:2HH56aJ###"&54675&&5467##"&5533265!5!632#74&#"33#"326653aU\uL48M#>B@?59<3p FSH@@KZV66UVmSAm@,IVXP?N RF)E=PQ:2HH56 SB 8LPJN;jCxGZj###"&'#"&54675&&5467##"&5533265!5!632#74&#"33#"3266'54732655#5!###32665G >b?d|b\uL48M#>B@?59<3p FSH@@KZV66UVmSHi6anvjs?l@,%C+f[ctXP?N RF)E=PQ:2HH56 SB 8LPJNGSMgYYmW }5b?.Xi###"&'#"&54675&&5467##"&5533265!5!632#74&#"33#"3277>32!566554&&#"3.pVW}d`vL48M#>B@?59<3p FSH@@KZV66UVoV@i?Wo0?b/.cJ;c:9b=,?S_U^_WQ?N RF)E=PQ:2HH56 SB 8LPJN Ce6S@Ab26c@3aADb4*6##!#"&&5463!5!#"&5533265!5!&#"3265/?.R47T-gSc=>B@?59<3\GJ]\KG\,V;3P--O2Ob=PQ:2HH56YYHFXZF6FR###"&547!#"&&5463!2655!#"&5533265!5!###32665&#"3265 >b?{/?.R47T-gS_ans>B@?59<3vjs?l@g\GJ]\KG\,%C+ V;3P--O2ObF_Y=PQ:2HH56YdQ 5b?YYHFXZF`(3<###"&&546632!#"&5533265!5!&&#"66573`qSBoA@mBUr>B@?59<31eH-PC~>8=f>, ?R8jGIl;U@=PQ:2HH56fA N&<8=^Cb44?####"&5463354&#"!#"&5533265!5!6323#"3265OGEU[Jz>@>B@?59<3pGHzBRM<>G,h]`UEFUoT\=PQ:2HH56 e[p'L?>LZRWKYd###"&55##"&5463354&#"#&5467##"&5533265!5!6323255#5!###32665%#"3265W >b?{OGEU[Jz>@$*>B@?59<3pGHs?l@[zBRM<>G,%C+ h]`UEFUoT\D2,D=PQ:2HH56 e[pYY }5b?=L?>LZR&*5####"&54633!#"&5533265!5!#3#"3265OGEU[JzH>B@?59<3zBRM<>G,h]`UEFU=PQ:2HH56L?>LZR'7###"&54732655!#"&5533265!5!###32665 >b?{anw>B@?59<3vjs?l@,%C+MgY=PQ:2HH56YmW }5b?,<###"&'#&54732655!#"&5533265!5!###32665 >b?Tv9anw>B@?59<3vjs?l@,%C+IC:8FMgY=PQ:2HH5YmW }5b?h-J#"'532654&#"#54&#"327#"&5463236675!#"&5533265!5!S[rj  diUPSYTOTZid  jrd[NT  RND>B@?59<3PԤz^izbXsqoqZbzibyhEDf=PQ:2HH56W(9###"&&546632!#"&5533265!5!66554&&#"3WpVBj=?j@Wo>B@?59<3zb/.cJ;c:9b=,?S8jHEh8S@=PQ:2HH56Ab26c@3aADb407##!326553#"&5532655!#"&5533265!5!#!ʢRPKWaRX[nZk'>B@?59<3I<y,ZkcR Zktbl]q=PQ:2HH56qRg 8D##!#"&'#"&54675&&55#5!!33#"326677663!&#"3265/?.R4Ja r^]sZBRpZ]sZBG,h]`G:NG_XETNMfOX9BfMNUCQVPL?>LZR8H###"&'#"&54675&&55#5!667&54732655!33#"3###32665ߢ >b?_~ GnBj}ZB##!#"&'#"&&5467#5!#"32665463!5!5!&#"3265/?.R4C]iN9_9LCeA`44X3:W.gSc\GJ]\KG\,V;3P-@7GZ1]@Ij5\8;V-8\4ObYYHFXZF.2=####"&'#"&&5467#5!#"32676633!5!#3#"3265OGG,h]`A7?N1_AIj5\8LZR3C###"&'#"&&5467#5!#"3266=4732655!5!###32665 >b?e|Vb?]} da^Gb?]}^Gd9'ZMIVNADQX2PfgT\++[E8\65\9?Q7fDHi73bC?_3Ac5 =P7iHN8QddQI[[I$'O>@a25a?3^@Cb3-##!#"&55##"&55332655!32655!5!5!ZMIVZMIVNADQNADQ,QddQQddQI[[II[[I'~8'~83/5##!#"&&'#332654&#!#"&55332655!5!5!/DR0W94R4 :U0P_}eZMIVNADQaR,dK9X1%97M&dN[hQddQI[[I_:J###"&547###"&55##"&55332655!32655!2655!5!###32665_ >b?{ZMIVZMIVNADQNADQan=vjs?l@,%C+ yQddQyyQddQI[[II[[IDZYYaM 5b?%<M###"&&547##"&55##"&55332655!32655!6632!5!66554&&#"3%pVBj=(ZMIVZMIVNADQNADQ _6WokHb/.cJ;c:9b=,?S8jHL:QddQQddQI[[II[[I&)S@Ab26c@3aADb4=L##%#"&&'#5332654&##"&547##"&55332655!66335!5!##"#334@ZYBY. j]PQbZ-J^ZMIVNADQ S0r'VB-,+ J?AU*6CZM9FNBA%QddQI[[IV4'<756F###"&'&&###"&&'#332654&##5!232655!5!###326655 >b?xK>DR0W94R4 :U0P_}e;L angXvj xp?l@,%C+.?dK9X1%97M&dN[h3'MgYYmW 5b??4326653#"&&547!#"&55332655!66335!5!##>mCEl<@sKHuBAZMIVNADQ4&i>3D-}xCj<>mFKuA@qGrDQddQI[[I o?332#"&&5332654&##"&547##"&55332655366335!5!##bTA-Wuf`Kj5nkY\mO-I\ZMIVNADQP0#"2C<7MWFY2W8MdQ>QCBA$QddQI[[I*###"33#"&547!#"&55332655!5!5!~t{~ZMIVNADQ,uup{w.QddQI[[I6326653#5#"&&547!#"&55332655!66335!5!##ApCs`,V:hBEg6*ZMIVNADQ$n@hͫy<0bG_s%O<0?9fCQ9QddQI[[I'(6*6##!#"&&5467!#"&55332655!5!5!&#"32656/?.R47T-60ZMIVNADQZY\GJ]\KG\,V;3P--O28UQddQI[[IYYHFXZF*5>###"&&547##"&55332655!6632!5!&&#"66573qSBoA(ZMIVNADQ b9Ur1eH-PC~>8=f>, ?R8jGO=QddQI[[I(,U@fA N&<8=^Cb4.&*5####"&5467!#"&55332655!5!5!#3#"3265.PFEU0+ZMIVNADQ[QzBRM<>G,|RWUE2GQddQI[[IL?>LPH$(8###"&547###"&55332655!2655!5!###32665$ >b?{ZMIVNADQanxGvjs?l@,%C+ yQddQI[[IDZYYaM 5b?$"A~8*;###"&&547##"&55332655!6632!5!66554&&#"3pVBj=(ZMIVNADQ _6Wo b/.cJ;c:9b=,?S8jHL:QddQI[[I&)S@Ab26c@3aADb4J3EQ##!#"&''#"&&'#5332654&##"&546335!5!!#"33!&5463!&#"3265J/?.R4Ia 4@ZYBY. j]PQbZ-J^jL!m6IdVB-?gSc\GJ]\KG\,V;3P-L? J?AU*6CZM9FNBAH=2C<7 ObiYYHFXZFO1AEP####"&55'#"&&'#5332654&##"&546335!5!6633!#"33#3#"3265OOGEU4@ZYBY. j]PQbZ-J^jL!r7YCz*IdVB-`zBRM<>G,h]`UE  J?AU*6CZM9FNBAH=VLZR*/CS###"&'%#"&&'#5332654&##"&546335!5!&54732655!#"33###32665* >b?[z4@ZYBY. j]PQbZ-J^jL!MlanbIdVB-;vjs?l@,%C+UL J?AU*6CZM9FNBAH=V28MgY2C<7YmW }5b?E##5#"&&547##"&'3326654&&#"#66323667#5!#"32665!5!pHd:;T5\8d:NMMN]JbhK\?V)GM/<83RO<##!#"&55##"&'3326654&&#"#663235332655!5!5!ZMIV0bG[e_RA\-.[AT_ e]Fb1NADQ ,QddQd:I[[IGMS326553#"&55##"&'3326654&&#"#6632!2654&#"#&5467!5!632###WUKWaR]`1bG[e_RA\-.[AT_ e]Fa2!^t^OM^-*+"Wg~e%]ZkcR ZktbnHEn?35b{Tkb[d^,FQ~i *5C)}xCj<;iCHp?@qGqq3I>1 bo8(532653#5#"&&5467&&546335!5!###"326655uwmot)([F6W2VAQ[ee(vjYdkbLmCCm>>mCCm>,FQwb *5C){UGq@@qGFoAqq3I>1 [hj;;jCBj<35 S:@S;6D0,=?5dJ32#"32654&#"#&54632#"&5467&&5332654&#"&546335!5!##YSblZXEoBmVeB<7BK?EJn^ukXG_nkQPd[Xc]J=x?d6#9K=D/_F_jL<6D70 7?L>CUrg^oV?@S;6D0,=?5;M##5#"&54732654&#!"332#"&&5332654&##"&546335!5!65!32#3bKkg WXeOHbTA-Wuf`Kj5nkY\mO-I\hK)bޞTkb[d^,FQxd *5C)2C<7MWFY2W8MdQ>QCBAH=qq3I>1 ]i1>32#5#"&5467&&5332654&#"&546335!5!###"32665YSbl0U;LcYAF^nkQPd[Xc]J.ȡ,FdkYE6J#?d6#9K@!_.2XKFSV>@S;6D0,=?5TMKEN.F#U326654&#"#&54632##1"326654&#"#&54632#"&5467&&546335!5!##v?^2HA:HPCJP6eEHuEv?^2HA:HPCJP6eE~m[]kt_p?lhdo#>'6D8/ 7?L>,E'/aGdo#>'6D8/ 7?L>,E'xk^orYpt@Q##5#"&5473254&#!"326654&#"#&54632#"&&546335!5!65!32'3bKkg `J~EyK:\4O=4KS=FW7d@PI;# bOfd^,AJ~i `C)KtA-N1>RD7 ?KZF6V0E{Oh3Ix bo8D32654&#"#&54632#5#"&&5467&&546335!5!###"326655vWdB79ENA@J/-T@0O.`G[ntU#fG8YC8K#?lhdoN>4B70 7?J<-G_1>(K3NXtYptIFP3O*?(1326653#"&&546335!#"&5#5!##%!3265>mCEl<@sKHuB3WMKWD*OCDN-}xCj<>mFKuA@qGQddQEI[[I?(8#"&&546675!#"&5#5!!!3265&&#"32665mFq@BuHHuB@pFNWMKWOCDN>mCCm>>mCCm>ԥAoFGq@@qGFoAQddQEI[[Ij;;jCBj<QCBAH=QddQEI[[I8A326654&#"#&54632#"&&546335!#"&5#5!##%!3265EyK:\4O=4KS=FW7d@PI;WMKWLOCDN-KtA-N1>RD7 ?KZF6V0E{OQddQEI[[Ix"+####"&5##"&5#5!!3265!3265xWMKWWMKW!OCDN!OCDN,QddQEQddQEI[[IFI[[I&*5####"&54633!#"&5#5!!3265#3#"3265OGEU[JzVWMKW#OCDNzBRM<>G,h]`UEFUQddQEI[[IFL?>LZR'7###"&54732655!#"&5#5!!3265###32665ߢ >b?{anWMKWOCDNvjs?l@,%C+MgYQddQEI[[IFYmW }5b?(9###"&&546632!#"&5#5!!326566554&&#"3עpVBj=?j@WoWMKWOCDNb/.cJ;c:9b=,?S8jHEh8S@QddQEI[[IAb26c@3aADb4EV6632#"'5326654&&#"##"&&547#"33#"&546336632!5!66554&&#"3cP:b:7`<7X35Z6DY*hO>d9#~t{Z5PfYT\++[E8\65\9?Q7fDHi73bC?_3Ac5 =P7iHH8uup{w~|'*O>@a25a?3^@Cb3;HYj###"&&54&&#"##"&&547#"33#"&546336632!5!32655!663%###3266566554&&#"3 >b?Qu=&M8CX(hO>d9#~t{Z5PfY^ anaOvj;nK?l@ \++[E8\65\9,%C+CwK+M1@c6 =P7iHH8uup{w~|'*O>V?Mgm@QmmW Hp>5b?@a25a?3^@Cb3IZ6632#"'5326654&&#"##7#"&&547#"33#"&546336632!5!66554&&#"3cP:b:7`<7X35Z6DY*.#+>d9#~t{Z5PfYT\++[E8\65\9?Q7fDHi73bC?_3Ac5 <$ڹ 7iHH8uup{w~|'*O>@a25a?3^@Cb3:IZk###"&&54&&#"##"&&547#"33#"&546336632!5!6632!66366554&&#"3$66554&&#"3pVBj=1U5DT%hO>d9#~t{Z5PfYi{PWo]Nb/.cJ;c:9b=\++[E8\65\9,?S8jH@_2@c6 =P7iHH8uup{w~|'*O>SIJVS@>NEAb26c@3aADb4@a25a?3^@Cb3KX##!32653#5#"&554&#"33#"&546326677&&5467!5!63236654&&#",:B.NDEQ#A.JYWqbpt{yjs^MB"Ol&!#.N/40"oU5;*G)@Z,-E0=QVB,!ZD2fwsp{w|~g*9#_M/E 'I18M b?{JJhtt{Q>3PQ anijvjs?l@,%C+y +)svlu~sdu. MgYYmW't5b?p*;###"&&547#"33#"&5467#5!6632!5!66554&&#"3ppVBj=$~t{eP b8Wo b/.cJ;c:9b=,?S8jHI7zzlu~sh|(-S@Ab26c@3aADb4E###"&547#"33#"&54633254&#"#&5467!5!632+32665 >b@|zt{QEIS'%!3K)gIz?l@,&D, ``bktiig=QWG1L *H,`P6a>(4##!#"&&5467#"33#"&5463!5!5!&#"3265/?.R47T-60~t{g\GJ]\KG\,V;3P--O28Uuup{w~|YYHFXZFd4DP###"&547!#"&&5467#"33#"&5463!2655!5!###32665&#"3265d >b?{/?.R47T-60~t{can8vjs?l@g\GJ]\KG\,%C+ V;3P--O28Ukkjt}qtrF_YYdQ 5b?YYHFXZF *###"&55#"33#"&546335!5!!32665`Dfhd~t{d4^`9S,,`8A|ruup{w~|ks3U4$.###%#"&55#"33#"&546335!5!!32665$"*fhd~t{d4^`9S,,`/ |ruup{w~|ks3U4FY#"'532654&#"#54&#"327#"&'#"&55#"33#"&546335!5!675!326766323jS[rj  diUPSYTOTZid  grU=acd~t{d)RNY[GY aNNT Ԥz^izbXsqoqZbz~e/5|ruup{w~|fksQAMZhEp=G6632#"'5326654&&#"##"&55#"33#"&546335!5!!!32665[dP:b:7`<7X35Z6DY*[Aacd~t{dY[6O)@R7fDHi73bC?_3Ac5`8A|ruup{w~|ks2V4$(3####"&5467#"33#"&5463!!5!#3#"3265OGEU.(~t{qzBRM<>G,h]`UE1HkkhqzotrL?>LZRe-4DO###"&547##"&5467#"33#"&5463!!5!2655!###32665%#"3265e >b?{OGEU.(t{qranOvjs?l@2zBRM<>G,%C+ h]`UE1Hhifnwmqp MgY YmW }5b?GL?>LZR+:###"&5514&&#"33#"&5463232655!5!###32665 >b?{JJlot{wsPQ anvjs?l@,%C+y +)uup{w}}. MgYYmW't5b?(8##5#"&55#55&&#"#4663232655!5!###32665 >b?{osS=c9>jBZyanݳvjs?l@,%C+ypEW3`CHh6^HMgmW t5b?J#"'532654&#"#54&#"327#"&547#"33#"&5463363236675!5!S[rj  diUPSYTOTZid  jr(~t{3WNT  RNAԤz^izbXsqoqZbziX:uup{w~|9hEDfZ(9###"&&547#"33#"&546336632!5!66554&&#"3ZpVBj=$~t{ b8Wo6}b/.cJ;c:9b=,?S8jHI7uup{w~|(-S@Ab26c@3aADb44;##!326553#"&554&&#"33#"&5463232655!5!#!RPKWaRX[(U?lyt{tOdfZkI<y,vZkcR Zktb?,uup{w~|B/l]RgBMY##!#"&&547!326553#"&554&&#"33#"&5463232655!5!!!663!&#"3265֢/?.R47T-RPKWaRX[(U?lyt{tOdfZk'I<H_Cc\GJ]\KG\,V;3P--O2ZkcR Zktb?,uup{w~|B/l]Rg9AiYYHFXZF=G[##5#"&547!326553#"&554&&#"33#"&5463232655!5!2655!####32665 >b?{RPKWaRX[(U?lyt{tOdfZkran_I<2_W s?l@,%C+t ZkcR Zktb?,uup{w~|B/l]MgRgObY o}5b?o<J[###"&&55!326553#"&554&&#"33#"&5463232655!5!>32!66554&&#"3opVBj= RPKWaRX[(U?lyt{tOdfZkAe;WoI<fb/.cJ;c:9b=,?S8jHZkcR Zktb?,uup{w~|B/l]<[0S@RgAb26c@3aADb4d%@L##!#"&'#"&54732654&#"#&54632##32665463!5!5!&#"3265%/?.R4B][~l^QEIS^O3K)i]|Bi;gSc\GJ]\KG\,V;3P-@6JZy J`AWWGM_-L/eU|5]:ObYYHFXZFd>N###"&'#"&54732654&#"#&54632##326554732655#5!###32665 >b?e|fzl^QEIS^O3K)i]~xozanvjs?l@,%C+h]fwy J`AWWGM_-L/eU|MgYYmW }5b?d=N###"&'#"&54732654&#"#&54632##3267>32!566554&&#"3̢pVW}|`|l^QEIS^O3K)i]zf}?j?Wo<3b/.cJ;c:9b=,?S_TXfy J`AWWGM_-L/eU|jDf7S@Ab26c@3aADb4t1326653####"&55332655&&546335!5!##tbS*S7a>>B@?59<3S^}nr>B@?59<3S^}nr4P9BLQ?LO]R//33#"32653#5#"&54675&&546325!5!##kUOooMR^P[keQYfE58Fr`O'RaTS ]A\[5$!&c-%(S ]A\[5$!&c-%(MF1##5#"&546635&&546325!5!##"33#"3265բjaw->/VqT5۳aLhePFIR`oX~,YXSK2=;BI?r6B>;=DCK`v&4326653#5#"&&5467&&546335!5!##326655tbS*S7V:2R/D/FQ}nr&{^D?P[G5J#JNd_ O`YYHFXZFbO_k###"&547!#"&'#"&54675&&54632#74&#"33#"3267663!2655!5!###32665&#"3265բ >b?{/?.R4Ha |b`vL48MUGFSH@@KZV66UVoVl{ dO_anvjs?l@g\GJ]\KG\,%C+ V;3P-K>DHWQ?N RFCXSB 8LPJNZYHWF_YYdQ 5b?YYHFXZFbAEP####"&'#"&54675&&54632#74&#"33#"326776633!5!#3#"3265OG:P za\uL48MUGFSH@@KZV66UVmSe| [Iz˳zBRM<>G,h]`=4JNWDERL?>LZRbCS###"&'#"&54675&&54632#74&#"33#"3266'54732655#5!###32665 >b?d|b\uL48MUGFSH@@KZV66UVmSHi6anvjs?l@,%C+f[ctXP?N RFCXSB 8LPJNGSMgYYmW }5b?bAR###"&'#"&54675&&54632#74&#"33#"3277>32!566554&&#"3pVW}d`vL48MUGFSH@@KZV66UVoV@i?Wo0?b/.cJ;c:9b=,?S_U^_WQ?N RFCXSB 8LPJN Ce6S@Ab26c@3aADb4DUa6632#"'5326654&&#"##"&&547!#"&&5463!6632!5!66554&&#"3&#"3265cP:b:7`<7X35Z6DY*hO>d9)/?.R47T-gSuV2Pf4T\++[E8\65\9\GJ]\KG\?Q7fDHi73bC?_3Ac5 =P7iHP9V;3P--O2Ob#&O>@a25a?3^@Cb3YYHFXZF^DQXiu##!326553#"&554&&#"##"&&547!#"&&5463!6632!5!2655!6632#!66554&&#"3&#"3265^RPKWaRX[1U5DT%hO>d9)/?.R47T-gSuV2PfZkU]NOp (I<y\++[E8\65\9\GJ]\KG\,ZkcR Zktb7V0@c6 =P7iHP9V;3P--O2Ob#&O>l]q>NaM:qRg@a25a?3^@Cb3YYHFXZF0<##5#"&&5467!#"&&5463!#"32665!5!&#"3265pHFfV;3P--O2Ob3X59S+8]5YYHFXZF!D0R^#"&'.###"&&5463326675&&55!5!!!33#"326654&&#"#&5467&#"3265N+I-`i Pl8/?.R47T-gS@8kS Y<mCEl<@sKHuBD/?.R47T-gSM~3QDM\GJ]\KG\-}xCj<>mFKuA@qGsFV;3P--O2Ob>YYHFXZFE<H332#"&&5332654&##"&547!#"&&5463!66335!5!##&#"3265bTA-Wuf`Kj5nkY\mO-I\/?.R47T-gS\Q.Mh\GJ]\KG\"2C<7MWFY2W8MdQ>QCBA'V;3P--O2ObYYHFXZF(4###"33#"&5467!#"&&5463!5!5!&#"3265~t{WP_/?.R47T-gS\GJ]\KG\,uup{w^vV;3P--O2ObYYHFXZFx:IU###"&5514&&#"33#"&547!#"&&5463!32655!5!###32665$&#"3265x >b?{JJlot{~/?.R47T-gS+OQ an$vjs?l@\GJ]\KG\,%C+y +)uup{w.V;3P--O2Ob- MgYYmW't5b?b@|/?.R47T-gS^QEIS'%;"3K)i]z?l@k\GJ]\KG\,&D, V;3P--O2ObG[bYYHFXZFRbn###"&'#"&547!#"&&5463!2654&#"#&5467!5!632##326554732655#5!###32665&#"3265آ >b?e|fz/?.R47T-gS^QEIS'%:!3K)i]~xozanvjs?l@\GJ]\KG\,%C+h]fwy V;3P--O2ObJ`AWWG1L -L/eU|MgYYmW }5b?>YYHFXZFQbn###"&'#"&547!#"&&5463!2654&#"#&5467!5!632##3267>32!566554&&#"3$&#"3265pVW}|`|/?.R47T-gS^QEIS'%;"3K)i]zf}?j?Wo<3b/.cJ;c:9b=\GJ]\KG\,?S_TXfy V;3P--O2ObJ`AWWG1L -L/eU|jDf7S@Ab26c@3aADb4YYHFXZFf3?326653#5#"&&547!#"&&5463!66335!5!##&#"3265pCs`,V:hBEg6,/?.R47T-gSm%l?h3yd\GJ]\KG\<0bG_s%O<0?9fCT9V;3P--O2Ob&'YYHFXZFf8D326653#5#7#"&&547!#"&&5463!66335!5!##&#"3265pCs`,V: %,Eg6,/?.R47T-gSm%l?h3yd\GJ]\KG\<0bG_s%O<"޺9fCT9V;3P--O2Ob&'YYHFXZF`U8DR326653#5#"&&5467&&547!#"&&5463!66335!5!##&#"3265326655tbS*S7V:2R/D/FQ/?.R47T-gSShGrGx\GJ]\KG\^D?P[G5J#JN;jCxYYHFXZF_o{###"&'#"&'4&&###"&&5463326675&&5467!5!632#74&#"33#"3266'54732655#5!###32665$&#"3265 >b?d|b[uFqB/?.R47T-gS@fB(8M#[FSH@@KZV66UVmSHi6anvjs?l@\GJ]\KG\,%C+f[ctVNFb0V;3P--O2Ob\S)1 RF)E SB 8LPJNGSMgYYmW }5b?&YYHFXZFS_###7#"&'4&&###"&&5463326675&&5467!5!632#74&#"33#"326653&#"32652.6[uFqB/?.R47T-gS@fB(8M#[FSH@@KZV66UVmSAm@\GJ]\KG\,=)VNFb0V;3P--O2Ob\S)1 RF)E SB 8LPJN;jCxYYHFXZF]nz###"&'#"&'4&&###"&&5463326675&&5467!5!632#74&#"33#"3277>32!566554&&#"3&#"3265pVW}d_vFqB/?.R47T-gS@fB(8M#[FSH@@KZV66UVoV@i?Wo0?b/.cJ;c:9b=\GJ]\KG\,?S_U^_UOFb0V;3P--O2Ob\S)1 RF)E SB 8LPJN Ce6S@Ab26c@3aADb4 YYHFXZF'3?##!#"&&5467!#"&&5463!5!5!&#"3265$&#"3265/?.R47T-71/?.R47T-gS_y:\GJ]\KG\\GJ]\KG\,V;3P--O29UV;3P--O2ObYYHFXZFFYYHFXZF3CO[###"&547!#"&&5467!#"&&5463!2655!5!###32665&#"3265$&#"3265 >b?{/?.R47T-71/?.R47T-gSZanvjs?l@l\GJ]\KG\\GJ]\KG\,%C+ V;3P--O29UV;3P--O2ObF_YYdQ 5b?YYHFXZFFYYHFXZF)5###"&55!#"&&5463!5!5!!32665&#"3265`Dfh/?.R47T-gSE^`9S,\GJ]\KG\,`8A|rV;3P--O2Obks3U4YYHFXZF#-9###%#"&55!#"&&5463!5!5!!32665&#"3265$"*fh/?.R47T-gSE^`9S,\GJ]\KG\,`/ |rV;3P--O2Obks3U4YYHFXZF<FR6632#"'5326654&&#"##"&55!#"&&5463!5!5!!!32665&#"3265dP:b:7`<7X35Z6DY*[Aac/?.R47T-gSFY[6O)\GJ]\KG\@R7fDHi73bC?_3Ac5`8A|rV;3P--O2Obks2V4YYHFXZF@JV6632#"'5326654&&#"##%#"&55!#"&&5463!5!5!!!32665&#"3265dP:b:7`<7X35Z6DY*!!"ac/?.R47T-gSFY[6O)\GJ]\KG\@R7fDHi73bC?_3Ac5`0 |rV;3P--O2Obks2V4YYHFXZF:FQ####"&5467!#"&&5463!54&#"#&5467!5!6323&#"3265%#"3265OGEU.*/?.R47T-gSm>@7E;GH[\GJ]\KG\zBRM<>G,h]`UE1IV;3P--O2Ob]T\KA,D e[^YYHFXZFL?>LZRFT`k###"&55##"&5467!#"&&5463!54&#"#&5467!5!6323255#5!###32665&#"3265%#"3265ˢ >b?{OGEU.*/?.R47T-gSn>@7E:GHs?l@\GJ]\KG\zBRM<>G,%C+ h]`UE1IV;3P--O2OboT\KA,D e[pYY }5b?YYHFXZFL?>LZRK\hs###"&&547##"&5467!#"&&5463!54&#"#&5467!5!63236632!566554&&#"3$&#"3265%#"3265pVBj= OGEU.*/?.R47T-gSm>@7E;GHwKWo#Lb/.cJ;c:9b=\GJ]\KG\zBRM<>G,?S8jH'h]`UE1IV;3P--O2OboT\KA,D e[pCLS@Ab26c@3aADb4YYHFXZFL?>LZR#'3>####"&5467!#"&&5463!!5!#3&#"3265%#"3265OGEU.*/?.R47T-gSnjB:\GJ]\KG\zBRM<>G,h]`UE1IV;3P--O2ObiYYHFXZFL?>LZR,3COZ###"&547##"&5467!#"&&5463!!5!2655!###32665&#"3265%#"3265 >b?{OGEU.*/?.R47T-gSoiranOvjs?l@d\GJ]\KG\zBRM<>G,%C+ h]`UE1IV;3P--O2Ob MgY YmW }5b?YYHFXZFL?>LZR$4@###"&547!#"&&5463!2655!5!###32665&#"3265 >b?{/?.R47T-gS_anvjs?l@g\GJ]\KG\,%C+ V;3P--O2ObF_YYdQ 5b?YYHFXZF'8D###"&&547!#"&&5463!6632!5!66554&&#"3&#"3265ƢpVBj=*/?.R47T-gS ^5Wob/.cJ;c:9b=n\GJ]\KG\,?S8jHO:V;3P--O2Ob%(S@Ab26c@3aADb4 YYHFXZFH4;G##!326553#"&554&###"&&54633232655!5!#!&#"3265HRPKWaRX[NSt/?.R47T-gSOU aZkLkI<y\GJ]\KG\,ZkcR Zktb2?V;3P--O2Ob8-l]qqRgYYHFXZFIT`326653#"&&547!326553#"&554&###"&&54633232655!5!##6335!!&#"3265>mCEl<@sKHuB RPKWaRX[NSt/?.R47T-gSOU aZkLDd3I<\.\GJ]\KG\-}xCj<>mFKuA@qG)*ZkcR Zktb2?V;3P--O2Ob8-l]qBRqRgYYHFXZFGRYiu###"&547##"&547!326553#"&554&###"&&54633232655!5!6633!%2655!###32665$&#"3265%#"3265 >b?{OGEURPKWaRX[NSt/?.R47T-gSOU aZkL ?&z+I<ManOvjs?l@b\GJ]\KG\zBRM<>G,%C+ h]`UE8&ZkcR Zktb2?V;3P--O2Ob8-l]q qRg.MgY YmW }5b?&YYHFXZFgL?>LZR=GWc###"&547!326553#"&554&###"&&54633232655!5!655!!###32665$&#"3265 >b?{RPKWaRX[NSt/?.R47T-gSOU aZkL$n_I<Wvjs?l@X\GJ]\KG\, %C+t ZkcR Zktb2?V;3P--O2Ob8-l]qMgqRg;mW o}5b?6YYHFXZFVFR632#.#"32673#"&&5467&&547!#"&&5463!66335!5!##&#"3265S?3#Yi/Q7A[.-\ANbiWGc1C>)@ /?.R47T-gSiK/1y\GJ]\KG\%49/< W:;'6Z56X5M39X:a9Dj @4 V;3P--O2ObYYHFXZF?9"/326653#"&&55#"&55#5!##6335!3267>mCEl<@sKHuBW;fh\Dm3E^`E\-}xCj<>mFKuA@qG +0|rRbksH;?Q%5#"&&55#"&55#5!676675!3$&&#"32665Fq@BuHHuBV:fht%[Z^`>mCCm>>mCCm>ԥAoFGq@@qG).|r#E8Rfksj;;jCBj<b?{JJlot{2lfh&Q an1^`~'r\vjs?l@,%C+y +)uup{w U|r. MgYks{RQYmW't5b?&2##!#"&'#"&55#5!!3267663!&#"3265/?.R4PcJ3acY[;O aFc\GJ]\KG\,V;3P-ZH+0|rksI<G,h]`UE#rh5..5aiL?>LZRy$4###"&'#"&55#5!674732655!3###32665y >b?l\Eac[anY[vjs?l@,%C+vh32!366554&&#"3IpV?g>V?acl'Y Ac:WoY[b/.cJ;c:9b=,?S3aB39|rSC:W.S@ksjAb26c@3aADb4 .5##!326553#"&55#"&55#5!655!326653#!RPKWaRX[T=ackvY[3I'nI<y,ZkcR Zktb18|rl]qks-J,:qRgZ",?##!#"&554&&#"##"&55#5!665!3!663232655!ZZMIV1U5DT%[Aac}O)Y[~A]N:]5NADQ,QddQ@_2@c6`8A|r2V4!ks>N7fDI[[IZ"'~~8-7D326653#"&&547&&#"##"&55#5!##665!3$6335!6632>mCEl<@sKHuBf]DY*[AacDO)Y[mh3#dPVj-}xCj<>mFKuA@qG lzAc5`8A|r2V4!ksX@RaY)3@###"33#"&547654&#"##"&55#5!665!3!66326633~t{iYDY*[AaczO)Y[ dPYpf,uup{w  zzAc5`8A|r2V4!ks@RqpIG"~.(2?K##!#"&&551476&#"##"&55#5!665!3!6632663!&#"3265./?.R47T-iTDT%[AacQ1O)Y[Rm]NOm Z>c\GJ]\KG\,V;3P--O2 qi@c6`8A|r2V4!ks>NWZ17iYYHFXZF(1;###"&'&&#"##"&55#5!665!35!663%!32665`DYf ^L@V'[AacO)Y[Z^L:^`9S,,`8A_YIPAc5`8A|r2V4!ksQ63?Qks3U4;ENX6632#"'5326654&&#"##"&'&&#"##"&55#5!665!35!663%!32665dP:b:7`<7X35Z6DY*[ATb ^M@V'[AacnO)Y[Z^L&Y[6O)@R7fDHi73bC?_3Ac5`8A_XHRAc5`8A|r#2V4!ksQ63?Qks2V4"'~~!+8I###"&&54&&#"##"&55#5!665!332655!663%###32665 >b?Qu=&M8CX([AacgO)Y[^ anaOvj;nK?l@,%C+CwK+M1@c6`8A|r2V4!ksQV?Mgm@QmmW Hp>5b?@J]#"'532654&#"#54&#"327#"&5516&#"##"&55#5!665!3$675!663266323sS[rj  diUPSYTOTZid  jr\V=Q%[AacO)Y[RNZGM`]GNT Ԥz^izbXsqoqZbzippAc5`8A|r#2V4!ksf>PSRBKhE.4FP326553#"&554&&#"##"&55#5!632###32654&#"!663665!3qWUKWaR]`1U5DT%[Aac"Wg~e%s\6^t^O!]NO)Y[]ZkcR Zktb@_2@c6`8A|r j]_j,5cCbWUb >N2V4!ksI*4AHT##!326553#"&554&&#"##"&55#5!665!3%2655!6632#!#"&5463IRPKWaRX[1U5[[[AaclO)Y[ZkV]MOp (I<y  ,ZkcR Zktb7V0pP`8A|r2V4!ksl]q=LaM:qRg  )4=##!#"&'#"&&54663232655!5!5!&&#"66573ZM8=g=,QdD:I\8jGIl;Hm9I[[IfA N&<8=^Cb4"~s85EPY###"&547##"&'#"&&54663232655!2655!5!###32665$&&#"66573 >b?{ZM8=g=,%C+ yQdD:I\8jGIl;Hm9I[[IDZYYaM 5b?*fA N&<8=^Cb4AMV##%#"&&'#5332654&##"&'#"&&546632&#"665546335!5!##"33734@ZYBY. j]PQbZ-4P6fGBoA@mB0(+--P@jLk;IdVB-78=g=,+ J?AU*6CZM9FN"!CpB8jGIl;!W,6H=V2C<7?5=^Cb4(3<###"33#"&'#"&&54663266335!5!&&#"66573~tzmIBoA@mBJh7a1eH-PC~>8=g=,uup{t9E8jGIl;@d7A@fA N&<8=^Cb4O.9B326653#5#"&'#"&&54663266335!5!##654&&#"73pCs`,V:hBVswWBoA@mB]u`hJry1eH-PCH>8=g=<0bG_s%O<0?VKK_8jGIl;dJSVN&7fAG<8=^Cb4NW###"&'#"&&546632&#"676675&&5467!5!632#74&#"33#"32665373UUq oMBoA@mB-""--PC#H/8M#FSH@@KZV66UVmSAm@:8=g=,IVKE?M8jGIl;  )<5A RF)E SB 8LPJN;jCx<8=^Cb4Z\mv###"&'#"&'#"&&546632&#"676675&&5467!5!632#74&#"33#"3277>32!566554&&#"373ZpVW}dXs oMBoA@mB-""--PC#H/8M#FSH@@KZV66UVoV@i?Wo0?b/.cJ;c:9b=:8=g=,?S_U^_KE?M8jGIl;  )<5A RF)E SB 8LPJN Ce6S@Ab26c@3aADb4<8=^Cb4&1:F##!#"&'#"&&546632663!5!5!&&#"66573&#"3265/?.R4E^wUBoA@mBCd9 \?c01eH-PC~>8=g=6\GJ]\KG\,V;3P-D9I\8jGIl;6W33;fA N&<8=^Cb4YYHFXZF"-8AJ###"&'#"&&5466326632!5!654&&#"$&&#"66573 73qSWxXBoA@mB_tVUrf1eH-PC1eH-PC>8=g=)>8=f>, ?R]RLc8jGIl;hLT`U@ N&7fAfA N&<8=^Cb4<8=^Cb41<EP####"&'#"&&546632663354&#"!5!6323&&#"66573#"3265ƢOG=QqNBoA@mBKh6J2z>@OGH1eH-PC~>8=g=zBRM<>G,h]`E:@O8jGIl;Bg7$(oT\ e[p'fA N&<8=^Cb4%L?>LZR5CLW###5##"&'#"&&546632663354&#"!5!6323&&#"67656573#"3265ݢ^QE@LGH1eH-PC) ~>8=g=zBRM<>G, ^T[b=3BR8jGIl;Af7#'oT\ e[p'fA0B<8=^Cb4%F;9GZR!1<E###"&'#"&&54663232655!5!###32665654&&#"73 >b?^}{]BoA@mBQnanvj  i?l@1eH-PCH>8=g=,%C+ZRRl8jGIl;M=MgYYmW kw5b?N&7fAG<8=^Cb4hoFQZ#"'532654&#"#54&#"327#"&'#"&&546632663236675!5!&&#"66573IS[rj  diUPSYTOTZid  ZnvTBoA@mB_u^HNT  RN1eH-PC~>8=g=Ԥz^izbXsqoqZbzaQHZ8jGIl;gKCNhEDffA N&<8=^Cb4JYdm###"&554&&#"#54&#"327#"&'#"&&54663266323663232655!5!###32665$&&#"66573 >b?{!E1W[TOTZid  ZnvTBoA@mB_u^HNT  ZVES anvjs?l@U1eH-PC~>8=g=,%C+y >+~soqZbzaQHZ8jGIl;gKCNhEGfL1MgmmmWt5b?*fA N&<8=^Cb4"->G###"&'#"&&5466326632!5!654&&#"66554&&#"373pVTzxWBoA@mB]t}RWon1eH-PCib/.cJ;c:9b=>8=g=,?SXNK`8jGIl;cJNZS@ N&7fABAb26c@3aADb4<8=^Cb44:EN326553#"&55#"&&54663232654&#"!5!632###654&&#"733WUKWaR]`sOBoA@mBLj5^t^O!9!Wg~e%1eH-PCH>8=g=]ZkcR Zktb=AQ8jGIl;Dh8bWUb  j]_j, N&7fAG<8=^Cb4 ,3>G##!326553#"&55#"&&54663232655!5!#!654&&#"73 RPKWaRW[sOBoA@mB`vcZk.I<y1eH-PCH>8=g=,ZkcR Zksc=AQ8jGIl;jMl]qqRgN&7fAG<8=^Cb4_:FQ##!#"&&547##"&5463354&#"#&546323663!5!5!&#"3265%#"3265/?.R47T-OGEU[Jz>@7EN?GHN0c\GJ]\KG\zBRM<>G,V;3P--O25*h]`UEFUoT\KAHUe[p "YYHFXZF]L?>LZR_2@K###"&55##"&5463354&#"#&546323255#5!###32665%#"3265֢ >b?{OGEU[Jz>@7EN?GHs?l@[zBRM<>G,%C+ h]`UEFUoT\KAHUe[pYY }5b?=L?>LZR_7EP###"&'#&55##"&5463354&#"#&546323255#5!###32665%#"3265֢ >b?Kp G QEEU[Jz>@7EN?GHs?l@[zBRM<>G,%C+;7GBW T[bP@BOoT\KAHUe[pYY }5b?=F;9GZR_hZe#"'532654&#"#54&#"327#"&547##"&5463354&#"#&546323663236675!5!#"3265eS[rj  diUPSYTOTZid  jr OGEU[Jz>@7EN?GHW@NT  RNpzBRM<>GԤz^izbXsqoqZbzi0(h]`UEFUoT\KAHUe[p6=hEDfL?>LZR_7HS###"&&547##"&5463354&#"#&5463236632!566554&&#"3#"3265pVBj= OGEU[Jz>@7EN?GHwKWo#Lb/.cJ;c:9b=WzBRM<>G,?S8jH'h]`UEFUoT\KAHUe[pCLS@Ab26c@3aADb4 L?>LZR#*5###"33#"&547##"&54633!5!!!633#"3265~t{?OGEU[JzJzzBRM<>G,uup{woAh]`UEFU:JL?>LZRY+3>326653#5#"&&547##"&54633!5!##6335!3#"3265pCs`,V:hBEg6 OGEU[Jz|yކXhzBRM<>G<0bG_s%O<0?9fC%%h]`UEFU8HL?>LZR"*6A##!#"&&547##"&54633!5!!3663!&#"3265%#"3265/?.R47T-OGEU[Jz*N0c\GJ]\KG\zBRM<>G,V;3P--O25*h]`UEFU "iYYHFXZF]L?>LZR} *5###"&'##"&54633!5!&55#!32665#"3265}`D\hOGEU[Jzc^`9S,zBRM<>G,`8Ag_h]`UEFUks3U4L?>LZR}$.9###%#"&'##"&54633!5!&55#!32665#"3265}$"*\hOGEU[Jzc^`9S,zBRM<>G,`/ g_h]`UEFUks3U4L?>LZR'2;F###"&&547##"&54633!5!6632!&&#"66573#"3265qSBoA OGEU[JzxNUrh1eH-PC~>8=f>2zBRM<>G, ?R8jG&&h]`UEFUFNU@#fA N&<8=^Cb4%L?>LZR$2BMVa###"&'#"&&547##"&54633!5!663232655!###32665654&&#"73#"3265 >b?^}{]BoA OGEU[JzxNQnanvj  i?l@1eH-PCH>8=g=2zBRM<>G,%C+ZRRl8jG&&h]`UEFUFNM=MgYYmW kw5b?N&7fAG<8=^Cb4%L?>LZR!+6?J###7#"&&547##"&54633!5!6632!&&#"665327'#"3265&(4BoA OGEU[JzxNUrh1eH-PCD=f>]>8zBRM<>G,1#8jG&&h]`UEFUFNU@#fA N&Eb4<8=^LL?>LZR(1<G####"&5467!#"&54633!5!6323!54&#"!#"3265%#"3265ӢOGEU0*OGEU[JzGHG>@zBRM<>GzBRM<>G,h]`UE1Ih]`UEFU e[p'oT\L?>LZRiL?>LZR4FT_j###"&55##"&5467!#"&54633!5!6323255#5!54&#"#&5467!###32665%#"3265%#"3265 >b?{OGEU.(OGEU[JzGH>@7Es?l@jzBRM<>GzBRM<>G,%C+ h]`UE1Hh]`UEFU e[pYoT\KA,DY }5b?=L?>LZRiL?>LZR,5@K###5##"&5467!#"&54633!5!632354&#"!#"3265%#"3265^QEEU,'OGEU[JzGH>@zBRM<>GzBRM<>G, ^T[bP@,Ch]`UEFU e[p'oT\L?>LZRiF;9GZR~9K\gr###"&&547##"&5467!#"&54633!5!63236632!554&#"#&5467!66554&&#"3#"3265%#"3265~pVBj= OGEU.(OGEU[JzGHwKWo#>@7Eb/.cJ;c:9b=fzBRM<>GzBRM<>G,?S8jH'h]`UE1Hh]`UEFU e[pCLS@oT\KA,DAb26c@3aADb4 L?>LZRiL?>LZR#'2=####"&5467!#"&54633!5!!#3#"3265%#"3265OGEU.(OGEU[Jz T)zBRM<>GzBRM<>G,h]`UE1Hh]`UEFUL?>LZRiL?>LZR$4?###"&547##"&54633!5!2655!###32665%#"3265ע >b?{OGEU[JzranOvjs?l@2zBRM<>G,%C+ h]`UEFU MgY YmW }5b?GL?>LZRh|<JU#"'532654&#"#54&#"327#"&547##"&54633!5!675!366323%#"3265VS[rj  diUPSYTOTZid  jr OGEU[Jz)RN"W@NT zBRM<>GԤz^izbXsqoqZbzi0(h]`UEFUf6=hE*L?>LZR'8C###"&&547##"&54633!5!6632!66554&&#"3#"3265pVBj= OGEU[JzwKWonb/.cJ;c:9b=8zBRM<>G,?S8jH'h]`UEFUCLS@Ab26c@3aADb4 L?>LZR)/CN%326553#"&55##"&54633!5!632####2654&#"#&5467!#"3265XWUKWaR]`OGEU[Jz"Wg~e^t^OM^-*zBRM<>GZkcR Zktbh]`UEFUI _T[di,\SLWaS;XL?>LZR-&-4?##!326553#"&55##"&54633!5!655!!#!#"3265-RPKWaRX[OGEU[JzPkJI<yzBRM<>G,ZkcR Zktbh]`UEFU:l]q:qRgL?>LZR;<DO632#.#"32673#"&&5467&&'##"&54633!5!##6335!3#"3265S?3#Yi/Q7A[.-\ANbiWGc1C>'>OGEU[Jz^[GzBRM<>G%49/< W:;'6Z56X5M39X:a9Dj :/h]`UEFU*:L?>LZR3?##!#"&'#"&54732655!5!!##32667663!&#"3265/?.R4G` vMuan vjzm6]<fPc\GJ]\KG\,V;3P-Hb?fu`tan^an>vjzlEd4vjs?l@,%C+k_]mMgYMgYYmW }BvL6YmW }5b?,###"&547&&5332655!5!#+32665 >b?{Tv{T_nvis?l@,%C+ VUTLNfYYmW }5b?A632#.#"32673#"&&5467&'#"&&53327&546335!5!##WS?3#Yi/Q7A[.-\ANbiWGc1C>070W9iI*)A[I%49/< W:;'6Z56X5M39X:a9Dj#O>TL&H@=Yj6632#"'5326654&&#"##"&&'&&#"#54&#"327#"&54632366326632!5!66554&&#"3cP:b:7`<7X35Z6DY*hO=b;UMSYTOTZid  jrd[NT  WSCWuMPfT\++[E8\65\9?Q7fDHi73bC?_3Ac5 =P6fFTkqoqZbzibyhEFgK@LWO>@a25a?3^@Cb3O\m~###"&&54&&#"##"&&'&&#"#54&#"327#"&54632366326632!5!32655!663%###3266566554&&#"3ߢ >b?Qu=&M8CX(hO=b;UMSYTOTZid  jrd[NT  WSCWuMPf ^ anaOvj;nK?l@ \++[E8\65\9,%C+CwK+M1@c6 =P6fFTkqoqZbzibyhEFgK@LWO>V?Mgm@QmmW Hp>5b?@a25a?3^@Cb3e?Wh###"'#"&554&#"#54&#"327#"&546323663232655!5!67&&546632!##3$66554&&#"3e\FqQdxUPSYTOTZid  jrd[NT  WSN\@Uh?K6\8G[9^Nn^EQ&&Q=2U21T4,7GG]tbOfqoqZbzibyhEFg\JHa,VBgM<[0F6iPZl8V,.V7,S8;W-?####"&'.#"#54&#"327#"&54632366323265!5!mCEl<@sKHuBSQSYTOTZid  jrd[NT  WSIWi3rD-}xCj<>mFKuA@qG lsqoqZbzibyhEFgUPXZ?<L#"&&54&#"#54&#"327#"&54632366326675!5!&&#"32665Fq@BuHHuBUTQVTOTZid  jrd[NT  TQKZ~V>mCCm>>mCCm>ԥAoFGq@@qGpyqoqZbzibyhEGfYUM^j;;jCBj<QC45EHqoqZbzibyhEGfi:1YX326654&#"#&54632#"&&=4&#"#54&#"327#"&546323663266335!5!##ÛEyK:\4O=4KS=FW7d@PJVRQVTOTZid  jrd[NT  TQIZm;a|L-KtA-N1>RD7 ?KZF6V0D{O s}qoqZbzibyhEGf\V_`D###"33#"&547654&#"#54&#"327#"&546323663266335!5!~t{YLRWTOTZid  jrd[NT  URMae,uup{w ejqoqZbzibyhEFgg^FFS###"&5514&#"#54&#"327#"&546323663232654&#"!5!632##32665 >b@|RMSYTOTZid  jrd[NT  WSLX`^QE!L!3K)i]z?l@,&D,yG\qoqZbzibyhEFgRCJ`AW  -L/eU|6a>aq###"&'#"&5514&#"#54&#"327#"&546323663232654&#"!5!632##326554732655#5!###32665 >b?e|fzRMSYTOTZid  jrd[NT  WSLX`^QE K"3K)i]~xozanvjs?l@,%C+h]fwyG\qoqZbzibyhEFgRCJ`AW  -L/eU|MgYYmW }5b?=J326653#5#"&&5514&#"#54&#"327#"&546323663266335!5!##pCs`,V:hBEg6RLSWTOTZid  jrd[NT  VRBU^h\`y<0bG_s%O<0?9fCQiqoqZbzibyhEGfJ?QT=O326653#5#7#"&&5514&#"#54&#"327#"&546323663266335!5!##pCs`,V: %,Eg6RLSWTOTZid  jrd[NT  VRBU^h\`y<0bG_s%O<"޺9fCQiqoqZbzibyhEGfJ?QTG6@###"&'&&#"#54&#"327#"&546323663255!5!!32665G`DWf P?SYTOTZid  jrd[NT  WS6Lj^`9S,,`8A\V>IqoqZbzibyhEFg1,ks3U4S]6632#"'5326654&&#"##"&'&&#"#54&#"327#"&546323663255!5!!!32665dP:b:7`<7X35Z6DY*[ATa P>SYTOTZid  jrd[NT  WS6LY[6O)@R7fDHi73bC?_3Ac5`8A]W=HqoqZbzibyhEFg1,ks2V4<GP###"&&'&&#"#54&#"327#"&54632366326632!5!&&#"66573qSBmBVMSYTOTZid  jrd[NT  WSDWVUr1eH-PC~>8=f>, ?R7hFUnqoqZbzibyhEFgMBR^U@fA N&<8=^Cb4JU####"&5514&#"#54&#"327#"&5463236632663354&#"!5!6323#"3265OGEUPQSYTOTZid  jrd[NT  WSQ6z>@UGHzBRM<>G,h]`UE|qoqZbzibyhEFg*0oT\ e[p'L?>LZR<@K####"&5514&#"#54&#"327#"&54632366326633!5!#3#"3265OGEUPQSYTOTZid  jrd[NT  WSQ6zzBRM<>G,h]`UE|qoqZbzibyhEFg*0L?>LZR<K###"&554&&#"#54&#"327#"&546323663232655!5!###32665 >b?{!E1W[TOTZid  jrd[NT  ZVES anֳvjs?l@,%C+y >+~soqZbzibyhEGfL1MgmmmWt5b?hf_#"'532654&#"#54&#"327#"&54&#"#54&#"327#"&5463236632663236675!5!@S[rj  diUPSYTOTZid  jrUPSYTOTZid  jrd[NT  WSEX_INT  RNԤz^izbXsqoqZbziXsqoqZbzibyhEFgPDDPhEDfwcr###"&554&&#"#54&#"327#"&54&#"#54&#"327#"&546323663266323663232655!5!###32665w >b?{!E1W[TOTZid  jrUPSYTOTZid  jrd[NT  WSEX_INT  ZVES an%vjs?l@,%C+y >+~soqZbziXsqoqZbzibyhEFgPDDPhEGfL1MgmmmWt5b?<M###"&&'&&#"#54&#"327#"&54632366326632!5!66554&&#"3pVAi>UMSYTOTZid  jrd[NT  WSCX}RWob/.cJ;c:9b=,?S6gFTlqoqZbzibyhEFgK@MZS@Ab26c@3aADb4e*`p332#"&&5332654&##"&546335!5!##$#"&&'&&#"#54&#"327#"&54632366326636654&&#"3bTA-Wuf`Kj5nkY\mO-I\hK-4i13iMBj?UMSYTOTZid  jrd[NT  WSCXSIa..aI"2C<7MWFY2W8MdQ>QCBAH=*Fk87jE6gFTlqoqZbzibyhEFgK@MZAAb36c@3aADb4EL##!326553#"&554&#"#54&#"327#"&546323663232655!5!#!RPKWaRX[OHQUTOTZid  jrd[NT  TQJU_ZkI<y,ZkcR ZktbBWroqZbzibyhEGfTBl]qqRg[632#.#"32673#"&&5467&&'&&#"#54&#"327#"&546323663266335!5!##WS?3#Yi/Q7A[.-\ANbiWGc1C>$;G7NSTOTZid  jrd[NT  RN2F XA%49/< W:;'6Z56X5M39X:a9Dj 3*;EqoqZbzibyhEFg2-31%5A##!#"&'#"&&546632663!5!5!6654&&#"3&#"3265/?.R4E`pZCk>?lAcr\@c a..aI3\GJ]\KG\,V;3P-E:E]8jHEh8nN4;Ab36c@3aADb4 YYHFXZF!4G###"&'#"&&54663232655!5!###32665%14&&#"326655 >b?cp`Ck>?lA]s an۳vjr?l@1`DI`,,%C+YOLi8jHEh8_DMgwwmW kx5b?0V73aADb4Ab3hfFV#"'532654&#"#54&#"327#"&'#"&&546632663236675!5!6654&&#"3@S[rj  diUPSYTOTZid  [noYCk>?lA_p_HNT  RN$a..aIԤz^izbXsqoqZbzcRE[8jHEh8dJCOhEDfAb36c@3aADb4"2C###"&'#"&&5466326632!5!6654&&#"3 66554&&#"3pVT{q\Ck>?lA]p}SWoa..aI b/.cJ;c:9b=,?SYPHa8jHEh8aHN[S@Ab36c@3aADb4Ab26c@3aADb4=P632#.#"32673#"&&547#"&&54663266335!5!##&'&&#"326767^S?3#Yi/Q7A[.-\ANbiWGc1 BiCk>IbYB]9 cR:_89d>Ca"@%49/< W:;'6Z56X5M39X:a9(=8jHEh8F:63.&H]3aADb42)8n)]n326553#"&5532654&#"#&54632#6632#"'5326654&&#"##"&&546632!5!66554&&#"3WUKWaR]`^t^OM^fVWg~ecP:b:7`<7X35Z6DY*hO>d9;d@a25a?3^@Cb3n"~D5E##5#"&547#5%326655%#57'&54663276654&&#"\;8H  >22M+!)L34M*;;(96%F/+C'>E,m7AF5!,1<0V9<Aq)H++F(5P.,H3$>&#;";T!ns"m*%n)I326553#"&5532654&#"#&54632#$326653#"&&546335!5!##WUKWaR]`^t^OM^fVWg~e>mCEl<@sKHuB3fD]ZkcR ZktbbWUbaSYkj]_j}xCj<>mFKuA@qGn)C326553#"&5532654&#"#&54632####"33#"&546335!5!WUKWaR]`^t^OM^fVWg~e͢~t{6}]ZkcR ZktbbWUbaSYkj]_jw,uup{w~|D/?K##!#"&''#57'&&546632&5463!5!5!76654&&#"$&#"3265آ/?.R44QJJ)L34M*<:gScW87%F/+C'CJU\GJ]\KG\,V;3P-)$~ &a?,L.-K+=]- o!&Ob+U;&C)&@$A]&YYHFXZFn)>BM326553#"&5532654&#"#&54632#####"&54633!5!#3#"3265WUKWaR]`^t^OM^fVWg~e OGEU[Jz˳zBRM<>G]ZkcR ZktbbWUbaSYkj]_jw,h]`UEFUL?>LZRn)?O326553#"&5532654&#"#&54632####"&54732655!5!###32665WUKWaR]`^t^OM^fVWg~e >b?{anƳvjs?l@]ZkcR ZktbbWUbaSYkj]_jw,%C+MgYYmW }5b?n)b326553#"&5532654&#"#&54632##"'532654&#"#54&#"327#"&5463236675!5!WUKWaR]`^t^OM^fVWg~e}S[rj  diUPSYTOTZid  jrd[NT  RNM]ZkcR ZktbbWUbaSYkj]_jwz^izbXsqoqZbzibyhEDfD(8E##5#"&&546632'#57'&54663276654&&#"655'&#"3\;1N+3X7 !)L34M*;;(96%F/+C'>E_3+3OcUD,n7@'F,2K)^Bp)H++F(5P.,H3$>&#;";T!OhU<RD>Mn("mA1;DU6632#"'5326654&&#"##"&'#"&55#5!>32!667366554&&#"3cP:b:7`<7X35Z6DY*hOWx ^Afh7=^8PfN,^`\++[E8\65\9?Q7fDHi73bC?_3Ac5 =Pk])7|r;X/O>#':Lksh@a25a?3^@Cb35?HY6632#"'5326654&&#"##7#"&'#"&55#5!>32!667366554&&#"3cP:b:7`<7X35Z6DY*.",Wx ^Afh7=^8PfN,^`\++[E8\65\9?Q7fDHi73bC?_3Ac5 <$ڹ k])7|r;X/O>#':Lksh@a25a?3^@Cb3?:")2326653#"&&55#"&55#5!##6335!6673>mCEl<@sKHuBYmFKuA@qG%/|rM]':Lksz3:LU##5#"&54732654&#!"326653#"&&55#"&55#5!6335!65!!2#3$6673zbKkg WXeOy:g@Bg:>nHEn?Y1 bo':Lks:(/8326653#'#7.55#"&55#5!##6335!6673>mCEl<mFHsCBmC%/|rM]':Lks8'*3<I32653#5#"&&5467&&'#"&55#5!##6335!&56673#"326655euwmot)([F6W2VAmCCm>>mCCm>ԥAoFGq@@qG$.|rL^#':Lksj;;jCBj<mCCm>>mCCm>,FQwb *5C){UGq@@qG$.|rL^qq3I>1 [h':Lksj;;jCBj<#'#7.55#"&55#5!6675!6673$&&#"32665Fq@mCCm>>mCCm>ԥAoFDmBAnD$.|rL^#':Lksj;;jCBj<|rEI[[I':KksI$(1AJ###"&54732655!#"&'#"&55#5!5!!3265###326656673I >b?{anWM;P\Bacl,Y5OCDNvjs?l@J)Y[,%C+MgYQd@7,>|rEI[[IFYmW }5b?y':Kks#,###"&'#"&55#5!&55!!326656673`DF^ ^Fac"vV^`9S,J)Y[,`8A<90E|r!(ks3U4':Kks'0###%#"&'#"&55#5!&55!!326656673$"*F^ ^Fac"vV^`9S,J)Y[,`/ <90E|r!(ks3U4':Kks^16@I6632#"'5326654&&#"##"&'#"&55#5!!&55!!326656673IdP:b:7`<7X35Z6DY*[ABY]FacVsY[6O)"J)Y[@R7fDHi73bC?_3Ac5`8A;8/D|r!(ks2V4':Kks".9####"&55#"&55#5!6633!!#36773267%#"3265OGEUN3acPH-zcY[=UzBRM<>G,h]`UE &|r"]Oks;(SL?>LZRe '.>GR###"&547##"&55#"&55#5!6633!2655!###326656773%#"3265e >b?{OGEUQ5acuK1zbanOvjs?l@S Y[zBRM<>G,%C+ h]`UE"*|r#& MgY YmW }5b?y;(NksL?>LZRp 09###"&'#"&55#5!&54732655!!###326656673p >b?f[Cac_anHvjs?l@J)Y[,%C+j^,?|r MgYYmW }5b?y':KksF'8###"&'#"&55#5!>32!667366554&&#"3FpV] W>aciAd;WoJ)Y[b/.cJ;c:9b=,?Sk^)6|rd9RPKWaRX[nZkFR:wPPfI<a\++[E8\65\9?Q7fDHi73bC?_3Ac5 =P7iH ZkcR Zktbl]qQ^O>qRg@a25a?3^@Cb3/HUf6632#"'5326654&&#"##7#"&&547!326553#"&5532655!5!6632!66554&&#"3cP:b:7`<7X35Z6DY*.",>d9RPKWaRX[nZkFR:wPPfI<a\++[E8\65\9?Q7fDHi73bC?_3Ac5 <$ڹ 7iH ZkcR Zktbl]qQ^O>qRg@a25a?3^@Cb3 9FUfw###"&&54&&#"##"&&547!326553#"&5532655!5!6632!$6632!66366554&&#"3$66554&&#"3 pVBj=1U5DT%hO>d9RPKWaRX[nZkF,`wPPfI<i{PWo]Nb/.cJ;c:9b=\++[E8\65\9,?S8jH@_2@c6 =P7iH ZkcR Zktbl]qQ^O>qRgSIJVS@>NEAb26c@3aADb4@a25a?3^@Cb3*5M^###"'#"&55!326553#"&5532655!5!32655!67&&546632!##3$66554&&#"3\FqQdxRPKWaRX[nZkF"@UI<lh?K6\8G[9^Nn^EQ&&Q=2U21T4,7GG]tbZkcR Zktbl]HaRgVBgM<[0F6iPZl8V,.V7,S8;W-v'9##!#"&55!326553#"&5532655!5!!!5332655!vZMIVRPKWaRX[nZkFI<ZNADQ,QddQ6ZkcR Zktbl]qqRgdI[[I3>326653#"&&547!326553#"&5532655!5!##6335!!>mCEl<@sKHuB RPKWaRX[nZkFDd3I<\-}xCj<>mFKuA@qG)*ZkcR Zktbl]qBRqRg-7###"33#"&547!326553#"&5532655!5!!!633~t{#RPKWaRX[nZkF tI<{G,uup{wU8ZkcR Zktbl]qqRg^9IX###"&5514&&#"33#"&547!326553#"&5532655!5!32655!!63%###32665 >b?{JJlot{RPKWaRX[nZkFQ anI<b1vjs?l@,%C+y +)uup{wB-ZkcR Zktbl]q. MgYqRg|YmW't5b?(5###5&&#"!326553#"&5532655!5!!!6632ovTFlRPKWaRX[nZkFI<5qJSp,\pEXF?ZkcR Zktbl]qqRg@FL7t6FW###"&&547#"33#"&547!326553#"&5532655!5!6632!!6366554&&#"3tpVBj=$~t{#RPKWaRX[nZkF b8WoI<{Gb/.cJ;c:9b=,?S8jHI7uup{wU8ZkcR Zktbl]q(-S@qRg^Ab26c@3aADb4:Q###"&547!326553#"&5532655!5!632##32665654&#"#&5467!! >b@|RPKWaRX[nZkF !3K)i]y?l@ۃQEIS'%I<,&D,y ZkcR Zktbl]q -L/fV{6a>KaAWWG1LqRgH_o###"&'#"&547!326553#"&5532655!5!632##326554732655#5!654&#"#&5467!!###32665 >b?e|fzRPKWaRX[nZkF !3K)i]~xozan?QEIS'%I;lvjs?l@,%C+h]fwy ZkcR Zktbk\q -L/eU|MgYJ`AWWG1LqQf9YmW }5b?5@326653#5#"&&547!326553#"&5532655!5!##6335!!+pCs`,V:hBEg6 RPKWaRX[nZkFychI<J<0bG_s%O<0?9fCZkcR Zktbl]qK[qRg3,7C##!#"&&547!326553#"&5532655!5!!!663!&#"32653/?.R47T- RPKWaRX[nZkFV'I<PZ=c\GJ]\KG\,V;3P--O2!ZkcR Zktbl]qqRg06iYYHFXZF$-7###"&'!326553#"&5532655!5!&55#!32665`DSeRPKWaRX[nZkFI<^`9S,,`8ATOZkcR Zktbl]q#qRg;ks3U4(1;###%#"&'!326553#"&5532655!5!&55#!32665$"*SeRPKWaRX[nZkFI<^`9S,,`/ TOZkcR Zktbl]q#qRg;ks3U45AJT6632#"'5326654&&#"##"&'!326553#"&5532655!5!&55#!32665 dP:b:7`<7X35Z6DY*[AO`RPKWaRX[nZkFXkI<Y[6O)@R7fDHi73bC?_3Ac5`8ATOZkcR Zktbl]q#qRg;ks2V4'4?H###"&&547!326553#"&5532655!5!6632!$&&#"66573qSBoARPKWaRX[nZkFXUrvI<1eH-PC~>8=f>, ?R8jGZkcR Zktbl]qUcU@qRgfA N&<8=^Cb4((26A####"&547!326553#"&5532655!5!!633!%#3#"3265(OGEU%RPKWaRX[nZkFKI<p,Dz+zBRM<>G,h]`UE@(ZkcR Zktbl]qg$qqL?>LZR1<CS^###"&547##"&547!326553#"&5532655!5!6633!%2655!###32665%#"3265 >b?{OGEURPKWaRX[nZkF!?&z*I<NanOvjs?l@2zBRM<>G,%C+ h]`UE8&ZkcR Zktbl]q qRg.MgY YmW }5b?GL?>LZR'1A###"&547!326553#"&5532655!5!655!!###32665 >b?{RPKWaRX[nZkF*n_I<Wvjs?l@, %C+t ZkcR Zktbl]qMgqRg;mW o}5b?FW#"'532654&#"#54&#"327#"&547!326553#"&5532655!5!675!!66323S[rj  diUPSYTOTZid  jrRPKWaRX[nZkF)RN4I<B_JNT Ԥz^izbXsqoqZbziZkcR Zktbl]qfqRgFQhE'4E###"&&547!326553#"&5532655!5!6632!66554&&#"3̢pVBj=RPKWaRX[nZkFUWoI<fb/.cJ;c:9b=,?S8jH ZkcR Zktbl]qRaS@qRgAb26c@3aADb4Q0:A##!326553#"&55!326553#"&5532655!5!655!!#!QRPKWaRX[RPKWaRX[nZkFtk I<I<y,ZkcR ZktbZkcR Zktbl]qm]qqRg;qRgc6B632#54&'#"&55.5467&&546335!5!#!#"32655M0)8L|y>=8208JC3dGNk679%3UE͙3-+0)*0%/4&6lIp7CD6vOErEKyIIr :+;8 /<;01CO##!#"&'#"32673#"&&5467&&546335!5!!#"6335463!&#"3265/?.R4MbA[.-\ANbiWGc1C>)@[I@S?3#gSc\GJ]\KG\,V;3P-TD6Z56X5M39X:a9Dj @4@=49/< ObiYYHFXZF0AEP####"&547#"32673#"&&5467&&546335!5!6633!#"63#3#"3265OGEUA[.-\ANbiWGc1C>)@[I9 V?z@S?3#zBRM<>G,h]`UE6Z56X5M39X:a9Dj @4@=d6?49/< L?>LZR-E##5#"&5473254&#".5467&&546335!5!65##"6323fM]g _BRs:@[aC>;)8UEi7GzJPPVSP$;.;8Ȍp,/4M#@Ez L]c^632#"'532654&#"#54&#"327#"&546323667&&#"3"&&5467&&5463!5!5!#!M3*K632#5#"&54632.#".5467&&546335!5!##6654&#"3M1*4EEf6?/1FD5%/4'6;c;z",KAb?]}vT8Y88Y8?d99d>XjjXCian]bvj  }g?l@[22[<:\45\:\54\:<[22[;,%C+YPN`,J++J,8d>Cf8]BB]@9MgYYmW!$gq5b?4\:=_54_>;\33\;>_45_=:\42###5354&#"#54!22K, ewxdm p}54632#4&#"6#"&54632M?;F>39B  dKOG70>HCct YWy54632#4&#" ?33<4+/6DDHA3,8FB854632#4&#"6#"&54632 I?;F>39B  ZKOG70>HCYh =I#4&#"3##"332#"&&'#5332654&##"&546335!5!5463632#"&5G?4<=IdVB-Wu`YA\0 n^QVmO-J^jLHB L<4DOMR2C<7MWD[-;NcR=QCBAH=STW  p2"ypR&#6&#"3###5354&#"#546326637/(*1;CC=FK6B5)<5-4=7P,.H[[H44Od60*/pR&2#6&#"3###5354&#"#54632663632#"&57/(*1;CC=FK6B5) <5-4=7P,.H[[H44Od60*/m  2"[yR%#6&#"3###5354&#"#54!2&637/(*1K80<5-4=7P, ewxdQH7AR%1#6&#"3###5354&#"#54!2&63632#"&57/(*1K80 <5-4=7P, ewxdQH7Am  ="yF=G#6&#"#.##532&5463 >5*1:?QG< ;GO7?:>3+6A=-&cXMT9M=Y(#&&#"#.##532&5463#"&5463@8,6??QG< ;GO7D?   >3+6A=-&cXMT9Mh  ="yL=G)#6&#"#.##532.##532&5463 >5*1:=SI< :>3+6A=(  92 .4nb\f9M=Y)5#&&#"#.##532.##532&5463#"&5463@8,6?=SI< 3+6A=(  92 .4nb[e 9Mh  L2###53.##5326&54632#2>QF< ?KXA4 ,bW^is LV$#6&#"3###53.##532&5463>5*1:>QF< ;GO7?:>3+6A=-#,bWMT9MLh$0#&&#"3###53.##532&5463632#"&5%@8,6?>QF< ;GO7D? >3+6A=-#,bWMT9Mu  L2*###53.##532.##5326&54632#25*1::>3+6A=( ,72  .4nb\f9MLh0<#&&#"3###53.##532.##532&5463632#"&5%@8,6?3+6A=( ,72  .4nb[e 9Mu  8$z3"z0!2#"'532654&#!326553#"&5532655!5!!tVbYM CRZM*RPKWaRX[n]hF%,XNHSICFOZkcR Zktbde{{(32#54&#!326553#"&5532655!5!!t^d]TRPKWaRX[n]hF*,ZVhiNQZkcR Zktbde{{nA632#4&&#"32#"&7332654&#"&&5467&&546335!5!##S?3#H^*'VBA[.5hJabeXg}u_N^YYPp8C>)@[I%49/< :Y0+R66Z55Y5ICAKa\VWA;O71JOC>)@[I%49/< :Y0+R66Z55Y5;tR Hi8G94AI=2GqIDj @4@=_-33#"32653#"&546675.546335!5!##Y[IGGD`jW_zi`r.?>)bM0:7=5A@CFMb_ihVM1=7'D@D.> 327#"&54675%#57'&&5466323##76654&&#"%NS@# &F^TJEE)L34M*<:, 87%F/+C'>EN;DB LJAW'a>,L.-K+=]-,z+U;&C)&@$A\'cA632##"327#"&54632&&#"3"&&5467&&5463!5!5!#!M3*gH  Ba:4`M,Rg8'54&$! 3###5366$!_moE7?hH Bb;5`M,Sf9'54&$! 3###5366$!knpPD@hG Ab<6`L,Rf:'54&$! 3###5366$!wpq[PAiF @b>7`L,Qg;!'54&$! 3###5366$!rsg[BjF @c?9`K,Pg=T'54&$! 3###5366$!6xtuphDjE ?d@:aJ,Pg>W#&54632#{  #>  (f#'3#'Gt(3##7##7#537#533333##3*5555*7777*< (1:###5.'3.5463353#&&'&#"654&&'3VP6'VB7V1(L7AO6c[N[  PF/I:M] X0I9\'L@,P4PQ3M*D4U%I=I_YZX7,Q{A#@OGZD7E%,] '3632#"&5%#32654&#632#"&5632654&#,H77HH77HYp<95_=Kk+K(>L >*6@A6%E'4TWi7;97V1(fO#'O  hAfXH.\C54&&#"3x]Qpw Zoy.fOluZh gC0hO^qqcdZ#N]r>hAfXH.\CM#"&547#"&54663273326654&&#"327#"&&5466367654&#"3Z,S8),f:JT[MH~LA;m%-QD^O}|`L  PcjaBRHuAGQ; %!#3#'JPUIU ##32%32654&##654&##3TrmifK8X]\_kn_bcCSi_MFT SIFRhZNM[<6632#&&#"32673#"&&5AU`TF\O51U ##33ueV`PRUw7!!3iU ###3&%T{{nU2 !##332Kef<&&546632#>54&&#"3+VVaaVVaXSSXXSSX[hh[[hh[SggSSggSU ###32654&##3rotmua`m`f\ZRVXZ3,R:3U35NADQ8/^C0O.#F2+H,9C $K@.Q0,C%<)'G/:E!#I?,R3###5RP%32653#"&5dudbr{mmKzzKM#3M@^#e ##33eб@agd ##33`Re[M#3g'}# 7!!5!5!9_UG#3#JJ^_d3`C6G#53#53^JJ^;(7#3#< ׮(!5;(J'5^<J#"663253#5#"&&5$&&#"32665uPPu>AuMUc"632#"&'#3&&#"32665~]MxBBxM]AuMMuA>uP<8#6632#&&#"32673#"&&5uPPu>AuM<8#"$673#"&&546632!3!6&&#| gKvCCvKOp9Cl@@lC?m? \PUiB~UU~BCj;$Sp77pSSp73###535463DXXP_CK&&RP<J# 053#"&'3326655#"&&54663&&#"32665Bm@bu[>d:]MxBBxM?oFJm<uPPu>AuMU#4&#"#3663zj\`trO(vw=jo}zKOEy &54632##T     &54632###532653^  08$$,(  15'1U~ !'#373bAUi#iU("#4&#"#4&#"#36632663'tdW[pdW\omJLmqN(vw=jo{=jo{NMUVVUU(#4&#"#3663zj\`trO(vw=jo}zKO<K#&&546632#>54&&#"3xEExKKxDDxKAnDDnAAoDDoAC}UU}CC}UU}C9tVVt99uUUu9Uc#"632#"&'#3&&#"32665~]MxBBxM]AuMMuA>uP<J#"663253##"&&5$&&#"32665uPPu>AuMU>( 3#"#3 Uw(cn4#-&'3326654&&'.546632#&&#"#m _W,C$)=5;I3,M0RdUN*D'.C89A.,L/HI3$>%RI>; =:CH  *GL0B!IHB8@7\L&;SS;&L\7@8BHI!B0LUi #3iV`G3##532654'&54675&&547654&##532*  HC:= ;>>; =:CH  *GRL0B!IHB8@7\L&;SS;&L\7@8BHI!B0L(to3232673#"&'&&#"#9D)! G'!!o'X)Wh* #"&54633#|  *  <o#$673#5.5466753#&&#"3~q v^Ad99dA^v qR;d==d;)\PUhtu=mHHm=kjhUP\2gLLg22+6!!'>54&'#53&&546632#&&#"3#(,xw  tn.V8Xl eMFbV/(.<%;$9L.5U1lRKaVS'G0F3H6*'#"''7&547'763276654&&#"3$><6?*;>"#?=*=:,=?%t<$$<#9II96/< <,; <-EC0= =,,= >/C%F/.F&TFGS73#3##5#535'#5333BZ!BB!f}Ui 3##3U _GUO\Jb \u[PZt  ^^ERN]Jb Zwma?[.ma?[.GWO#D-762>)G9*J.CD9IWO>V881<)G9*J.DEQ(C(BQ(C(?s &54632#2&54632#P  y  s    <=#"&&54663326654&&#3267##"&&5466323&&#VVddVVdaOOaaOOa7b::b:Gpd>3Y66X4>dpGYffYYffYV__VV__V]7kKLl7QJAG2cEFd2GAJQ([s63253#5#"&532654&#"(YI:MM:IYP>BSSB>Pad:3gf3:dQJYYJJYYJ-xD 7'733'73kkmmvkkmmx7a#5!5asI:I.6#"&&546636654&&#"37'##532#'32654##(U//U55U//U50K**K00K**K0EE(S##?=0=3W55W33W55W3-O00O--O00O-^__ ((]!5][F 632#"&5$&#"3265QCCQQCCQE;;EE;;ET__MM__MHRRHHRRH([%{ ##5#5353!!%(`#576654&#"#6632r%&,"(.84,6,-Xr q%:(('/,/>4-+E,T([(632#"'332654&##532654&#"#0:1.<"!%95d 0'+/4)=@(1/'(/15+,  ,!%7a+$("$))$"*$ (J57㻻̂U#5#"&'#33265nGIrr`[mQQKUn}z!####"&54633lsxyrf)hYZh MTO(##53254&##53A73?4-+E,T,C(,7:632#"'332654&##532654&#"#%###5#533'34:1.<"!%95d 0'+/4)=@(1/'(/\M77K15+,  ,!%7a+$("$))$"*$ U@LLR $#"&5463&&546773#"32653#7  z`6}njTUe6^:  72Y:tdQvQb]N;U-;s";s";`";-";>";" !!!!5!#!&DwX&9</$6736##53254&##5#"&&546632#&&#"3 #l=A73?"Js"s"`">"  ###533654&##3#3쾾ssWWRU2-"<s"<s"<`"<-"<>"(> %''7'77   <$/#"&'#7&&54663273&&#"6654&'30VaEw-MY+/VaEw-NZ+'+q@XSS+(<*qA.Lh[0,Ta0Lh[0+Ubz-+-SgSgJz,+-P%s"P%s"P%`"P%>"s"qU $###332654&##3rotmua`m`f\ZRVXP-3632#"&'332654&'&&54676654&#"#PhZUc-,$#8LCH;@N:''))XLQ]oPA+:%,!+C5CP]MESG:/;1("1 "5%8GfU.<J"<J"<J"<J"<J"<J"<3#+;D$673#"&'#5#"&&546632536632!3 6654&&#"3!6&&#| gY]MxBBxM]XOp9Cl@No??oFJm<uPPu>7pSSp7<8#.$6736##53254&##5.546632#&&#"3| ~c=A73?nGQmJWOyBed`K83"$61i>uPRx>:pNU}AU"<K"<K"<K"<K"<K"(%n &54632#!5&54632#    8    <K#",#"'#7&&54663273&&#"6654'3&%DxKkI5?#%ExK5]#6ALA[!W0AoD5nD?!W/e>U}CA:F$f>U}C"!AuMMuA>uP"^;4"j<J";c"<J"B;327#"&5477'!#3&" (2V2FJHF'  %%='U! 2GId:]MxBBxM?oFJm<uPPu>AuM-""{4""{c""{Bi327#"&54773%&" (1V8HA2  %%='@!By #"&54633327#"&5477j  HF&" (1V8  ! 2  %%='A}("yUi#iUP ##33#5255#5ueV"+`PR 1%6&UP~ !#'#373#5255#5~t"+A 1%6&Uws"7"UPw7!!3#5255#53i"+3 1%6&7Px##5255#53i#"+3 1%6&Uw7!!3#52655#53i"!&8',"5U##52655#53i"!&8',"5Uw3!!&54632#U  R\  U3#&54632#Ux  V    %!5737__g--ELL  #57537UUUU1111U2s"U"UP2 !##33#5255#532K"+3ef 1%6&UP(#4&#"#3663#5255#5zj\`trO"+(vw=jo}zKO 1%6&U2]"U"u<4"<K"<c"<K"<P"'<K"< ,!!!!5#"&&5466325!!326654&&#"&DZMaVVaMZXuSXXSSXXSiJp>[hh[>pJJSSggSSg<3#%5>$673#"&'#"&&5466326632!3 6654&&#"3!6&&#| g^^KxEExK^^Op9Cl@JnDDnAAoDDoAlC?m? \PUie[[eC}UU}Ce[[eCj;Sp79tVVt99uUUu97pSSp7Us"U>"5UP"!####32'2654###5255#5tq`Y*ggМ"+3j\Uf bR 1%6&7P>( 3#"#3#5255#5 Uw "+(cn, 1%6&U]"LC"$5s"x4"a5A$#6##53254&##5&&'3326654&&'.546632#.#"/^B=A73?Z3,R:3U35NADQ8~R3R*)'/C"ebE#F2+H,9C $K@.Q0,C%<)'G/:E!#I?4#?6##53254&##5&&'3326654&&'.546632#&&#"#=A73?3$>%RI"e#s"by":#("yy"#]"Qy")U&#"&&547!.#"#>3667!3STc\OoQUG|W[ORSHX[hkYMcfQ6gFIo=DMh [KxU3###73267#537663 P;-7+'Z3,R:3U35NADQ8/^C*"+30O.#F2+H,9C $K@.Q0,C%<)'G/:E!#I?,R3F 1%6&4P#-9&'3326654&&'.546632#&&#"##5255#53m _W,C$)=5;I3,M0RdUN*D'.C89A.,L/"+3HI3$>%RI32#&&#"!!!!3; %{OZwspsYR{% sJ~U..VzG kYeq@vN#-#SFreYl?vQ#-#Km:A#"'57557377326500($} 88::BB@@A$!!#5#535#5332#'32654&##PPPPtmrola`m=nf\a`ZRVXUi`3###%###3hjkL//`E2'66323!5>54&&#"!535&&52\``]xhQGWZ\VH~QgxȤ[[hyU]dVXa]Uy: #"&&546632!3267&&#"!'aWMgfN,vZJvLI#uLN~'Nif`YT`>$=,5<85q<85T?$?,D;;E;7rD;;E .'um57=11:=11:q35x633#"##732667*+ #`"! `R. *$*"$F( t&( L!!#7#537!5!733d|$UU{2UU̟nnnn(`j -3!5>>(`j 7%%3!!."6>2}:'77'[!#!##535463"$#"&5463#VVP_WD%  &RPCK  ">W##5| %2#q11Z 6#5255#53ZA+3 T6&Q17#5Q2111Q#5#5Q22211:11Y#5#5255#53S28A+311 T6&#532654&#"#4663#5&`6}njTUe6^:$22Y:tdQvQb]N;U-j11W^3#3#W22 1lOQO&T53&&546753#"32653#2`6}njTUe6^:11j2Y:tdQvQb]N;U-(%j #5!5#5@22j1111Qa 5463"3#"!&8x,"5Q\ #52655#53\"!&8,"5Q 5463"3#65463"3#"!&8R"!&8x,"5',"5Q #52655#53#52655#53\"!&8Z"!&8,"5',"5 w1"#&<!%$#"&54633&&#"#6632#56655#"3~SOah_[ZMg  nX`kjpH%OB>L<#<#<#<#<#<#>V, .)F3&B)`C DOJ5+<#T +L04U1YS8R+2%6654&#"#46632!!5jSdRA]/9fB[oTk-c@N_8aJ 1l < f  V # g  B  O <~/(4@LXdp|'J /r"^j=(f/;%1=IUaw$,4<DLT\dl$1Dw L3d1u2` 2 r !A!!"""U""##d#$I$U$a$m$%*%|%%%&'&{&&'9'E'Q']'i''(((W(())H)))* *H****+j++++,H,-.X./7/00l011233444556M67i78x9 9:7:;=;<`<=f>>?;?@AFAAB9BBC>CJCCDSD_DE&EwEEF>FG,GHHwHI(IIJBJJKMKKL[LMMNNwNO)OPPPPQ.QQR^RSSYSST,TTU U,UUV_VW2WXXsXXYXYYZ[Z[[e[\!\\]Y]]^E^^_1__`N`a\ablbcgccd9ddeMeefDffg\ggh\hhiwijmjk>kkl7llm@mmnVnbnno;op9pqqrrs sstBtuuPuv6vw`wxxyyz,z{.{{|O|}<}~:~1 oсQ;Ȅ+vfg ߇Y4D.uxӍ5V8-`Ô/$pƖ$t˗7Ř6)0Y(KBӟ cš$hã0¤$cצF_«8 }֮ER̲ eĴ zµ}ԶLIѸ^׺,x;! jM+]%–sbćıĺ^jš)nyƥ'rǢYȝG:x-Sy˟@i̒̽Co͛%S΂α>\oϠFЗФ#+AQуђѸ =zҎ(:N_ӖRԀԠԸ)E^mՋա,R֚֬1FWfv׈ועCO[gs~ht JVamy $0Wm".:FR^Bo=F_<ؤ6 Y""1V6VFFHl@V@V1V@Vpxyy==LLn+7?Ft4d_b{_ n{+KU7Ftn+A(Ft"d_bz_ nKU `F.]s<LF72?5>PFfF `7f<Z^~UA2pn+7gFt4d_b {_D{IK7n+A(Ft"d_bz_DK+++ZQKtE.ssUUUUJ 62RR\\?O>$ c=h4{__ 4y  ff!rr <`L ',[`$XewerMU`..fMhjAmMmBf7Lddd``u uFSSSbbbbLb;!r"UhCC2z:aa%3. h_AV&77 ov&m,j7~L]v___h__l6ZZ{|[Y gBqQk6e}$vCTmBCmnnDPnnnDnnnDnW0`0&;hBM#  SQq.npYFppp======LLLLLLBKK<DW((<,+w(R<R66M(qt gLF72?5>PFfF `7f<t }(4(}(PY0U<UUU<UUUUUU<U<U5uPk##U6((( (<Ut<<t<><fUEUUUfU<U<RU4RfP#'(U'("WL<2H37U6<??#<(v-7:(dM(-(.( (kUq (((v22Q(a,YYYYYYE <UUUU U<<<<<(<uPuPuPuPUsP<<<<<<o<t<t<t<t<t<<fU<<<<<M(<fPfPfPfPUY<Y<Y<<t<<t<<t<U< <Nt<Ut<Ut<Ut<Ut<<<<<<<AUUUUU7UUUU UfUUfUUfU<<<<<<R<o<URUUR7URL545454RRuPfPuPfPuPfPuPfPuPfPuPfP#####UKE o<54Rt<G(G((<(/(36((A######Ut<E((a =(-2EALAU2:+xA((gq 2(4((( 2WwqqwWq&M(zz =<=<=<=<=<=<B<=<=<=<(72?5SF,d 6 Y";XKX^2DITFOdos   ~#17H[e~Y    ( 0 3 9 E I M P ^ e o p r    " & 0 : D !!"!&!.""""""""+"H"`"e%% ! (69L^hY      * 1 5 < G K P X ` f p r    & 0 9 D !!"!&!.""""""""+"H"`"d%%sRPNJFEB@>.,l  9QA28 lnpnplzy{ O?E~|"# !}     6     &  \F : " 6 4 B J @ 8 *V ,Copyright 2020 The Poppins Project Authors (https://github.com/itfoundry/Poppins)Poppins ThinRegularITFO; Poppins Thin; 4.004b84.004Poppins-ThinIndian Type FoundryNinad Kale (Devanagari), Jonny Pinhorn (Latin)https://indiantypefoundry.comThis Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://scripts.sil.org/OFLhttps://scripts.sil.org/OFLPoppinsThin 8 - @ . ( A 7 M / K   K  L 0 5  0  ' ?  > 0 K   G . > . 2 G . G   ( M .  > $ 8 M 5 $ ( M $ M 0 $ >  0 8 . > ( $ > * M 0 > * M $ 9 H dSquare dots in punctuation marksDouble-storey aAlternative ampersandAlternative 2, 3, 6, 92#      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjikmlnoqprsutvwxzy{}|~      !"#$%&'()*+,NULLCRdvAdvAAdvIdvIIdvUdvUUdvvRdvvRRdvvLdvvLLdvEdvAIdvOdvAU dvEcandra dvAcandra dvOcandradvmAAdvmIdvmIIdvmUdvmUUdvmvRdvmvRRdvmvLdvmvLLdvmEdvmAIdvmOdvmAU dvmEcandra dvmOcandradvKAdvKHAdvGAdvGHAdvNGAdvCAdvCHAdvJAdvJHAdvNYAdvTTAdvTTHAdvDDAdvDDHAdvNNAdvTAdvTHAdvDAdvDHAdvNAdvPAdvPHAdvBAdvBHAdvMAdvYAdvRAdvLAdvVAdvSHAdvSSAdvSAdvHAdvLLAdvK_SSAdvJ_NYAdvKxAdvKHxAdvGxAdvJxAdvDDxAdvDDHxAdvPHxAdvRxAdvKdvKHdvGdvGHdvNGdvCdvCHdvJdvJHdvNYdvTTdvTTHdvDDdvDDHdvNNdvTdvTHdvDdvDHdvNdvPdvPHdvBdvBHdvMdvYdvRdvLdvVdvSHdvSSdvSdvHdvLLdvK_SSdvJ_NYdvKxdvKHxdvGxdvJxdvPHx dvAnusvara dvCandrabindu dvVisarga dvAvagrahadvViramadvNuktadvZerodvOnedvTwodvThreedvFourdvFivedvSixdvSevendvEightdvNinedvOmdvAbbreviationsigndanda doubledandarupee indianrupeezerowidthnonjoinerzerowidthjoiner dottedcircledvReph dvEyelash dvRashtrasigndvK_RAdvKH_RAdvG_RAdvGH_RAdvNG_RAdvC_RAdvCH_RAdvJ_RAdvJH_RAdvNY_RAdvTT_RAdvTTH_RAdvDD_RAdvDDH_RAdvNN_RAdvT_RAdvTH_RAdvD_RAdvDH_RAdvN_RAdvP_RAdvPH_RAdvB_RAdvBH_RAdvM_RAdvY_RAdvL_RAdvV_RAdvSH_RAdvSS_RAdvS_RAdvH_RAdvLL_RAdvKx_RAdvKHx_RAdvGx_RAdvJx_RAdvPHx_RAdvK_RdvKH_RdvG_RdvGH_RdvNG_RdvC_RdvCH_RdvJ_RdvJH_RdvNY_RdvTT_RdvTTH_RdvDD_RdvDDH_RdvNN_RdvT_RdvTH_RdvD_RdvDH_RdvN_RdvP_RdvPH_RdvB_RdvBH_RdvM_RdvY_RdvL_RdvV_RdvSH_RdvSS_RdvS_RdvH_RdvLL_RdvKx_RdvKHx_RdvGx_RdvJx_RdvPHx_RdvK_KAdvKx_KxAdvK_KHAdvK_CAdvK_JAdvK_TTAdvK_NNAdvK_TAdvKx_TAdvK_T_YAdvK_T_RAdvK_T_VAdvK_THAdvK_DAdvK_NAdvK_PAdvK_P_RAdvK_PHAdvKx_PHA dvKx_PHxAdvKx_BAdvK_MAdvKx_MAdvK_YAdvK_LAdvK_VAdvK_V_YAdvK_SHA dvK_SS_MA dvK_SS_M_YA dvK_SS_YA dvK_SS_VAdvK_SA dvK_S_TTA dvK_S_DDAdvK_S_TA dvK_S_P_RA dvK_S_P_LAdvKH_KHAdvKH_TAdvKHx_TAdvKH_NAdvKH_MAdvKHx_MAdvKH_YAdvKHx_YAdvKH_VAdvKHx_VAdvKH_SHA dvKHx_SHAdvKHx_SAdvG_GAdvG_GHAdvG_JAdvG_NNAdvG_DAdvG_DHA dvG_DH_YA dvG_DH_VAdvG_NAdvG_N_YAdvG_BAdvG_BHA dvG_BH_YAdvG_MAdvG_YAdvG_R_YAdvG_LAdvG_VAdvG_SAdvGH_NAdvGH_MAdvGH_YAdvC_CAdvC_CHA dvC_CH_VAdvC_NAdvC_MAdvC_YAdvCH_YA dvCH_R_YAdvJ_KAdvJ_JAdvJx_JxA dvJ_J_NYAdvJ_J_YAdvJ_J_VAdvJ_JHA dvJ_NY_YAdvJ_TTAdvJ_DDAdvJ_TAdvJ_DAdvJ_NAdvJ_BAdvJ_MAdvJ_YAdvJx_YAdvJ_VAdvJH_NAdvJH_MAdvJH_YAdvNY_CAdvNY_CHAdvNY_JAdvNY_SHAdvTT_TTA dvTT_TTHAdvTT_YAdvTT_VA dvTTH_TTHAdvTTH_YAdvTTH_VAdvDD_DDA dvDD_DDHAdvDD_YAdvDD_VA dvDDH_DDHAdvDDH_YAdvDDH_VAdvNN_TTA dvNN_TTHAdvNN_DDA dvNN_DDHAdvNN_NNAdvNN_MAdvNN_YAdvNN_VAdvT_KAdvT_K_YAdvT_K_RAdvT_K_VA dvT_K_SSAdvT_KHA dvT_KH_RAdvT_TAdvT_T_YAdvT_T_VAdvT_THAdvT_NAdvT_N_YAdvT_PAdvT_P_RAdvT_P_LAdvT_PHAdvT_MAdvT_M_YAdvT_YAdvT_R_YAdvT_LAdvT_VAdvT_SAdvT_S_NAdvT_S_YAdvT_S_VAdvTH_NAdvTH_YAdvTH_VAdvD_GAdvD_G_RAdvD_GHAdvD_DAdvD_DHAdvD_NAdvD_BAdvD_B_RAdvD_BHAdvD_MAdvD_YAdvD_VAdvDH_NA dvDH_N_YAdvDH_MAdvDH_YAdvDH_VAdvN_KAdvN_K_SAdvN_CAdvN_CHAdvN_TTAdvN_DDAdvN_TAdvN_T_YAdvN_T_RAdvN_T_SAdvN_THA dvN_TH_YA dvN_TH_VAdvN_DAdvN_D_RAdvN_D_VAdvN_DHA dvN_DH_YA dvN_DH_RA dvN_DH_VAdvN_NAdvN_N_YAdvN_PAdvN_P_RAdvN_PHA dvN_PH_RAdvN_BHA dvN_BH_YA dvN_BH_VAdvN_MAdvN_M_YAdvN_YAdvN_VAdvN_SA dvN_S_TTA dvN_S_M_YAdvN_S_YAdvN_HAdvP_TTAdvP_TTHAdvP_TAdvP_T_YAdvP_NAdvP_PAdvP_PHAdvP_MAdvP_YAdvP_LAdvP_VAdvP_SAdvPH_JA dvPHx_JxAdvPH_TTAdvPH_TAdvPHx_TAdvPH_NAdvPH_PAdvPH_PHA dvPHx_PHxAdvPH_YAdvPH_LAdvPH_SHAdvPHx_SAdvB_JAdvB_JxAdvB_J_YAdvB_JHAdvB_TAdvB_DAdvB_DHA dvB_DH_VAdvB_NAdvB_BAdvB_BHA dvB_BH_RAdvB_YAdvB_LAdvB_L_YAdvB_VAdvB_SHAdvB_SAdvBH_NAdvBH_YA dvBH_R_YAdvBH_LAdvBH_VAdvM_TAdvM_DAdvM_NAdvM_PAdvM_P_RAdvM_BAdvM_B_YAdvM_B_RAdvM_BHA dvM_BH_YA dvM_BH_RA dvM_BH_VAdvM_MAdvM_YAdvM_LAdvM_VAdvM_SHAdvM_SAdvM_HAdvY_NAdvY_YA dvEyelash_YA dvEyelash_HAdvL_KAdvL_K_YAdvL_KHAdvL_GAdvL_JAdvL_JxAdvL_TTAdvL_TTHAdvL_DDAdvL_DDHAdvL_TAdvL_THA dvL_TH_YAdvL_DAdvL_D_RAdvL_PAdvL_PHAdvL_BAdvL_BHAdvL_MAdvL_YAdvL_LAdvL_L_YAdvL_VA dvL_V_DDAdvL_SAdvL_HAdvV_NAdvV_YAdvV_LAdvV_VAdvV_HAdvSH_KAdvSH_KxAdvSH_CAdvSH_CHAdvSH_TTAdvSH_TAdvSH_NAdvSH_MAdvSH_YAdvSH_LAdvSH_VAdvSH_SHAdvSS_KA dvSS_K_RAdvSS_TTA dvSS_TT_YA dvSS_TT_RA dvSS_TT_VA dvSS_TTHA dvSS_TTH_YA dvSS_TTH_RAdvSS_NNA dvSS_NN_YAdvSS_PA dvSS_P_RAdvSS_PHAdvSS_MA dvSS_M_YAdvSS_YAdvSS_VAdvSS_SSAdvS_KAdvS_K_RAdvS_K_VAdvS_KHAdvS_JAdvS_TTAdvS_TAdvS_T_YAdvS_T_RAdvS_T_VAdvS_THA dvS_TH_YAdvS_DAdvS_NAdvS_PAdvS_P_RAdvS_PHAdvS_BAdvS_MAdvS_M_YAdvS_YAdvS_LAdvS_VAdvS_SAdvH_NNAdvH_NAdvH_MAdvH_YAdvH_LAdvH_VAdvLL_YA dvmII.aLongdvReph_AnusvaradvAnusvara.amI dvReph.amIdvReph_Anusvara.amI dvII_AnusvaradvmII_Anusvara dvmII_RephdvmII_Reph_AnusvaradvmII_Anusvara.aLongdvmII_Reph.aLongdvmII_Reph_Anusvara.aLong dvmE_Anusvara dvmE_RephdvmE_Reph_AnusvaradvmAI_Anusvara dvmAI_RephdvmAI_Reph_Anusvara dvmO_Anusvara dvmO_RephdvmO_Reph_AnusvaradvmAU_Anusvara dvmAU_RephdvmAU_Reph_AnusvaradvmEcandra_AnusvaradvmOcandra_AnusvaradvRA_mUdvRA_mUUdvHA_mUdvHA_mUUdvDA_mvR dvSHA_mvRdvHA_mvRdvmI.a01dvmI.a02dvmI.a03dvmI.a04dvmI.a05dvmI.a06dvmI.a07dvmI.a08dvmI.a09dvmI.a10dvmI.a11dvmI.a12dvmI.a13dvmI.a14dvmI.a15dvmI.a16dvmI.a17dvmI.a18dvmI.a19dvmI.a20dvmI.a21dvmI.a22dvmI.a23dvmI.a24uni00A0uni00ADuni00B5AmacronamacronAbreveabreveAogonekaogonek Cdotaccent cdotaccentDcarondcaronDcroatEmacronemacronEbreveebreve Edotaccent edotaccentEogonekeogonekEcaronecaron Gdotaccent gdotaccentuni0122uni0123ItildeitildeImacronimacronuni012Cuni012DIogonekiogonekuni0136uni0137Lacutelacuteuni013Buni013CLcaronlcaronLdotldotNacutenacuteuni0145uni0146NcaronncaronOmacronomacronuni014Euni014F Ohungarumlaut ohungarumlautRacuteracuteuni0156uni0157RcaronrcaronSacutesacuteuni015Euni015Funi0162uni0163TcarontcaronUtildeutildeUmacronumacronUbreveubreveUringuring Uhungarumlaut uhungarumlautUogonekuogonek Wcircumflex wcircumflex Ycircumflex ycircumflexZacutezacute Zdotaccent zdotaccentuni018Funi01FCuni01FDuni0218uni0219uni021Auni021Buni0259uni02BCuni02C9WgravewgraveWacutewacute Wdieresis wdieresisuni1EBCuni1EBDYgraveygraveuni1EF8uni1EF9Eurouni20BAuni20BDuni2113uni2126 estimateduni2206uni2215uni2219 exclam.ss01 comma.ss01 period.ss01 colon.ss01semicolon.ss01 question.ss01exclamdown.ss01periodcentered.ss01questiondown.ss01 divide.ss01quoteleft.ss01quoteright.ss01quotedblleft.ss01quotedblright.ss01 ellipsis.ss01a.ss02 aacute.ss02 abreve.ss02acircumflex.ss02adieresis.ss02 agrave.ss02 amacron.ss02 aogonek.ss02 aring.ss02 atilde.ss02ampersand.ss03two.ss04 three.ss04six.ss04 nine.ss04 ""yz}}\_glss H~DFLTdev2"deva0abvm&abvm&abvm&blwm.blwm.blwm.   ,"yz\ghijkls $(*./0159>?DEHLMNOTZ[\]ajp$+,2:;=HKLNOQRSUVXYZ[\acpqv    !&)*+-./16<=AHLQTXYuvwxy{:@@@@@@:::@@@@flrxx~VbnbnVbnVbnVbn &&,28>DJPPV\bhhntz "(.4:@FLRX^ddjpv|7,cg S~~;~ X|96 3b9/\^j[NAmsIeVW|i@W@^}B9I 9/ Vj]^_ $O,Ruv!k=?Z                  EuvCECwBx &0888888 &,,28>DJPV\bhhntz "4LXjv "(.4:@$FL6RX^Nddjpfflv|_eW{KE+W8_/YewW/O{dK1 2]p#r#e#WaWvt_v^iI3y3ErHdUEE(E?SE?EmuwmK  i  4@}$(*./0159?DEHLMN$+,2:;=HKLNOQRSUVXYZ[\acpqv    !&')*+-./16<=AHLQTWXY\ &,,28>DJ\PV\bhnntz "(.4:@FLRX^djppv| $*006<BBHNTZ`fll~rx~`!e?W{hKWr `eW{K9?62h? 2hh!#z/?],!p}r}8e}8WW_?v?^ih[ht``!I?3`y?3?mh?rhHhdhUh(?E?hS?h!m?u?w8?I? hKctcic 2DFLTdev2HR\H~I~J~K~L~M~N~O~$%&+019>" F}BG}-$+""}&R^jv*6BNZfr~}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>}>$=?EHK!NN%}> D}*Zdnx&0:DN",6@JbT^hr|P}Q}R}S}U}V}W}X}Y}^}_}`}b}c}d}e}f}g}h}i}k}l}m}n}o}q}r}s}t}u}v}w}x}$KNO(&R\fpz$.8BLV`jt~}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}L  *4>HR\fpz$.8BLV`jt~ (2<FPZdnx$=?EHK!NN%Pi&kq@txG +\P$>r|6XrR~4~8 X  ( 2 d  :DLT\dlt|od?_=_@l=o.o0o3o$%)+.2345789<=?@AC"(.4%3 7 < =@A&.6>FLRX^djpv|b=b@c= g=&'+2567:;!<"=$?%@&C'7(<)="(.,V@*)+*-7.</=0= (06<BHNTZ`flrx6W=7W@2$3+8,:.;0<3=5>7?:@<A=C@5GD7E<F= G)H*I+JA K.L/M=N@O/P=Q@ R0S1T=U@V1W=X@$*06<Y.Z/[0\1]2^<_=`@6>FNV^fnv~bP=dP@i_=j_@mc=pd?sh=yo7zo={o@a$f%h3k4l7n8q9r<t=v?w@xCeFcgo|7}=~@  &,28>DJPV\&'567:;<=@  &c=7<=@&NX`hpx "(.4:@FLoh=PC_=_C`=`@a@b=b@c=g=g@h=o.o=$)*.03456789;<=@CD "(.4:@FLRX^_=./3789<=?@C  &,28>D+.3789=?A&.6>DJPV\bhntzW=b@k=+,3567:;=?@ACK 7=?@(08@FLRX^djpv|f=g=g@3578:;<=?@ACD 7=8@HPX^djpv|P= `=k=l0$%&+./0134 5 8 9:;<=?@CDK  $7=?@D  &,28>DJPV\$) *!."3#7$<%=&?'@(AH(08@HPV\bhntz,Z=.Z@0[=3^=8h=)$+.//2248697<9=:@;B*-152:BJRZ`flrx~>P@C_=E_@G`=Oh=<$?%@+A.B3F4H5I7J8L9M:N<P=Q?R@SC=DK &,T2U7V<W=X?Y@Z= h=<=@9= &,39:<HN &, 3 <=@AC B=4K 3CKN  =D=D#=1=u== PSUikuwx$&'()*6,\"n8&r@l D(./01>LMOKLNOQRSUX 589BDNVY $&36:@HJT ')*4;<=hX N -7?AFG'  +,2CK  E/1W  %I ! q+-.456; " Zacno)* X#%;Y[jw!9: $!!"#*:=T\iklrtv7AH%.$&2`eu~"#2<=DJKLRUVB&/'()+,-./<?CGMPW^_x}%BMP'59>@ABFH|    $&(FINQ~( DEJfg ST) 01348I]@*     ?+p, Zx- ms{38E:. ,0C/yz067bd GO&>V0123,Z   ">Zv`ycyaybiygyhlyjykoymynrypyqsyty\y  !"#*43$O,ZR|y\N*4y uvzwx{5>ADZ3"$9HN2acq )*6<=Labc$.8BLV`jt~T}Z}[}\}]}a}j}p}}}}}}}}(./015>D$      I  234567SUW !"}:f,ghijklmnopqrsvthuZvLw>x0y"z{|  >>[ ]^_def>y\abcriseup-vpn-0.24.5+ds1/gui/resources/fonts/Roboto-Bold.ttf000066400000000000000000005066501461742244100232060ustar00rootroot00000000000000 GDEFBbGPOSnKe.GSUBYxOS/2`cmapQmcvt +~ tHfpgm_ gaspx glyfH,ސhdmxhead\6hhea & l$hmtx']48locawC maxp>߼ name5d postmdX prep*v60 H)d( PEX/>YEX/ >Y9999 ܲ 9 901!!!!5!(<6 }wx^^^|<9EX/>YEX / >Y +X!Yа/01#!2#"&46"4IYYIHYYqVCBVVW@O & 9/ 9/а01#3#3 (E've%e%@ !9EX / >YEX/>YEX/ >YEX/ >Y 9|/ +X!Yаа а / +X!Y а аааа01###5!#5!3333#3##3#HH2IIII2H[2f``fF\)7-r+./9EX / >YEX!/! >Y! 9  в !9  +X!Y +X!Y!$в(! 9!+ +X!Y014.546753!4&#"#5&&5!326[ڞq?سcSRZXj8Ժ!qjXfRaRQibxw]RL\`Uk[w]_ (4879:97аа7!а/5/7/EX/>YEX%/% >Y а / +X!Y +X!Y%а/%, +X!Y2 +X!Y014632#"&526554&#"4632#"&532554&"'_EpBB:7DH6zDpDǍHJYEX/ >YEX/ >Y 9 9 +X!Y 9( 9 . +X!Y01467&&54632653!'#"$%277664&#"GqAJ׶Ѱp;Kh]YoXM;-J:>KeiWS‘QtVj:LLgWmuKr3&HdJP?9/9/01#3ml'|9P9 //0147&'|z88|P?>l<:p=5(9aP9 //01'65'7a889^Y/  /01%73%'U;7/;ҟY}]{Yq$l9  /а  +X!Y01!!!!!!ij/h#  9 / +X!Yа/01'76753$CnOAzyon/ +X!Y01!5!3~) # 9EX / >Y +X!Y0174632#"&~]FG]\HG\EVVEDUU/EX/>Y01#3}-_7 H9EX / >YEX/ >Y  +X!Y +X!Y01#" %4&#"32677cifaakj^Z:% 1<!:EX/>YEX/ >Y9/ +X!Y901!!5%3![ZkFI[9EX/>YEX/ >Y +X!Y99  +X!Y 9901!!56654&#"!46632!Ia]b[bqprjGaon}l@3()*9EX/>YEX/ >Y9/o]q]q9I] +X!Y 9' +X!Y'99" +X!Y0132654&#"!46632#"$5!32654##nji\Sp{݅zc{y!{ZguXn[Xb[Irfd-,xRhmZ7_ JEX / >YEX/ >Y 9/ +X!Yа в 9 9013#!!'!! _$B$;t!iBm !9EX/>YEX/ >Y +X!Y9/ +X!Y9 +X!Y9901!!632#"&&'!32654&#"T0$gtwޗ mXbjzpg@7{k|[e|6dO#^$%9EX/>YEX/ >Y +X!Y9/ +X!Y +X!Y01#632#"54$7"32654&st{OFrrg]stưvގ@ hk'IYEX/ >Y +X!Y901!!5!A4,_7"-./9а&EX/>YEX / >Y+ 9+/o++]++] +X!Y+9+9   +X!Y& +X!Y01 $5467&&546324&#"3264&#"26j]j|:|i]in]\nl`^kZRQZZY-j13yy21j_rq`]rnUgdXWjjV,"`#$9 EX / >YEX/ >Y 9|/ +X!Y +X!Y  +X!Y01#"54663257$26754&#"q}|G@yFep^WpmFo k`H3wxw}\&3/019\'3/016OEX/>Yа/015Y:]jmm9'/а/ +X!Y +X!Y01!5!!5!~~cxNEX/>Yа/01%gm-"`#$9EX/>YEX!/! >Y +X!Yа/9 +X!Y 99014>54#"!6632462"&[DYа9 +X!Y99а/9а2а2/ +X!Y*а*/# +X!Y? +X!Y01#"&'#"&766323267!"!267# $$323267&#" V} dte?3 7<\|Ү <;SB&=i j DL1X*')sJEʥB+OT׮]w}%(1 pVQ \ GEX/>YEX/ >YEX/ >Y 9 / +X!Y 901!!!!!d!l,P! 9аEX/>YEX/ >Y9/]qrqqo]r +X!Y9 +X!Y +X!Y013! !2654'%3654&## nbpjws|k&{zweYcWVGEX / >YEX/ >Y а  +X!Y +X!Y01! 54$32!&&#"32674  yIY@n ;EX/>YEX/ >Y  +X!Y  +X!Y013!2326754&#/пCĮ4MR XEX/>YEX/ >Y 9 /: J ] +X!Y +X!Y +X!Y01!!!!!!0^@wz6 SEX/>YEX/ >Y 9 / ]l | ]I ] +X!Y +X!Y01!!!!!x@S^ s !"9EX / >YEX/ >Y 9/]_]q 9  +X!Y +X!Y +X!Y01%#"$'54$3 !&&#"3275!5!Qش$xH=ak:c?}t]H# MEX/>YEX / >YEX/ >YEX/ >Y 9 / +X!Y01!!!!!!!#,I,pNEX/>YEX/ >Y01!!!,(09EX/>YEX/ >Y  +X!Y01!#"$5!3265,{.ZaVftkfvm% L 9EX/>YEX/>YEX/ >YEX / >Y9901!!7!!J,sqH`ly+)EX/>YEX/ >Y +X!Y01%!!!}W,~YEX/>YEX/>YEX/ >YEX/ >YEX / >Y99 901 !!#! vtwx PYEX/>YEX/ >YEX/ >Y9901!!!!!",I+B@V.H 9EX / >YEX/ >Y  +X!Y +X!Y01#"$'54$ %4&#"3267.巵lФCHGG O 9  EX/>YEX/ >Y 9 / +X!Y +X!Y01!!2!%!2654&'!8 w}~oxݍphkT,"H#$9EX/>YEX/ >Y +X!Y +X!Y01%#"$'54$ %4&#"3267,u59lФ[ CHGGc9EX/>YEX/ >YEX / >Y9/ +X!Y 9 +X!Y01#!! !32654&##;q|uyҕ;segvE'f()9EX / >YEX/ >Y 9 9  +X!Y +X!Y# 9% +X!Y014&$'&546632!4&#"#"$&5!!26ux[~rnz- kx~U[e1vhq΃do]LG`*M䪽{֍W(/EX/>YEX/ >Y +X!Y01!!!5!BHCt=9EX/>YEX/>YEX/ >Y  +X!Y01!"'!32,yA? 489EX/>YEX/>YEX/ >Y901!!!JNMiGP# ` 9EX/>YEX/>YEX / >YEX/ >YEX/ >Y99 901!!!!3++ P2  SEX/>YEX / >YEX/ >YEX/ >Y999 901!!!!YXXY."1EX/>YEX/>YEX/ >Y901!!!x/H""I `I FEX/>YEX/ >Y +X!Y9 +X!Y 901%!!5!5!1D x($// +X!Y +X!Y01#3!!(P/EX/>Y01!!'` '// +X!Y +X!Y01!!53# P3,T'9EX/>Yв9/01#3#++7)EX/ >Y +XY01!5!q45/]а/]01#!5;6DN)yEX/>YEX/ >YEX/ >Y9 9 / ] +X!Y 9|/ +X!Y # +X!Y01!&'#"&5467354&#"!46632%2675#" iMSIStԄ*@llL':u>KZF=^[ɶ+O906Fo>f9 /EX / >YEX/ >YEX/ >Y 9 9  +X!Y +X!Y01#"'!!632%4&#"3276>ǰi !dhg45,݇suqUrBBNM9EX/>YEX/ >Y +X!Y99 +X!Y01%267!#"5432!&&#"1Pdv| dRegfXIne'*TiBc9/EX/>YEX/ >YEX / >Y9 9 +X!Y +X!Y01432!!'#"%327&#"BŞg"l!je76%,v(s-qqHNv9EX/>YEX/ >Y9//q]_q  +X!Y +X!Y 9 +X!Y01"554632!327"!5&&a~Ol^AިVkd$vjy\gxtl`ie9EX/>YEX/>YEX/>YEX/ >Y +X!Y  +X!Yа013#5354632&#"3#ѼYEX/>YEX/ >YEX / >Y9 9 +X!Y9 +X!Y$ +X!Y014327!#"&'732655#"5327&#"Eɲc w:lsd!vg9:hw%0zfn_Ky{q:q1 cchJ 9/EX/>YEX/ >YEX / >Y9  +X!Y0163 !4&#"!!s`P]9!ĊgK]Ybm?9EX/>YEX/ >Y а / +X!Y01!!!4632"&"WKJXYY:ATTABTTK K9EX/>YEX/>Y  +X!Yа/ +X!Y01#"'5325462"&KD4'WWYY: wATTABTToZ EEX/>YEX/>YEX/ >YEX / >Y9901!!7!!h!8[yhHE=~EX/>YEX/ >Y01!!!"o~Nx9EX/>YEX/>YEX/>YEX / >YEX/ >YEX/ >Y 9 9 +X!Y01632632!4&#"!4&#"!~ sNrӰH[2JY{7:yM\U|^Tf:iNT 9EX/>YEX/>YEX/ >YEX/ >Y9  +X!Y01632!4&#"!y tìP]z=:}E\Sh:BCN E9EX/>YEX / >Y +X!Y +X!Y0146632 32654&#"B|,!tlivvkjt'J,o`=Np9EX / >YEX/>YEX/>YEX/ >Y9 9  +X!Y +X!Y01#"'!!632%4&#"32=e ikf35rj~hEkB`Nm9 EX/>YEX/>YEX/>YEX / >Y 9  9 +X!Y +X!Y0143273!#"%327&#"BƮgd!mc76dn'(q&q,jfoN G9EX / >YEX/>YEX/ >Y  +X!Y 901&#"!!632;-3W0*+o<: 8N%]&'9EX/>YEX/ >Y9 9 +X!Yв9# +X!Y014&'$54632!4&#"#"&&5!326it~PUIP[JɈxjYSU+5=Q›>QB30;+TϔabMR? DT9EX/>YEX / >Yаа/ +X!Y  +X!Y013#327# #53ɹ.A0%UZD<43G h:T 9EX/>YEX / >YEX/ >YEX/ >Y 9  +X!Y01%#"&'!327!!k!7"nEf :89EX/>YEX/>YEX/ >Y901!!!..a:: ` 9EX/>YEX/>YEX / >YEX/ >YEX/ >Y 9 9 901!##!3W:P: SEX/>YEX / >YEX/ >YEX/ >Y 9 99 901!!!! 5AA6CT(K:D9EX/>YEX/>YEX/>Y9  +X!Y01!#"'52677!6Ma?A,RQ"792:Y=J: FEX/>YEX/ >Y +X!Y9 +X!Y 901%!!5!5!~c0=-9 // 9/ +X!Y901$54#5275467J8LNelԹ3{[\4\/EX/>Y01#3\"t=-9 // 9/ +X!Y90167547&55&'73""86XX92cjw;3/а/ +X!Y +X!Y а01#"&&#"'46323265źJF:H׵NC;K9dNY +X!Yа/013!"&462!;\\YY%CVVVVc &!T"#9EX/>YEX / >Yб +X!Y ааа +X!Y01%267!#5&554753!&&#"RPdȻҽȣdQffgXI " ޣVg!ct !9EX/>YEX/ >Y9/ +X!Y +X!Yаа а ав9 +X!Y01!!5365'#53'4632!4&#"!4>\HWQBW 5@{IUZb`QC+;,-9 /EX/ >Y  +X!Y( +X!Y01%#"''7&547'76327326654&&#"1˞dm›kbylonlloplk~̡su{vuuvwtt ?q9EX/>YEX / >Y 9 9/а/ +X!Y  +X!Y аааа01!3!!!!!5!5!53!&9 2;|46ss/EX/>Y+01!!!\<-9:;99/EX/>Y494 +X!Y49 +X!Y 9.9.* +X!Y.*9% +X!Y"*%901# $5%32654&$&&547&54$32!4&#"%654&'!pt[{knxor^.KS|R[vYfY_K?ARenj]gWkNDIJbns*cEK(C/]>O(^Z / +X!Y аа/01#"&4624632"&sN=>LL|MQ:;OL|MU5IJhKK46IJ54KKV(7899 а4EX,/,>YEX4/4 >Y4,9/] ,49 /  ] 9 +XY +XY 9, +X!Y4& +X!Y01 &554632#4&#"3265%4$#" $%4$ #"$]\X\ef\YZ@KKTմqե`Sq{uQb৪ ZZ %p&'9EX/>Y&9/9 +X!Y9 9 / +X!Y 9  +X!Y01&'#"&5463354#"'4632%2675#\ M|vftAI(TjLV)R{iny330haQ%<1XM}&b~v%/а/ +X!Y01#!5!CvV2;EX/>YEX / >Y +X!Y  +X!Y 9/  9 /  ]3 93/ +X!Y&39-а+ +XY ; +X!Y014$ #"$%4$#" $%#!2#&54&#'32654&'#VKK@%q=1 BMJ_G]ZZ˦৪ [R~p>oD"LC@4F;Z9/ +X!Y01!5!ZN~ 1EX/>Y а / +X!Y +X!Y014632#"&2654&"~nmml5EEjHIr杝 G54LLhHY A /EX / >Y а  +X!Yа  +X!Y901!!#!5!3!5!HO,`lW7[9EX/>YEX/>Y +X!Y99 +X!Y 9901!56654#"#4632!81_2;ΫHl_1TT>/twFtWs0$%&9EX / >YEX/>Y 9|/]q@P`q]0@r  +X!Y 9# +XY#9#9 +X!Y013254&#"#4632#"&5332654'#Rw91*;ͩD4<5z\qX#*f{wkw2)ir"15#\ee/]а/]9@! +;K[k{]@! +;K[k{q@! +;K[k{r01!#*;`N:Q 9EX/>YEX/>YEX/>YEX / >Y +X!Y  901327!!'#"'!Qc8!YfH:~wiDY-HKe + 9EX/>YEX/ >Y901!#"$54$3!P *PT  9/ +X!Y01462#"&\]^FH[EVVUWb2 09// ] +XY 9 901%#'254&'7Y pCK:nQ*A9EX/>YEX/>Y9/ +X!Y901#5%3̽v$)yv+ 5EX/>Y 9 / +X!Y +X!Y0146 #"&5326754&#"v6]PN[]ON]a¦HģbnlaPanmfU|&en'' EX/>Y01T''^ '' L.EN!V"#9/EX/>Y +X!Yа/9 +X!Y 99013267!#"&5477667"&462>9M[!a2'$\\YYHJ,ZQ˼]-bY2CVVVVI{EX/>YEX/ >YEX/ >Y9/ +X!Y +X!Y 9 /  +X!Y +X!Y901!!!!!!!!!!IBj07MvY:A 8/ 9 / 9 9 9в 9  017A3ͪ013u997Ǩ6]5 )UEX/>YEX/ >Y9#9#а +X!Y$а& +X!Y01#"'#7&54$3273&#"4'32675巤UśJX1Iky&HF]Fh9GR|;q=i/ Y9EX/>YEX / >Y 9/ 9/  +X!Y +X!Y013#!3264&'!upo͆ Lvx)Z*+9EX/>YEX/ >YEX/ >Y 9 +X!Y9' +X!Y01!!4632#"&'732654&'&54654&#"k=XQ(6byOTERnYDMǫlM%ON 4I?.WBx`OFSBP)4<޲=>9-а8EX/>YEX/>YEX/ >YEX/ >Y9 9 / ] +X!Y 99999/9]9/9q_9q +X!Y# +X!Y&9* +X!Y . +X!Y501"'#"&5467354&#"%4$3262!3267%2675#"!54&@}QMR_t~d uMWMI1t'_oQZm ~WEN9LVG4nptz -8@-#T=8Csm^fTQ+(Z)*9%/EX/>YEX/ >Y +X!Y +X!Y% +X!Y01#"&&5432&''7&'77&#"3265QΈl1uNt[MDqsxbgzxJ LqzraH'0mr%Sp?C]9аEX/>Y +X!Y +XY +XY +XY +XY01!5!4632#"&4632#"&C\[HG]ZJKX[HG]ZJKX; DTSECSTDTSECSTBrC$h%&9а"EX/>YEX/ >Y99а +X!Y а" +X!Y014663273#"'#7&&#"4'326B|eUFg_QHg!)$+jt%(iv'ӕԒ:NrR q`?f9/EX / >YEX/>YEX/ >Y 9 9  +X!Y +X!Y01#"'!!632%4&#"32?d"dkf66qqfAiB !"9 /EX / >YEX/ >YEX/ >Y/]]9/ +X!Y 9 9аа +X!Y  +X!Y01#!'#"4325#535!3327&#"lŞg"je76>s- ,v귇qq mEX/>YEX/ >Y9/9/а +X!Yаа +X!Y а а013#!!!#535!!5!!5!3zzqq-I,IȮp:EX/>YEX/ >Y01!!!!:: `EX/>YEX/>YEX/ >YEX / >Y9/]_] +X!Y 901#!!3!!v!Wmq:iL ]EX / >YEX/ >Y 9/а +X!Yа +X!Yа а а 017!!57!}W,>>&&Q KEX / >YEX/ >Y 9/а +X!Yааа а017!57!Î߄!//,,K [9EX/>YEX/>YEX/>YEX/ >Y  +X!Y 9901#"'73255!! ̷QB.5y-G6 ,-lKNc 9EX/>YEX/>YEX / >YEX/ >Y9  +X!Y +X!Y01632#"'73254&#"!y qĬʳNA-6yNVD:D lcW:`T#$%9EX / >YEX/>YEX/ >YEX/ >Y +X!Y9/ +X!Y +X!Y +X!Y  +X!Y01!!#"$'4$32!!!!!27&#"Ty{t_?j^hpX =z ˰SP)1239#а-EX/>YEX/>YEX/ >Y9.9./.]./.q  +X!Y +X!Y9!а' +X!Y*014663262!3267#"' 32654&#"%"!54&Sz猆rgUROIw錊.!qljrtjirMbo]'q}!-:A+rkabu 3 9EX/>YEX/ >Y  +X!Y0134632&#"uϿ@`,5 nK.^9EX/>YEX/ >Y9/ +X!Y +X!Y +X!Y01 5!&&#"'6$3 267!̷1@uBq௅yfM?1ͭKt9EX/>YEX/>YEX/>YEX/>Y +X!Y  +X!Y аа +X!Y01##"'7265#5356632&#"3NA~2Ѽ?`*9fk OKd ZP&^'(9#EX / >YEX/ >Y 9/ +X!Y  +X!Y# +X!Y01#"$'54$3266534&#"3267(巵RI6OФCHGa[tMG@"^#$9EX/>YEX/ >Y9/ +X!Y +X!Y  +X!Y01466326653#"'%32654&#"@}. ;} !tljttljt'yVP{$tTV 9EX/>YEX/>YEX / >Y 9/ +X!Y  +X!Y01>53!"'!32KS%,y=o ? h7j9EX / >YEX/>YEX/ >YEX/ >Y9/ +X!Y9 +X!Y01!'#"&'!327!6657k!7"D7nEf^}K: 0 9EX/>YEX/>Y  +X!Y01#"'7325ǴMA,6y: UNOh 9EX/>YEX/ >Y 9 / +X!Y 9 +X!Y  +X!Y012'"55!&&#"'66267!yߏgeY +XY01!327#"&547JPB!/I\d*Q5A,obeufB/а//] а / +X!Y +X!Y01#".#"'46323265f_&;h.#1_5x.#3q8 2. o: 1.9}@/]а/]/а/а//01!#3#zڦ-q )9 }/|/а/ а012#"&462654&"JQhhQPll+@((@+9fb`d ** "++//а/]01#!<6VV/а/]/01!#<aR)/а/@ /?]в9 901'6654#722IARD Eh[;K @V7//а/а//]а//01#!#!H  J /]  +X!Y014632"&ZGHZYX=NiO;:QM|L64KKhJI55JI64KKTx=,EX/>YEX/ >Y +X!Y01!!!=sC0EX/>YEX/ >Y +X!Y901!!%!Y7=GPdR*"m#$9аEX/>YEX/ >Y9|/0@] +X!Y +X!Y +X!Y01!5!#"$'54$ %4&#"3267巵lФ_CHGG1EX/>YEX/ >YEX/ >Y901!!!8P_8 mEX/>YEX/ >Y +X!Y9/o]q]qr +X!Y  +X!Y017!!!!!!_'s [jTE$9EX/>YEX/ >YEX/ >Y +X!Y01!!!!!$CHQ >EX/>YEX/ >Y +X!Yа  +X!Y01!!55!!=rIYH:)I#w $%9 а  EX/>YEX / >Y 9/а/ 9 /а/  +X!Y +X!Y а!01!5&$&54$75!4&'66Ԫ,SY4] 9EX/>YEX/>YEX/>YEX / >Y 9/а  +X!Y 01665!!&!!vs.,t,z(z< 14f$^%&9EX/>YEX/ >YEX#/# >Y +X!Y аа +X!Y!а"01%674&#"!53&'54$323!߮ sqb`m|~lKW%bYdaI|N !"9EX/>YEX/>YEX/ >YEX / >Y +X!Y 9 9  +X!Y +X!Y01327#"'#"''327327&#"D2KDb ĥa_w77ucl:v=2`ij(v)*9EX/>YEX/>YEX / >Y& 9&/o&&]% +X!Y%&9 +X!Y  +X!Y012#"'!4664&#"32654&##536rd[{О{~:cQUnRfxmjaNкd1*L2}r`Rdqc :sZly_:8 9EX/>YEX/>YEX/>Y901!!!..UQ#DH$)e*+9!EX/>YEX/ >Y  +X!Y'9' +X!Y'9! +X!Y014632&#"#"55467'&32654&'"ݾe\DWKV>d峈zigx~ah{ᙪ/3-Pp֞# #a㙬o_/M&'(9EX/>YEX$/$ >Y$9/q/q] +X!Y9 9 +X!Y$ +X!Y $9  ]0147&&54$32!4&#"33#3265!#"$_WbeRQbZZmY\m!2C$yH3>B64>7KF5L{I 9EX/>YEX/ >Y +X!Y9 +X!Y01'6'6''&&5477!5uVH5gUb`]Z}SrRW>$kSKEpeC?/laNT 9EX/>YEX/>YEX/>YEX / >Y 9  +X!Y0163 !&#"!y wTE:{[]:pG m9аEX / >YEX/ >Y 9|/0@] +X!Y +X!Y  +X!Y01#"32!32!54&#"Gk̻ lef `>%.D30F0o: )EX/>YEX / >Y +X!Y01327# /A,(Na:<45[ S9/EX / >YEX/ >Y  +X!Y99 +X!Y01237#"&'!'&&#'6E"4)Eo*H>/:F #Hcqi!2(gw,_-.9EX)/)>YEX/ >Y) +X!Y )9 /  +X!Y +X!Y$ 901&&#"33# '654''.5467&54$32[T2si쏋L^_u;lu>\R M?9$@NBpcFB !?_p/N4:^ 9EX/>YEX / >YEX/ >Y +X!Y  +X!Y ааа01#327# !!#5!-B,(N`߱];535]q`>NY9EX/>YEX / >YEX/ >Y 9 +X!Y +X!Y012#"'!432654&#"^f8djkbYeN y"\?N <!"9/EX/>Y!9 +X!Y  +X!Y012!4&#"'6'4'&&'54663[Pdmrn9Z^jyNVg|M=\GO?rbFH>)B~:N 9 EX / >YEX/ >Y  +X!Y +X!Y01##"543!32654&#"~;skbklchtP* $؜,:K 9EX/>YEX / >Y +X!Y  +X!Yа01!327#"&'!5!*1/3UfR;6  q:=9EX/>YEX/>YEX/ >Y +X!Y013265&!#"&'~`br:j͕6"I"h#$9/EX/>YEX/>YEX/ >YEX/ >Y +X!Y а  +X!Y01$474632!665&&#"bxi?E !ve3 !;TE`<<04D":P9 /EX/>YEX/>YEX/>YEX / >Y +X!Y01$&!!$!i ":98/ );VSA:"[#$9EX/>YEX/>YEX/ >YEX/ >Y +X!Y9 в90132!3265&!#"&'#"7SJ1LQn01mޕ:!W߻ lhhl'# u'n()9EX/>YEX/ >Y9/ +X!Yв 9 +X!Y"а% +X!Y01#"55%32655&'546 7%&#"0AzgS\XfZWO`A T m}oY+ "W |C9EX/>YEX / >Y 9а +X!Y016632'"!&#'632^1kII&9DF9#KEq.ׂrG`Gkt:&r '(9 EX/>YEX/ >YEX / >Y +X!Y 9аааа  +X!Y 9$01##"&'#"47#5!&'!325!326~2s23s2t32LF0FLlnkkn("!߶q9EX/>YEX/ >YEX / >Y +X!Y9/   +X!Y +X!Yа01!63 !5 54&#"!!5!'nGL{uopb?{f|WX 9EX / >YEX/ >Y  +X!Y 9/ +X!Y +X!Y01! 54$32!&&#"!!32673 A r?h?􍃼Ł(:!w "#9 EX/>YEX/ >YEX/ >Y9/  +X!Y +X!Y +X!Yа0132!!!#5766!32654&'"|fĪN2qa soy܋Ջ("ke:9EX/>YEX/>YEX / >YEX/ >Y 9/]qo]q 9/ +X!Y +X!Y  +X!Y01!!32!!!!32654&#G,,srtJfwًY-if!_9EX/>YEX/ >YEX/ >Y +X!Y9/  +X!Yа01!63 !4&#"!!5!y-YzYX2Án`u I /EX/>YEX/>YEX/ >YEX / >Y +X!Y01!!!!!!u,G-T:APh ^9EX / >YEX / >Y  +X!Y 9/  +X!Y  +X!Y01!3 !!32654&'8v-vsr@~jcs]9 /EX / >YEX/ >Yа +X!Y аааа  +X!Y01!!!367!3!!!nYa*+fVJAEX / >YEX / >YEX/>YEX/ >YEX/ >YEX/ >Yа/]o]@] +X!Yв9 в901#!#!!3!3!!NԱPuD,<tXQQ KK^C)r(*+9EX / >YEX/ >Y  +X!Y( 9(/o((]((](q% +X!Y%(9 +X!Y014&#"!46632#"&&5!32654&##536Pk`ԅulx.jx|wS__Lvja2*m}NilSrcx EEX/>YEX/>YEX/ >YEX/ >Y9 901!!!!-,P97("O9EX/>YEX/ >YEX / >Y +X!Y   +X!Y01!!#5766"|fĪN2qa PՋ(D9EX/>YEX/>YEX/ >Y9  +X!Y01!#''32677! D)qi6?M%COO,;_IE )J // 9/в 9 /а  +X!Y! +X!Y а"0132!!5#"$54$735!"33!32654&#Ꙙ!̕!.IBu < /EX/>YEX/>YEX / >Y +X!Y01!!!3!!u,G-AA_ G9EX/>YEX / >YEX/ >Y9/ +X!Y01!# $'!327 Ӊ-wP(8}n* IEX/>YEX/>YEX/>YEX / >Y +X!Yа01!!!!!-,VAAPU /EX/>YEX/>YEX/>YEX / >Y +X!Yаа а а01!!!!3!!-,AA8^ a9 EX/>YEX / >Y 9/  +X!Y  +X!Y  +X!Y01!3 !!32654&'-rsr@~jcst o9 аEX / >YEX / >YEX/ >YEX / >Y 9/ +X!Y +X!Y013 !!!!32654&'-.,?srP@~jcs O 9 EX / >YEX/ >Y 9/  +X!Y  +X!Y013 !!32654&'-.sr@~jcs>^ 9EX/>YEX/ >Y +X!Y а /o ] ] +X!Y  +X!Y013267!5!&&#"!6!2! 'k 4 1{ÿý_3%z!&'9!EX/>YEX / >YEX/ >YEX / >Y 9|/ +X!Y +X!Y" +X!Y01#"$'#!!36$32%4&#"32673巧, Ф|.GP c9 EX / >YEX/ >YEX/ >Y 9/ +X!Y9  +X!Y01!#!&4$7!33#"#7ww m|PznTP&V'(9EX/>YEX/ >Y9/9 +X!Y  +X!Y012#"5766536"326754&J؀gurliru10m671+ꊛF:9аEX/>YEX/ >Y9|/]pq@P]r +X!Y9 +X!Y +X!Y013!2#3254''3654&##c_t陒SU:Kw ^km`;2oP:,EX/>YEX/ >Y +X!Y01!!!P@P:!:]9 /EX/>YEX / >Y +X!Yаа  ааа +X!Y017667!3!!!!!#~bF[ h̻bE.b':EX / >YEX / >YEX/>YEX/ >YEX/ >YEX/ >Yа/] +X!Yв9 в901#!#!!3!3!!߁Ufj!lfXoo6llEM&'(9EX / >YEX/ >Y  +X!Y 9% 9|%/@%P%]%%]p%%q" +X!Y"%9 9 +X!Y014&#"!4632#"&5!32654&##536KEGYWO!bOMVRR9?;6Hy$A7DH:G=o: EEX/>YEX/>YEX/ >YEX/ >Y9 901!!!!!":d:e: XEX/>YEX/>YEX/ >YEX / >Yа/] +X!Y 901#!!3!!t!gmq:i:O9EX/>YEX/ >YEX/ >Y +X!Y  +X!Y01!##'7667b$NH :P: YEX/>YEX / >YEX/ >YEX/ >YEX / >Y 9 9 901!!#!!jgUhs:o: TEX/>YEX / >YEX/ >YEX/ >Y 9| /@ ] +X!Y01!!!!!!!!g"`:No:9EX/>YEX/ >YEX/ >Y +X!Y01!!!!!P::2EX/>YEX/ >Y +X!Yа01!!!5!RRD`%/019 а*/EX/>YEX / >YEX/>YEX/ >YEX/ >Y  +X!Y# +X!Y(а-0132!632#"'!#"'%4&#"32%327&#"DջI<!>KֹM>YEX/>YEX / >Y +X!Y01!!!3!!o!j":QAX:G9EX/>YEX/>YEX/ >Y 9 / +X!Y01!!#"&'!327!QF!ZsHO!T]^Qo%: IEX/>YEX/>YEX/>YEX / >Y +X!Yа01!!!!!)")!J:QQ:l:L /EX/>YEX/>YEX/>YEX / >Y +X!Yа 01!!!!3!!)"(":QQA:!: a9EX/>YEX / >Y 9/  +X!Y +X!Y  +X!Y01!32#!!32654&#!VόqVV\ZX:^tPPEFS: o9 аEX / >YEX/>YEX/ >YEX / >Y9/ +X!Y +X!Y0132#!!!!32654&#όq"l!V\ZX^t::PEFSD: O9EX / >YEX/ >Y 9/  +X!Y  +X!Y0132#!!32654&#όq"V\ZX^t:PEFS?No 9EX/>YEX/ >Y +X!Y99 +X!Y9|/@P] +X!Y01"!46632#"&5!3267!5!&N\uzx]OWj "dWInfSk{y<N !9 EX/>YEX/>YEX/ >YEX / >Y9|/]@]] +X!Y  +X!Y +X!Y0136$32#"$'#!!32654&#"  "tlktvkjtJO:ؚ): c9EX/>YEX/ >YEX/ >Y9/ +X!Y9 +X!Y01!#!&&54673#"aiƼM`\:v-bQtLK!"#9/EX/>YEX/ >YEX / >Y]/]]!9!/ +X!Y9  +X!Y +X!Yа!01#63 #"'73254&#"!#535!3s`ȴNA+8yP]9ߜ!g) ^Yb@N9EX/>YEX/ >Y +X!Y99 +X!Y9|/rq/qrq +X!Y01%267!#"5432!&&#"!!/Pdw| dQ1 cXIoe&*Vgun:} !9EX/>YEX/ >YEX/ >Y9/  +X!Y +X!Y +X!Y +X!Y0132#!##'7667!32654&#h$NH &V\\VʧPMA>Io:9EX/>YEX/>YEX/ >YEX / >Y9|/@]]] 9/ +X!Y +X!Y  +X!Y01!!32#!!!!32654&#g"!V\\VʧP:MA>Iv 9/EX/>YEX/ >YEX/ >Y/]]9/ +X!Y9  +X!Yа01!63 !4&#"!#535!!s`P]9ߎ! gK]Ybo: F/EX/>YEX/>YEX/ >YEX / >Y +X!Y01!!!!!j":Qg:wa9EX/>YEX / >YEX/>YEX/ >YEX/ >Y9 +X!Y01#"'#"5!3265!3265xx-\k.[i#,u*ud@:a9EX/>YEX / >YEX/>YEX/ >YEX / >Y9 +X!Y01#"'#"&'!327!327@jn"":~vsCt9EX/>YEX/ >Y9/ +X!Y9/ а а +X!Y +X!Y01!3!#53!!32654&'"W[WT::(=XMHX}#~ $%9EX#/#>YEX/>YEX / >YEX/ >Y# 9/  +X!Yа +X!Yа +X!Y0136$32!&& !!3267!# #!!4 R ,,\}Z+uN!"#9EX/>YEX / >YEX/ >YEX/ >Y 9|/@P]]в9  +X!Y +X!Y +X!Y90136$32!&&#"!!3267!#"$'#!!dREPe"zTiYH=:G WEX/>YEX/ >YEX/ >YEX / >Y 9 / +X!Yв901###!!!!`U8 ']]Psb: WEX/>YEX/ >YEX/ >YEX / >Y 9 / +X!Yв901###!!!3''ME])I  :Ҁh}EX/>YEX/>YEX/ >YEX/ >YEX / >YEX/ >Y9/а +X!Y ав901!!!###!!!!!M%8Ŋ`Tœ,z&r>P]]]~K:EX/>YEX/>YEX/ >YEX/ >YEX / >YEX/ >Y9/б +X!Y ааав9013!!###!#!!3''(_ME]f"Ir   :Ҁm|9 EX/>YEX/ >YEX / >YEX/ >Y9/а  +X!Y ав9 +X!Y01!&&'#!#"!6$%!!iz[km {Wqa+cqUloo:u9 /EX/>YEX/ >YEX / >YEX/ >Yа  +X!Y в9 +X!Y01!5&&#!#"!5667!#XqgU&~`ֿo\x^n;" #$9 "EX/>YEX / >YEX/ >YEX/ >YEX/ >YEX/ >Y 9 / +X!Y  б +X!Yав 9 ! +X!Y01!47!!!!!!&&'#!#"!+, iz[kmRbtoWqa+cqNl:!"#9!EX/>YEX / >YEX/ >YEX/ >YEX/ >YEX/ >Y 9 / +X!Y  аав 9   +X!Y01!547!!!!!!54&#!#"#(!y&UthUg}[p:,&ֿq`x^nu@(1239)./EX/>YEX/>YEX/ >Y +X!Y%9|%/0%@%]%]%%]$ +X!Y $%9 +X!Y.].1а1/11]).19*а*/014&#!5! ##&&'46736654!#536673#53dow 䄌8mRJhz鋟gpyҷL[ƶ]*}\b:#eR^8  P%./09&+/EX/>YEX/ >YEX/>Y +X!Y#9|#/@#P#]##]" +X!Y "#9 +X!Y+]+.а./..]&+.9'а'/014##5!#&&'46332654##53273#53J>|Q5a{𙝿sҶrKB\c9,x}D9  Z2 9аEX / >YEX/ >Y +X!Y 9/l|]] q]lq,<r +X!Y  +X!Y01#"$'54$ 267!"!&&2巵l u CHG@ANp 9 а EX/>YEX / >Y +X!Y 9|/@P]  +X!Y +X!Y0146632#"'"!&&267!@}} [r qZ[nL p' v~quzqwroz G9EX/>YEX/>YEX / >Y 9  +X!Y017663#"!!y9'V#>[W۹v$NG9EX/>YEX/>YEX/ >Y9  +X!Y0176632'"!!]0A&2&< .jjc<, :Zy2''W()9!EX/>YEX/ >Yаа +X!Yа! +X!Y$01#5&5753%4&'#5536652umnhls͹y{#|);%{%ki!!fbL9%]a"BC#Z $%9 EX/>YEX/ >Yа б +X!Y +X!Yа!014753#5&56554&'#553BȧȦPGC'(jklm%9tac8;nw%*>G0HI90 а0FEX/>YEX / >Yа а +X!Y  +X!Y 9#а*а6а6/,а,/+ +X!Y,2а2/9 +X!Y6BаB/GаG/012#"'#"543"3265!32654&##".#"#54326753 yy YjjY\kk\XkkXoR,f9lyzJA`;  yyu^uyy"M i"%/#RYEX / >Yа в 9 +X!Y  +X!Y 9"а)а5а5/+а+/* +X!Y+1а1/9 +X!Y5@а@/EаE/012#"'#"&'5463"3255!326554&##"&'&#"#546326753;ŻdfM\M?QD?M]LX3*h|mSvA`;Kowxnzpnxwo);h%piwRYEX/ >Yа а/9 +X!Yаа/#а#/$а$/ +X!Y$!01#"'#"5!3265!3265%5!!#5xx-\k.[i't#,u*u煅d@#$%9"EX/>YEX / >YEX/>YEX/ >YEX / >Y9 +X!Yа"а"/#а#/ +X!Y# 01#"'#"&'!327!327%5!!#5@jn""8:~vsYK9/EX / >YEX/ >Y а  +X!Y +X!Y01!&54$3 !4&#"3Nrzy\">&ڤVNB 9EX / >YEX/ >Y  +X!Y +X!Y01!&55432!4&#"33߸^Mdm׷a",Sjk>/EX/ >Y01%#%7%73%Y!HݵG%I#%LhFksF/ +X!Y01'7!'$" ~lxr0 /а/ +X!Y а/  +X!Y012#54#"#52>j+2m|)[rJ"h):Nk /а/0153;R܏lDk /а/01'7'3R;Dl0 '5BO\jE/S/`/8/EX/>Y  +X!YEаEL +X!YаSаSZ +X!Y%а`+а`g +X!Y2а8? +X!Y01462#4&#"4632#4&#"4632#4&"4632#4&#"462#4&#"462#4&#"4632#4&"4632#4&#"stp30.3t]_uq5.,3Hu]_tp5\3t]_tp5.-3Ostp30.3Mttp30.3u]_tp5\35u]_uq5.-3ThhT.750ThgU1450 UghT147.ThhT147.ThhT.77.ThhT.750 UghT147.UggU1450pc "'9!// //&/EX/>YEX/>YEX/>Y01#'37%%57%'%'7s z`F: z`F Mu Z@DE&+A`B<aR |bG; |bGDEFEG+xg/&'9wEX/>Y 01og&'}EX/>Y 01COw9EX / >YEX/>YEX/ >Y +X!Y 9/ а а +X!Y +X!Y01!3!#535!!32654&'"W[WT~XMHXO9EX/>YEX/ >Y9/ +X!Y +X!Y01!!2'#654&'!!27'78vf{~o B.{fxݍ|[8Z.Ck7[o`=N"p#$9EX/>YEX / >YEX / >YEX/ >Y 99 +X!Y +X!Y01'#"'!!632%4&#"327'76=weibWpe ikf35;*phYxXu4rj~hEkYlIE% 3 9EX/>YEX/ >Y +X!Y01#!!!!E s! Culuu,EX/>YEX/ >Y +X!Y01!!!!u!P:;^9 /EX/>YEX/ >Y +X!Y9/   +X!Y +X!Y01!3 #'265!#!!=s#=GI~~Pݲnl:L 9 /EX/>YEX/ >Y +X!Y9/ +X!Y01!3 '6674&##!!M@/+Ψxai4P8,c~}S:}&Q'.:&Q&,Q6:&Q}g]EX/>YEX / >YEX/ >YEX / >Y 9/ +X!Y9а01 !##5#!!333?6Q.Q%fOM:aEX / >YEX/>YEX / >YEX/ >Y а/]  +X!Y 9а01 !##5#!!35336/O!O-:q:i%cEX/>YEX / >YEX/ >YEX / >Y9/ +X!Y +X!Y 901#!!5!3!!ج&dn?SGO::gEX/>YEX / >YEX/ >YEX / >Y а / ] +X!Y +X!Y 901#!!5!3!!ZstfmqOi&,Qo:&Q{ _EX/>YEX / >YEX/ >YEX / >Y9/ +X!Y +X!Y01!!!!!!!I,bN:pli: fEX/>YEX / >YEX/ >YEX / >Y9|/@] +X!Y +X!Y01!!!!!!!gu!`:k9 /EX/>YEX/ >YEX/ >Y9/   +X!Y +X!Y +X!Y013 #'265!#!!!!$#=GI~B~PݲnCl:Y9/EX/>YEX/ >YEX/ >Y9/ +X!Y +X!Y013 '6654&'#!!!!U9̪xajb9+cxKP:^&2349'EX / >YEX/>YEX/ >YEX/ >Y9/  +X!Y +X!Y& +X!Y*9001"'#"$55463"37&54663236554&#"޹]nҬYEX/>YEX/ >YEX/ >Y9/   +X!Y +X!Y" +X!Y%9 +01"'#"554663&55463236554&#"Ǖ{oz:Br`LJHT[h8)*8508Zw|ddύȋzaQ\odWE&<Q@:&\Q"^9 /EX/>YEX/>YEX/ >Y +X!Yаа +X!Y а 01!5!!!!3!!nG-+A_-X:M /EX/>YEX/ >Y +X!Yа +X!Yа 01#5!#!!3!! j"PQA&QhX:&QanP9EX/>YEX / >YEX / >Y 9/а +X!Y01367!!#5&&']kgU,Fv=rp " P( h:P9EX / >YEX/>YEX/ >Y9/ +X!Yа01!!#5&&'!367!&6!_.."TȮd  G9EX/>YEX/ >YEX / >Y9/ +X!Y013!663 !&&#"-/Bw 3}nl$g%&9EX/>YEX/ >Y!9!/ +X!Yа! а +X!Y +X!Y01 5&&536$ !327"!54&y *ǧ1D㽇3R+&ദ.>"+һN!"#9EX / >YEX/ >Y 9//q]_q +X!Yа а +X!Y 9  +X!Y01"'&&536$32!327"!5&& u Pl^AݩUkdП.vjy\gxtl`i` 9/EX/>YEX/>YEX/ >Y9/ +X!Y9 +X!Y01#'265!#!!3!7{.cft8"歮jIc:R9/EX/>YEX/>YEX/ >Yа/]  +X!Y 901'6674!#!!3! ̪xbhf!WmY2㨐9+}aq:i(g&g:&~K$ 9EX/>YEX/>YEX/>YEX / >YEX/ >Y9|/]@Pq0@]]  +X!Y +X!Y01!!#"'7325!!G-ζOD.6xk8 hlK:m 9EX/>YEX/>YEX/>YEX/ >Y9|/@]  +X!Y +X!Y01!!#"'7325!!g"ǴOA+8x:N `:g&,og:&{gY&1gh:&K.a9EX/>YEX/ >Y 9 / +X!Y +X!Y  +X!Y01 ' 5!&&#"'66267!lLv̷߮1OʅyˬfM?%*-Pej 9EX/>YEX / >Y +X!Yв 9/ а  +X!Y +X!Y01!5!#"&&5!32654&##5,wZj}!hRfjVRu_:Y 9 /EX/>Y +X!Y9 9/ +X!Y9  +X!Y01!5!#"&&5!32654&##5"{]lPr hTjnX%K&X&&Th ]01E:&Q'&aT#] ]P ]p ]01K&<TK:&\TI R9EX/>YEX/ >Y9/  +X!Y +X!Y01!!"&&54663#"b-sqPy܌z1܃git"U#$9EX / >YEX/ >Y 9/ +X!Y а +X!Y01!"&&5433!3667'&'!%#"1-CUd,%*rpyۍB}MtQK܃giZ*+,9)EX/>YEX/>YEX/ >YEX/ >Y9  +X!Y9" +X!Y' +X!Y0132!36676'!#'#"5&#"327'Zŕ`!D5ejA)~^i=odkx=3u?aMVff! TXJA(f )*9EX / >YEX"/" >Y) 9/ +X!Y  +X!Y9" +X!Y" 901536654#!5!36676'!#54&#za*%]aA&+jbRbga;Q)8bg]?_t-:&c '(9EX/>YEX/ >Y +X!Y9'9/ +X!Y +X!Y$90136676'!#&'54##'3654##'!FFM@-鼵 sss_w9qHhmSTJ-Ax!b"#9/EX / >YEX/ >Y" 9/ +X!Y  +X!Y9 +X!Y01'3654&#!'!3'767#&'54#qEnV,5<AgngGfoJORg`1jmT:!b"#9/EX / >YEX/ >Y" 9/ +X!Y  +X!Y9 +X!Y01'32654&'!'!23'767#&'5&'XY]Q.nV*:D9YEX/ >YEX/ >Y  +X!Y +X!Y +X!Y 901!#5766!32676'!#"&5eX2p`?5[jA'+ԍGWbg?r:!e "#9EX / >YEX/ >YEX/ >Y  +X!Y +X!Y +X!Y 901##'7667!36676'!#"&'b$NH  J>NT@0rσM?IZSy~~9EX/>YEX/>YEX/ >YEX/ >Y +X!Y 99|/]]0@] +X!Y0136676'!#5!!!!?3afA&+x-CJTbgk]c:9EX/>YEX/>YEX/ >YEX/ >Y9|/@]]]0@q +X!Y  +X!Y01!!!!!36676'!#&'"r!J>NT@0rσ V:[?KXSy~F B!"9EX / >YEX/ >Y  +X!Y +X!Y01"$'4$32&#"36676'!"߈>qw5%' YDѨsfƨXXFNF 9EX/>YEX / >Y +X!Y 9 +X!Y01%6674'!#"5546632&#"cD:ӂ`.ci~7;p_K0B:"dH9EX/>YEX/ >Y +X!Yаа  +X!Y01!5!!36676'!#&'RZ?4af@%) HTffB:O9EX/>YEX/ >Y +X!Yаа  +X!Y901!5!!36676'!#&'jJ=NU@+ P'IXncsz4j)x'*+9EX/>YEX / >Y +X!Y% 9|%/%%]0%@%]%]%%]& +X!Y&%9 +X!Y013265!# $5467&&54$!2!4&#"!3#"q,r5 ӋkNjWihPh*0chxL`aRc(K?&TK>:&T[o /а/а/ а/013#3&&5o\ҭLSJ]<T^|8V#]nnT@FL@mT@Fff@`'EX/ >Yа/а/]а/01!5!5!5!qq`nh"! 9EX/>Y 9/01#546Vi"O^:y! 9EX/>Y 9/01'6753ˆVdOZB 9/а/01'6753ʈNcO~YG /а/01&&55-%3ReGUOG\p"&_H&iB 9 / а а /01'6753'6753яN^VeOaIO`9 LEX/>YEX/>YEX / >YEX/ >Y  +X!Yа01!!!5!!!\!aIIvb`?~EX / >YEX / >YEX/>YEX/>YEX/ >YEX/ >Y +X!Y +X!Y аааа01!!!!5!!5!!!!!?ZZ"aa`gvb  9/ +XY014632#"&5hljih~|e+g}|k)&u)&'e  9/  +X!Y014632#"&eWKKWWKKWqBSSBBSSWl#'4AOPQ9а&а(а5аG$/&/EX/>YEX/ >Yа/а/а/ а /+ +X!Y1 +X!Y+8а1>а E +X!YL +X!Y014632632#"'#"&54632#"&5'32554&#"32554&#"326554&#",QQQQ+ǍH5zD87DF7zD87DUC:8BD89BeiiGii|FLrL89LLI/9/01#53N qP|#/9/01# zzmr+ //017'ǍmLrL5 EX / >Y 01WT 9EX/>YEX/>YEX / >YEX/>Y 9  +X!Y0163 #&#"# K|`%{ȮO!f'()9EX/>YEX/ >Y'9'/ +X!Y +X!Yа а а'а'а//]] +X!Y +X!Y9"а$01!!!5365'#53'#53'4632!4&#"!!!I>\HWQCV"{I0nUZb`n%]#&'(9а!а&EX/>YEX/>YEX/ >YEX / >Y9/а/] +X!Y +X!Y аааааааа а"а%013#3#!!!#535#53!!!35#3'#5#-+,mgcOH۠+颢 q'"()9"EX/>YEX/>YEX/>YEX / >YEX/ >Y +X!Y  +X!Y ав 9 / +X!Yа/& +X!Y01#327# ##!!23!332654&##f-B1#UYe'm`!Whltuijf;53Gó ukgnb&6W%P#'*-./9"а'а)а-EX/>YEX / >YEX/ >Y 9/а/а +X!Y  +X!Y 9/ ааааааа а"а$а&в( 9 )в+ 9 ,013!3#3#!#!#53'#53!3!37#37#7#7#*+:nlϊݾ:+*+6r3p,"DB!C*֠>> **o: fEX/>YEX/>YEX / >YEX/ >Y +X!Y9/  +X!Y 9/012!4&'!!!!267!!ZƲIf!ljL":6ZS:NW]YD"#$9EX/>YEX / >Y" 9"/ +X!Y  +X!Y а"а"а//]] +X!Y +X!Yа01!327# '#535#536!2&# !!!~iU$|=i$^[MO| ߘ|%$) *+9 а #а (EX / >YEX/ >Y $ +X!Y а /@  0 @ P ` p ]а/@ ]0@]pq +X!Y'а'/@!'' '0'@'P'`'p''''''''']@'' '0'@'P'`'p'''' q +X!Y  +X!Y  ааааа/а&а01!#535#53!23#3##'!!%!&'!!!2ө9 ;ӯ7>Xg V>!!>-T(y9EX/>YEX / >Y +X!Y +X!Yа/а +X!Yаа/ +X!Y 901#3#!'327!7!&'!7!.5/41;H_ƕ#7y%tEX/>YEX/ >Y9/а/]`] +X!Yаа аа а а +X!Yа а аааа +X!Y9/01#"'57557!776675t㷐+ęGq==x==AAxAAKD1:` 9EX/>YEX/ >YEX/ >YEX / >Y 9/а/  +X!Y 01!5&&'!!54675!Kh\\iuݔ!a2񰯩0d0ޭ$!3Y !9EX / >YEX/ >Yа/ +X!Yа а / ]_ o ] ]  +X!Yаа а  +X!Y01%!!5#535#53!2!!!!254&'!h6>qLvیL?id(489:9а)а75/7/EX / >YEX%/% >Y а/  +X!Y +X!Y%а/%, +X!Y2 +X!Y01#"&5546 #4&#"32654632#"&532554&"' ;-/872,:#H6zDpDǍ)sGu,9I?K9L8+Y 9/ +X!Yа +X!Yа  +X!Y01"$'5#527663236554&#"YaaYŭeoԕ*M꿟'a7~r08()*9ܰܰEX'/'>YEX%/%>YEX/>YEX"/" >YEX / >Y а /а/ +X!Y  +X!Y +X!Y!% 9& %901!5!46 #"&5326554&#"!!!!U~4]PO[^NM^Z>"$ǧ>ɣcqrg?brrfMKtx nEX/>YEX / >YEX/>Y9/ 99в 9 а +XYа а01##33####5!oHou~apQlNe9EX / >YEX/ >Y 9/ +X!Y +X!Y 9  +X!Y01%#"&54632!327"!&wĬzs^r>nz*zqa''$-EX/>Y01H{''$EX / >YEX/>Y01Wh'!'$EX/>YEX / >Y01[2'#('H$EX/>Y01YU'W()9! /EX/ >Y 9/  +X!Y +X!Y! +X!Y012&&#"'763 #"554"32655&&5s~hIB-:s,}krpkiur s2Us>Ω! 锠n@F(/EX/>Yа +X!Y01!!!!K79 7/EX/>Y +X!Yа  +X!Y01!!55!!#e:xF—T@/ +X!Y01!5!_T7o= 9/EX/>YEX/ >Y9 +X!Y013##5!FBZ&P ^N(7n899 а0EX/ >YEX/ >Yа/а/99 +X!Y& +X!Y,а501# !"554663266324&#"326%327675.#"߬땍UV na2YEX/>Y +X!Y +X!Y01#"'73274632&#"ȴLD0%п?`*7/ Ӹ e *|+,9/а/ а +X!Y +X!Y аа/а/а" +X!Y' +X!Y"*016636327#"''&"636327#"''&"e0BXURXefwXRUXE-fZVOVef~XRUXB028&D&~j&D&F8j'E$~j&D&B<a9/ +X!Yааа/ +X!Yа 01!'7#5!7!5!73!!twS;j[$swQk9>?6(g @9 ]p ]01x(g"@9 ]p ]01 8 9EX/>YEX/ >Y99013#q')WX'  Z79,EX/>YEX/>Yа/а01#3#3:T4kT /а/]0@]а/01'6753ÏISOsgG]:&JJ\^9EX/>YEX/>YEX/>YEX/>YEX/ >YEX/ >Y +X!Y +X!Yа013#5356632&&#"3#!!!*bl>"f2;,:f^EX/>YEX/>YEX / >YEX/ >Y +X!Y +X!Y а01&#"3#!#5356632!DVJޡԗS IfT &*+,9(EX/>YEX/>YEX/>YEX/>YEX/>YEX)/)>YEX/ >YEX"/" >YEX'/' >Y +X!Y  +X!Y +X!Y а!а$а%013#5354632&#"!56632&&#"3#!!!!!Ѽ "f\ W2;,f:'()9EX/>YEX/>YEX/>YEX/>YEX/ >YEX/ >YEX#/# >Y +X!Y  +X!Yа а!а"а%а&013#5354632&#"!56632!&#"3#!!ѼYEX/>YEX/>YEX"/">YEX / >YEX/ >Y" +X!Y  +X!Y аа +X!Yа01#327# #535&#"!#53566323.A1#UY?kߡϽf<43Gnfdk8KELM9EXF/F>YEX?/?>YEX/>YEXJ/J>YEX / >YEX,/, >YJ +X!Y  +X!Y ааF +X!Y?,9 ]? +X!Y:,?9:% +X!Y1,?911],4 +X!YA? 901#327# #5354&#"!4&#"#"&&5!32654&'$54632&546323782#UZʛ[PIRPUIP[JɈxjYSUit~SN-fE3iYT]QF;bdqJ>QB30;+TϔabMR?35=QgNSWr (7=CIOVZ^bfjnvz~A=/EXF/F>Y~I+z{+w+:+ =F9 /а/а/ а/P9P/o +X!YPo9  +X!Y% +X!Y)а)/.а./4 +X!Y=< +X!Y=kаgаcа>а<lаhаdа?а:AаF`а\аXаKбJ +X!YZа^аbаGаINаQ +X!Yv +X!Ywаzа{а~аа01#"&'5463232#4&#"32653#"&53326533!5353!#%5!#53254'5!!5!!5!5!!5!!5!3254&###535#53#53%#535#53#535df~heCbrT24JA@JJB@I\iRXm]h)6q(om56o\~gb[\ [\]v:<]qqqqqq"oooooobyx^u_|x^%IMT F-HENNEpENNEON]QS[6,;qqttSRJtttttt8qqqqqqP)~~~\s $(X!/%/а/!а/9/ ]а/а/ 9 / 9 9а/ 901 4676654&#"36632#33#3#AD$J\:+98][/KR11::'J34@4_YEX/ >Y +X!Y999 +X!Y 901!!56654#"#4632!81_2;ΫHl_1TT>/twFtWs6EX/>YEX/ >Y9/ +X!Y01!#5%3̽v$)yG H9EX / >YEX/ >Y  +X!Y +X!Y01#"&'54632'4#"327jc72e6 TAH!g"#9 EX / >YEX/ >Y 9|/ +X!Y 9 +X!Y  +X!Y01#"&546632#5266'2754&#"atЀ!Uf3YJIZVP˹rpM/hBlcXlSO[O *+,9а(EX/>YEX/ >Y(9(/o((](](q +X!Y(9(9 +X!Y# +X!Y01#"&5467&546324&#"264#"326ZghZ[JHZZY@FFBCDSS)ab(Vq?AA?>GG"sYEX/ >Y +X!Y901!!5!O^ !9 EX/>YEX / >Y +X!Y 9/ +X!Y  +X!Y01"632#"&55!"32654&&gfOA[K`\탎eҴI6W26dJOOOm 9EX/>YEX / >Y +X!Y 9/ +X!Y9  +X!Y9901!!632#"$'!3254&#"kO nVν!\^\;5X(ÕpO_*3 W9 EX / >YEX/ >Y 9/ +X!Yв 9 в 9013#!5!'!3i!LJ/& '(9EX/>YEX/ >Yа/o]]]q +X!Y а% +X!Y%9в]  +X!Y0132654&#"!4632#"&5!32654'#rZUVMEXj]"jMT\K=9@5,X#=қ¥8GK>8V 9EX/>YEX/ >Y +X!Yв9  +X!Y в901!!56654&#"!4632!sWJKJP[L}&;G]K⾬lA9EX/>YEX/ >Y9/ +X!Y901!!5%348DO H9EX / >YEX/ >Y  +X!Y +X!Y01#"&'54632%4#"3267ޤNVSNuuot7 FEX/>YEX/ >Y +X!Y9 +X!Y 901%!!5!5!N6J O1EX/>YEX/>YEX/ >Y901!!!&:em8 j\ SEX/>YEX / >YEX/ >YEX/ >Y999 901!!!!$NpKx~KB ` 9EX / >YEX / >YEX/>YEX/ >YEX/ >Y99  901!!!!31ಯts!1EX/>YEX/>YEX/ >Y9017!!!7  0VX/@74Ps]069EX / >YEX/ >Y  +X!Y 01#"$5!32650"aeZg //EX/>YEX/ >Y +X!Y01!!!5!/]:&l'(9EX / >YEX/ >Y 9 9 ]V]  +X!Yв! 9!]$ +X!Y014.54632!4&#"#"&&5!326bh2 gWM`dtՑ"ssN[9:F8?VqNé@VDf?3^w]R@cL`9EX/>YEX/ >YEX / >Y9/ +X!Y 9 +X!Y01#!!2!3254##:gtqĵn|3- {A)"H#$9EX/>YEX/ >Y +X!Y +X!Y01%#"546324&#"3265oaĴ)*ӆ߆x|xv/J8 '.c5 O 9  EX/>YEX/ >Y 9 / +X!Y +X!Y01!!2#'32654&'#w\eeYeuLCM^@~H !9EX / >YEX/ >Y  +X!Y +X!Y01#"&'546324&#"3265~ޅx|{t/4.cr EEX/>YEX/>YEX/ >YEX/ >Y9901!!!!!r4"!*)c`9EX/>YEX/>YEX/ >YEX/ >YEX / >Y99 901 !!5#!#!sdMc)EX/>YEX/ >Y +X!Y01%!!!"cu LEX/>YEX/>YEX/ >YEX / >Y99 901!!7!!"bj^}b~ y 09EX/>YEX/ >Y  +X!Y01!#"&5!327W""ɻvEX/>YEX/ >Y01!!!"cs bEX/>YEX / >YEX/ >YEX/ >Y 9| /@ P q ]0 @ ] +X!Y01!!!!!!!s3"!:"I[k 9EX / >YEX/ >Y 9 ]  +X!Y +X!Y 9/] +X!Y01%#"532!&&#"3275#5![D ckx~9GV%N1UVD*c NEX/>YEX/ >Y 9 /l | ]9 ] +X!Y +X!Y01!!!!!n@::s+y,-9EX / >YEX/ >YEX"/" >Y" 9  а  +X!Y +X!Y9") +X!Y&)9014.546753!4&#"#5&&5!326bh2ӰgWM`dt˯"ssN[9:F8?VqN@VDf?3ˡ]R@@?v9EX/>YEX/ >Y9/] +X!Y +X!Yаа а в9 +X!Y01!!!5366'#53'&632!4#"!n]G )+ߋCFoܐc dWƷpkWs9EX/>YEX / >Y 9 9/|/ +X!Y  +X!Yаааа01!3#!!!5!5!5'!53!Ӟ/  0)ڧ+c39EX/>YEX/ >Y +X!Y01!!!E]= 9EX/>YEX/ >Y9 +X!Y01!!!'!v8 36@~#y$%9аEX/>YEX/ >Y9|/]0@]@Pq +X!Y +X!Y  +X!Y01!5!#"&'546324&#"3265u`ޅx|{tꂫ4.8 9EX/>YEX/ >YEX/ >Y901!!!!'.8 sO36J` f 9ܰ EX / >YEX/ >Y +X!Y 9/Pq +X!Y  +X!Y01!!5!'!5!7!5!`QtQc|@ 9EX/>YEX/ >YEX/ >Y +X!Y01!!!!!|+]H E 9EX/>YEX/ >Y +X!Yа  +X!Y01!!55!!KD4PAq9аEX/>YEX/ >Y9/9/ аа +X!Yа +X!Y01!5&$54$75!4'6}!}{kkv xnAL] 9EX/>YEX/>YEX/>YEX / >Y 9/  +X!Y а01667!!&!!Wnd"!_t!07 "՜J#U$%9EX/>YEX/ >YEX"/" >Y +X!Y +X!Y а!01%66754&#"!53&5466323!d_{ycg)҇4lf()=,(L tn9EX/>YEX/ >YEX/ >Y +X!Yав9/ +X!Y +X!Y01!5!!632#52654&#"!u}g_qrjo ŽLMaV@R 9EX / >YEX/ >Y 9  +X!Y 9//rq]qrl|]9I] +X!Y +X!Y 901#"532!&#"!!3267Q  J nomo)B8yX_.!z"#9EX/>YEX/ >YEX / >Y +X!Y   +X!Y9/ +X!Y +X!Y01#!!#'7>7!3232654&'. \:+FC" ` A]liYx N_IFVc'9EX/>YEX/>YEX / >YEX/ >Y 9|/]0@]@Pq 9/  +X!Y +X!Y  +X!Y01!!32#!!!!32654&'" ?"YomXٰ:\LIT t\9EX/>YEX / >YEX/ >Y +X!Yав 9/ +X!Y01!5!!632!4&#"!uxg{jo Jn`c| P 9/EX/>YEX / >YEX/ >YEX/ >Y +X!Y 01!!!!!!!|x""Y\cD a9EX / >YEX / >Y  +X!Y 9/   +X!Y +X!Y01!32#!!254##hɱ\!:]9 /EX/>YEX / >Y +X!Yаа  ааа +X!Y017667!3!!!!!!`Hj) f\M6Y9EX / >YEX / >YEX/>YEX/ >YEX/ >YEX/ >Y 9|/]]0@] q +X!Yв9а 01#!#!!3!3!!'^a=PX!WP>HHZ3<<>&%'(9EX / >YEX/ >Y  +X!Y 9% 9%/%] %q?%q%q%ql%|%]9%I%]" +X!Y""]V"]"%9 9 +X!Y014&#"!4632#"$5!32654'#536_WGXhYhl"^V_dē7=A6-Y(#^7AICcv L 9EX/>YEX/>YEX/ >YEX/ >Y9 901!!!!T"1"s&&cR [ 9EX/>YEX/>YEX/ >YEX / >Y9/ +X!Y 901#!!3!!q"mLtH<oO9EX/>YEX/ >YEX / >Y +X!Y   +X!Y01!!#'7>7o \>NF$sy JiD9EX/>YEX/>YEX/ >Y9  +X!Y01!''3267!Z3d1eYEX / >YEX/ >Y +X!Yа 01%3!!!!!|5""M\FEG9EX/>YEX/>YEX/ >Y 9 / +X!Y01!!# &'!327!Exb"hzhr!do` cK P 9EX/>YEX/>YEX / >YEX/ >Y +X!Yа 01!!!!!!!K"A"A"\\cY 9/EX/>YEX / >YEX/>YEX/ >Y +X!Yа а а 01%3!!!!!!!Kf"A"A"M\\ ` a9EX/>YEX/ >Y +X!Y 9 /  +X!Y  +X!Y01#!!5!322654&'#` ]liY_IFVc&?cD R9 EX/>YEX/ >Y9/  +X!Y +X!Y01#!!322654&'#D" ]liY_IFV1C 9EX/>YEX/ >Y9 +X!Y 9 / / r q ] q rl | ]9 I ] +X!Y  +X!Y9013267!5!&#"!6$32#"$'Somnn Jju _Xya_0cc"#$9EX/>YEX / >YEX / >YEX/ >Y 9|/@Pq]0@] +X!Y +X!Y +X!Y01#"$'#!!3632%4&#"3265c"$+ޅy{xu/8$ .6 c 9 EX/>YEX/ >YEX/ >Y9/  +X!Y 9 +X!Y013&5463!!#33#"6 ޿.XXQ_ \ĤseCO N  R9EX/>YEX/ >Y 9 / +X!Yа а  +X!Y01#!#53!!3D/ѷ9/EX/>YEX/>YEX/>YEX / >YEX / >YEX/ >Y 9/ +X!Y9 +X!Y в9013###!#!!3!3!^a=PX!WPbMHHZ3<<cm9/EX / >YEX/>YEX / >YEX/ >Y 9 / +X!Y 9 +X!Y013###!!3!q"mLVMH<cd 9EX/>YEX/>YEX / >YEX/ >Y9/а +X!Y9 013533!!##5#!!@3Lt7@"H j9EX/>YEX / >YEX/ >YEX / >Y9/ +X!Y +X!Y 901#!!5!3!!*qlLtH<@"/019#EX / >YEX/>YEX/ >YEX/ >Y9/, +X!Y а +X!Y" +X!Y&901"'# 54663"3&'543236754&#"뷗gxġBcTQISLY 6>A820Xߨ2k9O&&8i 9/EX/>YEX/>YEX / >YEX / >Y 9  9 9 +X!Y 901!3##!!$NpKxM~KB c^ 9/EX/>YEX/>YEX/ >Y +X!Y +X!Y а а а 01%3!!!5!!!!5!MFFEP9EX / >YEX/>YEX/ >Y 9/ +X!Yа01!!#5&&'!5367!EF>"HIBB!ha]  cbG9EX/>YEX/ >YEX/ >Y9/  +X!Y01!63 !&&#"!c"xbiwdvdbi\"g #$9 EX/>YEX/ >Y9/ +X!Yа а +X!Y +X!Y01 '&&53>32!!27"!54&LM 2F1ݮv   _v |5,ш{s|@a9EX/>YEX/ >Y 9 / +X!Y +X!Y  +X!Y01 #"5!&!"'76267!&!J-ΘFt a5 m9EX/>YEX / >Y +X!Y9 9/ +X!Y9  +X!Y901!5!#"$5!32654##5wjݘ!gXY`ф>>IE@~ !9аEX / >YEX/ >Y  +X!Y 9|/0@]]@Pqq +X!Y +X!Y01#"&'54632"!&&267!~j|dd~~/4Szz!ww@?&޲$'(9EX/>YEX / >Y 9/_]]]]qа//?]]] +X!Y] +X!Y]   +X!Yаааааа!в[!] !]# +X!Y_#]01!!!!!!5367#535'#535&632!4#"shq!G *ߋCFΨ*-" D 9 ͼpkG"#$9EX/>YEX / >Y" 9"/"]"q"]" "] +X!Y]  +X!Y а"а"а//?]]] +X!Y] +X!Y_]а01!327#"$'#535#536$32&#"!!!fh]Rvtl uneh'bmtNMʺL!Lc'()9ааEX#/#>YEX&/&>YEX/>YEX/ >YEX!/! >Y а /а/@  0@] +X!Y  +X!Y +X!Y #9%#901%!5!46  &5326754&#"!!!!E6ZSPX]ON]4"!ۖ<WebTGWdc[*)( !9EX / >YEX/ >Yа/б +X!Y@ o]а а / ]  q / ] +X!Y@ o  ]а а  +X!Y01%!!5#535#53!2##!32654&##IWddX℄A(ԪAZHFV0 $%&9EX / >YEX/ >Y 9|/]qP`q] 0r  +X!Y 9# +XY#9 9V]5E] +X!Y013254&#"#4632#"&5332654'#Rw91*;ͩD4<5z\X#*f{wkw2)ir"15#\5 JEX / >YEX/ >Y 9/ +X!Yа в 9 9013##5!'335hXX eF1Er 9EX/>YEX / >Y +X!Y 9/] +XY9 9  +X!Y 901!!632#"&'33254&#"W6?Eeh;=23 }z{eFq3= F%h9 EX/>YEX / >Y +X!Y 9/] +XY]  +X!Y01"632#"&'5463"32654:EkvO$t-B%VZAyt=F1&{>1c33EX/>YEX/ >Y +X!Y901#!5!LX^oG $%&9аEX/>YEX/ >Y#9#//#]?#ro#q#r ##] +XY]#9 #9 +X!Y +X!Y01#"&547&546 4#"3264#"32oq jg90/9WUWU@r8YEX/ >Y9/] ,] +X!Y +XY] +X!Y01#"&54632##5266'2754#"CP{j^6T?!i,;/4x;٣A&MuF7kH@9/] +X!Y01!5!HEXL /а/а/@?O_o ]qа/O] а01!#4632#"&72654&"uUTspWXrp4L00L4NmlOMjkL&22&)22c ]EX/>YEX/ >Y 9 / r9 I ] +X!Y +X!Y +X!Y01!!!!!!f6YJN+7DEF91а;EX(/(>YEX/>Y(+а+/ +X!Y(9/9/7 +X!Y79!(91 +X!Y; +X!Y(B +X!Y01##"'3#"&&5467&547&&554$32!32654#'326554&"}YEX / >YEX/ >YEX/ >Y 9 9 +X!Y  +X!Y01%#"''3273#32675&&#"Dp nls Zm l\cl <4ԑBc 9EX/>YEX/ >YEX/ >Y9/ +X!Y 9 +X!Y01!!2!&'54'%3254&#!@zI<vl9q7EU9/kek: TEX/>YEX/>YEX/ >YEX / >Y9/ +X!Y 901#!!3!!],dn?SGOqN TEX/>YEX/>YEX/ >YEX / >Y9/ +X!Y 901#!!3!![!QNz@ S 9EX/>YEX/>YEX/ >YEX / >Y99901!!!!,tI{."qF S 9EX/>YEX/>YEX/ >YEX / >Y99901!!!!!4Up& c4 H9 EX/>YEX/ >Y  +X!Y  +X!Y013!2#326754&'coo7E<@RP 9EX / >YEX/ >Y 9  +X!Y +X!Y 901#"532!&#"3267Q  o~mo)B8JX_c" 9аEX/>YEX/ >Y9/l|]]qrq?qqr] q9] +X!Y]V]9 +X!Y +X!Y013!2#32654''3254&##c[UbhT\㲯UWX\C7zF; GEX/>YEX/ >YEX/ >Y 9 / +X!Y 901%!!!!!6=R8%sIEX/>Yа/01#566AONvdjn V/p]а/@ /?O] +X!Y а /а/а/@ /?O_o]01#"&533265%3#QJKPzzij6:<4/]p]а/@/?O_o] а / +X!Y +X!Y а|/q@/?O_o ]а/@/?O_o]/01#"&#"'46323265'3#_E9)&x^E+((ѴLiC1%"JlB1$ O/p]а/а/@ /?O]9//9 а /а/013#'#3#ؗ6~~Ea| ]/p]а/а/@ /?O]9//9а/ а /@   / ? O ]01#'#%3#3aח``/p]а/@ /?O]9//а/9а/а/ в 9901#'#%3'6654#72aϟ >7yC;솆gr/c3 9EX/>YEX/ >Y +X!Y01!!!!!$]jn Z/p]а/@ /?O] +X!Y а /а/ а /@  / ? O _ o  ]01 &533265'3#ļQJKPo˯hi6:<4j# W/p]а/@ /?O] +X!Y а /а/а/в9901#"&533265''6654#72#ONJQG@KHgg1:92k5jPG-;5GEX / >Y015 EX / >Y 01E!EX/>Y01F"EX/>Y013#EX/>Y01G$EX/>Yа01C%EX/>Y01X&P 9EX / >YEX/ >Y 9  +X!Y +X!Y 901!"$'54$3 !&&#"3 $ߠ"6"E<L}0 X&#_$%9EX/>YEX/ >Y9 +X!Y +X!Y"9"/! +X!Y01%#"$'54$3 !&&#"32675#5!& rHư(1}֯dv,)O9BALt}.) H9EX/>YEX/ >Y  +X!Y  +X!Y013!2326554&'JϜ)4&X|H !9EX / >YEX/ >Y  +X!Y +X!Y01#"$554$32%4#"325|Ѻѯ//ȠǠQ(O"X|!H"#9EX/>YEX/ >Y +X!Y +X!Y01%#"$554$ 4#" 5|zJNҩ.x,ţFbũSR  3EX/>YEX/ >Y9/ +X!Y01!!5%3Z4kX:[ 9EX/>YEX/ >Y +X!Y99  +X!Y 9901!!56654&#"!46632!:6C<]RXhy݌](9a9AGcNth`o \9 /EX/>Y +X!Y9 9/  +X!Y +X!Y901!5!#"'732654&'#5awۚ9bgX,t SEX / >YEX/ >YEX/ >Y +X!Yа/ 9 в 901%3#!!'!!Ф %~`-]%h6`9/EX/>Y +X!Y9/ +X!Y9 +X!Y9901!!672#"'732654&#"J;%RX>Oyny9}+x/3S<2&/EX/>Y +X!Y901!!5!2&;j /p]а/@ /?] +X!Y а /а/а/@/?O_o]а/ +X!Y +X!Y 01 &533265#"&#"'46323265̿PKIP_E9)'x^F)&'kk4884LiC1%"JlB1$Z{/а/а/01!!{!2@o !9EX / >YEX / >YEX/ >YEX/ >Y  +X!Y 9/ +X!Y +X!Yа +X!Y  +X!Y01!!"&'5463!!!!!7'"n9H6|4  .`_$V%&9 /EX / >Y +X!Y 9|/ +X!Y  +X!Y01 #"546632#"'72754&#"2w~ዜ6xƕQwmaxtXQW>-VxK ( /EX/>Y  +X!Y  а /01#"'7325dzMA+7x־ 71L(EX/>Y01a/NEX/>Y014|MEX / >Y 01T6KEX/>Y01NDOEX/>Y013eeEX / >Y01_JEX/>Y01VUSEX / >Y01_7EX/>Yа&01RJJEX/>Y01K:K::d:& :c1!aEX/>YEX/ >YEX/ >Y +X!Y9/ +X!Y а  +X!Y01%32654&##57&#"!6632#"'@?AIpiS;NՄd▦կi0QDN@;$r|:L~H9EX / >YEX/ >Y  +X!Y +X!Y01#"546324&#"3267~܂߂vuws>>  󥠶?83EX/>YEX/ >Y +X!Y901!!5![oRf9 /EX / >YEX/ >YEX/ >Y 9 9  +X!Y +X!Y01#"'#!632%4&#"326Rʲk!dun8:kvҍyuhCiDNM9EX/>YEX/ >Y +X!Y99 +X!Y01%267!#"5432!&&#"BPihSiqYH)/TiD&f9/EX/>YEX / >YEX / >Y 9  9  +X!Y +X!Y0146632!#'#"%327&#"Dn˃f!m!xj=YEX/>YEX/ >YEX / >Y9 9 +X!Y9 +X!Y  +X!Y0143273#"'73265#"%327&#"Dǵf.sd!zh<9jz'-mK9s1fb<`NE9EX/>YEX / >Y +X!Y +X!Y0146632#"532654&#"<'!onpn' 2 o`QNp9 EX / >YEX / >YEX/>YEX/ >Y 9 9  +X!Y +X!Y01#"'!!6324&#"326Qmɂe i|i8:h{rla5bD`&Nm9EX/>YEX/>YEX/>YEX / >Y 9  9 +X!Y +X!Y0143273!#"5327&#"Dˬje!{h;:j{&.q&o1_^HNq 9EX/>YEX/ >Y9/]/q  +X!Y +X!Y 9 +X!Y01"5546632!3267"!54&s~OG:7DˠVmc)sw' 07xukbdBVN#!$%9!EX/>YEX/>YEX/ >YEX / >Y9 9 +X!Y9 +X!Y! +X!Y0143273#"'732655#"%327&#"Bŵf-kf"jd87fj'(mF4s,okfV&3dEX / >YEX/ >YEX/ >Y 9 9 +X!Y! 9* 9 1 +X!Y01"&54767&&54632653!''27'76654&#"Q,qQ?ƝƳ64;[G,:S.&).0>166oU/GSKzu#Tp۔;N*:6=!@&6%#2: WEX / >YEX/ >Y  9 / +X!Yа +X!Yа  а а01!!57!7rr"G!!zG9EX / >YEX/ >YEX/ >Y 9/ +X!Y +X!Y 9/ +X!Y   +X!Y 901!!!'!!!!!3E  hH:c Y9 EX/>YEX / >Y 9/ 9/  +X!Y  +X!Y01!32#!32654&'c"}ۄ"ZghU׮SJHU@~ )j*+9а&EX/>YEX/ >Y99 +X!Y#9$9& +X!Y01#"'#7&'5463273&#"!4'3265QPu=V|;Wt:Jqƚ6MophK1dI/69EX / >YEX/>YEX/ >YEX/ >Y 9//] +X!Y 9/ +X!Yа аа01#!!!#535!!5!3!5!Z3ZZ" Z3Q:QcKr[9EX / >YEX/>YEX/>YEX / >Y +X!Y 9 901"'73255!!!OA-7x5"!K *)On_EX/>YEX/ >Y9/] +X!Yа +X!Y +X!Y013#53!2#326554&##3/пDۑwCĮoD|dEX/>YEX/ >Y9/oq] +X!Yа +X!Y +X!Y013#53!2#326554&##3/пDۑwCĮoD|-v 9/EX/>YEX/ >YEX/ >Y/]]9/ +X!Y9  +X!Yа01#63 !4&#"!#535!3s`P]9߻!gK]Yb(NEX / >YEX/ >Y 9/ +X!Yаа  +X!Y 01#!#53!5!!3ĸHBD9EX/>YEX/>YEX/ >Yа/ +X!Y9/ +X!Y  +X!Yааа013#3#327# 5#535#53ɹ.A0%UZƞDԛ<41 \6&%D6EX/>Y 01\6&%u6 / 01\6&%6EX/>Y01\3&%4 /01\ &%j6\&%_ /ܰ01\&%'Z / ]/]/]01V1&'yR9&)D9EX/>Y 01R9&)u9EX/>Y01R9&)9EX/>Y01R &)j99&-D9EX/>Y019&-u:9EX/>Y019&-49EX/>Y01 &-jO9"3&24 /01V.6&3D6EX / >Y 01V.6&3u6EX / >Y!01V.6&36EX / >Y#01V.3&34EX / >Y"01V. &3j6t6&9D6EX / >Y01t6&9u6 /01t6&96EX / >Y01t &9j66&=u6EX/>Y 01D&ED /*01D&Eu7 /,01D&E0EX/>Y.01D&E9 /501D&EjKDY&E_ /3ܰ601D&E'?,q0,]p,]P,]p7]7qP7]07]=q0=]p=]P=]01B1N&GyAH&ID{ /01H&Iu0 / 01H&I)EX/>Y"01H&IjD&DtEX/>Y01&u(EX/>Y01&"EX/>Y01&j=i&RQ /01BC&SD /01BC&SuP /01BC&SIEX/>Y01BC&SR /%01BC&Sjdh&YDEX/>Y01h&YuLEX / >Y01h&YEEX/>Y01h&Yj`K&]u /01K&]j,\&%p4EX/>Y 01D&Ep( /*01\,&%6EX/>Y 01D&EdEX/>Y-01Z\w9EX/>YEX / >YEX/ >YEX/ >Y  +XYа/9/ +X!Y901#327#"&547!!!;!TJPB!/I\dad*lP*Q5A,obY!o!DZN-89:9/EX/>YEX)/)>YEX/ >YEX/ >Yа/9 9 / ] +X!Y 9|/)$ +XY. +X!Y 2 +X!Y01%&'#"&5467354&#"!46632#327#"&542675#" iMSIStԄ*0JPB!/I\dp@llL)3u>KZF=^[ɶ+O*Q5A,ob906FV>&'u>EX / >Y01B&Gu& /01V>&'>EX / >Y01B&GEX/>Y01V6&'OEX / >Y"01B&G  /"01V?&'> /!01B&G7 /!01:&(09 /01B&H+/01R&)p|7EX/>Y 01H&Ip! /01R/&)9EX/>Y01H&I]EX/>Y!01R1&)pJ /01H&I /#01ZR9EX/>YEX/>YEX/ >YEX/ >Y9/:J] +X!Y +X!Yа +XY +X!Y01!!#327#"&547!!!!JPB!/I\dt^@wz*Q5A,obVHyN$,-.9% /EX/>YEX/ >Y" +X!Y"9  +XY)9)/)/)q_)q)] +X!Y$9% +X!Y01%3327#"&547&554632!327"!5&&>sJPB!/I\d?~Ol^Vkd[5*Q5A,obaDvjytl`iR:&)9 /01H&IA /"01^>&+>EX / >Y#01EV"&K3EX/>Y+01^4&+>EX / >Y$01EV"&KgEX/>Y*01^6&+O /&01EV"&K /,01^&+EV"&K40 /+01#9&,9EX/>Y01h|&L| /016&-=7EX/>Y01&+EX/>Y01&-p,7EX/>Y01t&pEX/>Y01/&-h9EX/>Y01t&VEX/>Y01\&-Z&M1&-J / 01N&-.UmK&MN(6&._6EX/>Y01K&EX / >Y01:%&/o$Z&OK+6&0u.6EX/>Y01~&PuEX/>Y01+&0q[&P'+&08EX / >Y01~&P+&0~)&P"6&2u6EX/>Y 01i&RuO /01"&2iN&RT"7&26EX/>Y01i&R`EX/>Y01&R^ /01V.&3p4EX / >Y 01BC&SpA /01V.,&36EX / >Y"01BC&S}EX/>Y01V.5&3X6EX / >Y!ܰ%01BS&S /ܰ016&6uf6EX/>Y01o&VuEX / >Y01&6|PN&V7&6w6EX/>Y01$&VEX/>Y01E6&7u6 /*018&Wu! /(01E6&76EX / >Y*018&WEX/>Y(01E2&7y8)N&Wy(E&78N&W)E7&76EX / >Y,018&W2EX/>Y*01(&8P ]01 D&X(9&8y 2D&Xy(7&86EX/>Y 01 Q&Xpt3&94 /01h&YNEX / >Y01t&9p4 /01h&Yp=EX/>Y01t,&96EX / >Y01h&YyEX/>Y01t&9I /ܰ01hY&Y_ /ܰ01t5&946 /ܰ01hO&YEX / >Yܰ01tW !9/EX/>YEX/>YEX/ >Y9 +XY +X!Y01327#"&547 5!32Ќx8:B!/I\d",y?;#G.A,obH6? hZ:w !9EX/>YEX/>YEX / >YEX/ >YEX/ >Y  +XYа/9 +X!Y01!327#"&547'#"&'!327!JPB!/I\dk!7"*Q5A,obXeEf#6&;6EX / >Y01&[EX / >Y016&=6EX/>Y 01K&]EX/>Y01 &=j6I6&>u6EX/>Y 01J&^uEX/>Y 01I.&>jGEX/>Y01J&^EX/>Y01I7&>6EX/>Y01J&^+EX/>Y01IB&uBEX/>Y01B&um /?01]5&uEX/>Y,01BrC&u+EX/>Y'014&0&b,]qor/]qq]014&0&b,]qor/]qq]01 /&&" ]01&3DEX/>Y 01&3uhEX/>Y 01&3aEX/>Y01&3jEX/>Y01&3j|w&3} /ܰ01&3'@4R&1yfc&(DEX/>Y 01c&(u9EX/>Y01c&(2 /01c&(jM&DdEX/>Y01v}&uEX/>Y01&EX/>Y01&j-cr&EX/>Y 01@~&DEX / >Y!01@~&um /"01@~&fEX / >Y$01@~&o /+01@~&j]0&DEX / >Y01]0&uREX/>Y01]0&KEX / >Y01]0&jfO&u+EX/>Y 01&3pYEX/>Y 01&3EX/>Y01Zw9EX/>YEX / >YEX/ >YEX/ >Y  +XYа/9/ +X!Y901#327#"&547'!!!@JPB!/I\dM=R %s*Q5A,obY%@R&1uc /01@R&1\EX / >Y01@R&1H/ /01@R&1t /014&0 /01c&(p*EX/>Y 01c&(fEX/>Y01c&(/ /01cZ9EX/>YEX/>YEX/ >YEX/ >Y9/ +X!Y +X!Yа +XY +X!Y01!!#327#"&547!!!!f6JPB!/I\dt(Y*Q5A,obVc&(J /01I[&jEX / >Y#01I[&EX / >Y"01I[&V/ /$01I[&P#]01cs&lEX/>Y01&EX/>Y01d&p EX/>Y01d&FEX/>Y01%Z&t&/ / 01 b&EX/>Y01cu&P]01c&uEX/>Y01c&P ]01c&}EX / >Y01c&Q_]01cr&uEX/>Y 01cr&cr& /01@~&p^ / 01@~&EX / >Y#01@~& /"ܰ$01cL&u  /01cL&&P]01cL& /01:&uJ /)01:&CEX / >Y+01:2&yP:&[ /+01 /&:P ]01 /&D / 01 </&y9 ]0&T /01]0&pC /01]0&EX/>Y01]0w&} /ܰ01]U& /ܰ01]0W 9 /EX/>YEX/>YEX/ >Y9  +XY +X!Y01327#"&547&&'!32650|YB!/I\d+"ae ,?IA,obM> Zg&EX / >Y01O&$EX/>Y 01O&j?7&u2EX/>Y 017&/ /017&C /01\A&%oRB&)#?&,C&-iBA&3SA&=dA&r& /ܰ а01\%&R)I>#,-%/~1"2V.34(8=< &-jO9 &=j6I|A&' /#01_/A& /)01laA& /01o,&EX / >Y01q&/ܰа!01:BCNS`N:v :ZKJJj9EX/>YEX/>YEX/>YEX/>Y9  +X!Y9 +X!Y012!7&&''!&#'6m2a%-H !$Xog@@w.AOJhu"Ye33s&jNq&jXBCA&S /01q<&EX/>Y01SA;& /%01R &)j9=9&ux9EX/>Y01E'f()9EX / >YEX/ >Y 9 9  +X!Y +X!Y# 9% +X!Y014&$'&546632!4&#"#"$&5!!26ux[~rnz- kx~U[e1vhq΃do]LG`*M䪽{֍W- &-jO9(.:,%6&/ud6 /01/&9EX/>Y01\%&=R)x/&9EX/>Y 01~1#,V.3$4V'(8<DNEHNIo&EX/>Y 01BCNSo`=NTBN?9EX/>YEX/ >Y +X!Y +X!Y01%267!#"5432!&&#"1Pdv| dRegfXIne'*TiK:]:\H&IjDoP&uEX/>Y018NWmM&j=KN&uSEX/>Y01K&]EEX/>Y01#6&;D6EX / >Y01&[DHEX / >Y01#6&;u6 /01&[uEX / >Y01# &;j6&[j6&=D6EX/>Y 01K&]DcEX/>Y01? @O|&-K&4EX / >Y01:y~6&1u6EX/>Y01o~&Qu / 01w\&%mDN&ER9&)D9EX/>Y 01x9&D%9EX/>Y 01H&ID{EX/>Y01o&DEX/>Y 014D": &\%EX/>Yܰ01$&EX/>Yܰ01BKN&S]VK &3]C &QE!M&Q*V(&'QB(N&GQ@=_:-/&=9EX / >Y01'&EX / >Y01-\,&%6EX/>Y01D&EdEX/>Y-01\ &%j6D&EjKIBPR/&)9EX/>Y01H&I]EX/>Y!01K.&Xj NON&jF &j$9'&jC&j>E&j8x&p7EX/>Y 01o&pKEX/>Y 01x &j9o&jnV. &3j6BC&SjdZ2@ANZ2 &j7@A&j[>&j??&j0&p7 /01K&]p /01 &j9K&]j,8&29EX/>Yܰ01K&]EX/>Yܰ01  &j9X&jct &'-j9&'ijzBH\&%DN&E3\&%4 / 01D&E /*01a&%7EX/>Yܰ01D`&E74EX/>Y-ܰ301\&%8EX/>Yܰ01y_&E84EX/>Y-ܰ201\&%9 EX/>Y ܰ 01DN&E92EX/>Y+ܰ101\&%:EX/>Y ܰ01D&E:4EX/>Y+ܰ401\6&%'6EX/>Y01D&E&03EX/>Y.01\&%<7EX/>Yܰ01Do&E<`EX/>Y-ܰ901\&%57EX/>Yܰ01Do&E5`EX/>Y-ܰ;01\8&%=.EX/>Yܰ'01D&E=Z /-ܰ801\&%P3EX/>Yܰ01D&EP`EX/>Y-ܰ:01\,&%'6EX/>Y01D&E&d3EX/>Y-01R&) HN&IR&)7 / 01H&I /01R6&)7EX/>Y01H&I2 /)01(&)7EX/>Yܰ01H`&I7-EX/>Y!ܰ'01R&)8EX/>Yܰ01r_&I8-EX/>Y!ܰ&01&)9EX/>Yܰ01HG&I9+EX/>Y!ܰ%01R&): EX/>Yܰ01H&I:-EX/>Yܰ(01R9&)'9 EX/>Y01H&I&)EX/>Y"01,&-7 /01u&y /01&-m&Mf V.&3BCN&SV.&3#4EX / >Y01BC&S /01Vo&37EX / >Y"ܰ(01B`&S7MEX/>Yܰ#01.&38EX / >Y"ܰ'01C_&S8MEX/>Yܰ"01V.&39 EX / >Y"ܰ&01Bg&S9KEX/>Yܰ!01V.&3:EX / >Y ܰ)01BC&S:MEX/>Yܰ$01V.6&3'6EX / >Y#01BC&S&IEX/>Y01P9&u9EX / >Y)01@&uQEX/>Y%01P9&D9EX / >Y(01@&DEX/>Y$01P&"7EX / >Y'01@&EX/>Y#01P6&7EX / >Y*01@&SEX/>Y&01P&@&t&9h:&Y/t&94 /01h&Y /01tTB&uBEX/>Y01h7&uPEX/>Y01tTB&D&BEX/>Y01h7&DEX / >Y01tT&,@EX/>Y01h7p&EX / >Y01tT?&@EX/>Y01h7&REX/>Y01tT&"h7&&=":&]r&=4 / 01K&]i /013&=4EX/>Y 01K&] /01B&H'&f:Cw!`q] q]/]]01(&8QO:&Q &QX:&Q=&Q oP:&Q*&LQ2N&MQhLdEX/>YEX / >Y 9/9/  +X!Yаа +X!Y  +X!Y01#3 !#535!332654&'-ݫ.srAA@~jcsdEX/>YEX / >Y 9/9/ +X!Y аа +X!Y  +X!Y01#3 !#535!332654&'-ݫ.srAA@~jcs= KEX/>YEX/ >Y 9 / +X!Yа а  +X!Y01#!#53!!3ԟsjcP: KEX/>YEX/ >Y 9 / +X!Yа а  +X!Y01#!#53!!3ߩ@;ŷNvEX/>YEX/>YEX/ >YEX/ >Y9/ +X!Y9/ +X!Y а в901#!#535!3#3!!q,Édn?SJGObzEX/>YEX/>YEX/ >YEX/ >Yа/] +X!Y9/ +X!Y а в901#!#535!3#3!![!QNz@W 9EX/>YEX / >YEX/ >Y9/ +X!Yв 901#!#53!!3ϽfyI-/Hyvp _:d 9EX/>YEX / >YEX/>YEX/ >YEX/ >Y +X!Y 9 а01%#!#53!!3pŊ..Ҙ TxdEX / >YEX/>YEX/ >YEX/ >Y 9/ +X!Y 9а в 901#!!#53!!3pi[YYbqj :dEX / >YEX/>YEX/ >YEX/ >Y9/ +X!Y9а в 901#!!#53!!3ozok65v0TзCM_/M6&*&fP p ] q01mT@Fff@FI@37_iBxcsKV,sK^>&+u> /#01EV"&Ku: /)01"6&2D16EX/>Y 01i&RDEX/>Y01\#&%5EX/>Y ܰ01&EEX/>Y+ܰ/01<R&&)L8EX/>Y ܰ01&IEX/>Yܰ#01Q&&-8EX/>Yܰ 01?&EX/>Yܰ 01V.#&35EX / >Y ܰ$01C&SEX/>Yܰ01#&6'5EX/>Yܰ01[&VkEX/>Yܰ01_#&9o5EX/>Yܰ01&Y EX/>Yܰ01:A&d&& o>&F&(g B&H&(( P]]01B&He#&,+ h&L %6&/ud6 /01oZ8&Ou8 /01%&/>oZ&O(+&0 m&Pf ~&1 o~N&Q "&2+iN&R V.&36UEX / >Y"ܰ501B&4uhB /01o`=&Tu /01&6 bN&V[ E&78N&Wh(&8 D&Xt&96UEX / >Yܰ'014?&:@EX/>Y 01 &ZEX/>Y 014&: :&Z^ #&; :&[G I&> J:&^d t&3Fq&3!&(<&<!&<U& {&<b& 3c"2c(7csvcuccr@~c5 /O\&j-O&j?c&(jMc&uEX/>Y01:v&j- ycu&u EX/>Y01i&EX/>Y013c"2cc(cv&EX/>Y 01ccs@~c|c5@R1 /\>)EX / >YEX/ >YEX/>Y  +X!Y 9' 9'/'q'']?'q'q']'qo'']'q'r'r& +X!Y&'9в 9  +X!Y014&#"!4632!&&5!32654'#536_WGXhYhlߜ"^V_dē7=A6-Y(#^$7AICcPm/EX / >YEX/ >YEX/ >Y  9| / ]0 @ ]@ P q +X!Y  а +X!Y01!#!!!!!3P3"!e:"@@+R` 9/EX / >YEX/ >YEX/ >Y 9  +X!Y +X!Y 901!&'532!&#"3267Q Ţߵ o~mo-(>8JX_O &Q cv&pkEX/>Y 01i&pR /01Av&&sug@~&uum:&Q&DO&u&jO&Dv`\&%DjN&EdR&)H HZN&IZ&3&cb&(m:&f N2QQQQQ<KH{r}+I; P  f / 0 u ' /&f3d'A[8W&k4PW]Z#g4qn2S5A_ $` r !!>B>>?g?@@c@AAIAABBrBC%CDD`DEUkĂĘĪļ1H_vōŘţŵ*AMYnzƆƒƩƻ):Qgǒǩ)@VbnzȆȝȳ 3E[rɈɛɮ8ʤʻ "9Pg~˔˫˽1AXơ̦̹̅2H_k͙͂ͫ "-DZq&7Mcu 2CYpЇОЩк /FRduьџѱ):FWh~ґҤ-8Oar~ӊӖӢӮӺ $,4Up݊ݢݹ*A\vނގޠ޲ !8Pgߖ߱6H`w9Pg~ 2D[r+=Ofwa@NRZnx ":Rj*6BNZfz ":L^jv'3?KWco{%TZo !'EoooDonXo3l?!w)?~y)z)@oowdv$} uIy{c~mo M Z@$ ZBwwlwdYGVksx0p8x8ovoql;lE'3K%:@1ol\lm^*UUW)"-$Xqn{h2@(8lD5oKPR%IBtZMA$-Aym@?]F<FB>j(y[)) \0nnmh:BG?pEH9BN9b,eW~ljP5XWf%u%oY%8(%uD3d* tDaHW[Y9r7_^Oe6"xZZ4:mm,8,W5\7G(H(O(1'O(O(3(/(8((O17Md]Q I:vcAxc@cccdc vcIcI:@c@JcBHAAJ @e^c cc!pJ>cicncFc_c ;c{c1c67 cc  @P Fc1@L>@@G;c,(05EF3GCc;I9+Gq0@quc@mcjEcjjG5EF3GCjXXrXXhXW,kh.<jZ@`7a4TN3_V_AA111mcL>8oFDDD<oDSHBf5VPc@06cnQQ(bbbbbbb<VUUUUVVVVVDtDtDtDtJDJDJDJDJDJDJD,BSHSHSHSH1111{iBBBBBzhzhzhzhbJDbJDbJD<V,B<V,B<V,B<V,B3BSHSHSHSHSHs^Es^Es^Es^EzhU1U1U1UU3mx(AFoU~U[U~U~{i{i{i{VBVBVBoPE8E8E8E8E8( ( ( DtzhDtzhDtzhDtzhDtzhDtzh#IJIJIJB]BuuQ @ccccvc@@@@@]]]]M@@@@ucccccIIIIc%t dcccccccc@@@vcvcvcI:I:I:I:Q Q Q ]]]]]]MM171717bUiVtrbIUV)(UIs_l^qB ^qB^qSuEUUx(+ buxV)<V(JDSHoBo,BSHZo8m1###K?@Z|A:obJDxSHo4D$ B VCE<V,BU'UbJDbJDBSHK<N<N'CExoxoVBZ@Z@4>)?   nXBbJDbJDbJDbJybJDbJDbJDbJDbJDbJDbJDbJDSHSHSHSHSrSHSHSHU1UmVBVBVBVBVBVBP@P@P@P@P@DtzhDtzhthththththB(nXuZozhuZ?[s_bmF@7ixsVss^E{ibJ<SU1V[D_zo3B3BzhFoFoUmo{iV)obE8( Dt; ; #IJKUbmcc17cvdccc@xcQ MdMccI:v dcnmcccccc@cxc@Q dJ>c@M1cnAvP@I:MbJDSHc1ml 05 33fP [ GOOG f :                           nt ~%'0S_g~7Y #%/EOboy?M    " ' 0 3 : < D t  !!!!"!&!.!^"""""""+"H"`"e% &(1T`h7Y #&0FPcpz>M    % 0 2 9 < D t  !!!!"!&!.!["""""""+"H"`"d%eD# (%^S~|}rsolkiaYP!ߔyMߪެߞߝߖߓ߇kTQ 222tt~lt0Rb{z|  }~+,-.   ()*+,-./012345678wxLM}~NOPQRSTUyzVWXYZ{|[\]^_opv,K PXYD _^-, EiD`-,*!-, F%FRX#Y Id F had%F hadRX#eY/ SXi TX!@Yi TX!@eYY:-, F%FRX#Y F jad%F jadRX#Y/-,K &PXQXD@DY!! EPXD!YY-, EiD` E}iD`-,*-,K &SX@Y &SX#!#Y &SX#!#Y &SX#!#Y &SX#!@#Y &SX%EPX#!#!%E#!#!Y!YD- ,KSXED!!Y- ,"E- ,#E- ,' SX@cTX"pY#SX TX"pYYY- ,@ ZX#D#DY- ++ +1(+D:, +1(+w\:#+v`K6+% +B6*+:/"+ 6,"+ [K:*+ ͠rE+ + E}iD0ssPttpu?s_ss/tOtottttu?u_uusousst_tttt?u/sos/ s? s*N`1|-` ! :  ^  ^ j r r &  @   &$ \J TCopyright 2011 Google Inc. All Rights Reserved.RobotoBoldRoboto BoldVersion 2.137; 2017Roboto-BoldRoboto is a trademark of Google.GoogleGoogle.comChristian RobertsonLicensed under the Apache License, Version 2.0http://www.apache.org/licenses/LICENSE-2.0jd(Y%>E^yy  "$%*+3466;<ADGHKMQQTX]^bbddhhjlnnpp  ((++--03_cz|  ,$%&'y 2LDFLTcyrlgreklatncpspkern $H %&'()*+,-./0123456789:;<=>eg/3579;ACEIKLXYz{}   "$%')+- }  Az<<`>P?<A.>f?v?v??`?v?vA.?  ?@@<0=A H>?< ??>??@6<@P?A.=>PA.>P@?z. B" #?v%0&<0)P>@@9?=<<0P>P>P>P>P>P>P<>>>>?v?v?v?v?vA.A.A.A.A.=>>>>>>><<<>>>>@@>P>>P>>P><<<<A.><><><><>A.>A.>??????@=@=AAAAdAdAjARARARARARARARAdAdAdAdAdARARARAdAL<<<<AdAdAdAj>P>?v?vA.=>P?>A?v?v??v?vA.??=<0?v=?>@>>=?v?v??<>P?=>?v?vA.?<?<0><>?@<<<@@@@=@<<<?v?>P>><@@<=@?v<0P>>P>><<<<0>?<@<@<@>P>>P>>P>>P>>P>>P>>P>>P>>P>>P>>P>>P>><><><><><><><>A.>A.>A.>A.>A.>A.>>=@=@=@?=P>>?vA.>???A.A.?v????`?v??v?A.????@@@@@AA.ARAdARALAjALARAdAj %*,- /6 88:?EFIJLL OO!QT"VV&XX'Z](__,-./0589:<=>FGRbcfhk  n  op""s.0t35w77z99{;;|CD}TTVVXX\^0033EEGHz{}}  "%''))/8CGMOTTeimoxx &6789:<>EHNPTVWX\bcefpr  vxyFHHJW__puww{| 89Ew:;&= &"$&&&prt&%@.08EGHIKSUVYZ]@@ @"9BE`ak3@@@@@@@@@@0#2345678MNO@@0@@@@ @ @!"@#$@%&@'(@)*@+,@-.@/0@12@34@579;=?ACEKMOQSUWY[]_acegikmoqsuw@38:;=9E3 "$2345678MNOprtw8:=9E"$prtw.9bdM  AGHIKUa"B`ak79;=?ACEY[]a@GHIKU"B`ak79;=?ACEY[]aS KMOQSUW_.9bd  Z]#qsu?'+35 !AjEFHI-  JLNPRTVXZ\^`@'+35!AjEFHI-  JLNPRTVXZ\^`8%<= 3C]"$ "$&(*,.024prt(FF% FFFF "$&(*,.024GHIKQRSTUYZ]"+6<>BSUW\`ak#  79;=?ACEKMOQSUWY[]_acegikmoqsu|| GHIKUYZ]"B`ak#79;=?ACEY[]acegikmoqsuG  GHIKU"B`ak    79;=?ACEY[]a:m  GHIJ KSUZ ]  "B`ak        13  # 23456789CDEFGL MNOPQRSZ[\]mnostuvx               79;=?ACEKMOQSUWY[]_aq s u       \^4D^&(* \^4D^&(*"Z\]^4D^#&(*qsub 8:<=Z\]  349:CDEGI]^bcdldm"#$pqrstuwyr 8:<=QRT+369:<>CEGILPSUW\]bdflmo"$ prtwy|u 8:<=QRT\+3469:<>CDEGILSUW\]^bdlm"$ prtwy|S8QRTZ]  +69:<>ELSUW\cm# qsuw|j8:<=QRT\+3469:<>CDEGISUW\]^bdlm"$ prtwy|%'+358:= !9AEGHIJMPQXbdfjlnopEFHI"$-   "$&(*,.024JLNPRTVXZ\^`prtwyz58:<=39CEP]bdflo"$prtwk%8:<=  39:CEGHIJLPQ]bdflmop"$     "$&(*,.024prtwyz: 8:=9:EGILbdlm"$prtwy18<=39CEPQ]flop"$prtw$8<39CEPQ]fopw8=9E"$prtw9QRT\  +46:<>DSUW\^m |$ Z] :m#qsu5QRT+6:<>HJSUW\m z|  vGHIKSU"B`ak19CDEFGPQRSZ[\]mno 79;=?ACEKMOQSUWY[]_a EGHIJ KSUZ ]   "BQ`ac e kp        13  # 23456789CDEFGL MNOPQRSZ[\]mnostuvx               !#%')+-/13579;=?ACEKMOQSUWY[]_aq s u       :HJQmpzOGHIKU":BHJQ`akmp79;=?ACEY[]az"Z]  :GHJcem#qsuz#Z\]4DQ^p#qsu  \v  4:DHJ^cemVz d  :HJcemVz j  :JcemV  bGHIKSpUW[ p"B`akpppppppp   ppp pp79;=?ACEKpMpOpQpSpUpWpY[]_papLxLx[  AaM:JLMXb d mn1.08@JM_ilh :ILbdlm0V~[m|^Kr Ah cIhh0  .0<8:j@IJ L?MX_c1e_i lm0n AJVXam| 1#X[:IeJLfMXbdlm  :cemJ[   :cm l[  :JXcemn1[1IJLbdlXR_:mJX2[4V[ml|nC~{y~}|t}y(} f .08}:@J|LMlX_kcei{lmn1 AVa1J  A Va1[1l1  h&%j Y\j h0X~|( dSNolH32q)cyUUf~3_akj6 w9 %),4 8>EGIILLQTVV"ZZ#\^$'()-./02347>?@ABD  F  GH.0K35N77Q99R;;SCDTTTVVVWXXX\^Y\cefgilm00p33qEErGHsz{u}}wx  "*/8CGMOTTeimoxx  "#$%&(25;BDEFJPQS_a  eghFoHHJW__bbddpuww{|t !!%%&&''(()).. // 0033448899 ::;;<<== >>EEFFGGIILLQRSSTTVVZZ \\]] ^^"  %      ..//"00334455 77 99 CCDDXX\\]]^^!!!# $ 00 33EEGHz{}}             "" ## $$ %%&&''(())**/0 11#28CG MOTT eefi$mo xx#     "  %"           % % %   !!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEJJKKLLMMNNOOPPQQRRSSTTUUVVWW__bb dd pp qq rr ss tt uu ww{{"|| "        # ##       " !   !$     #         $    #"      " " " !   !        bDFLTcyrlgreklatnH .AZE CRT FRA ZMOL NAV ROM TRK      c2scccmpdligdnomfracligaligaligalnumloclloclloclnumronumpnumsmcpss01ss02ss03 ss04ss05ss06ss07$tnum*        60nL`tflq3210(sutvrwR   ; /0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwyxz{|}~    %&'()*+,-./0123456789:;<=>eg/3579;ACEIKLXYz{}   "$%')+- } q3210(ds0ut/rwR   ; v123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abdefghijklmnopqrstuvwyxz{|}~    EFGHIJKLMNOPQRSTUVWXYZ[\]^0468:<BDFJMZ|~   !#&(*,.~ *BZrMxN`H0I$'a_bc` MNI26rJd~"<N$.8J| <Fh.8BLV( &,   &,68:  &,HF  $$*06JL   $*06bd  $prt % &,!  &,79;I  $ &,KM    &,ce  $qsu &+-,. $G $X`Z\^ $Ya[]_ $fnhjl $goikm%)+-/46;=>EIKMOTV[$]^*,-./015     OX{@JMMJPPJ*  JXXJWKo6,- .//O EGFHIghijklm '(+35FGHKSTU nooIKj.Z^XUWV[Y]\OJKLMNSeff pp  .pfLNMKOeSJU^ .[]^XUWVY\ZJKLMNOSefp.pfJOSSU^ eel%<  !"#$% >zst?@ABCDriseup-vpn-0.24.5+ds1/gui/resources/fonts/Roboto-Regular.ttf000066400000000000000000005105041461742244100237200ustar00rootroot00000000000000 GDEFBbGPOS]GSUBY{OS/2 l`cmapQmcvt +pTfpgmw`hgaspx glyf& ,lhdmxUz`z headjz6hhea  H$hmtxr8locaw maxp>  name6!apostmdX prepf$Id( q 9 а а  а  EX/>YEX/>Y9999 9 9 01!!!!5!(<6 }wx^^^{ 0EX/>YEX / >Y +X!Y901#3462"&[ 7l88l7-==Z;;# / 9/а01#3#3ooxwEX / >YEX/>YEX/>YEX/>Y 9|/ +X!Yаа а / +X!Y а аааа01!##5!!5!3!33#3##!!PP ERRRREPEfb``f#bn0+iEX / >YEX"/">Y" 9  а а  +X!Y +X!Y"а"&а") +X!Y014&'&&546753#4&#"#5&&53326Xÿrw~1Q˷ӹw\~3Aѡ͍{nfycwjƋ~i &48|EX/>YEX#/#>Y а / +X!Y +X!Y#а/#* +X!Y1 +X!Y5#95/7#97/014632#"&5326554&"46  &5326554&#"'iXJGWVV;XJHVWIGYiiGNebUINffRуGOecUJOdcTBrBe'3EX / >YEX/>YEX/>Y" 9* 9"*9*"9 9 9 99 +X!Y!9 1 +X!Y01467&&54632653#'#"$2776654&#"euaBĨYokDD{aJgדz!"vvD2dLR`iuvGXRO}sBEKp{v`S0W>CYog!/9/01#3*k //0147&'y& Uu&yOTFzp4U~`qJT&*7k //01'654'77u'Xb'wEgIqv/ iPqIdaU EX/>Y/  /01%73%'J.. ).|}ZpXn[^ [N4  /а  +X!Y01!!#!5!3jj 4̯4 / +X!Yа/01'6753i^cHe% / +X!Y01!5! v EX/>Y +X!Y017462"&9r;;r9a0@@0.>>/EX/>Y01#3`}-s  ;EX / >YEX/>Y  +X!Y +X!Y01#"532'4&#"3267 m53A8 :EX/>YEX/>Y9/ +X!Y901!#5%3ٺщ]3OEX/>YEX/>Y +X!Yв9  +X!Y в901!!56654&#"#4$32!3FpUszۅ0UrձY^&{EX / >YEX/>Y 9/]q/]_r  +X!Y  а& +X!Y&9а +X!Y013665#"#4632 $5332654&'#x{jxf~2rq_,&޶s5P JEX / >YEX/>Y 9/ +X!Yа в 9 9013##!53!ʺiRm9(-dEX/>YEX / >Y +X!Y 9/ +X!Y9 а  +X!Y01!!632#"&'332654&#"J,kvyE1֫s?ֽ}5(!QEX/>YEX / >Y +X!Y 9/ +X!Y  +X!Y01#632#"55%"32654&O"sǾWS_y}AGprVDܸM%3EX/>YEX/>Y +X!Y901#!5!%YHp!+dEX/>YEX / >Y' 9'/'] +X!Y'9'9  +X!Y" +X!Y01#"&5467&&546324&"326"264&sbrrap헛mޅ4m01wv10lztoތd$[EX / >YEX/>Y 9/ 9 +X!Y +X!Y  +X!Y01#"&&546632#5366%26754&#">:`~fö$']$yzET|ሒ|6WyrTJ仙mD&sEX / >Y01)UD's EX/>Y01HzJEX/>Yа/015r2{z'/а/ +X!Y +X!Y01!5!!5!BB.KEX/>Yа/0155kVKv!SEX/>YEX / >Y +X!Y99  +X!Y в9016677654&#"#6632462"&e2MTnif|㶽ӢmI7l88l7wT_miwl[˱lQ-==Z;;j;5Bl2/EX/>Yв29/99 +X!Yа2 +X!Y*а*/# +X!Y@ +X!Y01#"'#"&766323267!"3267#"$$3232677&#" ص56JyiQP4qȴ 'Z<%>i |dQXYEX/>YEX/>Y9/ +X!Y 901!#3#!,-M|PXEX/>YEX/>Y9/ +X!Y9 +X!Y +X!Y013!2#!265!%!2654&#!tdv="~f+!z~lxmwGEX / >YEX/>Y а  +X!Y +X!Y01# 54$32#&&#"3267ɑ Ʋr64宜葴 ;EX/>YEX/>Y  +X!Y  +X!Y013!232554'$]ʦUF QEX/>YEX/>Y 9 / +X!Y +X!Y +X!Y01!!!!!!c-w,/ BEX/>YEX/>Y 9 / +X!Y +X!Y01!#!!!:c}zlEX / >YEX/>Y а  +X!Y +X!Y 9/]]?O] +X!Y01%#"$'5!2#!"3267!5!J36l5ji4Ij!w09G gEX/>YEX / >YEX/>YEX/>Y а / ] q q/ ] r +X!Y01!#!#3!3"_rwEX/>YEX/>Y01!#3w5/EX/>YEX/>Y а  +X!Y013#"&533267 w} tEX/>YEX/>YEX/>YEX / >Y9@JZjz]9]9@6FVfv ]01#33#j0})EX/>YEX/>Y +X!Y01%!!3jRYEX/>YEX/>YEX/>YEX/>YEX / >Y99 901 3###"#\P7de L 9EX/>YEX/>YEX/>YEX/>Y9901!##33#߿bgv ;EX / >YEX/>Y  +X!Y +X!Y01#"$'54$32'#"327   лӹ9iBk O 9  EX/>YEX/>Y 9 / +X!Y +X!Y01#!2#%!2654&'!iY:坑m "O#$9EX/>YEX/>Y9 +X!Y  +X!Y01%#"$'54$32'#" 7yHP  ;tVy9iBkc9EX/>YEX/>YEX / >Y9/ +X!Y 9 +X!Y01!#!2#!2654&'! Vn'Mֈ2 |Pr&d'(9EX/>YEX/>Y а +X!Y&9& +X!Yа" +X!Y01&&54$32#4&#"#"$&533264&VܖkcãGϘty}oY{f{os|u1/EX/>YEX/>Y +X!Y01!#!5!,-f=9EX/>YEX / >YEX/>Y +X!Y01"'332653"&89EX/>YEX/>YEX/>Y901%3#3P=YEX/>YEX/>YEX/>YEX / >YEX/>Y 9 9  9017373#'#3) (ɯP%oo9 kEX/>YEX / >YEX/>YEX/>Y9@ ]9@ ]9 9013##3]43.."81EX/>YEX/>YEX/>Y9013#3e| oVz FEX/>YEX/>Y +X!Y9 +X!Y 901%!!5!5!9A $// +X!Y +X!Y01#3!! yx(8/EX/>Y013#(` '// +X!Y +X!Y01!!53# zH@'9EX/>Yв9/01#3#+*)iEX/>Y +X!Y01!5!l9#/]/а/]01#3ڟ&mN(|)*9 EX/>YEX/>YEX/>Y9 9 / +X!Y 9 +X!Y # +X!Y01!&'#"&54$3354&#"#46632%2675# ( tqcsv& W#t RUasdGQXXZHWb f9/EX / >YEX/>YEX/>Y9 9  +X!Y +X!Y01#"'#36 '4&#"326 p pṒPUӑ}ËΪ,\NK9EX/>YEX/>Y +X!Yаа +X!Y01%2673#"546632#&&#">cvntٔixZ]d'ڮi#_f9/EX/>YEX / >YEX/>Y 9  9  +X!Y +X!Y014323#'#"5327&#"_쿾o oƼQS&/4t4О]Nl9EX/>YEX/>Y9/]  +X!Y +X!Y9 +X!Y01"5546632!3267"!5&&M{݁#b3qp!"MPBXʣ<e9EX/ >YEX/>YEX/>YEX/>Y +X!Y  +X!Yа013#5354632&#"3#竫@? /5Zbo ibrU`VN$"%&9" EX/>YEX/>YEX / >YEX/>Y9 9  +X!Y9 +X!Y" +X!Y0143273#"&'732655#"7327&#"`o u;`wo뺖RU&+xdWo]2џJ 9/EX/>YEX/>YEX/>Y9  +X!Y0163 #&&#"#3E{WioZ&}5up`Nh ? 9EX/>YEX/>Y а / +X!Y01!#3462"&U7l88l7:->>Z<<KY K9EX / >YEX/>Y +X!Y а/ +X!Y01!"'532654632"&K=4 4>A75688l6:ICS,?>Z<<  uEX/ >YEX/>YEX/>YEX / >Y9@:JZjz ]9@6FVfv ]01#373#tcQ[y_wd<UEX/ >YEX/>Y01!#3UxNx9EX/>YEX/>YEX/>YEX / >YEX/>YEX/>Y 9 9 +X!Y01632663 #4&#"#4#"#:wR6vdj}g C:xN`+ts{h2:NT 9EX/>YEX/>YEX/>YEX/>Y9  +X!Y0163 #&&#"#;|WioZ&:}5up`N:[4NE 9 EX/>YEX / >Y +X!Y +X!Y0146632#"532654&#"[}ߏyﺧ' 2 Dz`Np9 EX / >YEX / >YEX/>YEX/>Y 9 9  +X!Y +X!Y01#"'#3632'4&#"326q q㹜TS}xԕ_`Nm9EX/>YEX/>YEX/>YEX / >Y 9  9 +X!Y +X!Y0143273##"5327&#"_op鹝WX&)m&x1ԒN G9EX / >YEX/>YEX/>Y  +X!Y 901&#"#3632*1A[6:}_N&d '(9EX / >YEX/>Y 9  а  +X!Y +X!Y!а$ +X!Y014&$&&54632#4&#"#"&&53326qO᯸庁berjS蹂qriKSVyW\`]mU V@a9EX/>YEX/>YEX / >Yа/ +X!Y  +X!Yа013#327#"&5#536A 8IE|~@aAA :T 9EX/>YEX / >YEX/>YEX/>Y 9  +X!Y01%#"&'33273#(lѭFkE!:89EX/>YEX/>YEX/>Y901%3#3 |x?:+: ` 9EX/>YEX/>YEX / >YEX/>YEX/>Y 9 9 901%3##33JйŖƸ;4:*): SEX/>YEX / >YEX/>YEX/>Y 9 99 9013##3mmk#K:J9EX/>YEX/>YEX/>Y9  +X!Y 013#''526773Me#E2^i")~+ Len.X: FEX/>YEX/>Y +X!Y9 +X!Y 901%!!5!5!:yU4@=29 // 9/] +X!Y901&&554#5255667x&ѧ2з3sCYZBD/EX/>Y01#3Dr=29 // 9/] +X!Y9016547&55'73"&ԵA TRCs2ʼ2"D9EX/>Yаа/ +X!Y +X!Y 01#".#"4632265ﻉHJ*NTL@L_ 5$k^@ t_fM 3 9/EX / >Y +X!Y9013#"&462 7l88l7L->>Z<<i &!T"#9EX/>YEX / >Yб +X!Y ааа +X!Y01%2673#5&554753#&&#"JdƐʱiyY~"#!Ԗi#[h!"#9EX/>YEX/>Y9/_rq] +X!Y +X!Yаа ааа +X!Y01!!536675'#534632#4&#"!>M(2 Ⱦ޿oi ?nܚ[ `ݝԱk|}i[*A+,9'EX/>Yа/ +X!Y' +X!Y01%#"''7&547'7632726654&&#"Oϟhpğnf`sqqpqspΣxyğ{{z{{zyx$q9EX/>YEX / >Y 9 9/а/ +X!Y  +X!Y аааа013!!!!#!5!5!5!34D>0}|B|}M/EX/>Y+013#3Zy4D#EF9#5/EX#/#>Y#9? +X!Y?9а +X!Y0#907 +X!Y709#'а#* +X!Y01#"&'&5732654&'.547&&54$32#4&#"%&'6654&yEHpFѶ]BG 8q:ZKPK6,NTU1d89qu`Yi>0ooX1d}sbEPAPHaeEFPBReEXme/ +X!Y аа/01462"&%462"&e7l88l77l88l7[-==Z<<+->>Z<<[*9':;9'а'6EX./.>YEX6/6>Y6.9/] .69 /  ] 9 +X!Y +X!Y 96  +X!Y.' +X!Y01#"&554632#4&#"3265% $54$#"4$ #"$__[^ll^\]@sKJUӶnӤcU{qxTeۦ%"ܪZX%o&'9EX/>Y&9/в9 9 / +X!Y 9 +X!Y   +X!Y01&'#"&5463354#"'4632%2675#j Lwl|EO+XpSY"&V|gox463 gaQ{(?3^fd&Dw /а/ +X!Y01#!5!{?wZ4=6>?96 а6а6#EX/>YEX / >Y +X!Y +X!Y 9 /" 9"/""]5 "95/5]55] +X!Y(59 /а//"= +X!Y014$ #"$732$54$#"#!2#&4'&''36654&##ZKJs졠zsHXNdZXǬۦ"!Q}{A2=V&$`B6I=.9/ +X!Y01!5!.`| 1EX/>Y а /  +X!Y +X!Y014632#"&2654&#"jhhi6JJ67KKhijG9:KOlJa H /EX / >Y а  +X!Yа  +X!Y9 ]01!!#!5!3!5!lACVb BV9EX/>YEX/>Y +X!Yв9 +X!Y в901!5654&#"#46 !,m@& '(9EX/>YEX/>Y9/o]?q/]_r +X!Y 9& +X!Y&99  +X!Y0132654&#"#4632#"&5332654'# TJH?F9K|FBOCFIXf=0-:3)b{yh7[)j}~k-<<3q{#/]а/]/013#<`:Q 9EX/>YEX/>YEX/>YEX / >Y +X!Y  9013273#'#"'#Sgt> ]Q: sI+C@ + 9EX/>YEX/>Y901!#"$54$3!T  PkyI  9/ +XY01462"&9r;;r90@@0/??tMB9EX/>YEX/>Y#]9 +XY 01!#'2654&'7 OW@b 4aqk4/,* zA9EX/>YEX/>Y9/ +X!Y901#5%3cY9uz' B9EX/>Y 9 / +X!Y +X!Y014632 &5326554&#"z̾aTS_aSQ`cJ¥drseNcrnafx& jU'' EX/>Y01P''EX / >Y01o'' 21EX!/!>Y01DxM"Y #$9 /EX!/!>Y!99  +X!Y в9! +X!Y0132653#"&547765"&5462L)` tmd}֠mB7l88l7jvc%msq[ɳqN=->>-,<<W{EX/>YEX/>YEX/>Y9/ +X!Y +X!Y 9 /  +X!Y +X!Y901!!!#!!!!!!WpMNa)xYc 8/ 9 / 9 9 9в 9  017YJwIIwJwIPO{O{{Qv )h*+9а&EX/>YEX/>Y9#9#а +X!Y$а& +X!Y01#"'#7&54$3273&#"4'327 a ֔g,b4f8[yRhSB}co @] Y 9 EX/>YEX / >Y 9/ 9/  +X!Y +X!Y01!2#!#!2654&'`wi~Cޗx{j*k!+,9EX/ >YEX/>YEX/>Y 99 +X!Y 9#9( +X!Y01!#4632#"&'732654.54654&#"DϺŀKV˶Q&+15kqJWhXW볟}E3_L, ,^R4`QYT^kN|N*5=ʲ>?9.а9EX/>YEX/>YEX/>YEX/>Y9 9 / ] +X!Y 99:9:/::]! +X!Y% +X!Y(9+а / +X!Y601 '#"&5463354&#"'46326632!3277%2675#"!54&A⍧nhis2?i(y/@ H2ujPsV^Uk{nQSSOWsLyJ6nSM]4~-,+V,-9(EX/ >YEX/>Y9/9" +X!Y( +X!Y01#"&&546632&''7&'77'&&#"32654u؆ypρy0I9ﯽIh!\}g]rÍc[16d8=IG- S9а/ +X!Y +XY +XY +XY +XY01!5!462"&462"&-9r;;r99r;;r9X:0@@0/>>0@@0.??[z4&e'(9а#EX/>YEX/>Y# +X!Y!#9!а +X!Y9 014663273#"'#7&&#"4'3265[{n^I|f|hVJ|d͹aW>HfW7B'*͚#˕7o ڵoP۹`'f9 /EX / >YEX/>YEX/>Y 9 9  +X!Y +X!Y01#"'#3632'4&#"326'qq㹜TS}ʄԕ_"/EX / >YEX/>YEX/>Y]/]9/ +X!Yв 9 9а +X!Y   +X!Y01##'#"55432!5!533327&#" oƼ쿾olQS/t4/ОmEX/>YEX/>Y9/9/а +X!Yаа +X!Y а а013##!##533!3!5!#b#_""U:EX/>YEX/>Y01!#3U:?: iEX/>YEX/>YEX/>YEX / >Yа/]]/]] +X!Y 901##333#k[<3:6" ]EX / >YEX/>Y 9/а +X!Yа +X!Yа а а 01%!!573iKT}Tϝ*}*"  KEX / >YEX/>Y 9/а +X!Yааа а017#573le={=7{7K[9EX/>YEX/>YEX/>YEX/>Y  +X!Y 9901#"'73255#3=6%=3GjhKNc 9EX/>YEX/>YEX / >YEX/>Y9  +X!Y +X!Y01632#"'73254&#"#7 t˳=6#Bo}Q: :h #$%9EX / >YEX/>YEX/>YEX/>Y +X!Y9/ +X!Y +X!Y +X!Y  +X!Y01!!#"&'4632!!!!!27&#" r|F-wqfml5,aN ,4569&а0EX/>YEX / >YEX/>YEX/>Y 91 91/ +X!Y +X!Y 9 9$а* +X!Y-01466326632!327#"&'#"532654&#"%"!54&ayێ=Ap2xJ?>dž-c'udfstl~pdcq0 ζ֣} 3 9EX/ >YEX/>Y  +X!Y0136632&#";T(3 `]^ !9EX/>YEX/>Y9/  +X!Y +X!Y +X!Y01 5!5#"'763 '27!ݥ=/.dꧩYEu: XT"Kt 9EX/ >YEX/>YEX/>YEX/>Y +X!Y  +X!Yаа +X!Y01##"'73265#5356632&#"3`˨=2CAG;T&< h\x ze7%U&'9"EX / >YEX/>Y 9а  +X!Y" +X!Y01#"$'54$326653#"32 `]aϽӹ>dA=k[#U$%9EX/>YEX/>Y9 а +X!Y! +X!Y01466326653#"5326554&#"[{ψG@I|񹧍'd33 ۹M 9EX/>YEX/>YEX / >Y 9а  +X!Y016653"'33265saI ~&a9EX/>YEX / >YEX/>YEX/>Y9в9 +X!Y01#'#"&'33273>5lѭFDDkE#HlKe: )EX/>YEX/>Y  +X!Y01#"'73265e;4CAH:m h\bOh9EX/>YEX/>Y 9 / +X!Y9 +X!Y  +X!Y012'"&55!&&#"'6267!|z{IbO$tl}5}4/а/]9//в901#'#53p  /а/]9а/0173#53qU  .p /01 ' 9/]  +X!Yа/ 01 &533265إLIFOyxFONGh 9/ +X!Y01462"&7l88l7W->>Z<<y'P *9 /а/?] а01#"&4623264&#"'|[\{{{C10DC12BWuvzzV/DBbEF2O829/EX / >Y +X!Y@ /?]01!327#"&5467~:qN04 FZYg{-[VHy,hVY8{>@/а/] а / +X!Y +X!Y01#".#"'46323265>{\) ?1k:D-^,;/а/]/а/а//013#3#]mږ/~k 4/@  0@] а /@ 0 @ P ` ] ]а014632#"&72654&#"~dJGb`ILbW4F00#%2Fa`GF]^E#00#$24H//а/]01#3H&o/а/]/013#0N^t./]а/@ /?]в9 901'664HtKF[KNMٙN'jgU=P G'7//а/а//]а//01#3#3  8v/ +X!Y01462"&87l88l7->>Z<<?/а/]9/013#tp?q 8 /а/а//  +X!Yа а/013#462"&%462"&e7l88l777l88l7%-==Z<<+->>Z<<kyIx/010,EX/>YEX/>Y +X!Y01!#!0Bs0EX/>YEX/>Y +X!Y9013!%!CLgP(g#z$%9а EX/>YEX/>Y9/]]/]q +X!Y +X!Y  +X!Y01!5!#"$'54$32#"327: лѻª9iB k21EX/>YEX/>YEX/>Y901#3#fwPx! REX/>YEX/>Y +X!Yа//] +X!Y  +X!Y017!!!!!!xWWSl?9EX/>YEX/>YEX/>Y +X!Y01!#!#!2OED >EX/>YEX/>Y +X!Yа  +X!Y01!!55!!C$ϝJGMt#n $%9 а  EX/>YEX / >Y 9/в 9/ а! +X!Yа +X!Y 01#5&546767534&'66B}t²/IW" ʵZ!]9EX/>YEX/>YEX/>YEX / >Y 9/а  +X!Y 016653#&'33 ת j*q$^%&9EX/>YEX/>YEX#/#>Y +X!Y аа +X!Y!а"01%6754& !53&5546323!ኚjxxjqf3o$䴂fdwN!"#9EX/>YEX/>YEX/>YEX / >Y +X!Y 99  +X!Y +X!Y01327#"'#"55327327&#"N0J&kk̒RU:"=úM*l+,9/EX/>YEX / >Y( 9(/% +X!Y%(9 9 +X!Y  +X!Y012#"'#4664&#"32654&'#5326]bX{͵xzgkl,^mUx~ۮ[.-Â_5lk{fk4?vw.`:8 9EX/>YEX/>YEX/>Y9013#3 &'`'*a+,9"EX/ >YEX/>Y +X!Y9/( +X!Y а" +X!Y014632&#"#"5547'&&32654&'"˯|Vevۑck>}7;H>l'' #'cƈcM%r&'9EX/>YEX / >Y +X!Y а "а"//"]"]# +X!Y#"9"9 +X!Y0132653#"&547&&54632#4&#"33#vqXbʺkp0MbnQB$zIFe[JmM !9/EX/>Y +X!Yв 99 +X!Y901'6654$'&&547!5fCRQGlCb/36g[xUZaHXNE6T5U-DN-@CaNT 9EX/>YEX/>YEX/>YEX/>Y9  +X!Y01632#4&#"#8 xȾl\":Q|WN:z  9аEX / >YEX/>Y 9/_]]qq/q]/]q  +X!Y +X!Y +X!Y01#"532!54&#"! 67!%%ےL4=N,7'K: )EX/>YEX / >Y +X!Y01327#"|7@0'FI:?@ & %;R9/EX / >YEX/>Y  +X!Y 9а +X!Y01237#"&&'#'&&#'6bx!-#&$*MN>`5-/*P_3' %VPQ8. ew-Y./9/EX+/+>Y +X!Y.+9/  +X!Y.+9 +X!Y% 901&#"!3#'7654.5467&&54$32raMǐ| OhHk91LwAvp$gUۘpA%1i@=T@<>'.3Bio.*`'):^ 9EX/>YEX / >YEX/>Y +X!Y  +X!Y ааа01#327#"!##5!q6A0'FIoHr@A &_`NY9EX/>YEX / >YEX/>Y 9 +X!Y +X!Y012#"'#46632654&#"P rq̈́SuNB|ȓةeN"K#$9/EX/>YEX/>Yа +X!Y  +X!Y012#4&#"'7654&'&55466=篆o@bPcJb/1FVwNմn۳ c&`P?>U6YEX/>Y +X!Y +X!Y01!#"554667!32654&#"{z݌vٌ@/ ׷ˬQ:K 9EX/>YEX / >Y +X!Y  +X!Y а01!327#"&'!5!i+1*Lj}ui4:=9EX/>YEX/>YEX/>Y +X!Y013265&3#"&'IɁvq:y!W"L:"^#$9/EX/>YEX/>YEX/>Yа +X!Y а  +X!Y01$5474632#665&&#"le qB3Wi}3fޤR_(C:Y9 /EX/>YEX/>YEX/>YEX / >Y +X!Y а01665&3#&3zv:N96z:#[$%9EX/>YEX/>YEX/>YEX/>Y +X!Y 9в901326533265&3#"'#"7ĊrjlqqkjrÇϼU)wχ:㭦-Τuy1yy(q)*9&EX/>YEX/>Y9/ +X!Y 9 +X!Yа#а& +X!Y01#"&5732655&5463267&#"yYEX/>YEX / >Y 9  +X!Y016632&#"#&#"'632$+kWH4$ 'F$׿'C' $4GXk*cXOw<OT]J:&r'(9EX/>YEX/>YEX / >Y +X!Y9аааа  +X!Y 9$01##"'#"47#5!&'!32673326@SS@tJK`XiqqjV`0ȩ㧢*d9EX/>YEX / >Y +X!Y 9/   +X!Y +X!Yа01!632#'265&&#"#!5!aj90N㖑.Z{ !9EX / >YEX/>Y а  +X!Y 9/q]q]/]_rr +X!Y +X!Y01# 54$32#&&#"!!3267ɏ :Ʋr65嬞葴1;!w "#9 EX/>YEX/>YEX/>Y9/  +X!Y +X!Y +X!Yа01!!!#57>7!2654&'iY?(]d4 w_܉k-M9EX/>YEX/>YEX/>YEX / >Y9/ 9/ +X!Y +X!Y  +X!Y01!3!!!#3!2654&'rj2_9w⽿dzt>_9EX/>YEX/>YEX/>Y +X!Y9/  +X!Yа01!632#&&#"#!5!hhP(-Θ*> I /EX/>YEX/>YEX/>YEX / >Y +X!Y013!3!#!@2Pg ^9EX / >YEX / >Y  +X!Y 9/  +X!Y  +X!Y01!!!!!2654&'!BjB_Lݘ{2]9 /EX / >YEX/>Yа +X!Y аааа  +X!Y01#!#367!3!!!ǿw^o g kejeouT5EX / >YEX / >YEX/>YEX/>YEX/>YEX/>Yа//]] +X!Yв9 в901####33333#d<<hhxxQPj(u)*9EX / >YEX/>Y  +X!Y в% 9%/%]%q$ +X!Y$%9а +X!Y014&#"#46632#"&&533265%#5366|oô)thtge0Vgsx~ ]EX/>YEX/>YEX/>YEX/>Y9@ ] 9@ ]013##3?3Pb/O9EX/>YEX/>YEX / >Y +X!Y   +X!Y01#!#57>7Y?(]d4 P܉kMK9EX/>YEX/>YEX/>Y9  +X!Y9013#"'72?3O4Zy[O[i3&cMCta3 e4Y6S!*] +,9  а " // 9/в 9 / а +X!Y $ +X!Yа"013##5#"$$3353"33332654&#x#ּڿĘ N g < /EX/>YEX/>YEX / >Y +X!Y013!33#!_G9EX/>YEX / >YEX/>Y9/ +X!Y01##"&'3327inP[26 IEX/>YEX/>YEX/>YEX / >Y +X!Yа01!3!3!qPjU /EX/>YEX/>YEX/>YEX / >Y +X!Yаа а а01!3!33#!q _ a9 EX/>YEX / >Y 9/  +X!Y  +X!Y  +X!Y01!!2!!!2654&'[Zf[_ݘ{0 o9аEX / >YEX/>YEX/>YEX/>Y 9/  +X!Y  +X!Y01!!3!2654&'#3rj_W^ݘ{@ O 9 EX / >YEX/>Y 9/  +X!Y  +X!Y01!!3!2654&'cj_^ݘ{ !9EX/>YEX/>Yа +X!Y9/q]/qqq]/]_rr +X!Y  +X!Y01327!5!4#"#632#"$'T=Ϻ δɑ̥%!&'9!EX/>YEX / >YEX/>YEX / >Y 9/_]]O_qq/q]/]q +X!Y +X!Y" +X!Y01#"$'##336$32'#"327ڐ  лӹ*d7kYd c9 EX / >YEX/>YEX/>Y 9/ +X!Y 9  +X!Y01!!#$4$3!!!"R7loP>a((d)*9EX/ >YEX/>Y9/999 +X!Y# +X!Y012#"55766536"32654&gvݐbq|#ZU,H?}'ę):9аEX/>YEX/>Y9/]q]q/?]or +X!Y9 +X!Y +X!Y013!2#!2654#%3 '#ZXbw2ts:Ky ]VN0G:,EX/>YEX/>Y +X!Y01!#!G _:.:]9 /EX/>YEX / >Y +X!Yаа  ааа +X!Y01776!3#!#!!!@l / O]+>:EX / >YEX / >YEX/>YEX/>YEX/>YEX/>Yа/]]/]q +X!Yв9 в901####33333#낹~**0 @@XM&'(9EX / >YEX/>Y  +X!Y% 9%//%?%]%%]%%qo%%r% 9" +X!Y"%9 9 +X!Y014&#"#4632#"&5332654&##536teb챾XQijmsɽLYfEIz$@OqbN[O: EEX/>YEX/>YEX/>YEX/>Y9 9013##3H ::?: xEX/>YEX/>YEX/>YEX / >Yа/]]qq]/]or +X!Y 901##333#݇ylT3:6,:O9EX/>YEX/>YEX/>Y +X!Y  +X!Y01#!#57667J5ZN :k R: YEX/>YEX / >YEX/>YEX/>YEX / >Y 9 9 901%3###3pE$:: EX/>YEX / >YEX/>YEX/>Y а /o ] ]? q q r q ] q ]/ ]o  r +X!Y01!#!#3!32:+:9EX/>YEX/>YEX/>Y +X!Y01!#!#!e_:(:2EX/>YEX/>Y +X!Yа01!#!5!\d`i%0129 а+/EX/>YEX / >YEX/>YEX/>YEX/>Y  +X!Y# +X!Y)а.01323632#"'##"5%4&#"326%327&#"dҷU@F^ѷaEBUL{?/-C|mz:/*=z 6+# U: </EX/>YEX/>YEX / >Y +X!Y013!33#!:]](Ag;G9EX/>YEX/>YEX/>Y 9 / +X!Y01!##"&'33273zz C : IEX/>YEX/>YEX/>YEX / >Y +X!Yа01!3!3!V:]]:m:L /EX/>YEX/>YEX/>YEX / >Y +X!Yа 01!3!33#!K:]]](A:: a9 EX/>YEX / >Y 9/  +X!Y  +X!Y  +X!Y01!!#!!!2654&'ܺ6hrod:ik]Zs: o9 аEX / >YEX / >YEX/>YEX / >Y 9/ +X!Y +X!Y01!#!3#3!2654&'Vܺ6)hrod::ik]Zs: O9 EX / >YEX/>Y 9/  +X!Y  +X!Y01!#!3!2654&'Vܺ6hrod:ik]ZsdN !9EX/>YEX/>Y +X!Y9//?]]qor99 +X!Y +X!Y01"#46632#"&533267!5!&&cvjw׊fw j~V]ef0N !9 EX/>YEX/>YEX/>YEX / >Y9/]q]q/?]_or +X!Y  +X!Y +X!Y01!632#"'!#3 654&#"V  |o:):״Ʊ/: c9 EX/>YEX/>YEX/>Y9/ +X!Y9 +X!Y01#!#&&5467!!"Ǻho޺lY&gz:[&jOageK" #$9/EX/>YEX/>YEX / >Y]/]]9/!б +X!Y9  +X!Y +X!Y01!63 #"'72654&#"##5353!c{W=6#HipZ&}ܪ h\ xr`NgN !9EX/>YEX/>Y +X!Y99/r]qq]q/?]orr9 +X!Y +X!Y01%2673#"546632#&&#"!!Hcxnuؔh l xZ^c(ڮi':} !9 EX/>YEX/>YEX/>Y9/  +X!Y +X!Y +X!Y +X!Y01!!!#57667!2654&'ӷ)A6UM eurc:dZ iVQ`:~9EX/>YEX/>YEX / >YEX/>Y 9/а  +X!Y +X!Y  +X!Y01!3!#!!#3!2654&'V"ٽ6eurcc :iVQ`{ 9/EX/>YEX/>YEX/>Y]/]]9/ +X!Y9  +X!Yа01!63 #&&#"##5353!y{WioZ&4}5up`N: F/EX/>YEX/>YEX/>YEX / >Y +X!Y01!3!#!V:]d:u a!"9EX/>YEX/>YEX/>YEX/>YEX / >Y9 +X!Y01#"&'#"&'3326533265um14qrbr|ijzWYYW&{|#}}":a 9EX/>YEX / >YEX/>YEX/>YEX/>Y9 +X!Y01#"'#"&'3326533267ʮY_Χ[Sboe\Ye:'Ɣð#fuxg'gxuft9EX/ >YEX/>Y9/ +X!Y9/ а а +X!Y +X!Y01!!!#533!!2654&'Է*Aiqod::EEwda}&'(9EX/>YEX&/&>YEX/>YEX#/#>Y9/а а  +X!Y +X!Y +X!Yа!0136$32#&&#"!!32673# 5##3xƲ@&謞蓲r6WN$Dz%&9EX/>YEX$/$>YEX!/!>YEX/>Y9/]?Oqqrq]q/?]orв9  +X!Y +X!Y +X!Y9013632#&&#"!!32673#"'##3SѶh K cxngڮixZ^c0:( WEX/>YEX/>YEX/>YEX / >Y 9 / +X!Yв901####3#! JJPZI%: WEX/>YEX/>YEX/>YEX / >Y 9 / +X!Yв901####3#!'u|w/)):;YY}EX/>YEX/>YEX/>YEX/>YEX / >YEX/>Y9/а +X!Y ав901!3#####!#3!5ŖŞEYWPJJHI:EX/>YEX/>YEX/>YEX/>YEX / >YEX/>Y9/б +X!Y ааав901!3#######3!'vzu|wyѺ/y))(:;YY?!x"#9EX/>YEX/>YEX / >YEX/>Y 9/  +X!Yааа  +X!Y0132#&&'##'#"#6633!3!A| *x*x#v{|~zK:u !9EX/>YEX/>YEX/>YEX / >Y9/аб +X!Yа +X!Y0135667!#5&&###'#"3!s5 >u! ЭO ~\Fr"&&'(9&EX/>YEX / >YEX/>YEX"/">YEX/>YEX/>Y 9 / +X!Y #а ааа & +X!Y01!67!#3!!32#&&'##'#"3!ObYyx|xil|zx%u{|*;:!%&'9%EX/>YEX / >YEX/>YEX/>YEX/>YEX/>Y 9 / +X!Yа  аа "а $ +X!Y01!567!#3!!#5&&###'#3!Fs5 Koh<:"! ЭO \FPF)2*349*/./EX/>YEX/>Y +X!Y(9(/% +X!Y %(9 +X!Y.].+а+/++]*.+92014&#!5!2##&&54673665%#53 73#53ڝ+s4Jz4?r*nزg-)miB}5czy  LFv0)2.349././EX/>YEX/>Y +X!Y(9(//(]((]((qo((r% +X!Y %(9 +X!Y.+а+/++]*.+92014&'!5!2##&&5467367654%#53 73#53p'f[2K|6rC?虈ٗr CSIw$BmiB}7az0.H  g !9аEX / >YEX/>Y  +X!Y 9//]]/q]_]O_qq +X!Y +X!Y01#"$'54$32"!&27! ζª9iB  p[4N9аEX/>YEX / >Y 9/]q]q/?]q +X!Y  +X!Y +X!Y0146632#"5! 6"!&&[{ | }^':3DyG9EX/>YEX/>YEX / >Y 9 +X!Y017663"#3C!#3g.@@|v?xYEX/>YEX/>Y9  +X!Y017632&#"#3MG# <׍YEX/>Yа б +X!Yа$ +X!Y!01#5&5753'4'#55365#q#`$vvx% #ad]fd" [4%Z&'9EX/>YEX/>Yа а# +X!Yа +X!Y014753#5&56654&'#553[ԹݶFcvtebrqc'*"po kl'yͫ ba!Х"foQ,@I JK9 2а IEX/>YEX / >Yа в 9 +X!Y  +X!Y  9%а,а8а8//б- +X!Y/4а4/< +X!Y8DаIаI/012#"&'#"&'463"3265332654&##".#"#546326753ۻٻp44pؽcqrbrscpodh+P4qn(Hj@B[;UXXUJ񞝉Č|Tz:"P p$nlRPYEX / >Yа в 9 +X!Y  +X!Y 9$а+а7а7/-а-/, +X!Y-3а3/; +X!Y7CаC/HаH/012#"'#"&'463"32655332654&##".#"#546326753B_/bR]\SbopaQ]]Q,O~0ro)JmAA[;DڕKJл2ۘ|{xggu}!| R o$nlPN?hf2u u ()*9'EX/>YEX/>YEX / >YEX / >Yв 9  +X!Yа'а'/(а(/" +X!Y(%а%/01#"&'#"&'3326533265%5!!#5um14qrbr|ijzB,WYYW&{|#}}"kk}}&'(9#EX / >YEX/>YEX/>YEX/>Yа/ 9 +X!Yа %а%/&а&/  +X!Y&#а#/01#"'#"&'33265332675!!#5ʮY_Χ[Sboe\Ye,:'Ɣð#fuxg'gxuf kkuK9/EX / >YEX/>Y а  +X!Y +X!Y01#&554$32#&&#"3 ŝ|lV dNK9/EX / >YEX/>Y а  +X!Y +X!Y01#&5546632#4&#"3w׋emp&#eڵt>/EX/>Y01%#%7%73%X!DݶD%F#%H{{m}Khzg'/ +X!Y01'7!' #}lqd0/а/ +X!Yа/ +X!Y012#54#"#52>vor*-ovY +X!YEаEL +X!YаSаSZ +X!Y%а`+а`g +X!Y2а8? +X!Y01462#4&#"4632#4&#"4632#4&"4632#4&#"462#4&#"462#4&#"4632#4&"4632#4&#"stp30.3t]_uq5.,3Hu]_tp5\3t]_tp5.-3Ostp30.3Mttp30.3u]_tp5\35u]_uq5.-3ThhT.750ThgU1450 UghT147.ThhT147.ThhT.77.ThhT.750 UghT147.UggU1450,ck "'9!// //&/EX/>YEX/>YEX/>Y01#'37%%57%'%'7/ z`F: z`F Mu Z@DE&+A`B<aR |bG; |bGDEFEG+&'1BEX/>Y 01&'EX/>Y 01qw9EX / >YEX/>YEX/>Y +X!Y 9/ а а +X!Y +X!Y01!!!#5353!!2654&'Է*AiqodEwda}V9EX/>YEX/>Y9/ +X!Y 9 +X!Y01#!2'#654&'!!27'7ig~mv%XbEnn:˺pg7A[yf`#N"w#$9EX/>YEX / >YEX / >YEX/>Y9 99 +X!Y +X!Y01'#"'#3632'4&#"327'76jonnYsq q㹜TSRYEX/>Y +X!Y01#!#!3#BȹPBv//EX/>YEX/>Y +X!Y01!#!3B _:<|^ 9 /EX/>YEX/>Y +X!Y 9/   +X!Y +X!Y01!3 #'265&&###!0B<ε/a:^ 9 /EX/>YEX/>Y +X!Y 9/   +X!Y +X!Y01!32'6654&###!> lbu0xpbȆ!y:&Qa=:&QD&,Q#:&Q`cEX/>YEX / >YEX/>YEX / >Yа//]] +X!Y9а01 ###5##3333pPhhMCNr:|EX / >YEX/>YEX / >YEX/>Y а/]]q]/]or  +X!Y 9а01 ###5##33533Zw2ee*:3:6DmEX/>YEX / >YEX/>YEX / >Y9//]] +X!Y +X!Y 901##!5!33#%Vr~?>}:EX/>YEX / >YEX/>YEX / >Y а / ] ] q ]/ ]o r +X!Y +X!Y 901##!5!33#eUzkS36&,Q:&Q `EX/>YEX / >YEX/>YEX / >Yа//] +X!Y +X!Y01!!!#!#3i=">r_i: EX/>YEX / >YEX/>YEX / >Yа/o]]?qqrq]q]/]or +X!Y +X!Y01!!!#!#3K-eՙ_2:k9/EX/>YEX/>YEX/>Y9/ +X!Y +X!Y +X!Y013 #'265&&###!#!v<y2OAa:k9/EX/>YEX/>YEX/>Y9/  +X!Y +X!Y +X!Y0132'6654&###!#!"љ0|{e& }_:q(6789)EX / >YEX/>YEX/>Yа/9/  +X!Y +X!Y, +X!Y,9&,9( +X!Y3 +X!Y01"'#"$55463"327&5546632366554&#"׳u҄vF8yhvofhy}xubhycazIBBĬ"٦ a_4JHҲmO$/019%EX / >YEX/>YEX/>YEX/>Y9/   +X!Y +X!Y' +X!Y'9$ +X!Y"'$9, +X!Y01"'#"&5543"327&5463236754&"vśI].,OafIxF 9B:8 ^btsuz9&<Q):&\Q4]/EX/>YEX / >YEX/>Y +X!Yаааа  +X!Y01!5!53!!!33#!w_:M /EX/>YEX/>Y +X!Yа +X!Yа 01!5!#!33#!1](Ag&QFg_;&Q>P9EX/>YEX / >YEX / >Y 9/а +X!Y0133673##5"&'Wyxr26 !P[" ;P9EX / >YEX/>YEX/>Y9/ +X!Yа01!##5&&'33673ٺFSTE ̵C G9EX/>YEX/>YEX / >Y9/ +X!Y0133632#&&#"5.͘7L?%g&'9$EX/>YEX/>Y9/ +X!Yа а +X!Y# +X!Y01 5&&53463 !327!54&#"PW̳/@Q)[ŢZ}l]S-5Z!cN!u"#9EX / >YEX/>Y 9/] +X!Yа а +X!Y 9  +X!Y01"5&&53>32!327"!5&&xwep#oqp!0nMŒXʣ_9/EX/>YEX/>YEX/>Y9/а +X!Y +X!Y01!#333#'265&&'!d q:{ 9/EX/>YEX/>YEX/>Yа/]]q]/]qа +X!Y +X!Y01'654&'##333dp0[d]|9抒3:6/&t,:&K 9EX/>YEX/>YEX/>YEX/>Yа/_]]qoqqrqqOq]]/]?r  +X!Y +X!Y01!3#"'73265!#r<6%=AH4ng\K: 9EX/>YEX/>YEX/>YEX/>Yа/o]]?qqrq]q]/]or +X!Y +X!Y01!3#"'7265!#K񹫘<4<BH:+mh\'2:&,:&&1:&]a !9EX/>YEX/>Y 9 / +X!Y +X!Y  +X!Y01 # 5!5#"'7627!.dݥ=/!TYEu: X"h,j 9EX/>YEX / >Y +X!Yв 9/ а  +X!Y +X!Y01!5!#"&&5332654&##5vkkv{}irxiu(:] 9 /EX/>Y +X!Yв 9/ а  +X!Y +X!Y01!5!#"&&533265%#5 erބz}ɠvfqy":Kt&D&&@T;K:&O&&T]019K&<T)K:&\TWe R9 EX/>YEX/>Y9/  +X!Y  +X!Y013!"$5467!"ms=P*8Yg\ !9EX/>YEX/>Y9/ +X!Y в9 +X!Y01!"$54$7!376676'3#%!"GjXor@/={Dn8dn+,-9*EX/ >YEX/>YEX/>YEX/>Y9  +X!Y99" +X!Y( +X!Y0132336676'7#'#"5&#"327'dķj_NA)yىNlRS =MA_xнff1ޭ>6'f()9EX / >YEX!/!>Y( 9/ +X!Y  +X!Y9! +X!Y! 901536654!!5!36676'3#54&'kSAtA0uy{bEPO[ιXM@x1:'c()9EX/>YEX/>Y +X!Y9(9/ +X!Y +X!Y%901%36676'3#&'54##'36654&#!'!_pvB-縇zn}uܼX9pGWJU]J4R!` "#9/EX / >YEX/>Y" 9/ +X!Y  +X!Y9 +XY0153665!!5!3'67#&'54&#!aMjQk<wy}dFa@Hsn4~y: ` !"9/EX/>YEX/>Y!9/ +X!Y +X!Y9 +XY01'3654#!5!3'67#&'54#'lVbMiT g3gSI5La>Ht}!^Dp#e$%9EX/>YEX / >YEX/>Y +X!Y +X!Y  +X!Y 901!#57>7!32676'7"&5'Y?(]d4 _YO?).܉k`tͼff?::!e "#9EX / >YEX/>YEX/>Y  +X!Y +X!Y +X!Y 901!#57667!32676'3#"&'1A6UM ZOl{A0lxZ !`yP|yq9EX/>YEX/>YEX/>YEX/>Y +X!Y 9а/q_]]qoqqqOq]]/]r?r +X!Y0136676'7#&'!#3!]JB+{؊Beoͺbg'nM:9EX/>YEX/>YEX/>YEX/>Yа/o]]?qqrq]q]/]or +X!Y  +X!Y901!#3!336676'3#&'C\Ml|A0滧3:*!duSyv"I#$9EX / >YEX/>Y  +X!Y +X!Y 901"$'4$32&#"36676'3 ܇;bq5&{XDuϳ[[meNF 9EX/>YEX / >Y +X!Y 9 +X!Y01%6674'3#"5546632&#"Q`Zĭv֋`,cPYzrV2B:ܳ#GO9EX/>YEX/>Y +X!Yаа  +X!Y901!5!!366'7#&'%\LB+yىH`rnbgF:O9EX/>YEX/>Y +X!Yаа  +X!Y901!5!!36676'3#&'^Mqw@*蹪ct}<)r$*+9EX/>YEX / >Y +X!Y в% 9%/%]%q& +X!Y&%9а +X!Y0132653# $54%&&54$!2#4&#"3#Xϰx%­ıxtgV0eeugvu}~/K&TE,K:&TTop # /а/а/ а//013#3&5tYިPIBR[{U;_% % "FL@"Fff@ k+01!5!5!5!llkg`1x! 9EX/ >Y 9/01#546j]aHtf0G! 9EX/ >Y 9/01'6753i]aHd$; 9 / +X!Yа/01'6753i[cIvdeOg /а/01&&'5]jM_H@ah1&C<& ?$d1 9 / +X!Yа/ а / 01'6753'6753i[ci[aHl@HkF$ LEX/>YEX/>YEX / >YEX/>Y  +X!Yа01!#!5!3!$lp_vW`4~EX / >YEX / >YEX/>YEX/>YEX/>YEX/>Y +X!Y +X!Y аааа01!!#!5!!5!3!!!4jssj` v"  9/ +XY014632#"&5o\[rn^]oWpm]%WnoX/&&'XR,  9/  +X!Y014632#"&R66688666k-==--<<DW#'5CQRS9а&а(а6аIEX/>YEX/>Yа/а/а/ а /$9$/&9&/+ +X!Y2 +X!Y+9а2@а G +X!YN +X!Y014632632#"'#"&54632#"&5'326554&#"326554&#"326554&#"7MOOL ihhXJHVWIGYXIHVWIHWBXJGWVJHXeyyGxx{HBrB7OecUJOdcTJOefRJOddSNebUINfeSl /9/01#53'&sY/9/01#'َ{{;nj" //017'hhnBrB6 EX / >Y 01zT 9EX/>YEX/>YEX / >YEX/>Y 9  +X!Y0163 #&#"#Jn,{ m [h)!*+9EX/>YEX/>Y)9)/ +X!Y +X!Yа аа)а)а//] +X!Yа  +X!Y$а&01!!!536675'#53'#53'4632#4&#"!!!>M(2Ⱦ޿oi\SD[ `E}}Աk|}}6#&)EX/>YEX/>YEX / >YEX / >Y 9/а/]$а$/а/а/ +X!Yа#ааа/ а /а/ +X!Y а)ав& 9' 9013#3##!##535#533!3!'#35!%3'5#WbQa;aLwwh蘔Д(#)*9#EX/>YEX/>YEX/>YEX / >YEX/>Y +X!Y  +X!Yав!9!/ +X!Yа/' +X!Y01#327#"&5###!233332654&'#6A#4IF|~ɹybaAA &6WU#'+05:9;<99а9"а9'а9+а9-а93EX/>YEX / >YEX/>Y 9/а/а +X!Y  +X!Yа ааааааа а"а$а&а(а*а -в0 9 2в5 96в9 901333#3#####53'#5333337#37#3'#7#%7#3''Xe)fVXg)e[VHp#ql$ܮ"h7e52$˜˜$ : fEX/>YEX/>YEX / >YEX/>Y +X!Y9/  +X!Y 9/012#4&'!#3!2673eo>qg:Lx_:u~N_#$%9EX/>YEX / >Y# 9#/ +X!Y  +X!Y а#а#а//]  +X!Yаа +X!Y01!327#"#535#5332&#"!!!Qtfxx jmn"% |}#˼}#(EX / >YEX/>Y ( +X!Y$(9$/p$q$$ $] +X!Yа/pq ]  +X!Y!а!/p!q !] +X!Y аа/а$ а$ааа/01##535#535!23#3#!'!!!!2!&#!6kDm?YJT:0^p2,4^YV*iEX/>YEX / >Y +X!Yаа/а +X!Yаа/  +X!Y 901#3###'3667!7!&'!7!@.}.0/Qu i}k\ EX/>YEX/>Y9/а/] +X!Yаа аа а а +X!Yа а аааа +X!Y9/01#"'5755737765PldǦZooooYssss X]:]9EX/>YEX/>YEX / >YEX/>Y 9/  +X!Y а01#5&'##5753߹q!ڷ 4!m"pEX / >YEX/>Y 9/ +X!Yа а /  ]  +X!Yаа а  +X!Y01!##535#53!2!!!2654&'!OZ&z'59:;9а(а8EX / >YEX%/%>Y а/ 9*:J]  +X!Y +X!Y 96F]%]%а/%+ +X!Y2 +X!Y6% 96/8 %98/01#"&554632#4&#"326546  &5326554&#"'{z{yIBAMOA=LXJHVWIGYiinGo:MfRINeL:GGOecUJOdcTBrBhj!g"#9EX / >YEX/>Y 9/ +X!Yа +X!Yа  +X!Y01"&5#5276632366554&#"bnq_xΫkpYg0&g#$ƭ%kbcU{'RL()*9ааEX'/'>YEX%/%>YEX/>YEX"/">YEX / >Y аа/] +X!Y  +X!Y +X!Y!% 9& %901!5!46 #"&5326754&#"##33gu8_VT]_UT_T=]bkj`eakkcnqg8 nEX/>YEX / >YEX/>Y9/ 99в 9 а +XYа а01##33####5!ތ4ZppZ [!vwq8QNe9EX / >YEX/>Y 9/ +X!Y +X!Y 9  +X!Y01%#"&54632!327"!&wĬzs^r>nz*zqT''$EX/>Y01dS'&'$EX/>Y01cI'!'$EX/>Y01Y'#' $^EX/>Y01j2*^+,9# /EX/>Y 9/9  +X!Y +X!Y# +X!Y012.#"'763 #"554"32655'&&<]:i`1txސ䌟MDy;0Nn2֥#=Zj+(/EX/>Yа +X!Y01#!#!6<E 7/EX/>Y +X!Yа  +X!Y01!!55!!kaFAJҐB"EX/>Y +X!Y01!5!C?= 9/EX/>YEX/>Y9 +X!Y013##5!0;PtbN,<q=>9$а4EX/>YEX / >Yа/а/99   +X!Y) +X!Y0а 901#"&'#"&5546326632326775.#"%4&#"3265~߉PQ쐉ހ~߈QPPr4 rPs5 uP ܼ'*caܹ߽*a`޸K?9EX/ >YEX/>Y +X!Y +X!Y01#"'73254632&#"e9:.!=f a@9wEX/>YEX/>Y01Pf"s@9vEX/>YEX/>Y01+ 8 9EX/>YEX/>Y99013# pl')'%%$ny3:,EX/>YEX/>Yа/а01#3#38y?\_W  9 /а/@P]а/01'6753iHOHm\L[<&JJ,9EX/ >YEX/>YEX/>YEX/>YEX/>YEX/>Y +X!Y  +X!Yа013#5354632&#"3#!#3ʫϽp}qwiI\=2kk^U:<^EX/ >YEX/>YEX / >YEX/>Y +X!Y +X!Y а01&#"3###5356632#0|L繫e+ckUv=(<2'+EX/ >YEX/ >YEX / >YEX/>YEX/>YEX*/*>YEX)/)>YEX#/#>YEX'/'>Y ! +X!Y%аа  +X!Y013#5354632&#"!54632&#"3##!!#3竫@? /5ZbϽp}rwi޹po ibr\=2jl^UU:<2(lEX/ >YEX!/!>YEX(/(>Y!" +X!Y&аа!аа  +X!Yа(%аа 013#5354632&#"!56632#&#"3##!竫@? /5Zbe+|Lpo ibrv=(ckUU<&vEX!/! >YEX/>YEX/>YEX / >Yа%б +X!Y  +X!Yа! +X!Y01#327#"&5#53&''"##535463236A#4IF|~=f]ZaAA `p9,_TLͲMN9EXG/G >YEX/>YEXK/K>YEX@/@>YEX / >YEX,/,>YK +X!Y  +X!Y аG +X!Y@,9@  +X!Y:,@9:% +X!Y1,@9,4 +X!Y01#327#"&5#5354&#"#4&#"#"&&5332654&$&&54632&546323Ow#4MBvfbX\%berjS蹂qriqO`V,ʛ~ UruXF;ip|LLnXGCD>VyW\`]mUGKSаFаJаPаWа[аaаcаgаmаpаwа{аааа=/EXF/F>Y~I+z{+w+:+ =F9 /а/а/ а/P9P/o +X!YPo9  +X!Y% +X!Y)а)/.а./4 +X!Y=< +X!Y=kаgаcа>а<lаhаdа?а:AаF`а\аXаKбJ +X!YZа^аbаGаINаQ +X!Yv +X!Ywаzа{а~аа01#"&'5463232#4&#"32653#"&53326533!5353!#%5!#53254'5!!5!!5!5!!5!!5!3254&###535#53#53%#535#53#539df~heCbrT24JA@JJB@I\iRXm]h)6q(om56o\~gb[\ [\]v:<]qqqqqq"oooooobyx^u_|x^%IMT F-HENNEpENNEON]QS[6,;qqttSRJtttttt8qqqqqqP)~~~\s $(R++ +а!/%/+%а/!а/ 9 /9/01 4676654&#"36632#33#3#AD$J\:+98][/KR11::'J34@4_YEX/>Y +X!Yв99 +X!Y 01!!5654&#"#46 !,m@YEX/>Y9/ +X!Y01!#5%3cY9uP H9EX / >YEX/>Y  +X!Y +X!Y01#"&'54632'4#"327EµU TEX/>YEX/>Y9/ +X!Y +X!Y +X!Y01#"&54632#53$26754&#"e)#Oih|nװ?xO@Blm`!,eEX/>YEX / >Y*а*/*]*] +X!Y*9*9  +X!Y% +X!Y01 &5467&&546 4&#"3264&#"26cUbsqbU`bڜlknmt]^nopZV&&bc'&VXVnlX[dgeNdaQPbcB:9EX/>YEX/>Y +X!Y901#!5!F~$r e!"9EX/>YEX/>Y +X!Y9/9 +X!Y +X!Y01#6632#"&55!"264&4N߾@

ꡫA؆(M\ 4ڇqIM`o}MB:à$}3~ ɉ3/~ \"UQݍ9<(K. xuy+{@ĈͰP<`c+[V'%@ʪ H*)X .|ms*t-} Tdoi =MG4he`U{z?q-cN~p"Ra7l_"M4gMNQ.):\r`/+W{!n%B-#*+_Ck!yy&Ql!Օ7GKjά= 4eC(.eoi] NKȨAӧo_b]Ooh\77.dUy~%ݸTQKi.CfWz%Q(?sPE#d۰o35țΡC{$sw֮gpˌ8r F^f8 _5?uaUkRN6ʧGLvۡhKxaϡDߨw&=b׆\lBEQP?4w!Po!/@nn>W!/Ka b}V,9]jD=;Nx7.99L7bׅD;3hy_ _ >(>vai  ~@2E >`R?Oo@3 PhBbvJ"V`Iwײ\܃)MR;^0ʧ k>(OuyRKSlnA|ũ(~f e*Аg`Oh4'RB[HV(wA"u~47@"]z7G0(dIBJ}(c9A/Ww$0ǐ䈌! Ya))ӑxLin,6 CK /o2K 0u5:2彔s`:m霊F])4ӵF=YI(,xD}6Ŗ)<vj@~4?E`)l^. Ay"tx K;a*I$1Oudw ˗ކ&qSxv? QA<1r}(:}ѳH碎B&A;ku)2m+-0U5C=) vj9Lu"G1T8#/DĴ^yCۿ7!z; VO"Ss``LӦ,q%!hsaܫџީVO9YT;Xпx,*߇H\>? [@D,`lýj]2Xʀ'WhTxlrz)S'5eS+gZ0gqW*lLG4wyr|ɉ."ceL$po#@ȖY6QD+"`jXMX_"ؠQ(נ%qѦzʰE$^=%U6(QޣD'2kHuSw;uެxUm@*Sbω x3p?)a1ulQ r`x옇[emSyu|h^~|_vyy&F眳Ofjgbuu>&ԂeHu}؟yh}HE!0Ta,? 8״O VmR8=rIZ7t "txp(OcR;zo;qICzzI$e t$oNnܖW<0^W6q(VDD1Jud27p}|zݫַA܉h q4iDyw^8}Sf, Nc[7UZ_Xsފ/C߿{u]p +cbz ${l'e~۬z԰-:uyu"괛~DJu6/'QLƺ]lڈ}f(GP$H+OZmP,*8_w!8WGZ*3}~Y.ĦxŸv 4`ISHl?8lrNA- 8Q\Cy6;.8e|B6 GEYiP(Mi+Ps{H~Q8'a8]c%X#gwPG摇H%$a?Rd%m+x[Ld=- {m,v\,(˫ VVTvxm2,YF{&t61p㟗`H7w6úq``|`t7d7wv8іVv }wIsjZ3Ius.jo0g)uQu=7Y(jgE0srjEpʎ,VWx)㳘zHb;%cuz2 Kz` t dx(ݰ2wxQu0p0N b?ҼL?36Zy؏| b<l_I\_ɻ@᯳`V^Z?O*Ô4>q5Uٝ23LW`qj7ekd':̾žxOG< 9c:پ嘯p;i1A5`}?,m, #> ꆉ#s;hӇ$@Ñubqn9ؾ~ m+on56EeTQgvL׳LY(ui6=柰"a1Z| ՃBF8O#(Դfv-ɑ dAo<{ BQ_Aɜ:Z&]}kf*bWG 5e $FHG#}G9蜑В"%Fx"Sm=Zz^D"&E 1Ba~yv5`c/b OA:>HQ5Tb(һY|P<򄏰\`\-Dvz ,}=wlc?`q̥S1O Cƌ]Ύh׹osqP" +}1XoB~1p!XJ!nU0f8S#s`YyeChv$@W~Pe؏oE"`nh@x/ Z[HmQU@ͨD=@Z bc6x-ϫu@p[ŵ9 Iu.OwZ'׆m;F1atP0,<)'Zuu byCErw.όDR1F K+*~6QJHPQ|<تp5ȋĀ?V25,v,4Prj80TΪIEciUo;srS.r)K\ R ȥ@.r)K\ R ȥ@.r)K\ R ȥ@.r)K\ R ȥ@.r)K\ R ȥ@.r)K\ R ȥ@.r)K\ R ȥ@.r)K\ R ȥ@.r)K\ R ȥ@.r)R~[͟m+]^ļ N$TN&2owLI/^ MSQ&Q~ r:4ԐII7WG{!*-P o"Ji,=UGr{M_5ITԩ$jo:۾/ۯFKy%3q0CIk.Jꁭa+OZKid֒vc;>Vַ`g+lec-YHNMt߲CnR6r731 c({Vג閒d`~G[n+í%mmَ+Pq~Z+۶lۀNevkl/gL!]6@fΝ[uR1$0M[;U^6o[k)k+k6rc-XkIf[ f+ldJGk/J4XK #%[7R[4̉_ 4tH(_ۍoO&Iuh_OKHclғ` *"AkA pab+Ru/h{|m.~҇Y/N优N^Ie=-_QwP[VߊƘC%dL-t ?KOCDy詿 P: wKJ!R9϶ x3ȏ.c5z9}3gs6Q)S"`<~Rg&騦m[9n*sf^a81fR"Iib;[Rz&O!F$mB M2M)Hە~G_wa$)8AU[v 6(l.ōY/}^|gȫ#yw@0W `OOgF'Gwf5 T͜/LjC?Z)% -׿qS@aV*mo8Ez`4 hnwmP47ҀY)hùT`M7 GVo&  c(U x@/@G6m2͟IW #|+a#+v?T_ _NhIg!bq>aljN'Llǔ.,^v-Kwq'gtb n[(o,8,6cn/'Nש"k  ]'E/iB+-VJ>U Hc߇tDxRq*{ޮ=G~2+Cm'M0*Ihk*9x3'|l0|v&%^`*IROJS_!?!yR]q8,fس%Ө>wUgTtF.#ϓ|/P5 ᾥᬮ4B-ve4 F%i0fbN8kW^t5|(~p ,CaUiK _s a;7@.2%O+L7YI36`cl1bM#"㿜k'ڄ~jx|lo4S0W44/]Nt_t'o<_fc%o!ςS7sAaEe8-1-О6q"0|#t'"[D6+Hɍ}.%@I  F54#{䃏S0! vQi`@G7r.'bp ]:i%p sEA - f%/-9NT[6?U0H|?@O5.F/;~" k(]}g160*=v86jJg6B҄JN4gaE`4)c Qy#X:3)ڥp Њ1r[vs]35%t6zIJj`&+k 6F XL20/Ǐ”hZ")וdأp -P'S5$B $L Q;zc>f,y<$'1nwzȽ:2IT/-76x/+Lc=3w- Nz""3Rt>ivoR _F323M*"Nҥex3VF~_[n3|KI=NQmU1 rOp s7IO^Y  ZȥT[kLH>[x6(#!> 8.<`VgUrɃ [8߼R4icJ+)nLci_ Q;\,(:,uh6d)-2%!`)([4'#0K0?~ E `lzt\IuŸ&pCwB??8 o cd_ݥb^xr։++qz1c+@@y:E# GنAl$o@КdF5qDw@`q B杺ɾ[U?B>ʳZ){xB\}tm6|M@XY@ӿO ) qޖI: o$$1ϱ=ϯAч6X; j*1jo~<:S~t +#mj oΪIK(+g%;_̛ rVSЄ͓¶uҐDwU)u6{ko"MpVHJ{_i}.7DSH`Fz+/&"xKu)ZbipY?`囡}ԕ穐zCZz;!>T&* ,çe -͙iwRACZ\ 6)9(MV&>1dXI0:"j\G62XD,Lɯ%$f!i%dT~q1]q8A}0h-a #:ΌU ^A VOihTQTI@ Djt"gl K#jtUuT?Is(gHgTQΖΪ~AIZ~YRe$Tnfcx5RtZipd)? w|m[HXDs |]݉ZS@ tO _@ +9wi5۲u >veDLxQQ^Yʻ*KR2X) A;xv> nû*o<"64vfyG_JMLJd;mBހpI0^ 0́Bv R;l_c&GЈG?B|W[i}ޖޔ6/zWxot泆HXKEg[nEinu },g Qgx> X pFayX@G8 -5Waߟ/l~U&GڋY}Oy[C&p։tFp[>t,hVby+qQF IW䉨Z)cYFNSJn\͂="#{v7cmPK٪Й:G? &D$+V"@yԣQ鿱YU/iOnԍMf?KgKi-:Z\CT X1a#xAca'Jt2ɐy0ه* >xwqsvaLfާ<|b mٳϗI& =y$4j萶ϣRJ L܍O@`R=;L^wF!^Ghw~*L Sr6sTl!D(DkVi,=|Is!VQ ֨x'I]ʺgkj6}6V\up +f cUTM W3$R45E'|ebqK8o?/ktZlW2FԢblPt.*~j?zߛn54pS"cPb^mHKC4^O?)+( .1|C.*c( c]c[r?jMqfQ־G=ng?8tm^e+3׎H.{V3WPPC?8NjƦ`L?oF({>/6uh+%hkr|jv"T&f\v//>{bI)lv yA^J)tbobTrKi4i)=dh,=.eF܋B m%$+M~W:)!-1;[eJWZOce'csORV f ,IgJfbgcH IKƔiP7#=>{ҐӲ#|h @W^ƥ(U.\:>tuU%}NѪK>AIՆ{6c-Qr^Ilp?Psd+[%<4f(l}p,}V;I9˺~GHV֬IkMuVLGZ-ϧ!lOv@|a% ,ò babZFuՕyfVUsS,>RM}dcmrU+!i wuQy@k(}aˡCX!w!wBˈ;|n)[eG?8ĺW[&ǰOn9=z<ǜ޴&E4(N]տg :e/q L GUdICHHpo 3Zy4TrYhTT10Df _:Y)L#frd_j1GPB1$;GStsM)Q5|(hT,z+u@ȲO/YʐMՇ4^jκ][uW`eQΣ }f`zhk1[Gem ,`u %X [Zʘz"XH<]J^>Z0ehH }>5PFKV4ܒ[UNU^%X-8!9}$*p?SjgCYb/̊>L~u@zŵ9gΰ]WnXC|P`KIAR?;  {9@@d}sQ}bTtNAՇΐo -EbpDƎePq9&HUɘ6>mt]ʷ왙wԕД9aO3d1'Z(%ϒ^-6f㷪)K#{Atn:}FA#\4DPqR?īA°* 3a ?g?A52y 8ʹs&:I/n=+:"Yqxׇk&2֬3MK2L%'aJLRtG"bQR\?v\(V7f#'GS\.I*i2ӳFo4&K;ڶ {>7VɧwiC | N>-)Ѓ(oYys /q-ܫ:;(I UZg1c 1bs"T! 1{!+Dw6FQ}_xpu*[͒]k8q`F%CX%dzmHfy-vl: \Y^4'M=+ӡF^K;8 r!jkTȱugVt\H"t"t#ȡiiA,6ɽ_ƏIE(\\qs93բKH|| pwb^"e&-9#ze [L&#?NS*12_ ss~};lwяųxX0 F ԻNr:ar_ ?$߼zs]v^庬;x*'9wݑCcI&W)\`G,VogɎ/l~Z-m$ f (f gQ؜t  <Y:2cSQܭtv'W,nN 4b΋㛔ƏF\syo>m^}=砗dLJƺOұ4^ &clΒ~, _A\5i("ŝp7\T[wS7^qזՊ_1 C&@&+*nt@si -R['JlAߤ!1 J6QTEZz hkXseT у]+̺F p鲫l*C{֛`xuG}lƲ$.\Nj ,|7qȄ́P4!d@-YG&ȹsm?KM`ԥ9*tl3VST/Y*< 3cd 9Kk VF 0j¸d$~yB`*d` dR:j6<F6de3'dLäQ-HU 4\lo\sdK(j ^pɣGSBSP^&hsB0V=&pV9< e,x7a\Z(rQtMpdyIՕ@z2 tu[_:d;@9aNvyavAi_%)M`&6VESUS ¨MvsixviOXwaY:yS,GFN<{[E%! ̇\mpG|L YY 0Aȋdg9\<ZDu(GD\2 i/W-E"@^b8^I 9Eb"N`'vYyo=`R󄆠 mvP]ƸƠyt66Zf.l.}̍~mdIjKlW&Hv{(۱9ڸ0B-QX,xa+@J6\Gu^(VZ : pC?^0mjhNT_>aR;0 e+֓MY7G[ɑM`NЬa|&-mY_  YO$LrA$vL^Hϯr'L͋9QIa0S8 -W!;@* 'bYdA=GK&uuJ]U WG U9?&kPF[2~dR$UZ#$?>YB &f ܄Ȅ-&tJݐ&fWǒrveF }1Hdii5>{puP,#hɭ-<  o>S($?& p'/ﭚ ޸c&^-ʞl @_,fیd pbb |xΞHb)T>|7㘜y*^6vVy\DlÇ@ZVEA(a^¼L)RvAet4cb!!O ' e:'MC.uQ;:!9Qr:8EǛ< yXKK{{iNVJv.~ q s2LLdiߥ} θq=# x!ze]̞,ֆ h_T#)UrG Pķ1 xՏK0{Xq^q y\oL]K6ՆVʧZġ+Xn7Ja%%J%zAh$:Kw#&b&2s#W>bz(ĮIio3|q­KZ0!8'[5ޛq~5c߸t[S+  N,=Uˮ u[tC"D΋Y w#2ދ%C'MLwKHفTPy<KҔnɋ,9&zgKe&%_Nگ #^P6\L ì*pO&av '5]>]mPLޞR;!oCAI1J.\(PTc`A1FR-A IDjպCTQbBMH o]{y\2$^с'Zfُ p[yEF#%|6eMGQ%=n; R{u< MG`iIibf %~q<簔G f > ɼXՖ&ʿ(h/V|E]Qabk˔g=Asvq9U|L3y\F-#m;ʶ?P)sϳg#>!* *:pKEWl0J `  Xxg>HªEy9ֳНCFIU^U"2+fW~[0oJEbOCXҡrY&>,EI!p:}ܣ~\c!mS-^XL3iŦ7Œ*"`ؑ50޿SA0,"XH0> x#!дl>cJ)^>:rBG' ch{B'_{8#a@B=458amPI===JƝv.d0%X&1iY;@ z"C1&*r@d0Lkg &*e,Y&.Kw]67K( ^4v In,w-p*z@&@Y "ZM t8+`%ON]5?9ٙ#lR٥2zğ~ " 7ƨ ?x%b4 V(x/x,-D8:2!v$h&Nd|쪼ʹV:[v5,D$A\bp.bA+8yScu >y&.7Ozr{G }r $HNLwQ=5AbY+B/X_xw*g{ RhA _~>xqi_.vTc&EC֤E&.]$4ȿC_ @x$nb` ȕ`x ?$K>kCo`(k\ MtE3ۊbD|Aǂm,(~pg/xu` x%08ybc_0o)b`$]snz^<:p\s3zaBidhiL(LMSfcZ ^k+;N}|&ZB+8gM|Ekd™2 ^{pGxM&a<F7X@Y'KrJsP0`5?aHLaeBG|_WQV6!eKOh؄$9&l/p叀K3&DrQʯ>{įzO uY0jE0V])=ZA3HGcLupv;ش|Bi#_0>?d_bJR(ץ(k46!Ao N MYE~#[2`fC0fU =%lGa(1(9!PƳ@`Pe]Pό ZPe> k17[+8O,mk^{#ΖAu(/844eOb2FGNNa~{TS{rvh-xSLr3pbV=>B˰.m)'bL`*ж*0$|YlYO/Pk#t)EBT44t*I=Xpi7 ̂ʝ'W voJt/?_UCIE_PEg|J>7ځ!&ѯvx86%jްi˽[X;D:͝!a?MnCh3:pdB1$P0&L._I2oDibO5o}+]y3@-N`kz"'򣖶-Bc A0& vv775(wVLnPc%긋,T,E6 n[+@A  wdͼ7oBt?4Gshm?(ꪼ PRy߮$x&'\3gd.,W7b q_)Wf4\tGIc+`cٿPH[&Nf)a$3FǓh]gjõw֮X#%2Nz"8 '%&"ۇyyA%tVۭ$ߞ I1pyGw6LCJ$[Ė3ѝ0|R4X`Y+!h/5.ݒa>| wnti#/6б={&Gvj"Ĕcm` I9ll5t-iE+dd2VMƲ݄xJblV:>R$֐e%\ X&Z[c=kHUv0uwp5 +mAʖPڛC㛔Y%3wJJإ{Y Ѳz ˟QZ?+!&.޳&PɅ&ZO>62>b~t*xkK:,3aieѫW$ꈪ0f1 v~$S<FѢP%/KmMITO>!*ڰweHbN\,>|Br Kd.jo[za0'zwS7@ ~iCCiH"2P.UYwAُcVG!18 1?z&6ϴR}лHѢnj tG1وB,L V !ű2}κ@6cLpl8`WwFC)|dc7. ׼ UqGV^x uЉ1J Mٝ8۩S+w<мXli"I%\q#Q>NNpg'$94s1:nkFZ1X4~(iܴ`xy%gPcs{s_SQccEPI=1 >;$ڤ.a+`.BTъv|纉t5ql"as| ~iy!A5Pu>j0ڠ+8 {̞2z\|tcuӴ@ƞ߸U]9|h-J1R.$@Ϟ=ì'R!*ne~ L-.Hn/9s Uo<,.>I.Ba|6Ŕ4X<=o ?y%5ys!F&9LBoD[Q`7X{p,$RmQ2!ӃӋgAȪy~xt #6E64]=FW7 e.L#C^0Dtfd!0O( K8V;\Onmںk@͈ȈH]NM@fGi4C144$aAb1k?4ZQUC]pmm_ y4|kJ;N20ғCaڙnfbZTqw>&ߔaxgNd]]8%$dC^tX{$f */ ݹ$ g<0Z#]a~tյ]š&N*6>Bt(Oq$KkS!4G8<CH2|<d`x&Kr;"%: Yo8k$-%~CF]BmeJ?v=7)Pw}0f-&Zca f[fbPQ*d}Sg`?3){8KhL[qGoss`83g;z&2 nzZLULt,:P:CKQ>KǡǒB Pt5keJ$$tP`bl*=xSQ|"G"$xI9aޜq/w_k@kl_:. b#1 ySa=ڽ89EN'G`} h5Oo>9yb{!w_J\ιw_r2P*YdV_ A"$R3rSt`dh"y y| 01g9pcIض龸uuH0"|ަ(ύMELޖ&UUw4},bRq`ĕjJ{@w("Jk_o)%V] z$)/=J18g`LP ~Xař$=dB,}1>V{oL{2aK4 8A gɛ`63"P w/)/V^61÷c/_nSL袢 -/*_21P8d0wϓ'JNwqovE oE^{;$%D/v+4]553\»waM&`<$lJXj&/K ᷤO[s&7ش2wf4eOewt鶇~);SvϚbKvMyc !EJWz®4G.lmj 64l|3zc eK/vY,2Z ʛ>(t0A={]1_\+QFYOpN~gdD{bD׊c.65iJw%_'6"'Q~]WK SUo06>& ؾZoW7Ԕ'zC!‰W*kzyn 'x NҨbCM,66]ߍjuP㶮dT5k0cb1 ܚ2*#VǡҀ%L cί2MyeZŕ{1]T"OGcLZ-]&djciWӾW r*jbu#z#!*7U6զT|<Ũ*hKiLtƽa`4NvHWryr[MNC9V1"DӽKٕ#%O0O#LloʹڴǢ*DUklڊ6qgnxOLZ$u&ai(ņ"``AK>kcMDN9Nr_-J#3gXZy;.܂ql`|H}&85:rpbƶ~=J ^Ŷ[:}H?E'pÿ6|.ܓIhM&ab5`ckk^R"F:g؃v<h9 N94ga>cٮk&w50F:GRͭyNinNPePT,aVg& ZLڙH:iBN?E#[ w#+oE~ :eL2=0C;"="Ch#ho72~ȯ?ـii2GI XpDSb`y=sJiXZEtXͺ'sY٦SiL,ӓESk֝j38W!? Z0=f {X|5xif a ql &ԔDŽ `N[1oI|yKGSwNu>WyJDkr#n>Q ;OGG$ꂑA^IjVE9 khQH27W3i]߻eX ^_! zpNy,)k G|d,AE)$Ѻ؄؈X6Xfz7]ʮlPĆtzr0n0I%o`Ǔy3,ЭƠs5ǚ 7$s390%s)B ߨ8YnT-:vznS߲e^sa-|Jr* z jaeUiX5wў0'oS|0wlnEFiZڼRYs* q:h/NyE5"6UDC5/`5ǟ R4NPd> Y x:2Ct~dėh8|=w3vrm:qh0RWa< /@<~/ƚD/4 ^f(TKcQ\y~aL]۾2e'E}s-gb9 Ahn^Ѿa.B=b9xG,|.uj\$0Ed1e:53rf YlH[r$ءtwO5X"˵(]k6-+ErRҵT'K/Yrd[RwϐCTP-(G ꏭD.d"~5p`58oB[~bCV+ݠ}e<{ ܅WY&D Ll$~{)^AXPj4νCMr4^F&]}1ϒ忭>?L=%JKa|<\D|$& ]`CkdSnAF@E Nٞϩ|92$bɕ/7Vd%GɕGMq>9e ,TҽB.Y= A4j3!QywBΟ-$4@.dm?"G3{\d/A$8X<wQuCM֛ .ry叒x5Z|4+߲oD% -JBI,G* ztlHF৮YAݘr5] Bu9,yu-ć7lPp|V: ҿt"(.>,A%-3”}dxR'w4V緁u*L"չl/_N;!|`w7]Bq9%6͠]H\H|Qd6_3F{_h %1Q0-ǒ-/h=4VLݼZЎ|v_[>']{sl? fg9$(۸3_!;p$?e"?6:ŒRv[,9Ŏ(V=?IͰ~?*ˠh” ϑ[ JDs7Ɛږ83~PضӥvYw$$ 8u-Ӻll@N}yj%Mwl?*G(i 6ʶ`և\U0=Ǖ+WsW "0Og3F]|U &Wy[iҠOdfGdxr]S?doār7!ォA6I]ōz{ 6_u?xbu& ۄ7A,0,B/' 吵x Eϊ JT)Pzso۫G^y c꓾iO%N ʛEf Pr=AJ)\Zv#<;qs葛}|s2ݞ-/נDb%$T;:,I8NTÿdK~@ A`cbH\4C[$ڀ5 KO"vq#~-H?$ᦁHV[ɲ-%A1򲬹$B:OGi$(L;:,y|~=G=oIJlV5z+}$(hK@h]/ y8Ҹ\hep]2KQ*nz7۟ (;IW,^r6S'|PL8NF+E(8AnQtDJ'%֍ZH2iȽE. t`YDY817m:Q~ )9IX2cP 3$9Nc7#JUߐ{‚ƫl,g6r᚟<P%֧mΖ5A@m#xGTJLL7X7*o:+*m!7[T1(& =2W_?䭀zX(X&zgH1k (TM!C*RB_'ǽd6%NZFQ$wg tg3 Us c- kQr[:`=&~]Pn1k8M$L0*¢=[mhu`=-5t$o6R/#` k b ~[xt.0{-n+쏵"ZWsסt= m6*|WدUhKA{ bJ[a/G)#0CR>#0 =IMˑ,%)-a=m*FV<(jk.owUK!dXQC(:>Vyu46/(({ `7^[qYWB #gYi+u; $!áZ$y~ J(| ' Hm+p 8d="7~ȑi텍Ioh05 =NēDT``[uւ~蚦~B.Oh '_h;y~T=M5~ϱx%~\I UIߙI B0v$O,pqjNZA`wi'O2Ih IRQ|!HaQs;H"j8ٖ#X~!tU3z[U>H_Ņs.({ ^fH݆ė,u4‘_guq[3 ^PP*U8 HXvv$o38y(|10N7?IzX= ȅ.$$4"+wWIiqa5VU҂?J$~>$~+>%Bz*#7Zy{  vqw?nE٬ӈ\i#p+mq F BWhۜD޽ Fp]Aץ,.wG7 1lw{F} m>*.b8@;|K +!qXINo o$~D  zL`(u$2Iz/&, w\9:Sp;~P޵Q?%DpDQ0[IZ;bފ\K++ܟIh[XF'Bgꢘ0'|x%~]mOH;=j{|8(Xbߛ&.2=t2o;W?r7w(X!'2o־z cei`B#耢~$52ǜY[ˬ>"{6VdYy"'0kżk^o?UJBoU۪ =ivH8֊b磺o0v䠢'4dV;^$XQN8H  ~$%{Os#ِA5Xy"PKI~En1Femj3ABݢB0 2jL.e;I­ zD-e Ny@F hKs2R;[ N_+}I7g-M>9I/n4Cy M]E Z^'א'vńA1;>:F$ޱN"W%qޓ0 n4.j(mhFp3뷾pYGq4{Q?v7E=/& LO{ 7ѫ0Tjڎf?hiA>m*xeM^~w !NN˳ |f䩃5Q a03g\t!Ģy+ EO@xK(ĩu<~SN`t@PJoYH^?ÚÄyDjD{~EG/]L@yzK@6nmH|3,@D?dl*;Q$]ơ(Q`fՄOꅀ'϶"}1>0i/ W;V* Qh1%yt=աU[9!G%5fC(& >Ol<94Nﰄ;('i?U? QڠTT@zH}>3EMQ?ᠬ aY)8M=`F*кH ^2,:,xG%Lx%+\Ewc):mO(0«@7b!J@/_L@JoALfn"'X.4\_(IFhY[:m'&]3F{ј2Qͷ9/=y{peٝvU*N689{ŶǍ8ےl9e>)(صRk xs$yfYI,zԟ>`]wft]y_uf쾣*Z<}PiTX/g7P2" U<]Fli6^xx'K5O1-6:T3Z/>`~F#!8|ENS. I>Nw߇qBet` _~EoB';e6h>2NTevF0)h l_Ұe~cFi[Q d1'Fu?`m~܉0Y=خaQܮ6+d:V܅Q5Q0GGwa͜yu[E]~cY9*fT2=jK%+`;-nH#~no7׽ܑ)hE/,a_W: <-/tA)$ -N^iUǯ.StذF 16>/w 6ʻQ*`=x5\nfbĀ&L 01`bĀ&L 01`bĀ&L 01`bĀ&L 01`bĀ&L 01`bĀ&L 01`bĀ&L 01`bĀ&L 01`bĀ&L wa +ޱ%IENDB`ic13PNG  IHDR t%sRGBDeXIfMM*igI@IDATx]xE3Jz{&U@:JUAE)"MbEDaD.5NH!=gEf2{vfw!RI!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P(,/v(kRҨQgoA9(Homs$Iǃ85p EN`C~[uEdv=H$l?6)Kk K\*sP/sE_m䇍;jv#7r_#ƛ\oj] gFq|?ǍǍ'㼯|q@#mog72FQIF~7zs1?165!G"^ Ё :OqAͺU0/2杍3nܲC4rFnV(>3"ǩ0rS yT8qQKo3rSMFo1F~ȏ{sa,t}AZ=G%')zz&;;%mpm~{_qA#m51fQ%2jF.]O%SLiμ@@țQ73m`#5rϓt#Jf>ewȏA#g{?Df:mf5 w Zw42Fnו`Uȇ{Süp1Ȼ qR??7T"m̘{ld 뮇Ɩ'g`Gx5%PէFhTx̱hM-ʸP/c?)ofdW;nnW;Cա7?S%WWShƻo<`fGvXtN?%:LL){ ]$ɶ zw u/\Otzon3y<97we:~f>nQF$Sn* fWQÛKm/x^$8=SMu0ꏜ!e˘1{ETh9[KUhН8p=G|ڑ壋ПyT /Y֛BY<7'`gGH:z }Xx $ (0o$`DR nwՆח TS:Eس_cZ:I v*tIS1YmǍ%~ K 4gD#Ywh/4XS Tn1 ݝwC/njDRcuzRĸOmWiuz/1㴦)|x**~H /0HsϰJYa֣754u<*(-o.S aT Q$RHtc01=(=. {S: t}N_`F K"@vu%Zz+RWJ c}tk@džt)W"ׄ7;?z5}tp~Zq9aogk" 0sd;H;!gSee rv5/-0>'_BZ^:CI$zNe*"]E,h5i /a}p)>Lb&i41z* exB beA\SIp"*Y8=늶5#lVc)Q7Qg$c++](jG)#{C jʝz)VI_J:!:@$HooGzӼy7G, r"9/Ła#xsv83aRl"0,6]xD|Yh:a~d *E.?R)(㼧;FU=dNSam. ]|^tEp(UT DUQ!}S!Cfӏ}g=9<4ك$Z{[ Q5XjI Hd/W {]"?TLœOMBK"SҖED U3<$vh(*@"Xs4;av>m(uٗ0;Wߜ@˯5(q{U/H$[D9?fISMfO>!y]&3=]ٛ1d:M^7_7d7LJ4iLC]+I" l "lz37CT;υOz*ɚR>&9n ա d 7Z^P@> 5Wz"UM|a >dqWЦ=oӗ^+?F@"0<vTi㬬 ~-, YY3X[~S(#zY˚'zPz|~a Iq CTTr9  qL`v~Kq 'NT/"0݁'5] =O(=.0=ЉK9a:bH&g i}x}~0_ًط+D G>QNٔVbh*Ht.Ѐ|P5Ugځ"ؽH Dj²ޘd 0s7,e`;F3򨰅rl g`56Th"Sd x)Т }>o Y:%!`:R >N (MJ{Jdb$b|XFߋh~s./w)T,dcƪMݽYYA@AJnC8YLjU(u$Dx] {lT"~͉wMaEUToFӑשm\:^%jcZ׮>0jE4 +b7K ȶ \hAU|AS˱{"< Cca,ՂpF#C9T* ]ȏiJcYA@ts6GwR 0^eY0 a+ @}L[f"pp[ia|).;v E,d1} eRMߞqLE ш;L =D X<@7 _\? FEYO?wOiPʜy;H#OICv֝wٱaco{]:5Pdǿ0U.v mB]rvIc${Y16Ғ6|uh9Qg< "u7CACE'i0k}J)e[{Iur7 H:QcWzQϙtYĢ@2\|R,ix nT=t!FK9:*e%ۥzKTaGi_y(,I*h "'-Kȗ~g(VO:<+ ߥ\:W ƾub/!_w-K?rrL_&S_3W{6cN{jgL &2H~r&ڥcaďMUCn2]#(!6FYqA L"]LȊ&F3hEgij׏S=yXA+5-|paOT K}D ,ڰP:!r+]L;.Dk#-q۳ vnEd(^?jl?B#_fO`$52 ~ )U5 @cE4u"0 ;mb>;ZPC+>H~|} HyIm&ߛua?=\O_ؚܺ|WL6/d EU+1^ͤ) /kHEiSn sM"PD`?Sl?ҚC|nhQ<8"{^~a>v'ג4R|0l_Q trxDW[\(;@Y{2tӟJ +CWeQr5D>_@co==,L2gm] zh)GNگ+]bQ1[5lf(=zAүt-=fhއ@z".j_xEDN-R 4ξp}`OP̦<4~;rL_XI:9~RV!^G𣗦Zo :@A ^~LoƟBI0Y-=n}5Jɏ |*adbK!:֓˭$E/$|NXXTE@X.xBX=Ւzk31`ӭTU4kIo|uzD9ᣘ^[mhY RJY-B=_x:7?$_/\/b_Z h>i!Z"\o" D|A\X^@0c.yDݧؐބ5 Ouu߇ΨMe:'VnfCvx4,أ?JƟ$V'b4;(I*^^2/¤& @7쩵Yy?4^ @@|^ #P2]/"PQX;" dp l.ozm,A VD6Z8A?舀񇩕/٤F{XJKJ}+cC Cߗ5_ _RH:*~?:d'0*eEWzIKo8UX 0[~_&@'taD8t$:B~TkxxGM#=otq_#wA3azf6Fvz.2?¶?eg\ğwBm|L~sߧ,4yJ5t|iK[։bqhu̓T~(pe>)gh{\{C" 'P$DxW&|" >sOD%aT;ahs۽VIʗ.#t8pr_H0ĐT 4z_5Eh3۽^wC:6)XDcf 7ua%XcuW@wRC }R3|)vYCXF-[{`u4qUs۫lG(Z,DustNK&fcEaoHf2H!{g=ëIvϛZg^d(Ze&OVYE@"u.> wQ$x-W,6i ,Wbq-|2!nLX";yH%NIp MvHi,@)0EYub p^C}\ *Fwe-]"=ݱHo2o^FF3xy9*`0]/Pdѓ\z9{"90 GA4$w蛖G} !`FZ_{TԌ$`@޾D@"N8vWNn+59(dvCc};NK PG10G~[:tۊXw|ru>.Wt_wTX 3-O,C,AO[3D+"9&~&gdžS˟b/ޮ)3~-O†;7YW.xFZM!@gH%=ɾ+B`uIFCBAlΚU>W5] >ߜ[=13lgscOՀc.bǤӣ_c2?=aROי2w7-@Ծc?RtZAڠRP {}2@@`j} ϊrKLL"P\bw=?LǯQaDخ<54PY<@X6~D(8$aoD^t#RpM_{_h_: Q,w➻n~gQkPokX}R,1/L?ˤ<={ ]-`51FQ;0A!p;5!ͫƍۼ9ro$@9{[bre}VN &~@5=4#S'율"Q"TumS`!zytc14xRv 2[w#6mqB9n軦3ru;cG@a1TϘ舂_G7bQ^g^?odZ@bF{fUQ(`kR k`>K8:Jrdҍz[2g;a( ׏ ]TJM%9'B82 t Ac g;;7&}Ǝ{bx'F\Co ߾gelm.IQrah|ϓؗpˏ}I6c%+#\g˼Z2,3؎P!@p*]Pym$".:ȯﰿL"pvj||9~, co(\ Oy66|{]Y-tD LjAN^44`"^0_:F2?e`{)nB/[[ 6O4,^4}z3%%iF""BIj'(UrƊ0$ɶ4i갉)1P(N5xMŭE݋!>*I,S Ug; 6@.&~*] U`^kK}[)?XQ!8o9"!1/!~L egE#p\ ~dhUׅ"N*0oÌ'#FW:d,&$0WN>4BY)b>2 EpiM~k;o$@I?J?7! f~0n{!Tʄ!wmNd7QOLg]SdI=[[Wzy/SBoe_J4eBk.NgT6d:'HtZ`%  RwkjmqDDܙDЭN, \!56K@~Ҁz"nN% ~X+""M ~wMn20~pF̆ 仟% VtB#^λ2\,eEVL ]@Q,wD sIsJi*z⡤_A` >, f\  EF]LS0"d{N<=X;S1=|2y]x[XD2X S[Xъ32.D$ =9B}Nx|KΟ.:%wbѥyX:<^hCD1K c'`o)NծMA'"?'=N )SwߜJH-(}F ^!Z\VuoP_E׺Dgodhzv6K]L@g)]vzA#bzh-ݒR}O`޴wuBkkAB\kH=TCGawǦnuGݝ8O?T0c }E(#t9t1q|g{({Ɵh4FPCԙAvo"@kw=%'Z1×{F=)U|"^a jE}: -/:\Ht- K%.>h & c 9EFuO" Фscd ^wSE}ur%oD5AhCPRވ[ȍ ,O}~Vׅ\4ZUL@o ĜPk3M{" H)W=tY Aw%kahKStgrRsc.xj@z㈔;YZG',; ;,wf 0OBC݊'n({/D_\݇zie[o@!qDĦa<vyk"kԑ &wfIYr5eh:m i-Z?JcYQ>lʖB_ׂNzĞixRӟ>FhOE֢)o[]a:-c;=D ܉qp &j,O[ ½F)o3Q|{gLL򒳽sK2v#|DK x'8_k43pg qku2q1ۆN@qd~\{6ړΊ!N[˕Wix1]b~nG~y-{K cZ4$@zàɞEV=iljF(YҒS_b%<==p(qڞ78PT}Doj*z,)25:UrnE ҆w DGךjr3Ie"%QvΦlh"҇O?~3`n+B trmavb+,S`LH"uwqlxQRzcDkɓne2&C&de`"#O_NDm[˥|YuTnBSai@\vlpQHŽčTg%P#)ǿK]>N8#ƕ>5KސqJ n<3<`hlWL4s+ѳ}j2ڼ/Dͤ*+lnr'_qi &,]YT fLyC5)rs3JVl =ކort(93E?xԮGccDwޚ}us\ZHŽɞH_I!120jO }ChWp߲hk'/6)rWx'a =M˴St*gD t&12't>C_m##]G/,mmE5-J@hgFuQOdnQnc@WF vA'UE^8v%Oҵ[LWkCtNʀzwLB] 6+xH–3FG_B /VNJyP {+*zuznm߱!40:D٣IRe҉eԧtܭAֶ~t286pE1(t\@wt4*ZK2Ij u #¬y7qپjqjb+ ,x,D8f=@X8}O"&ER,H>%$L.tO6lճ'Т_lu,1.6%F&%d̦236b+ćЫX c=Z.*k^AHlI.x񼘉^?{>ٯkx-տGS=BPQ1]FhEr-hA=Y^q|ͮ')/Hܟߵ=VCk#d_p ׽B1#3 :]tιQ3Z}gѢBo/>lCNM;zW(Y4)q0?Lmkh:u?h8DO=O`}V1.l\k hx`ܪFE+b}u %` IZc??YcV=/)(eI~K}DaXQS֤ⷀ~ %a}$6DTǐь=paYtU_??Fl]{ gś-ƔTwEޚAXRX;)A5(G?zxzh [pc7?;| ]4Cvʦ?<yރ\黜=_ȅ/lvΩ.~q>ʖ)6D~:G|<Rjnl$6WBjG0 wd=Jr#h^b/x~w@BNF{T0И,AT/Fym12ofsm(_-}?}CV ŦYi06fْ}Sjj#;,tLLԄˆf,ă/Uy8Ӟs<L2,4`"Þ+4"J_,#ٞv-Isa9ٯ_*+K_n} Xd6{HԄ.tC [6>C5}SلX# F/Ƨԗz?_9 3^,ud>xxlxSL)*+/Gz?4`!7%6^<F0lWdvːݏXqri*I~;b$=}_>z%?q^ o4*pNOE-3ܢhNҢZw#Df͞g^6i0ňv ߊ֥- } F A >i5Y,݈O{Ar}&iJ5\Ӈ`>if`sS^ʼnԃE3*^^16CxeֆTp;E_>= :C}m؁fp+! b0n, b p[҃S?8NΤXtפ19k>ڽS#XQOa*H{~'_Ttr#KCK{K{tvL~zj=86MDlDk<ig/ z+׉Ҥ}܃ܯiH-{=͇5فrsS7/ӆd;_3*f6yjʽzťzR<z-.5|C+ϖ֧ tB|Y"Ź rv9^<:mM -:O P}SKqn~o7dsE8:P@-&IBm@$£W7dޯ*6j8+hq *t =)ZnpvLbs 򠃃XsBvdVUL Oj21 iۅ<ɚ,gX ;Y1T܃Yؤ㼏٧S% mMP"Ev >a ~8[2I ++R{p1%yyy  q}~PlDo/*a#>Q=>|5X!_XԨ9uVze,Dx}L։04!@ϥA  P^ֳסw"> o V! N<@x* zu1pOpV)G(#?X!Nv0Kv72xm~G)tcv)Rjo\Q0};Kw1uh2f~N}RmqNlƸ@8M;pM C{7dwdeq0>bYϚ~.`-KF;/ cr&۹cw[1m-Yt:" $$He+Ǧ//߰;5<~ܧ%,js_Gn!wqf=:!XR(mPZ4䇓,IOɏ%?7,g$nY&%,OT<Z;땺>{g)V1ɎSjzc~77dM+D=) Nb=yRlxm*TvCoGAuB.7& } |jCJRl|!)z:/UzLW>#/+!+ W@IDATv5K PL54-ډ W-E-X<^xcmNFgVzf}X>ٗt,92=$Eo`Ӝ6,zӇ, qD:;61l"Q0d!46&96dlDaHM&= n^'#w  ~xnk))ti:;XXŤ:Iu@ J'~>!-$ ݂O}b2 >:6h: N;q j?SޅO[ΫB=XjHj=qo2+C!cXqxNEpE\DGe{š@XE3qt?vIN3Yqb+J?9)3KIrq^ݜd r0/Ktρ&orO~LȸTuZiV2~m7gkLin E~jd(q v={@; 5OC< vl#8!͋=a0{ZZ}J`X`FXDIa|aBlB,'( l|f0PrFʏ|)kN1"wg{[\8,x̴i):C#ABg?TBX/X{{+[B?Y&ZkAV[]A,_@)ٕ鶷lp 3R&U&d/sh3iА0kz+οJwR|wBӛ-Q _%NaN G$zɟe]G~lr Ϳ ^ln~7ufhB?CBammQN.`({oC 6?`E={]/#ݡ;r  $^ H'es rqECCM(795(J؟-b6:6饒SgwZGjv8v*-W{AX VA+#}`-<A=f@]GCk>&x ǼغWX,o9V/zXMg3j:#7Y|^ *U H H HJDc~jo3Sg6y!㯥켗HjQG|]wU%vͤH5ڶb|_7@#-m.q;y&@4>D?u!^I~!w2Hh͂)u޾@u%*qH%DV XHJp#t|a؋i :"M仅TVgNys{?ٵJ|z`L̲̂pS <?60&0E6໼|3F&b 4vVKk5D[1oP_g@hVǦ!xE;$v@˃$^>/`FVa(PM\]SH{W\{Uߧ2'i?8i&(^{hpT¾ Y2$_.EɀEy c[Q){uߵMvP#;Nn>Ө؛ m" 4r|_@H=.QG,,@cC񼐎nGc,OY! G2 (W"`+pT =)yܝ80q 8s:k$f$SwwX۲%unڭ˂j$oW`~*|w:zQ*qI%aRԗ{-P);(.q>ώ ,xQ"ܷEi䱞.R?pzI9IK5߾ }_} Ϸ ےvI0}^\/wzFi4t,^<׫ʪ3ǐ3O/qQHŸ3S<7~NGgqd86נzmZ(PwM7}< t>JPA •BY3u ᣳn͟z;K/WI wF0/ +~h <%]YZ6%X jF@È.q.tڻgS]T|p("0aN, ,kbx |$Ǡ> \N7|7g WqFQ/=aI.xah'^h8ѹ>:5!F hp=e4=TcoO9}+\ۧ鈚+>2EyͱNy-r4)5@!p 1G.NuclVR<|B'z|o^o}-ʳnjgc9꡽B{xSc^_J8R- ̕w},*| ?R$4AՂU[9I02T,NX0I{7A|WCȺv쑕S*N2n8Kk j-qXY Ў_a:v.pSj .pם6*'9ۓ[׮7YpT,vmDOww$yg5Iû?bKOvh&Ird5ّvבGԡw=D᜶  tz3e#6w#,aDDބT߿`ςI7#>}*v*?dޡ [ }WAgΠswlgG> QEѸ[w<5xqLJdon@:I}ə8O\ _C7 1 i"֤*17G"Yqaȩ8'Ҥs1hFO<QZr@@I S::OZZ-D !B|B<,$KXuMvMrMF޾Wz}k̦ALsNw>4~Pt؅#+V$%W?yѵFOIye뿋cm9Z[vxO`Jd;aOA/X`d)j[a7)_)}1 Ϳ̴'b,lidvr@@0; 2ZĆTkڔ%;;;~a{VBH!-a \!r؇l?'gpqރmbj5 ~nj":]5X킧Kmȹйxj:{.q,Liky'j/ Gi<$6b{^XYT:Ά;io@-0u2n &~!Td|[-.9u(&?+U]o "/n>;þ/jH٘Ve/KB<- x#\Iһxg$l",IqwscolDݩf%?<|Z++QQ~x]OWC+Չo}EEK%wCHqZ4F%CdJAdJTO$k36;Cϡ*3n<'@Y=!2vg1O(M@A܃#2kS|oP7;FqN@~V%g ~~XA_ ~ *@nI|o }ѿŶaUA) LJ(z@3,Pn0ϰ !aGp#$a"fNR9XJ`Mү?>ׇ X-.lcttܐʒB^l3C:6=/;1❈iW -xw .*}w6{%Sl$;_ou9 a1PT>BAc$54d%,Oȹ۷Oɰ0$=JyY:H @aAl2E_A@v5|Cp/7/%VOx&|QCHGs* (gBo: tG(:Οo@^Ӵ\:}0X ֊ok:@L?BQbN9&Td)hL_+ʣ|O+U@y^`r>~*njL{KȠOl\V,||5,h%J(De|*%'q]7* ¸ wgz7kj:\K,xEknC9QB!\Hɯ Ĭp,39g|йV| R b5Oῠ#\;0we9ٴߵa+w<o 0 YX޷bhVb)uFEDC$pwnm܆_|oŠ-/HH#Q~ŸK7zW?}~PF]V`.?6`unV⸱9T_`w`RۯyD9'9)Y%("ID@ *((YHR2* H EL :>5=]]]]uR:?^jVWB XٺryL SP0@?Dy =s']7Gth:Fj1Y0x>!L[񄏦?Ia^p2ôƹ{K mFs(cq/Ɏ##\ u+4q/{?Xh' &g'칻~z)Q1oBDM>'N_omqQ{U?"n"dz=cZ+VFu=v?Bj[>f)3։-Q{^ fdj,zO%)7bDOZ2JcB}`76+z_Po=$[oN/N͝ zg\CiYYݙB~rge3o_/kwX e>gq!9n݉cɼ7ʋ<5F= JJuMd]@[PηW @MT*v|E"y?^7HO@(\;sz |'bt֋tl>GWPy~ vR8S _h@UDňzj|U ^fA@;V-[sL}~/nt<؋2~8ޡcŧ!?OHvk}Y\# n9^hgj /&wj@y~~8yrZd|KcJ]~Db@aҚ$'/ZxڎWFs{"/[AVzۗ͑՗٘rE"a}@= ԰Zo)5oà%_ Vjq>|vQ4+njɱS+C |M/iךCϻsu"!wg%2q[h +^*HV?%8-V9>kl=<딿h_4ν$[黡2tDxʁ\3qǽq?ȊGIwvEuX+{GF b ;LіhD}_};hb0uiX"~q8S=۳BBܘk hД8 BBYmp<阧qV5 凖fr{~J*GXwX)fm8,.n"G )T|_yUW6.2;Ő|F/<5e/˫p)J{LCRNHn !2q$俘X 7>&4&)rf̈ES7" #eek_X$low<޾WOmUͧFۋz25b pݦ`5y ߺzzc:@5˛唍ece!1cZCxNF3~[`p- O8LMNej@ &,ǞI{\`wW y2G0t#I?$?d6LUU5BHs Ym]24c @>)[j]DŝWO&"81RiPY[kLx9ŀEulnsjЭ[6߄@~oF]=vp,YjbjLj4u63=4 c8lLHr"_{txis|yFƄ\-PY,4=JvQ6G!Q**q ΁ j@v:{lt Ks~i?qD/KEš`/ɛSW߉*PTw6a(0,/eb1h`o?A./J4H[Z.ky8M&.-Eլ09O7?`q^q}Cv@3?s3o*fNFʕ`e|-鋦?V-Xc,so}B|( В3}5c2f[ʴ86bثRU \)+-z\+/*}-rR<5f?<]0jG'kupeMeAbܼQר zg<mV&Wz-za߁LFe/I9?9`P [by/!?`܁(y5 H$?>=;trTȶ"⑨ҷڊR%q(XfX%&?MX&ίD[TFU{(>}ڋ,$@*pi 9@:KMoɩ1 aiG(`7aXdʦ5V?OP&M09WsE~:7g">m(bLT[}Ef cc &?)x*sSP%L p \L @0O, WJ 0])+- 7(=M>)t{cR]+'ˑrHI1ӛ͗ecHb$n1*/nk%fwӹͥ1Q>bGlx@@ݟǩf؁@??`qzaqnƻ0"F 6vޗ kc`_xB_˚VI !`,^v l<Fd~kKkL|z`.?o 9`>1>}n?+:rSg]I l}n_:֊Ϫڤ[39] ~/fgCэmE)6{jU\Ť(eyNFɕ D[a!PPW'Nz)SQlwt'ZְDo>dZd#UkqVM/ev .  m"h[5/Mx?2N Ru{I{zT򨄩۠AW{}}6Sӧ2e7해W8Ƃ=,UÈǐYAAm<\}9 0"2T[ XXrr:mN={?C̣G~`=k=K&kkG~'{;b;3TWzZ/{:,$^ͼ w1"U)6AOn ݆b@ @"SV6W0]nxZ쿲*. M1 4)2 AܴKq=~LoҌgwaڒ ClDb\g@=6QVVV%of}s>up^ Ӹ Jo/i/A`W; ;;@meZ6yCޠ}]ծs[-z-Z]N.˒(8&zvɞbol,e M w0B>b&wgv"G㏐ {0*;ov̹osbUkev2D>#a:MXg#-̝-W af(`W*k9)䝘RT^\iGߜmWr2CƙPt4-eQ"T9SJWr2+x mN="AU+*Ʃ&jN_~x!-ҟi}5I{={y9` d7KcK<8sFL'%SJ][% .tO 'oIɑF`|n4F"#//S qDF.-7W^8ޓi#RBtͩѩ<\@rĀ!L&1ubx^ʼ>ט mh5(ƿ̅PVGcfB(Tڻ Є;wr>Y8O="+jg&S>]٩wXY@iP2`J vѽOLvZ(`u,fO|+%[ZZӿzVzzQgeq} ƙw+r T?wZP5SrVE4L `P6; Pi&v7ŒiFC?4 hǙKDrj@1ӹ VjY6F+d,rTO J:.M|e5}` $2 lON;ֻBKY?,aa) GXg͎Gsp> W|U JÿaBgu&U2Me?J`ha|d[Vw>m, 9 gR.{Yt6ʜ^*兔#l#WS)je[h H/^(0èPy< hqFh:{P!$XNWl3IVYqa''2*8@!&m66I}N:[Mq؆ |Oʼ:PP$E#DI2l"GaBjk~Z%_{u1YԒɜ@7@fϫO7%/]ӯ:Xl&_G97-8ۈw@֓sYYEQQ*sqYDU]!Q!ѸC{l.<5̜(b>9vjX94#H˛K*R2aDh>|u$HݑƔCժ=‡m*_6sHIh{" *E~+A90Zh@ 1h<3ig"`IP7? qk*6o[b:?zQͶS]I ozK_FyqoF: = `((Ô,ɧ"tQK+.b0#{c$n'eCr:&aPWzչRZlg^:Tq qtlJH@/ kV}yosӚ²,qY|;9`ggʡ{p"vwZTs7P 0 ʧ&+ p"_m\p նqӢ.>BaՋowؗ &<\!Ҕ泀GT j P`*b9h݊z(IX E'aY9F~XF9O3AQ>[ˋ:,>?8v~V/qMx 4 S]MP,?c: uG""TNOĺ n7@P0W+A@0i+=-dHNmi`/TFJ\U@L֓$}?B~;55$=f*F_hXuSʾjyM` B#I #Ds?Mưh#*Ym a0!.b{}~yNdb|s};UK+9|s~]0&=Ա)1̤Α;wS};?ZG=ZL ;cgb:O*QOtߝ,jS@SQ32"+=H i^SX[m] ]^M,/BZhDs_J%/4d2 VNzsc='I5}7 Tn.;d|%)l&#.Ƨ:?ͱ(#DO /G[uLj,Wش'A7gp!1VF#?yUB노f|%@m'ijȜ21v>fԚJ`|=ϜlmA#aTx%4:#hF7O51՚ ]Ѷ?IA϶  {w-j4`|p)'W Z+T B /1r_C`#!J)!wm+8^?rN,x_ CñGG~D/K[j6M0h+S ASogubUG\9 k _w,aQ Xm+2#ߊe~qV|apycTU_/L1I c&jA6{nB2<ң MPlp Yi=um X 0j/gpU4 n)d}S\ħ ibٳaSws83/2 `lGzpW1{ND-Fv\>=rZ p(\1Nr܀ez|5)D%^jwXড়WHTA4L)C*@"dH?KʬGI!|w|[y7W2uַ.ı§,濌}>?C$z,t+Bfr'UOcpCP oxL=N+sHɑ*zL4"W&cA\)[arى;ܺb5ߛSFgaȔ\14u=M_ë+gg[dOlҤLS\^WQ7OXMAs`|/NW&i$ F{@)7jBb}:y @ 6EBTY>*tr~_ :GnyH+"H%,ZbEØQ` LaBn.=fyP^cX;Mp=> WE3!ٔT>>P D4wKJkpv(%rY\5)e5 aM'< F2®}CSɫy¸ ]3ϽVǹ~A0 9lqhކ@,CaBMaG -BsϫolS8#)к0C{u@v+\`i\ۓ"af B}%)`Ennyuw3B&7y.WoQ0R:;ЯuuBʹΠ}Z> *~9ndj7 d'W`Io70,r{`8_FJJ0=q_ c {w/љ@ giޓrlȱuiEiFK)L%-CBPj,cL*_R@bM/,ѶYB Fb_h&2S vjqqZt)yVsG>$!*ܙ6p?s iNq[[K1B⢂A Bd ɶn~j"%Ŵt3] \K {i:'8&.ʊchUWђahE*n!?!U7(^wr>dF.%ҚE<60*H#S"Q&?g'cU@}/4]`sNt3w90mDji,Vգ.~1;PF+ CXy3Oc-px p|K Ċ3E\#d͍?8rb~`3SAKȷUxGQ\L?:95}#nũOQ⾈"g<p%Ƽ~՛F[[@WIBt*P/%r!iF BbJ`)19%jEdujJ_ṳꯒ8Do^PNΗjÕIJukّEm$]AB`6%]TD~ jenYegހAEl`J`p|чѸ q^6^nj|ût&^[#+:4!pTUVUфפ&%b2K*=G[V^>`#PL $Kk-yZS^?:nbXqXBj%dI;ˢ3N z&ky@rHg3\!PSHNPxx~5t/[K{G*{*syw6)2ڝ hWe]yWˍ (٠ dLRXj5OO0ǽWDXkpUDžVl-{S1*$Lri'7UeQʕ8}ZX4,P>0~+&$v Jq F\@IDAT +8^p~wS>ur KtF@FX۳@h_uπkY9U&Mo4^U &yҾ@]/Jp-q맿jKI&^ַpk11Iw f=pQ*2r/+~{jcRPe19Gd7ED\ YtӬIv{w~(.mt?8I1(4(߷}\w+㋝ fp#Nf6kwËy=Vbl!ClU9O gCzAX)3<¸okE)hV.Ͽ?(/Wl/P2z7@{ 蒀Orj} /" m{mن[6]%}RMy{;P,O0s;8t'~ƪt坏&] \oDy8iUI~XBS¿cNmk*J>`~5p!DէxjO&9 Ŕc,K-|‚&<0|$k85%(,y=ge 9y9sUEOW^(8)^6$1K1_E|c2^r{^o g_GU}Sw8T|ԉCRp/$0a}]šݸ$rb"`sT7 se]|xnze^}W)fCn{\m`0?~%8:ߏh)DqH9Jsӏ*U܊;ە+>C`HenwIl 8>/G,ӺuKuG>.W{n‚\!d.EedL֠>hUxݽ""".ezأ.?N 7b50 H dj٠nyje&g8LYD,~fNZ|KR["C(MT@{}O#BFr^}L=c_Mץ cS.b{Km˽ܻ7aFeW2v;%zڙf~cӍ|8&0ZodJq]) -`\1 .FFPoGYyı v)]\gmn(.?ea1մxFNa,mo2cxwաS`,eh4iwZ24shž%Ě+Jd1Sy`^.pl}&BUb9X6-.J3.T?VU<:h7 9}u &̪]0BD\0Qf[;$|E m t Dr@W@ 8NCM wwti}]kT*7cZwv ~iɎJ[}}/-(.Zgj/JIONbړOB׸zB+RScJk1Vb__k8|hM_wW>Z)lX13w7 ZBpۇ8y*ֽ|t& |D*bd:-5yPAA( $J$&K %k$|B>y\vB"*vh\'+rW[E`" MA97s D XBւl 8 ujCqV$cc#ދ BSI 9W^b']I|+M!VnZqcLSnĢw;R5sI>1SS~$eAa†J؞Y(;/޳+ZMqʫ<L d*Wl\ IWR @,x$~Uюns|*Y*?/$R%`WSb[aϢ+3=n{߰|%\UEɕD)( ,5 \J>e0Olte hcσ/hL-@e E IG Yo_~ wjf|HJ0Bs:yoj^,_ï ´Aceb19̦7A_ "KhWink2$ctjEp9%22K[xkDo8!V=b;m}OpzScsRڴX^Kk֔mTa_WAB}[3YZ.VpRġ3SzQU!$HZjJ]{41-o%wsl q^0蘞qQ;i$R[J6IpVk5Es _O8,l,Zg4݋0J!DscFƝxRY,Ax @o^yS>{'>7\/E`kII$$̼*aW-s0 g6A,ﰼ@C֜2`Wl?U?~chP~2:ܫP,?It03@{YN}It-XҟW9*f:)L(෣'T^ˀ?Qy_eSbag!eȰP|@!>UFmr;F?2k?)_Mh`#`X?~vN}A84yH>y[$$H^Ksi_^y(! uɅ[y8GڏՓ?Ԥz(j g% @P`9{X ƫ)lg4q 1 e>$wjE)LNQY8 fNm @;F,v sOn~ʫ}}ݞ{=aME] Ղ_&s/l$*z(fޱlD{n^0yOP5>E܌$.B)u, [\A>]1^JϩڟR*ɖ',~xy_ӏwN庥̝[xQF_s'"NG`\*PS^lgN/!^?/ I41Ή$^ _Z$/L%(n > fMyYyO@LBh EUG}x(O]?z-!DLa׶ܥKVrWC8î!s s<s0m!zWemvTqdcx T^{aЗVA>ui|mi짱Si Ainl2,<#Tli$!omزL__+88ч >⑓IvU֡>i}N?7,Nw{]r͟/73ұ!gw'[OMQrGY>Ѹ!CY4ԖR+Z|]N4n슩oMʒ VEVD?Am,׍GయW+,|2l7[٦v z'?b6{w3v5Ƶk C*Gi4jqeZTs)ꁲ)9 41M1LӠ-͎6WkU|n~BZ,^&z ~2A^BP&6h# ṕ[x>Nކ_~|LQbx/s>ȿ ?#oz4pȤUOH<2~JD6Nf qZ5yz9IDKu`Ss^ |}\?L(\lR4E{v*IޫWW7]~Ciy .YF+,l}SY`.ּj[jO<M +W{ythŭ0x%;GC-mC?sHJ*/Tgʧj̺$z߈oi-R}LѮ)r2+ %Aߋ''D#gKΏJVylgi,{ș8_MK9sRB;]rJl{2i?mSc8}IOU ƕev b>,4#E 1K4@ծ?& `+svGPo ㌫2~w{ jDg cƔP/bp9<>|e*9ŌjXw%'S΂0`eN)D ! k0Of Ѵ-4>KaK#UO"'H$Kw:3{ 76ʈ#/,nj5/d`L!/[@mMt01ٸ]9_ҟ(0@'K Mxm:;C5צ\v1Sإ~Kf́HhB?K)1s()8'L0BFqӦ7T LwXn!j[^Y ƭqŧPFhZ9b*:x| <݂" @rX8eHi[ϥv(v*ŏjʤIx ޮ2*k q<0&eNi꣹] dW`M`Wd u%&m~5QA|_6<,R썒iۺb%)}w.mq1\鹒*zd`YIȔ5Wb=<ǠUY9c'@cjԊB>zeAAW[A% <'ȱX~M u&/G7 <xW8VS7tl^kUA_9TGWPFf[̻={gJܟ>ПcKŖBI2[_^ Wy191ȏ_Ubg@wHfRRct|T'x$L ~Q]DJ6ʉ#G_jQ{oʌw&nwnYрz rM%sUƸag-)h-3s>腮2[@`dI1J,1/N>'.#J8{Hoꗛ}pHaer؄+8/pF xs ?tzSfChcA#IHO I̓ W2FZv'P8((m͜ m qwkw z8鉅_E_Fo} @iC;J䏊sDrPS*(v X~R6LYF7X.h4X@7X#W.BfPr NWDO\vO`0E4>}"OMCpnPZơp WϕA> ސ;Zkq)SSWEX`LUnELmWN2^uK#JNJ z4I^ۙ6='~[%obͧCF65h.u1J\lPp,cαzH*^O 7F )XMx6bX>en3#-= M?'VLa?Y|p0DONQ&w]-b =J̭7h<=;-B}@nm MnxN u9` (@0kx 3qbm7ś''7O,<]A=gd>_G:8up gS[ma|+bzXyT^[-a=Ƀ@/DD0ŀ~C&wʧG!`s?LM3w󳭷͵V;zsf{IhND 6)([<`dS#xe`@ 7ڝ!lZ-~7Dx <~聯j{hjoX5}1՜a4XK, vM 06g Hܚ5R,o@dž+ "7v;V}[),+hN)M<wLRZ%d&5OAq}xb953j*c^I,gz?eکNh?}*iYU/ @h4+9c#MO ~jBk$pN&nuc1*mɝ^GLhT4"0XeZe~!ew xN/,1L _YNM4_sG? t eiRd,J-Jˎ"/ wyJ<%sLz PN,/oL|J00_vxwx2 QlB-L}>4njG25~ zͤWR ,59\ 01hxs0ηX`+#;l7^^WgJEOo6V+' Mq<'adLu3jw4],,OY25,|'~/MmڻsX&g?q.;tj]j61b&4˅Qms#0!S SVcXW%P@0 !W^==͚!޴O7tu&*yu%dm5KꋬdВ?\t2DZp X2y}UެTje{37Sh sQw#}FkHLͬOZ֛nS ]dXY[fNl0u lSl`r傰GZR!ЩӖ-2pπgg0|++sm.ChUYϸ=p.]mNLw>?vqA`24E u)Ӳٓ[#H ^L J BЏ/SۋGIa!fxl`|9AK,i0˴(1M'i9h}:Zqd%y8"O n64\u;t2 oދ&M5 {tnߙsiZ â#, %&ɕ+)j h.k:H|JzMh}}sI$L(PURtR4@aB \`-,k>5ury\r8 9BD7M!ʖw:غe<a9 tG06эrqɄ ͼ P1|p}Veeޙrg a x ec{L3EGg/Lzkgk9KE/UYW ͤV,X ,鸸:-~"y,mB^&Di37sL3z%f*P/M0ً4)V Cfni$nz}ݐ$@gӌi/Exz ӯ_?=DR6 *Li ﵁q݀As.so8V9jOb)l$SQ'ycȲ4*X /Ua&I ̘17 ps2v0%WER2J ;XɕTO,A"`|TߨjWn @[n}焮u>3-T,"2#~YVk:(;{%zH*]RD@@APPT R)*{=K-~ I/ۻݽgf#*9.,Y!J 3~&YI&Ol^{e2' !4G=Ir(GyYRV~*9GGm!wΌ2FĘpKZ) ru0FI~3~~|$N;%q7UV8J\#Z}M}n`f8jD7߻y&N| bI̛xex.צDߪ _)z_3Noci>suB̩SeѺ5i<䷊pP%x\MLٔɑVk)(kP:yjۚ[O{뿼oMggecX60ŗ[rnλ9QZByCk'6"/TθSaقH9[;:Z:Z"ch^\<1o@UiY\Ϳ͐.w<=i%f'4M8=&45Yg e5Şޔݹn5tj'Rې2]Kb:ƼB] \gy&;syQD#AOI%T=]tyq\G;$?Co%p s k:R |ꦘ7YB΁yxYwDHIz %mwU; (H1{Tǟ07jj ݭs,ݦ}_EߒbNͅHg3+si~47|= ogݎư+R2}B* [{Ubm/=b_g7N̝xFlc!s1[U*ч3cg1(L26  .KDOAGϛzI+@fh&$W~}ܽrptdCPwdl _aXSR[mU+Fp:)bC6]:HE/-)H )c^*e.mT}cX$L,"r 6 *8gHT?S}̳&0Bo7VeNE]&)䣐8>> 87!2$YSikxsW^n{q[MMY!G5Z M9MX}& p[ M]W8u!g\-n n5Ps"Լgv!{> cg(o1ZcʌW^H39Ͼ`%)R^P`A)Ϟc *[,Aqs[}нu)ir?sGZi6*v]m!Qw}•TH_ @.* pZ0`> {V ʄ3̝J z5Kq6SĆ_ Ұ |!6/xs;lqV}"ׂl[ݮZyfx.ȼ6x>̲ (8a3{_i׃bpS7l 7A _Pa:AF]_ƛ@"ZN-'k,7njmkmk \|xf^L$`h6o&k?,%M~hߐ:ie?f / ='2Nk'@9\N޿4d5(AV+ڋx;gm{Ӓ:A9 Y<ޖg t`;+&K•rkù;#>Vv伀&ǹUֺitQ :C7X +LGlٺp7 o'rF4£$)x~@.P]5m_V- @?i>o_gc(S|ڵ6=x_K_#:RW` cN RqzaDB\ >Ff:x3%^rVrV5 kL-چxVLfQA/F/YRtVoIǠ?RhMvO7ƥq?#U>W]èk:4b^)NḮ >dudS~S^2qeޱ;e5זH1ە#*vȺ~g8E)>d0yj77BQ9ko^.{9D9 Z}CxWJBE1v/4k@EE̯pt{_aU}9+ʊ؎Nr:"Z=Z"YgDB vŠ# ]Pi:XX4Q320tgfS{_͔jEޞeu:F[mk82ί w~t֫KA+XCmmm*L]Ŝ`~uPVd6g^g(B$n?<1φd79=3deH̳{Mx^E~Rs<i"c65-0-7eV~|1yR0Hb `E':.?Y=sr?dZ6{ /W[?tc?@)({FagOzżL&4pO2`5I mA2Iw Vv;jCJe;^2c,:#au <%FYNյ~rH?aktlwx<ejP\>*"h !? 6@ fbxgtK-&u+V{pQmdƄt~%&spbJAZCU\PHf.Cb˕tXYUSvw q0)2%zna˟>۱P/VC$8XM8/g` MI]_7N[@:KC?IDATY˪EV9"M‚n/\'a CA71RsۍW[^[W7VXRtَ^j[DVƒ0trWUw,`t]i44fUDdbǔ>eX+30nV'@̳mٻd¯_!Qn:js'(2 fY;6!߄|FQ0V%YiVۊvs9~kjӭ,}+iSyd QG_d1a??F7B p*ҐPoW6zn& St֝w:C@"V4]"O!LwmH 8QS!LcvaYnHlMf?cf\IeD7@>jәgڹjK$I6^6`_[bLb<3gߣ5zH,!'I.zPclk!1Żxfަ_nnբ"J5؆NدŌFRGukf#s+ﴈ܂~7fQD6E_VkmRb9XE"4>JbW1!O=k ,אr4dL}`uI p;U)>ճDЄc^qefŦ'2Y@;GuH9J>}_◐)q|T(l;:rb~eߓcW]bes&(Q0Gm\}*͘gAh &[xQ\8W ݟ!1R,?+<Ҏjp|we$N/І iw[?5f^WS|&`lEOF1zTǿ6nZJ+0vigfzݽlPfhy#S6S~v͘pʋk5~"JAC B-I"IH+hHgma=/'F) ~SZH">uQ>/}ɿc騴V_3vȳ6,M/\5ɑmvΑ7x,Ӵw K0GSk(A25%!J71t&ӽR'u,C5n}T)Pp&3$d [n1V /,$]_x}!Qעam9Ooʍ?oBTl7O!&lL- o4 ++W_ c@n8gMQ!d<_&FҼ۳,7*zB7j!bXQ<(}(ik(|W{\*'Ω-t_b^IdE﵆p畭#-=iɋ 6[!ɒ@ND\F\+_֗g@@刃oʭ7?!V2%7'W&^}3 S&7*]l;\wn.2VVW"x4E)!"FwlLzZo?Hg^9fLQ5R0t=<_{YyNu7§8wVg̀ [^k J{My s$8 atn\ { @亭z#QS2 Srf*amvb+#`Wڭ^ Cک-LUF̦sHty VUw }$3`VXWesXvfvM{md3Rfc@#&TRtJz *,Ð] ]Y\xn5(`=5"kTY߷RŊZu74b;m> v׃ %\_3==*~Z 5/y7}n}u29kVi_cx5Jf6Y8mlwzSE51+}/Zw5m{-gz'a9> ay}=)Si0b|*~yh [q\"@QHCU8,W Po6ք7& 6uv]+2GQAfC0~L;[@  frj7Qn2by#ߚ״xJҵt/UYЮgkwlފ6>j 2% I<9(Z uAgΐ!p05`*~RWmNj *E/ԘVJE0 yEY8ũnz\!hh̳{S 3K{| 8cۣEDDI&Zi_wPY9?E tР?<)J}NˆpғXײaO+{<'(e5wdV߱g0VnUܦ`ڒA9n`a\Bj&_-,țx} z+Vn-Vsv ܩE#0XA` |e!p$ɨK{ҽRHҽЅy+LG.;2V1+)2LU8$%v`IE e2*ΰ 3TGs 2`; O Py_@2byHjpn,@T.܍Ek<=K>vDc͊Ujeq7o#{k Kw4ʼn.uEG uVxe!gJct 0F”`Kdc  [!VYyJ6&OS;vUuW~9Wz][׬/QOR‚,jbږg%EFJ,G*1a{v6S)VTeUSD|}ҕzly+}J\[|3&:Gf>b ?)񟂞R6)@*XZ7W򯄅5 5kXי3㞃}"/h'$.WgW1ffp+dN:G`g"T(>jbM{{vHlRmqi a^S^d 63|Wׯ.Yv~ 0Zl'kk_M'L'0(됻q%[k׹aН;:zr1ZG`(D0s1p]ie?K~Y ;Bpݬmf"Rgw=DhpTQ΂C8 R<0eu_ckNC@S*f|: 74X>l~MbU7qYU0oվ"MKOU/ʪc/X-j^ lr']8 z6Nܝ[?_\\_Sl9N/ArW,~CQ(1Fa;cY4/Oy /B"B S6Q[Lk! P :g䬑wQGfW Q(Ae6| y2%N]׵{"wT4A /C1lW薀Mrvl^hլzs2x/ġ͂;˞Y لT_@m} X1oe<ΒNSoVK6 ˊ̂;e]amK;JVKk6[ *[ڗ4ܶҡۢWkK=jn>Γ-wTa&! >7 pEwakcP29 r|NI>\BW!݈?CÛbD-9+gRx5m_xl;5T RE5Uym}f0ګtVB[Z텳*Pvy,V~ܜ?6V9'`?^aYo r?ҖV]xHa6Ͽ}v?:pzWOw<~"$%`'b;v (x+̚0iaܼ*xn1<%@Z`~u hfyf{m=:;e; TTLPj=QUkvCDIo!FP;t*y@o$`o/ڗF "-bgϻXg弩1 Ob]ni8ц{ak;go/V>2!4"E/N족d sgp j}U^X>GX03$ׇs 7>gXMGs̿77BuگlzR͂W=]͌ɮ֮OE^.Mdƈܬ*}]V$6!] A96|móRI󴑴av1rl8<quB.;~d7]8D"ђ]9~ 5Mh1 Y'{`vAd61 2 Ͻ6T +߉hf`b㍕IJn:UD^ Ȟq mh8pj wz}z4=^/0_,RQM^2:/-"\ÕANrl5OrNgMJ|.];$\`]`7Py{Gͳn!g{D}60!%rDۗROQ~Z~8 bnLd'h 93x#%ݬXүE"J|+y|=g&aX I'RXM~;̧!0.4Ly](fR,\x7Zqא)pt:<`0C5~nO[q>+4ExgXo qi:ӌ 3 hrr Ak ?PWۍ1hHRR׼t %pF2wWcq9̦&%+c|_L!$XZz\kB1מ$4R+>L0C ױ{?lP#㇐nG%G䘳6b*wSN&N1TT>ē{!~zMtO">fԾW:SYw8 17*|#$g;7A̛xO O'4dxt]r5C~9cR Qt)VmC#m5DFDH}`4D&,`X=+&!vG7OS.rdz5ꝧA(?ql 3ْ=q0z~/[PrV^*<7af5 f7>wAFאщ9kT iwi Eꋵ8j | @ZaZ9))]Ήi7i!tқ22?~94N%%h˄?~"@MDi!Osm% ˴穷\fNs'"ɭORoAM fRµK yFgB6Ak oJnOeވjnMYSRAP|%*H(ÿ5 uMG_ǁA9iGCyv0tC}*f$y) u/_lS'ҕ k*0w.P6'>NJ5P WP㨔t')ZC2ro9eK H z+д#z/'ׅ,$>?c6zA_ #JE?^SWOciY71Hg{$ˮDPena Yoz{ސ_15ep`c +@3loj$n[/o2g$ ZeZ߄a. >21i]!Z܂S~QGw-!Y*!1k Bi|@9Kx:>֒oQCgvܐ!1lIB@2I$p1/ Ɛy沁Tz*uJ}_UhV:K[L!nE(RFVmY@J`dBջe;O4k` F{7F"ޓWbCG9?g7dT0#@>`'God O4} >"hj>ͽ`q*'Ƹ2X{3bQlCl['f'#t➡-3- #ӌ;`C^ꓔ E?ܛ;qgGy @LC,i62ë]&TK *;nEM'H.~`]L% [=S~╞ j  @?zة㑰LΑ`FF8t,h0| e8$88~H;7+(3WA5FDs["ۦlq?  luT Ow4SO1J,d;xL{^^6ѡ#Η:uG5X5H@̵X(i0%Ax#1jy%~7$~A'|zS%HSm8_Sdoѻt PKR%ןݽ)f :Dټd  Fy_u8{4cA)qԳ wVB3+y8F*ƐkSMy|_8Us_}oJԓqI 2.CQS<\*od qa\}'"]JSa%U`.?w޷StEgxu6پPj3Y+qBZNuxaۏdnz35Ncz c7>Mx#LxPKrNM$p2hW-p(TuS Γھ7dA@Z+^|}^M9L" ӳk0!0,m8SJ YG_Nӥmo2|sE|^mJ?wǿ3uqB ᝠX v)=/'HPj1 jx*m`G 8#mh4@Nwf 9_Wb3Y!,}^b"π&1 ` #eKH|o@YhK0G0VFBϱَq(:5uak27u|chF+˯'u$Tv<fj0$^Ep o.?6!G@V8ɯ7pwt$(Iks0ܒy TP8")]wSw|N<npCZNo{d4ĻjǴ9q|q^͉Y?+ FAK!QRw3oJݷ^.T:<&YO4Nmy M+6@A< 37X~:]|*V "Sݦm(B]VmC7:Iu13mp ̈ ??@B74#f*O >6+F#PKz3oA@e| C% $ ?I5ۆį{<ÔA{a^{ۀ Zhi{}AR?mKT~}7$5CZ#S$mN^V`f7Sy PF:'ayU6'Z^ &|TIP)yHRõI YG)4Ië5e4 >.bM=c(&# @E)NZ'eq:!g&,NS/6F9$`0Ґ&L|4>~_[>MGҀ7Oٽ̪)rSI YLjgN=ɓyOƪQ1_x35OS{YP9i+5uԧp9 9P}cV% QWVrxklKþ#0@m{вZ s N=F@H H;CX^?5\tJF$ <\ǓA'.]y{ )7啄 ${ao6uw'P4([De@z&Eu`f32/7U& ;>lԂ@ieF_<< o|WkƶxkheX~Ff[v;!  U =9w3Tk*ods& 6o8]PFkk0dEbi5Y>/  P]{fY--u NP*=۶nr/󮶋P֍馁l]E Z`JN =% YoTXGoXs/FW]堃 ?$ ^S5Y{s\WCS6V#2@:>z2x` '2B7pv򜆅s~b=W+j֔)`MoO×%Y$cϿL=dM.M.OQVcc[:@}-4XJc(d>~;>'y*L 2iARGKxm[ЀER/5 tmlF  ~vDceOhhj#pw>SoA~p$pl9(Aϥ ;+% WwH?A c۫tSj:QdDdN!ޱo!%63үF`]bwXj7qvSa^AoT;kߡ󜧹{X$C5%|_ijT9TOԣ谛fnA鏔s)Ju+HEں;k([$s]⟱܆y@U@-^\ud"~Ozا7/_b.VFK$81N2!?`NO3OJg @fCbMDJx~S%d+RF.|ϡ G$ul [z36-bӦϸ9LrB3U}EMѺSF'Q#odp䂗pc?F;OeU~Fl9Am#tXUF Pac ]f9- %b/s S0>~dJ:S5̈'m fM(6RОNriU HΟ@{WÐFh'ms׺PGcC31>`o۠_Vw~%q4%IcN7ZTZڮ/҇ʔTzT_'q$p$J4Gt} mXf_{FyLt<گ@Y0=4ne47 XNo^u4U'ʧ F`v}{[.Y2h򸛒x\}gޙUc;۱j{<iz*]NMF>~O+M4(DXJ;SGZoȯp a o?0d{0 M㳔n8ho Rf+5>Άqjma_p~۞/̫}6gW&}Q9}!ti@S2??x0>#_deN-5c19>@'V~Y2]lhd$ض笀*ErEU=Z& O&F@&u! `RN(΢6NG\{/Q19޷<[Lq92&77G< {/~C0_>woseX$Xr>wQ6KyvM-DŽwᅤЁD}CmzϢ|}__W^inȾ7̷:=J9J_}w3TIX.<2]<\YJdXmib@ďC@ڕ?s{mo{ᾪ}o? Qwn}>2P_~c.fP< ]gZ*[" x_ٞ o}S[%0>]LW8ާY-S}QTַ| ͺX->oݤo[{oo3M}|Om^}7ٷ;/ z۠ouho4·cpPALo}/~z |m=C-\y+|%022 w|ZYqcip|$䮮=և)tJhتCOkS DxQ!{hЇD vg_J̾_g'}o[7>1m>?vԷ]u׷}߷{ݾucMzۇEC.~ҽ{2/$M0I7iOfzw~DcRuj^RfWf~i,. $bݮ:CG /M;1e lg"~kQ7e  vTgM>|9;=d1 U?7>GMU]&P4VyDY0S/EBQE4St\y6tH+jEW"4O45f%D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D@" H$D u DLWIENDB`ic08NPNG  IHDR t%sRGBDeXIfMM*igI@IDATx]|fZz$^R (""""U"(& "H*ބ! $!rw;?w{{)GK`wCB@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!P( B@!PdbX&@ 1q̘-zz{Ըj6!۷jkBP q!qr1ugjDyh+jF:o|hp<ԉvYgr.$q ;㟌m;nB|g)E5㸒Q3F]ĨNt$xjGc2U{ѨjonLYۘ0y LZ Biik|a~F]xjX Nޘh<瘼8ʻ7~6M&%^T8߫ޅ,=Q7j] 5,SzL4Nr'~w*㢇 <+{Sg?f`>6OiDB$~%xMq,uI$4.q /#пcg#7#qsØom_4f0^<@TM;i v=HLVquNME<>0$ǫ{V^7jd8JDqyqQ",Tqxt%]Y&P^_Lb[XL/ނ,ٌg$0KW)l!x_dr./i=4K87Aor֭,5_^w]*f|_S3c=#J{Kqk1S)`uupA6 9[x9;oIF`q&MI\BEOէ6?[cT=;UpǨ68fFQ3_ڐ86&hh{ X1-4Fl.:a5a?zZS kxx5 ơB~hdmՓ;B(;pB ij9g6]Q1 "ػxכE>N1]F=Өu 64&h\di8 QX5h ߠ)87*%! Ey@Mߋ˹Pᝍ׽zc};9N W0^*C.W?d KRHyB:2*G9^ XU]~]#\UyHpVPCWd}윌oH,5=< r~1 T03~d$40lDW%KJdNc'˧E_$9qnFDo]娹v`HXs?֞;KYMJuPWrZV@^U–d4v*hw;Z̠ăc$'è]3ƯP˨ s{fm 쐈! >*\|t;T'a*pKٵ @Fb-a8Nf"TG{O<Wo=~2wdo臨:1rBrWH0:|8kk*ce?aiY55Dd^zz",.f㲖KA*/^iS.^)1gP0H?ٚГ=v٩JNpXzݽ jbL:-dEfU_w<~4,s Ϩ-A#F-ZzrhLΓ4aLٯD-%o)_s0Kz5<ԺxTy3a^;A@1w]c)SjaC.r+qB(FDƴʅ?:g TUY&9gU/w>9:Cg]3UKfv:&TLG%cцC?H?$ 6?|T rn{[0|td? |/Nɒ&mp=oS[* ci!8UMR^`ui%C(EG g*Dt,;xjnB62$QƼ5>wImǩ8ˍirݺd TqXs I~6+>6.pH" @h*M}DaR;q@YJ#4K??!C< g4ʂIJ%hV*5Nwه]ٴ|e95 9յt^C Z@Ҵf E@OJjݐ"/ 1;i8LAVPv}:,`ўl;ڈ50|td Uc|\ 9HVzSs0Lx{#,x1i _ZF a0V/tgshfXemxѐz٬MՇZAMsfᓈN-14%!HoA 0DX"&O{:S6OoP%T?A \sM2/8V'P3E GR"M(nd~CVʐb1<cv.J=PL 3ꏃm3ps %'i-3Zp %;ً⧾d'rkVa۪ 5\cO21\]LnGE<UQL 2Z9A3EJkBD5vǨ<+&@fWJ-]8[Y; 2+(ߋC5#Jվ>M X^sZڅwS*ó'~h]Eی6a)K ?x;Ea>*ϳR4z{o.b.V;Z) }Y}lzy]4Fbhxu ~@2r{YNRIV 1LIF,򿿓48VQG1yW%Z>w#&漏eKS8%k.AIl h;D?3=㡣GA ~t^z,gi#”mphMQk:U._ft$b}iP]#P Սcξ2NHczܽ^5%X-'>עwjm#]ԒG  8ʖxܡBq_2Ulk[ HԌ17XB!{M()<N:20oVUn I%/ \PٺU4 m!4^;EQ\D{wW3?M?m(՚wTEsvz hhczR`iTrj⋬MPǴԞO/8Z]T5|"Mo8K^U;Y#°@1`F0a#l~ -q"KUnw(&c y(g@w_bz+ruq&p> {Y'X.f޸!r y1R7|DTH# {6( yJы3υ@6[x/԰;qf`Lԣ͏@ډr41CSyd8,X& /!69?й>T[%nro$SSwx_If@  zG"=p{xuދ@׈Ggz+B xM"V5]:ѹxˈckꌄBT2 s$&ܥF vJa:ĺ Je/]{2l鎙(f5DGos u;tk㷀JJ_CU?*K~:E\8 35t`);PG#pb6ƠHdE A#Q\`03z@EQ)֧4z&b͂TUd>CX[6.6\=p c'?LEil8*S?ʘz%i$]%g }<'R ^] V  u#K_!#QV x8M"0O{t\5ߤbsϳ:4Ƣ{P -tSğ2 Lq;Kr]scn$٧,'F -zH il4Ua5@7מ vo%HEaX>4{Ջ!w\2~\ w ՑԷ$ @͝3 -V+_J34?"b11A8 tSl7{n;0< O ;#@P  @s}@A`ZH'B xeFTX@A8R  D!'w),qTKb%;IIy[5+Ns06s?GR18Hֺ@z g- :9dgM\@78|? w-z=?\亄4` ^XGlYw(v3%96F} <3ZL8|6Q]| @n"jx}hژkxLE5=O ŕ*^1%>L:Y[i[㬟q,(FGZ:8ٞkIn8S>,%JH<`N;+Ց/%1 MsH=Y{J $m9d7inY؋HmHޔ^N/4utgoCB|ȸ nnf19?)5 zAEOu" G<k}ƒqSP M2 +ŲO"{OexP ɣ̂-ҐƲTr!x Avv8==װъjfI  +P#RpgWJذCF)_Lg#:(|P L&`_qhXĒNr+QX'i {*hnÛDԂFo^@*J*L0HLA0IEsE^t <{ÆLFF_N4*5l:3)0jR@P ?O% $f< {XD =6T }zp :2MssIE( @У;$]G&Lo(0B8XF@f\VA<%;ȝ@T@ˣi>b,ZB^37<2!GC:y8\(fኽpwTcRc5~(=)8Zq遗H^&V$%\ȸ/ܧǹrsʄ^=wF x|>J:ʚztKhѓ@6gŢ!RY;ْH'1ȹ=\b4S6*E!Oyx5$@[;h؋b n>aF93[?ʬLScϑ8y+mKՏ]HJ%5RWa̿+OeV$VG#pH&i(y Fa\ 7(2<Cl`v"fIGi`"LH(T H[zu] ُgkc$_irwA騤ʽF` ҭ>Qnk, a3/ܙazI9%=Z~$d8R&pM^CL%]qU љ[|Oc$7B#{xbd`nh# ܈̂Yˠu" 2ul^Tē#}ϿTZ5[?mlSg@臌Q4$_|'8Kg6q] o1Iznf`㗪ߩ;υ3]|&Dx}oJSo;_2@(ϣ2بX#bA*@y`dn޵~Hc#!w"L&g7=N1< (H«k@ yvd섞WB[jgoC!O3L" ]늌\eo].Sخi9E٤勗ַ~]I ¿tR+)Urg^gHt\kJ0CV+K$_wnin 6̪%rb$Z-(m0=N(T [%B)!2 O \wN,GQz_?,ᆷ?T2ف$;(lpől3~~Od )mq;3+KaOtaH,MCcyX х!sVTG&Hs^ǹxH KPe$nC,v#0'/QPL5^rbVO?]G(Y]M0 MFɁhw Zl5U +0Gf-jI%~ ]էu۽;xH\mܤ;Wd2fcdXh~i%{6b[Blڬ(byR3ˀ` qUlkr stQyd#u4- H60rIedV)Fګt/v>aX@BP([1*"|0Olb&7ܮ4u@{ |͗ꇄڈM!FWެ50iMfGXZM@R=>{+UBD>uU5YN^ 7xXpOP<{]0D7# 'j"΢)>P} # 3&BT~d +7}%1 Y0_^b GseGbSXIwo@ZBE<5-vwZ" L+$[uǙ\/$#-5~cAC;a7ARG#p*a&>( ے|6ɯ>K+XGPV?" h$rY@Ak Iekj Ƀ.aod/c40/~`VZǼL 68: ߃Q#m+U8/(MpD!q؁x{xYiC~d?rZ @q020IjV \?FH$V[Y?$!kNRɋa `-3e:n"ۍQ;|OadrD3^>J@#!ЮYxS7lLh%i?="ayQ9yoI@`_<^ԂEvCem{5\Zd(\+u3^4=2 KZ5riN0EzLGqdE05(R.`IRXM@_f˻b#AѲ)I*Q>UPR`2%-$D}FO&2%MfiR*":e2ӜNgDKGٓY+K!ѕ"nBoKK8vk TTĞ|Ky! r/욻APi؅_ֵl|7`̏RPN)Vȷ'[WG9|@q0Rqf@&,]CM<][GZ´:X1ep΂+cf B9VٛAz/S. ixf^ a)q& ` W.3*2ak*,mk KF^a"_f,g{a"Y,~`B;O~/j[{Eb0(00Ūi"sPfbN-p2ؒ4?e=eeإ ,3 zLN1n|vGDχ}@=TC#y@s-恜(((@vQ7t&6#4R.̇\\ J,5$\cLu mBJuu\)lO4ϵZ>+ [a,_4$^xLR0.x^rRU|D@1>)GNkR&J#\> !I$e]\=>iDFAJ+QE~\4 jq5[YoM2h[pw"vFb-vk/{)5e o;ս ?O7P??f6rdK`}ev؝*Fs G)ܝ/ k cϥ?@avO W; a!&࿻rߛX.q0&4x=D TקTO&a]q8t6ec1l*VtHH_ѲEI܂.Czm4Gר !G@b|hKsyM/ވ?.ڈN@Cf\. 0z#4^08s# Og8b3Hyh0ki @z(U|C@1F%' @{,)DkL?yl8^JvUf)QsDX!j6ׄ˅v2`zqJda +wR ܌{N( xi]U뤥"#+!Y`ԭ"Y26KJD a"gc 0ޔn/b''c/td:GdݚygfxL31#0YzoׇT2;0|Mzӭ zdz}C &`Z,Pk8߯YڑiUNv6d(sRw %/&i13ӊSn矮wyKcl+FNrSss.jh׏@Q~!~t\F{ܕXJ&;ī4,wQ$[XDq4kyOnn#%'JtMd!-<|3p0N\O[;qkŔFN0&Gk;z2AḀi;+ۯᖜei񎶓oH‰%2K1}E~y_?}$QMGK@``űH /M]($Ŵ;%"#ʝ:sE8b.@}"V729u=]/0_zk%n-Φ_CZ! Cd37ۏ#-2᠒zmH 6\&| eakeoZ o0 jhǂ`S(d'%/INH&C d>]3iX}sSߣͧ쵨ڗsHo^~5xz6iu꫉u)EfM 6}NޓS )doiVށB"*3hAz]rC\O4E=`)AFQISi( Ⱦg8J/,xRLb7H?aފN5Y讏SSC N|"ٕR"1 ]G"\/R:!?ɇb ߱? Eg0itz2k6́oHm6'>OT@cj^QΌ[GvۘZ-{qFB5j~z.O\nAH{ʈ(O`X9WOK(06@jR:X-x1bƂҁpHN7.:`'!;" L)tEP Kh?rt3scS; ~N#43js4Ez ^tϣ#*oқ NǴ܁6"P4#0HB>y'sԡJGTN/1W?3kG|J8L\iyi,lB...}Ek$,?)54gSlt)O!ITUdQԐ VcU|B@1>~J2 󟑸7kBy}%Y,l)VXGDEfFCxFIٯOR1v`ɗ i~6Dw:aJ)q/uf3ĚSz2r:6=OaHIڏn4-@TItʄgbyYw:G%^O)*PJzHs+ `}V>[/*;XjT,QcWS紗͝)gSp<) "=.z!QM F.޼\[lMl[m"_ËRKJVwr8Zsl⨑XőKlV+wN]__eX|'RhsA~ !v=~2A`YAq6)Gb|ɚ Х6lKn 9~~L;;J&xU|B@1>^LE8 RV"'N}uGhXsJg:cYob9X +*.>Fˌ>E,x/|-vIf[$u] ][(`s‘Q&e3^SyrooN3&$\c8$B&qB<-#92Cz j+u6`V%_Tbvv=҆L,taQMX:~=ܩWأv8%9!笷٩yJ[ڬi՗Zb;rR1;ԜSZbʻ&7uZH<͟|O| KJ]2 ra@24I\1b vD43m CR $ YA`RH\!q8K܄_LU?SljPP*R]M=V7O~~EeΕXYu;p@lLa;8WoLH-{}uQC3S+{j1Uuzc#^ܪ|fNsFM 2_,e8S>N!xgm Z:UgiYW`#͕fíw_T 0#팔p"$ib+G@,?:! :cTHS~FP~">ߊBXz z`@ i3u7u' nCHsfEy[+lTxx,4l,3A^-R7^ E H1TH0h'5RGa'؄6 m@\@wk!XI4֓\qpL;OLں~1Ěc:YR6l׽@IDATmʿF-_.pZGH߲-;Y/ݜڞ h^놕śH^ZCq'aל^8{ ݥ&o"Jls+sl1o<[ae ?'DF:Ga.-z[>_[6H){m?@3bҘ9`HK# '{ c\R!HG!n~_}yĂ ~(t[ Y,,PY,a`O(NQw[ kkk {Mo~)OԫW1M%$`4sp= pA:/HW>+ڒʏ! /7MM=^+lzX@bFEt}](U3V h-M#xْj+}m6O\i @!uptD ݸh0%H]poDP 05,RPяQ\Z%.yC+BurhEU"frՃpdRė}3] ttԼ@?O_rP7MX97%՛ͮς&:akb'$< i0o®}͒vÊfߔ]`›6p,&p[N.x U<7CX1Ù;Ob3zTbU @b \~`9`Vf[u0>0q]eW]Cq]pwi*>J,wb_C2Q6]~OzKN\W!?[_fE?b=PyRwDZe + )]QsS12`k /3Eb -6GjLE="x>w6UbvʲC'%' ?]lGE!נ3# *0YCHآcZ6K XjwެAܝz/y:N)S)6Woi@;8%N"0?[1"I+UE 5:fYa34_ˠGq-$ñ0`|E¥ ۯ_R|? !AC0LKCR?"k-9"PU!~ƋcKq3ݚï<C_TO"XQQ?BUGQiO{F;b;qozv";@Y1H׳d &Hٞ>,Q.ބGkP1B`0 6}ey>ȷB: ݅ Wimb؈pO]*?c| n2K" Q j}Ơ;"!0. hm,}| ehݮEŴZW$&rԵrΟ~zpK{߶9{w:1}$ Y[ژն;ޞqщ^Ƈ)o»%Rh%P':uxN3Od`[p<>֋7GNHFܯ?ƇMml`,OG<`n`h֢Gy.i`@\P&:(|J]%(dVJg1χ]O2}Qfw̲95ka 4@X>J0ZAL;=8w`¬5ባ(<$0SQ5&ţKa2C{or_P Bs `:8a ː5GEz )[%詏>r|wl/D$[BJkpO/\ ]3/N;ߵw~";!wAoIll=A%s@2 ] R<w 腇BK_۳( `&>L~oM84Nԅ X2qV,G%bK6t$_p+1l#`] h?"m 9dLӨ4 5]P8Bٚ6oWXR9lB%DՅ5}.i i[af :x* ,>g<`kM@)m|~n=&by^~= s= 4y\Z:gS0x 1;,b{k8)"?E]>wy]r W. ͟O,՛')R9JR|#_l(/{l5-Ń$"FЋEs;9B#z: |} E  Zg-[^r]uU_HI#Y7d< 27oǷ3M9[qGY B`:ܗz/Nc?,8zɕ3(!\@x, ʽ@ذ0H C>|3XyP(?Cy֞rDV̛7 ]8'pkfz@~GzUC!Ӽ$jΗcx駳{_Ջvve_.a G6Zҍ;1HRKjw֏Mr0{f p{iױ! 6$?!IY ϋb`nrT,!.c"KЗƇM`Nu(&i-BB.B6p!uᕱ]5m}~[Wr@)>T--!^^ :a {.'y?!/! 4uuskskhh4GUk9Gܼ#|7}{CWKGXt25̼mDBS_M KktbeآˡdncV85|3ҶY) 1$Kygb> ҅ dK$BΑ^FaZCȽNST.Jۼn{_d_yշ?ْ&M^ryh%%(΢ }žaig ئleAꖂ ?+ky^#8djTF ū[$X0!gQ^>es&=rqxG0!vp_sM>'݃Pj\DI  {x  {V~|4[_pL`.AA/ac eJ4mUްUoJ~ob ( 19 /#I=y%Y|12}h >319xT>W$Ts&I\=0XMgjvz-=־B8=c ,zWL Xc )Y}m߅b\ \ɈXDPJ47b]`lU>g)pGu2-#Ksa/J$ Pk(ʔe\f92%Wl+5+Ax`O;h V[5P6^JXml-2|oHQ5hH&U?Hr82ʥG?4`D_VQJJIKX!{X9Y{ ?P?֍{#ln0&zXQ.#@A*oovwaN4LH."vM~P_ӿ&)SJLokծWOOڳPx8+ ϔ09w_Hֶ<TӯKoNViE}' Ri1y* HX'9R_y~ N N&lPޠ66w"_ e} /grHWR79Iy?'oK5^ԾL9+؋9Wd9"q~?tOZ>vq޵s .?.& K9ieU S6^Z<$P`|xW3[}歽-Gg\9!c. "B! h gHkΜ] w^њyGi FߩS!| <+F,CX$ܭvVhV(R} D%ǠQuYslzjEͭOw$@QA污Ukl^tF[:Df >V3IOuR̊ɥUkk780PQX^C%p{{_mQ%t¿]G< m\mO{,.k{֔zٯνt#Bt ߓ*kQ#vb̴0MEaKp,3grru'ԇ+,;,.@@,jjsܳEep :]D@sحV1Tp`bfi횽qMݗÊkě>D>ډbE}+Fq`HޖG@_@Ye 7Yr=qP&J)b}W0f%Ͼ[~վǪD7D?9Rv6w'sm}m};OG+M/O߽\$Ю[ j/4Έ*#fT8Xbk_~,-_Ĭ5wEr3͌vd5pqzQ~^4@=ynO*JƎK圣}xqhNUt-2mc0ڷgbk[+[þ`4 Vl*yD3ȰYh.JWUvXǴ\ieKSV-G>J5>y;:ekN6ol`osotIx?=Fd?kz> V ,0hW^lYeLq `%>Z+s򴑋߫V<F@\iD?rr߮`mE|^{6gjh_19H%Pr;vRS,\ۘ'YCYr~N nfJ#ij}Zp;.Y_c^Zy"TrG.%"קZ3`9Q4&}|A3&O=_.W8Oa`gjʫ86޶жuDLw %b`!< y>]zbF^TFmK%zjMO M-P.{%mP.cG5kQ% ׇ>uMlc@_Y0q˄@SUêQgPLXbv\ @]bem&AǦ}!hw4xOM=Ȟo BT%Z9792kB?{ ,nozgE_Ƽ|sa) Mxrds)]קh/k蓁-A;&&# =L- ӁA֕ a88.9dߒWﳬ&f?8mw1+^%Lyg]ḗ(aP+wsVOqFr <0 @ۧO&OO OExSK{! i[܂pfUՅ)*r2z>XXUiל'V;<\dgh%`"J}'*T!f|QC>j/g}]|%dIHO+Fm&˺ cr< Q<&lwؓ!/'_M[ـV KrW ΑΡ’17}xo\-)ţ/'~thyޕ kn$>-n ge݅trJPHB2iMyT'@JQHEDV>Ee7^:y|_4i"rgA)?tu"=U\3S^üzE ᚓNn\92/ /fjT}$kUn ).SR̃Oĭ Գ۷~q^c=m-^h|M4 k*>g˨EwDB"4kQ!3/bv^.7:;5}M9@^,tQ nf1_ k'eٝӲ?ʤ>6E8C@{ %0w`, |_VgI E_LˡG {p<8Գhjʮ55c 2jJ+@-[E1XѾVL)^>{XV'4E9*;M;|u6ҴMŋ;< NɆ)UI i>\K'U;b}9:'! g*]pdےH}:!mJ3:0X_eR}4ԼtZÈ<Ʃ͡xVy ܊MMdȩ':UX% v5iX0zgg17]m*vF{˽0w^O~98{vq>Vzts%HJ@kĘLyFFHR42KRH=x)r(WpN/uNت[ beg0GZ{4Z~C7Pp!4MAuy7ݭݹ/ ?'=?=hw-6)~ISXZW1J%ęM4/0Wz<($.rCP/x@~GRUEAO>"OguFYK[`vGహ C(_3NUX6=^Js++'oga8nZj-9 +?@:zҸ;A !^z%TC0*"?&N< }ރMèfE iP]Vi+B%rZYu NtbXa)&BJaKu~x 5`X ~B*T)֍AP66?}_t;a^NJ lfL[Lh|(PO&dz2g٩22ز/PjsLJRa՜Ӧ=@> ry@ͼEy]+BkM*O#*x<s5'{OF#>6x-2a! 9rm31:NHׂ!bַJP -T/? zk̄VfwX%6.=qIܽ+~+"{Y ЫWSi25Q65݃=S)T^/;,rE tB󍥜KZ"RR^ MOdv#-a$\xWSJIU%( 7 ') &1斩?/(k!#sZ쿻笎ĿJ~4sLMQ4W1!r5j"XXYq~'1BFWzZ dAҲx{n[yӷ3g7&jAJ} C}H)'4fA}>~Hp^,]i܍ p\v; tIvOȳ,0|:= MEy YQ;]<kIL)qqh]X_eB+a1)`2g(䥿h 2y3W-/M.'L 2r*KnfIK95%7;Kxck*4 |hCdZ4RR[ Oa]_\ )"|Kkn]WĬuдd%63Iv(9H"Ą]y낈B0HBײ54-L&}w/U߫a'ws7z1EًX>*z?׿ȓL2@ڦ'DY-{ֶ}N6 zOc9 g}Ǚ&T}\&կ=p;znݘ𐭫+Y*_r=IEıZ,NTDDRoˢs.T4qF|^}Wmz~!_IL1*OWj s+4z'&i&ARK nd9``8`~N2ܪON <@1 'PB w آG:Wg+G>'z};diWmyIO;>OCڪ٪ukڹ^$Z^l9^OO~mL GU|&ԔtQS~'Lq({jg϶(XV̉DrOWпwar** UL'B/ߡOڋ03fg>L$m/*"G ΓTХ,-w^Yvv.+R` (I]@)[V6k|-&ᘒu&03ʯ6.Hɘp̅W!jk$y@nNK4"fh /u"J֛֕Ay!n ](+ԁ.gytB%-gn= ?R^ )gL٫iuPӓ(o\c:Cp=<<$B΄CLӛ/Kpl gпS@kTy/<&PBq[&.Xh:(ә)`9;ҝjB@r(IA@~)[ȭwߚ3 Gjn ͤ,)qBo)Rr"QIvGQ 4f=7XMLLʈC(r/eFD‰D4`&wgq1c:UE@z䞩4&,,,7VRY ?Zv D.sUY81mzVƿ"&A)Tu@}|v6vI!Yp]ڔ)a|*pq yP#}X͙ŋ/X״̢ߥ$s]eTKebȭmoxjsh&M|2[}'Qr5AtԆMrG9\zBr 0\KnCfJmƆU2ԎqٔVb*_3)kǘْVUj\cr奜g ,@R9){kρѫ `ŃD6E`,^!#ey>gs ߳]2l0Q0̋6t( ?b'rOS/L6Y[gib3ߧ>kaZNsQAGwЋ;ИF/<;&%;A8GbhuՋ% עS44}婸՜/S26K0ƈͨcR7P֡@+Lc{JK\2eHEC~vϤMڴ.(29a~~c392;#mrtX7RyDG7x|A?us.c+4bS$MKW=T>g_*B\LsY{<󎒇T%c5Jđ0+ߧ_*w_`QNXu1~Y֕ћ7{>}9zyePR2?@y잒 r+)u oX#Ny[I[>Y3u]1@OJ:42 0&'/ځ69`z| wNK ڷ]䄑Er9#pGQZf ̓A;>#}D/OB?B pX߶u}WWc)wr>%nL3W2NCP&}w1 ,5ȝܠ&BA!X^$_SX0ugC@ ST X xiр?"&0F @MOELz9Ć|eSkk8CЇܽB{+?9NXtQY|F 1ן~JA٦+ 1*`mM4\hii9GP&=;rYnDqw̙c!$Cn K=23cg:+Kom!mWؓ`œZs^r+zͤƓ2Wv~߈VKy 26TJ;)cj _|H9i< 'XlȺ. @qk#^.%Eؔp8zӶ^Abue$#3`b8`lq3sVRiGsRa[ d?ݕW^Us(_95 SX<=ז[2 r XaP>;E(BQ0XQoP'G6r ]K9j_9) @ ,%~2M.b 8w) 2kRd:(b vL87MVӈJC!4A]yRqAtV74 4_>)!`!_ /Buv| 5z8(\3l(>fN4čajzܰ[%i0A4U5Exfyy%qW E*>2BfϢI+#\!_%7W/P~WWDT> ނ5-|ZiN< ԱǗy)[cnٌ^1 .q]j (F&Qʇqtٷ6=JG՚kM-Nnn- Gn,DEs Ng5OpzKP}fDOneNYL_8 W!鬙Yeg AޘJ% Z(SZܪ\p w ݵЍO6t`JT@OO?)N;*!ng@{kBQ ßU( XFNLm.үoS.$7,? o2JOr!tD"Jo;JӒ>&xɨ.~ 0#t8J4J:8A㖹қ c0s/sKϓ%b@Hc؅݋qC]_\k8R=UJ;܋i^y ekׇ(Y9 #K~ɗ-BeT`7&4y9 H2yk=W?) 7fuBxsIBvo3 ƢiM < !Cއxey݀ۀ@{bVyiI )䥜b0߽*UV`S^ h+ʋ}+{I|(E(|6Yu*-~kWc+R(J^/ߤ?5сN6]xWR2'Z~T ƅ1Um/CSR`%V`sOG"ĠC&?!/vy<51X0xḚDjΔߞxVxc$*njd,+m|d^\L^ v-)mR[nV]61e2|sS5 #>AW=7qK&(MXa[LgKA) 0y -J]4*=QVA`UEѲH!7#|jxQ}^:O7 ITyt/fBhp~]m'?@% nLfdJ^@WJ>e㠏aY4#?^r>f?2 C (Nwr ,1˘FWJպuֵ={&e]&\LՍhwL_տV .|ߕ%Sv =Bvc=*ed!peEHfNl5Ý9iwk r<>Vy)- K9j!{_!.c&(; KBwSYnj^"2ֻ&n?pȯb>M\obfӛfN4 $9LC0x 0gF(&1UB)~>t!Jhp*Z±:,[J@to+F/i/zweƛoc֣ l#ѯfG mvH) 7 DUF3>(树o1'z;!a;8i+lJ CV̧ ,_C0PylZ]nC= fIrnS)ҕHpF͔t9i0=eCΧ؄_L99/RH wW_f,Da4˞;ܭ?[",5%|up]'-QHZL0O?.&EePwplZGƻ[.;-'+8T1gPh%g}fgns9a4Ȓ|%(.Bmm7cC6jl1xYEaQor\ lq.&0vN!g`dIgT^{:g6Z^;+an'X{z׷J; '&GZ~rejx4׾1e!N96|7 &.)E92SZO1v|/O~z+1cr(|zꑃ W<=eC9¦𿗔t9~P>FPvRi NƑu1kjQک# F '@k:pIfWj+D}4^7~GokݮQ,Kn41Ɇ4Ĕ3Zy!$YI2.cF7 s<7;9*1E~*Ofx~4vI P5U-X_ z)$ GBx_냺Я Pi}ZLoZtTM X°;˨ǙY\Wʻy^NL?^+x$`9X]GZ<5^3-|'觇GٔS6 b'G"7ىX@r9Yݭ9uo-qmuIEPgsE1y;\6%` z:.~ m:/J*!1f"GX6~cD%4 @35x=pr2z!cs ywkwS:9k!U/F=fj!?t4U;qH't'0//v Xo\-`a4~&!s7X:!\vV#sxl~-٥tJ?2|c0DlO9?oI6q 2L"0xS"4#/N($tKO_q};ݡF [3f{_d Q9_^Y˱?/#4?Y p} Xg.qhzhφ? '@ijܯL= Ppђ(ྉ s$A^@1.~"R s|_s!IM.,^!DV;S':Q~c/PRA &XJk=;Xkz6 :Z?`mO0?M=|Nc܅9`]W(j|v; ;p&uAV~ܜAiuP#Еxx|F.&FUY{#C3D^#L8y5/e?Ny.nOX0* MTU0QdQV%`YxZ8[{7hq-pз9AN6#yajV}w欠Tyxw joްD%] oO1-!Tr<"zD7e%c'r Q/<Z{dEt-k9[nQp=eZG{<: *|pĸ/vצ;H'*iG1D8+8ؒg $OIZn/מqs`:#SJqҲ+`AC |2/]&ח{LϗG0f~ 3~5W4XXL -X.<㫍WxQ]TaOX#DkJ)_e,ۀ/heb^iP{{ѮcȠ- %.= fOmƳzǾauzPKwymaKݓ4XO$M HmbL1rR(DVHk7,]9w;ANLO0(qe{JtЀ 1'UIO;76;;|<K- F@y? ,.8[zoE%^=`L2{tkl?Oi(q@1niƽw/Sр/s|Mpja2/קXeRdFLq'Vbu95CdZ `nS<A݃-L ]6̡G 9OM~]}lقzv[4]Wkgq8YN)q3] /rOFzO#ɤYQE Jw\"A>nI% Wu:-b9Zvݺҁ1895AgF4D|*Fy<W3_a7ð8Hܲh>4s(gD/9rOH\'J/jvV]2׽FHFDC>*_651j;M k#ϟ;^0i<XdV9G9j&|wB`gO񴂊#p/bqAMP Sʂ+ ۹ hO;\>fa|jjE> '̷-ǔ o~|v5*t3+[EcךiYflIEv˹ci3nf c`<~1<+Ah+xGrUzo$\?hB*OLtJD{8>i 7.T]KP̟m0>6no3CNamVC7rMPu׻(%4pleˬM$,˃ x+]E>,} y"3s AS1x5 1d|Fyf@k28 /aвח5T7X79.!_C˷V15-/h˓& EsuahPe2O} ry>CCLh30=`j¬'W!mO-9S_0!|w: 8,9!qSUޚ"ZjGҿۯ >M( c2?cuEiµX^穘{xbP+VxżDIJt!BL;3O]a[Fa>/\|$h6ҴC Byj[4dPQ ?vK1L&w?5Ows:NwLfcBN`5x~ELµ;~0^27<ӷ/@gN<ɽ7ַ9nZ[!Ǭ^/z>r$2t9W eu^6pnDp^oZFQb&;t>H~Ryπ`[gZP$@~m~ p& 6F%Wu*_wxv5y݋~˞u{R}'p/ב'*#>W.²Tԙk|zr/y>-Z}!f?wAMaaG<|[^74uvM 2>/4kĤO¤KBtj;%o2H*M{ x[P "xe9~R*&LZ>ڴ 1&m|%핷VL 䳟-u=%<ңcoXB^Q -WR*Z5s pZ*l-IM"-T^I=Jl:4Յ yُd?Zb _'ր;OjWKy y.8@8iWӮg40r͇pqQP/u6n0&ԯS(‡Uo߸ ko.]o t;픧HN4@EFML}?35۽MPvsBE]>L`ĉ~^!7Qu83#fWF} *שU{&?'2էfKw4@+ph?}Ny+c2,EA49lH9&/NZ^rrڮ*&D'_Q:;T<;$LWR2]n9W>@ tu\T]SEKj9'+Rq9ҿϧO>Ou:{#GTV]1RI˸^׼j /yTi\? @xnCSA九P.TR/P#fV ŞvzbmywidH^+c%/Q (r.Br@8. rUHpqp^e&/~aFF{pteoڕ\(WjVV D  fWUriHۀ5_L"w"G |G60z3҈XyqXr®"Xj8=#)|֥[!2@)꧖u`R1 ,0I82t1|z:iihLMFF>Ts!hal C,ٚ=g qA$eg~"s1񾡖/juZ{;l3W0E!bGĎp4S uj[ȕ?_ΰ(Ҏ~1Ed'h%o +iW"U1`rDRbğYeWٷ*^A-|uÑPЏ"kO?xH'mAڣYy~3% }/ /MRU:Brn_3kW߄eiK PY$22nӳyC8\%`!i/~J h?v"OK< rivl VFsa|P㲭Cď=#\gl4fQEtgKܛ~{@c+wK9jXsn_Q -a>' b[Opn|R׊u.W+>,N?{"i4"HH!XIlWG!!0B);!x<*sU[j=_HooQE `壠5NN=]ݰKst},镛ȝIo2հ30)nk* ȱQta2$1@P(Nkgpb*ea3bP#|NBX Gkxbc9q${R)ʓ,JPeoKsbZ6 BԅG˃`Ȗb|@eyyXz`4WMT33䊄NT*s{k yV+2/hbN %@&F!чv)[I*"r[HH9j u8@xM^`13Oʕ?3ERLfʴA 9>bS[bk m Zb x^eюqw|-nRÓ,JKwy@NO ^ΗѱO#/El~N9;݃4La %rE+>yõ6}~XΔ!)S`L^z*P[{b{>| (A_ F>0i`khT;w&-pH-6>+SҜB,F7`(G*@JIr=Y) ̕ʐMos7wݦ(ed)SznB{bQ`@v"D 4ǽCy>/_B}E?zHP32pdP yPT-E=~J%XO&Jѩ11t2ЏcЯ۔[?r=Ɗ*?RtMZwS@iiRCZ%Dt'-'=#9ܳ4۫;cV6d-JQs? l鮀ml'nkۘiL3}%TLA2*dyQk-k-wϛx4EΠL0Nk~6],XT@a)0ޔ` '|: /L*$ Kv6Ds-ST}Bo?"w 5S}gJ9*v 87FKjDApO|N=F^F KIHHGN|3l01 C$ɋ<<O^f6№=W `^͸qW0z+?пK~LZ&]  ))iR$ک08m#j6t@rokhɾ]PIpNù9h-ݢZ@gy؎񿩨M rvޯCV+D<Ц6 ke-yæsYTR+7Y W3Wʴɖ1 y|[m% =K/@Z˂`; %W^ fR$ET `>| !Bċ(z e˔@@\ |~} >|W̲A^< K ye7|~#s#VE%x%Z0μW/V&xopGyV< D[5Sk"85}`0:mXZ'f[FUYaplt|,KO2䥜5w@h7`4d;%l+x%sh3uRho6v̫Ѥ;؍y{*l8>aLlY2"zH%Im~5UUwGTzN+uy'4̢ B 0\(A.WbF-Z2 hDʘOn+K>-V MP; $(L9"?)ǥPNqho#v"]mO{Wxқ`0MM-z>`hx.)S!R2Sc@wh|ar\J7kkB>:Ķ|`F9Π0TSV @P0wMI{Un`@ec[nc0Mc~"n6?E]߮U(]:]γ psT>ŗKw漓{zLLFwK~TCcե+I.f-uk+E\2LDꊬrS>nU~d0Ѹ#zD> $,RK@7rQ*ٔRt$}KNuikuR`FlQEVAPSEݙp `QP|dVg_S24'~P% '](C.!P .\uӠMAi^n[B[fȠ Q-[  [[E~,?sx ˃.r.ڡƿ tCVAx GYo_8SuUnx*_2R3!_;u lJ7N @JR Qj8DS!Ol%hmBzuOM? qJm6U{oJOyz eGլ=$u'43/#S̵3j6xߌ÷gu CC]W N..qMDlkj(%O:tVLḾur-r?OYxt-$$=láIXcxeEBb#(Щov(z\˰˰ (^a[1E&MC3!}|'a`W -:QxEęcwb@0!^sL9';}ֽH,GͰה]wvp!? pvR0GwYc'QsʏXA0ot^q}~Fԏ!gyULprN`ܣ""E6|*W㦧ZBm_:,CT\@IH>!R?o8'oB@=4#p:Z%QmfU?=!#t Qe/^P\vh '68[̷`YExF,hXO tc%բ:8@qe9H{2r%#*FHzxpEy׵Efr6d4oSdT$\I"@ܭDgz(̋ 1he%Yo0S/   |e|7] AH(yUGخoπ% |D>όPc(ly̟?8@C؈njTTd~ z]2ܳZ:,ExxԾ O||dB^y5C*lИt8HO,uӧٰVw}V^|lݞU{:?tx&ZKI8%It%,OsL!OI0k^g5-MJC!._-{#JBڡ :Xk I`_c:pYn*R;] ߙ|J{s.y{(;~+ +yrv"D$4~uQs)X%)[k8f[='|潅R%!a;\nl9Ɛ`gAǺ~<}\R%h.'D#Z?6 lm|zӺҊf̄A +zZR٥2^x-TXUۑ.X{0O!)f8:K!^Y^b[*$2[Yf lN,6f60B ^[Xu^r.Uծ.ZmXZ-ko=i,ڟB}j<C4]:hQl0'c Ssv :,ý)5AI\\au y/7b/嶚qg}I_Ƽ.bǗʚ#GQM>R5Cu8/3myyu:NBSHA72hIH±K}Ck0;q\SL]Ak_u-C ]-%df=w +^|!][#xx"ꘐ!*QGX' L"aBn8v9 5|⠤OZ$A1#36Er8bBms0pMIisGE% 5 O @a6MjĀ K#l q~$N 0{ B%>! ITP~b-"4#<|Ob/(auw0?cr1ݲjkB4vYhKᣕ;kBOO1*,wevO5 kcplLذ"|+x{97{ J3?&0zF ~9YD@|@';"ۮsNvn9߂j~nOFKk⣄X '@ ԡg_ʋ֏TP%6~m9y+QԀ|}W_zZhV5ZZy!jq &#hsPAHϋ_d6.RFk}W&f|>!]*ܐU|M30@: D5gTY˪?:<|6geaߩyAd>@hD(paH.Ŏ ÅHO+ѣlcs=׃73-A=(zW3cp "D5q=5i6zX6]~jtӍ42U=L+mF7:IKqZdlQ*=G\b**àgSwLKaElVdZ@ؤI5*2;d6Oqya\@$eAv3gqADRA ˋ{"l-w^6]iqSExuwH U l_:0>e4?,@+q&?wHT vn`vd8:jA@IDATH]yb[{>X*|^{B) enOg -ZS44* χXbY+l@MY-,uS\RފyX7]!,۝mtNԧ[4~y VNK|假g@ Cd.0ְDme]jTOx8{~)_bU -ĸ]D$1K6hЙ@7FGNyH#`lK72Om dE+ÕJsEa rr]Wu |.@j|x2Or0UW7 K#z ;u}%I#F?A$f>XBMܮIYNW@-Y} k֟P&[\MdrP%<֗n'Sy cv:?#% -pNHJϾ68xoc5#$p3##@NZρy6 `U @H}YJsa!_ѝtkP]H[߀٦P-iV.& \XX<t덒re 뫪 bɣ@ǵl^ OjTx9|gӶRiڏv7~Wן@ 04E О-Lh/@H }xm pڲ\T`)A{ X:nu_l^ KG|ka ul.Ke?8^pd[b)E-ۨo%Tx85"ܧêUbQ'6cx gg[9 ڷ`;XHeR~@DV 5`Dxok5T[ $|:G ۤac.?O":oA6U}LX9I/ h~XLLL$W>ɲDe;O#$@i^;L߂ļ`d\p6s) |rr[%z!eCK}uxYz:m@/\t>\d8 x^@IOC_ bxxhnNnaCcRW̻F?#,+ؒÌtW@0jfcto1':g{@R)Rb;lh3}ʏ$žJײ=VjG݊ĪJ;=k ԟtnE2VBY1(' 8%EyPa/#lHr^ax^\{4eݥmH >$Ѩ ImrE_Wt2{zBdkLg=~ݲdkgvn ogH-(ČKyTiacT̢ 9,a.LK{ j7̏LZ|ꐵRU1 )0oe2Ad :u"KHGl~iS*4 )*6jV,[!oQU$@_{ ]nv0 W!|7*VhwG隡Q#ʫJ_IxX>[^uɈbD~iFZttָWrrՀe}n{}M^y;o*0{l4F=+@C=:>kBڀӗKYd~ S𑐢!E(A ɞ:ti;aY00bdH`'6?46{! Ř.WU7}Oƶ\ɳ/Pz@Ѿ;P~ٷIm:ގ/|miϺ[G-HSRlSa]\ iHqFZ ztЕ+{&L8?Ə}ndUȃunV&ύAIm'enp&6iӰ!539D:FW>ޛ|BC_)뾀Eŵ5N\e$F6DEsH^$9/96]IkJCգ0kmn0K K-wI˭g}E*ǺʇalC&5?/[Pc3ҽ7sޭ[=CӤm ;G@=yASϏ_ ּ5RjA*A,BUNoaMH PUddFUW=kr |쯧ҍşۯ9j;5l`l3CJ`kvN;WhS7 nۥQ-OJIq+U\wK֙PfE5Q!zl6Mvij Ut6vGq@I ^ :TTvon4V tI]%35WktugYݪniQvI2Bңets3:{uEٿA`'N6e{ma~E!!P'ϰ بߨ9xlT{ձA?j=4Ea#V[zhVW^Dd]"U|i5M񜾪 >ȽH spj怂 9)V!W>D7f{IRe"RD o  FÝRudk}3Iio^䙟z,}&.sieszCJy V[ ۦnI%D]I3X:ԭaP Ҡ*N)A*kxhzz=̯ s-GƇg5$IHJ=IqH>)8?p@r&l0c#@ٶWq9ěP%UrAKǞ _0Ԭy:]mŏ@U&@'8H)\33ZN#H^y*Ƶm15Տ>hg6yܐ""Zz-3Te͔#w[F1gXXTYĜ;`=\ Q o)A#%Eo5>~u%AHNX'p= }Vtŭ;+0kTD-^,K%_Vڶc +bP#<C^_gܮiXz4xn̈́@5z|{Ow,TwZ cY˽sVa]AxeZ4lO 4GP 2Qo^~c{w` 18 d"%#A$i|mЭ2$*x}@Գ*8LjP!t/qY AAJjg#2OQo|E8ݑHu)IDr(7'4 EvK۴+ГҞ<̆ (DA~3#Ⱥݫ"#@7҄,R<} Q3i+ူ:+0}h/}p|x>qps=uv;;rj> Ica5|/w=-;,;l'!tQCC碼/܍p88R^]r8D}|Y'X;[;c~=[?*j`@<sF3O#RoR??"O“s$k*#ݡ om|TQI:[:!ԛ}H(U^oLؖ2ki4ld xʝ9ҧ䧌.q,vNktTś2J5Ճ􀯣 KSA= 1OMwwPn ^ӓŅ &!xzf foew.zuQOHq %(?f_֖F{!l~?#oql,U}ff%X[ ];{85E/?@Bֳ'8gn6ކ̀Ozv XUVh =98:81 6͆c (j=G2^$|ɼ޼ϕ(fؘ[Wկ{#_!~$cv4VfKyW~]uA~+@<!XmVYk oo rYΰ CDD̜(.6h ʙh1,MdS&G* OMɓ,"'4> p$$`?)0 n6 |pmupuaCuMvT{nؘR* (1+=VA./=^JXOݍYʄq6bՊ-.I7\ESKV"ݛ-#e4dm HO6U6#?q/w|-1TqD$r ty'!/j 5=#~ǐ9tQcX)3!߾ҭV:P˶4TlZKFGnE'cȁ!3 O. )w@Lw+VcUln>}" nbX-[lrpVaHLq?nd:n:yMbhAT vJ"F]&`)d,i!QJ M :xͲ5i e4/o3-ITnomn`tZEմs 0Նx.i.||XSQSQೳ3Vnmm7&&ắ4nsmlCAMgQ}^cݠM?^={;r>+-UԘq7AdC )EӾs/k4#'gł FA6\IAgI RyQxh nw JDDq+Ca'k3gͽŸ4[Mm{Xhʽ)wBئi_jzK-Q24~udI~F,fKQIp}9ͨ*^Bg|́|'[ E|~;^MA233'4VD2RT;NJ\>UϺsDKJ,r;Db ߆"$x!ס/vY!3E#lRF0%8\_ Cw ´X(,Vş"ٌ ఆ݃;T-3B_<ܜ=w/Ԕcc Qr*K!:pfv5P{AZ]]d ɊvIgs&Dd<*J74 -"K+Y^”XrIݦQDȜ06sN䝐dC &Nnadf2-CUNhRyy\ jףpvl0tfo?vr8bE찋?yŌgT=u&O2![Ӛsq{ ca~IB}+AH4 "k- Mq |8@Qb A(jU4x#lv<Q)AY}A4Զ QGVGa XB>{:^xVՅAF#V&ʬbUw}s~8?|TAh+N@ "\Y0 zdtJ\kdSkmv'̇kv8׌rnhAŕ|t8kHbo}f$X50!f`5X] o. ʽTvq?SĆ;}goJs_ +x<630 ҹJor)lՒ|4}\R[ˉ۩42GvD#F+moy>F ױ^2::O]kJȽg [s殩OSvz XN_G0̃01jH$$F%lfeBX{D|$E#"frK0 Iܔ s*OANԜZjթRc@$" "D~K0FSq߸8M,9z~')MglH >o#%T/}W *Mwaj𻁝Ƈb3c6FA;~AnQݟ^y21EU)ѮQ^048ND60ۈJ +~W&C fMAщ>M!\h=lnP5W@g#ϡ"zT>f|lEk?+ gI @J<~RgOA;,/M Q8RcT_|߁")zb(i:{GsI5ه5yW0kzQn}e{@2DJ r͖xbxHH[򉳺rg8f*?#Tubw{OKS(~dLRgQq3|iU`*#^p72/_Ⴠܜp IRUm9?|r}dzRV<:e 15|D>rfk69GHƔ׆$:̟Iq?^L̰ %f2O]8VVnʥw`#!ƺA/+OzyNp(Ye ἖C |o#wg!yH0y;A%[J_Mݙjަ A٫wZzv10K6+3Nf]L.lA7kX{8ِn-љn);gvK0zqvIbƋ_ ;0R6HeqN"Xۊ|9/z 0"߇=f(陫rc)H-J2,9ð½lz#=X ؏e+b>9svv)M!/aSަ~"XE؊*/*gr!$ oP*CUy1q~͒IaU?޼;Zxؾ!73hh9Tsf- (6cŇ@~x,s 7l+H_[q CHT\y7\*fo/!0yXfzfΔ6gx>:6:'`@֍Z]ht"a:x1,7eM$f |yR_$^pOhC!4%M?ºzݯ>D[2RNy%'$yJOxSm(>]CHmi ZbeQ %6?ӊŎX |@eD;a]w`XWi}?y5':`uH,/-"R&YW PۄL TҴV Q >u/QϏtzMzȷYc$E3,x) 8]Tsp`vU|Za%9DI!tdm@CC~`uedQ> yX8@8 mӡX5AI^pBQi5 !@5$.:&ןO{R#I}^Ya"'mR$S!0ˇuŀ"E@VHAa]?WGwe -b=xÆ]#Ur:#>@}!et -1/~\ `vco@ꌨmI<Wծ?Xa%~7f0ZXoVb :d+߬iAc /B >^h >?@YkI7,KC!6?b@+g>9 lj!Ա + ?/+Z/F=~=A6Հ-=U՟ ,~iɅc;Nu]6lTW' k@j^_5@ Ӈ֚W }ͅw.5#rYݑAc]xct0i|m=ard6DHC5P!!p(0}b. O`~Y!dGߏljꈍiWFosN UFѺQ5s!On߄NJ &!!V;͓ʘE2:xώƿ1Jŷ`Ƀ,ZD( +ߑ_0 !. Xq 1W{ƒQvSSejx&CATw " F!gH֚ V\%{،X=H>\6X9)ZJ)H)zptz-@OH[uM+Uvȸ:R pup}RN{upUL+"?B"g!fR10]ni2i(bzyմ"ޅP hFqexUQO-ϩA_Ev]}OPD(X'owqG.gy8 _+ܠ&F8Aǯ?n9Do3d[ߏnSM햷itCɀ6.6}-v@q@>ru$N)HmRHT =4N?Z]:ze:ZEY5v Ɛ2C1 lVŀC`8NJ{UUGIJ}?Y oP^沢 '9ן̄Hr:` n= E?pΒ<4 "VW{|Lˉ>GLOy%4ZC5.6ZUȲ@NXUh I3#5vv3 hx4':t>!av]B1!Ʀ/kJ5=; :~tquAF@JBb~Xs"ÑG^m$k6(LW Eͤ0%-|pOfB0!.*LT'Sq\sj;HʬDPU$xR8 B9TMpv%KE9 /6G>uo,E8|6Sr;D/(xP*b#ޜ7~ o;"g?M.̉Eٔ*"Vm!1C9dQU-#e?T DɦN{ qH-m'N 7s=m)]qX #mê!t+W67;FQBaŒ| ֱ|(82X Ĥ:`DKx/RcVjRg<^Iw;kϠa63 WðF V'"TJD;!f8;:3g '\$wگzdžR~, ?~-r_ DklC?=r_r۪i]~R me骒xpeZcZ@8Gn%˭=O4h@KԺ]Gs@:b4*ᠼ[aF Jr ?+7ͽR !]_ @KTUk?O9C_զ(v?Z~sTǦpSqw+J6mT[ZFQ;"pV2-RTɆRGfMBzf֜?xpy:2!PKc$y gl7 |0. 88P+^NA * Dm?NO'tV"#Vn=4G*d~9V qbu‘!:J^:IHv)BmxO޻Io@mKL?)\#|Vnv3 %""8=@R5Z h(a|Jb%j4vHiS834RCpE%{Z'o,tIZ;+qeKZޔWj&{~F,O8si-!Uu4[IqIǔnK^g}tD7\5 _H"@,sR=t=8$vvH:WϞJ,VM[@@(b0IJ!{S6E0R;%ni܋֓5C2Uၼb)p)}]i9@ v^-@!V5PG]@ BO/3-O-y: K 3T?ՀC0E{q_J $Rz~*H$65ZG-yhTT!AiB_(VL:ʤɃolYVL('N*I0[)PY$ n |>`he^/ľWbUqtH@9N U`倽O8Ԏ>, iԃ:Ziy5+vH~,JSա-/)M祡G_\ZƟ0S!{zO-MyZP˲Z+aU).̞WSiV!oQt zq ~aw>9RčU4Cc# 0f[ Bt7u(Ǥ3BNz~C/, 98)xA!=n1ZL= ok>BTM6ulUeZ[cQWސ-0T@g\@$l6J:N u yMFݩ<QYMǯvaO$=7uFz2W7bxS܇R>ʚ?6W8OwUPTO! s/w hj$_P|/RwWZL5$zPDg/ɻZ;ȢI98<jk9cE媍 sZ, gO'G!ܸ/C,Uu>Xj-P%u6Qi")6c|‡ @%+zxKZw@fx8659l'-t=q{: 2ъPcEs9M"0SӲq楼93PB30DIKHԴϦYRg򣽻GKQDv~;$~>MrK!"݆hBO xTT\\8Y|zt 6ڍ {Hmj%"P/zt%zs#&x!C ~5_BA&yonK%!@$ d{H' 'WxC𓽃OTsKiϣO&i.4:ANG^gdh84dH39y-! tJܸ^}5 QFgkXY +fgG &œΘ)}ZTT-Lu,-O)p R!q~O@a':@N*$-07HK4 ̇#lH>:(pr6y/,#nH_ `"Y*zR\6b:dTzeՇKrώXpTt|KƇPZ/hMam`v),{gm<ɃHڡpw/M6?ZH,*e7JSo  {,@bNFR9h:ls>|u R&9<v#g5#iu ҉ew÷Y.B!p<^iЧkMԪlRC" .h]L_tArFSr3>VYJAlszi)?T_̴LwʺUhhyiichfPY~2Qx;ZVؔ[--[a]1΅@L\ ~ dFh7{M; x]?a[YC.zCr61]^;_܋Lz[tTjX 8$m5kRgǟ[ 2N񟦙XȈͩOlh+2ch, urɁhZj+"ngMS5AՎ򓡼-6w@@ tͦӏxNdm/SwXd@N|{rpGJM.4w>P i~^-Ywu#e 2o8풁?K @`WR핮+Z -[ 7kPfI|N!HZV&S[x:7~H/?  对B#+e j/G ji7M@}MpNƧcAlҜIHq.F+56 r64dY\)=""io:@~HRPzbܬuKfw&ͣ6T25Β<8l6B||f,ߨsX' z_f(+W&~Z\#V%bgӿ ڵ"kӑ?o2_*O׈&02w->8X4^6:E'^H"o"7"ƟŰ؉ޠq*56/` Uv%,Jr]C#P8KJ P; Ohk\5ax4'Rf \ծH=2jͭ:Θ˝x"/=Ҟ B֍9tv~>g>T$1NW12QD ;C>=/m.jLo2 n! v71CP5J1C[( 9)|__}U,ijwBو1Rm`DRž.O Оϔt^hsKՉ9X {bQjű@rk|_(馮8~1aA6/\²YRL|ʏ|%Es[8Ej:-`+#]ne͵.&7kw_z4ΨX2.T,bYtY JQte RAjv~΍.6bE7g/~Es|dU`וϓt4n6~N:~ vRG1}GGEr0-$49u 4] DO1Ե+ 2iciA 05x5Bk}-OZ~I];ͿB\'0,ck;F=!>Hq]Oгh?uo33l@IEl@W @$;8SO?uًB/kV|&`|F C:䇬Jt<p kvZ%ug>XOJЇ0iu6kM\(Ai3 \5EoOaOkw# d"@ )$~eZ8M/ 'K߷!O2J:|i4ˑt\W"XKy =c÷ZDh@FA¸ֺwOW(n ;#Gg WrD@MAYV~wM1~\y*Ob#x =:vP#Ɲr`l`5:%,e,Nt*k^ "Y^N%OvY2/!X5FNʏ4(W}= Zm(=fu{Zq=߽h%?e} Sz #$0 T\ y"Xދh1,05irP\1BhܷD$A.¹,QÈD .c'™m[>ypmҾ75}k~Qc'{iuxV?ه AKyTdwW&yHYa?gf(6HL!آ]5(ы )"IHpº 6VM?^(ED,)We-)%{([n4̞~{D =933=g޿O;3wE|NוiwU9wdf:m6jVA C1+_+kaag~By,e fm1mJt&[ߢ~t(oPsaTEeTJ$tz?+ce-j {_ٞ%>U"=H^ɥm)ov l3logN;B#\Qm*FE꾲nnU+Vvs]~w`x=a1~Wl=R?^Pڂmʊ E~Q}DyFeԮ}\|RR?mh2\ڲY^ƬiX?^̡yvݾָ0\[G.u&1NƼ ͟_ @ -Pb;%"}*ï!.y{mήjv,ϪQ]qi*tk>;z~\> V9땩_9+ _2߷}mٙC. n%Nbfz?!v`% "*+r̮m~@a6ۭ5` S/~^9.nܣnq;nA?kEgbTRjC màO)6eL;Zյ"vbˋ]M$xGM@&ކ^PxNMz^uY^Z5W==:W79SOT@Nt$]NEb{eyo/Y}hZmpg>KΫg,E>|>sV^juoťʹxv-r?MrݪRX?ZpY?LV2of                                                                             4SyuIENDB`ic04ARGB^eedee``jgrhsitkvlwlw kvjucnjpk" Üѽ 05ox8/ ^4P3229h@v j3eG,,Y@ @+0IM4*D Ud~}h́ ɁŁ Ӂ ݁ pw® m./Isc5. W2M5//:g@s m3gI++[@ I*6om9*H ʯ{Χ~ ڟ ij~ Ʋ ȴ Тkc} 03VzmF/,b q9a://2J4R 9Z+,Bc4_ S)9uj5*= ԏʼnd ȵ ɽ ­ic14=PNG  IHDRsRGBDeXIfMM*i @IDATx|TM6$E.RJ+6Ċ]|>{CEQ|V ;* H $w;S!1ew?2|gΜ3a"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  * @((Yb0,FP u{u[JqJC>8|PxOޖ"s|O"SBDsQ"z̖6^ 6=.:g1yܒM?&g gk 5eI īkDO1L MI7LsBCDG3i5ϽNM4ϢU -Z̨F~"I7%- TE_~, wQL$#,b>Jd[t]kAIM~q\,l@6A >[ߗ:3{+^dۼ͛ؼzo=a'm~|=6"/wR{=;۵^urIkXIs}cO_ǯm;rm/S>,wq{x=_n/ǧm>~>9DHje=m^e=^oe6Dm}i{m9]mWmQG?ޞw͏Rg5F7p3 >sRGˠh۫<F`2_3iN0mKS%?9Vח[ekb/(n uWZ1ƬBP-þ,Xh?i6s;ySFA6 +:ؼ<6϶ `s^N/Sw,}6iC\Ƕ>z=xa^.c;v!G=?Zx|=zy؎Wm]; Oo?_m;ܛ6 k~oa7{lR;6|B 3 $u`H`vXw/hrw^/o#*^PA!(ԝ$0+mCj!^>}/437Z~;Ɏ'^Ius{,D=f YuݯV|wË6~/aV =a7bA+@H"bsn% GA G4 ݧ%3=mVW{9=+72ϼ'%:;/mA6/ˀ%, D OQVODž^k^>T#:kv߱*0YS rfyHj46塁Ƥ<0qW9V zP0 vBJ xh[ޛnga;o~WceD K4Պfcw$oT7[/u1nytc@pE*ps=7YK+$2 ";L)?A}(i?ܪq'!FJaY]:iL?8'\JmΌq|,w( o9.ǺLJ^G|o.GMт✀n,ɪ8קRO(9ΜD$@":v Y`[x; _{|8snI F XmuO+_m-Nq&pomVkW!~.@9!,u7{ }B[Qz [~(.[VB?&[*Ǎ?FCezݝ쫯K uך<& )HLϱ}(LSK3d\= XW!+; 8"ua镹q|g!K!|)˖]{-aS ~ڊ%+X# ;y \VMu rü)79lfNj@sXxʽϷ@~t _Lk0uǠ&j X/ r'͍㫣01W.[FcbQ7 \ nӹF)hj~7*Ķ#L Xnm;+GUEt\i'cTخkjcJ;gcӻhg*+Jlf^.)$zx8j?Ndj_,IŪ{0A2ǩQL$@$CHK@j4>ȇMcCKqL  B=BҮU$]ֽPW$t//˓rVߋ,P[5Bl1;AL]GIm06|[z7nosjhdmvHW%^K"݃@P7H's[1ygoXr 5y X Pz Aled{nVy"]_d2H:^č&Iv;xia%TRk, XwQ_{z^`_/5/nl?Nf_ﴫ,j-g0>F Ϸ'$I]c |/w{/E ݡ#@\, MAkT_}IzpɅbLxCD<ރ@/g{vα{@AbzUT[o^?M?yyM:K[lW#c54Vr;^}p^0˵- :5YTr3}믑 nQgS%M)U}e"x'`z]:#F8ebdr S|& HJerV>;; 봗 @8^xu Vo0\#H$Uo끨vc /A7}R}$/i-U#NU'}>{7 z v8C3 ((:@,-T%gkVܼ9\VdT#V|vA?E ,]Us"s .c5M wbp/y7M4RTT)n>|Zk e1ɽW>3YBx]ޔʕu8vSgzP&MP0@<0Paǫ2T;Z^DQ% PUcIL(8IiЎ_ g[! bVf ,|\w#$j1N~8 ]-^]b\m~'b@ |7e} "H =qO 2@^V# WW;zfetn aM}a]Fz<ߛWԼ2*Wx4JZҀb@LXe2Ȅ#b,a-Zٿ:'y]yu;^U`Xad0$P(I d7|R`c1CFb-H D$IK"V2ޘFke]v0D@ 5ֿaԏQ*YaC' cWvl]Rm % T1*8W)v{?hq,WWȹb8%2wNɩYr'9ꥪ;YJ#YP!y*" b_Tk߁Z*q W`E0"!E@| @e4fgGRV3u-ΕJ*~w$ bY LY}/Ve]E̚gx]Y}I<(5^SE2Ll7nzzRrqdrl|W=> m>.vղլ0@ (Z8p=^TC=jPgaRĻXoLHuXzeb/r'@#נ*mL*a0VC?X-ECqYρzcWxf<)h#KM~]O>? yFA>@>Ő˯xuۼc#)xO ?}oPrv6d>=ْ' Yp "F3DK@{А%yʽueX-?KF$[2ACev:E\gXȓbjo_)M1YC ?~}Z(cQ®XeRU ]sr:7 ;4 *bX1_nS]|'nv֪DP[QWfJEi,sSA*]H ;H  ` 紐eYUI}US -QdE5V,6DEȚȥZ;l,ԍ#+AEnIH!7J¢oV#Iml1jYՂ Z;6/>zD@ XhA6j nYIk勬iskqo~t0nQS/9Tf` l!L]yARs-C;Px &Zfha) @1C.z!R ާTmy܁j U![Q9\;VN{ᳵZz5r 7$P 6`lK5Z7 ?q(OgwAnbӗ[ћޑicZ ozgtFɘH T$@䅤=\Z7yS%W%-ퟬaӽ@֚ F';X1 D_&]7o^>$S9J]˩# T}em͚[,Uj>AI˂"<l8#]Zr;T|Or XU%o}T }\N[ ߄1cA6.}KuQ_%'Tzco&TB+ t~F\bI/8x!RG}RQM0=>?)#T8y҃szBp JO'IF? \!ϒ3a uܙ $W%ѓ{E@XJCx5 @xy`?{ ZrCC<m+|ԗ[(V|kM;F]+coX#,_ +t_B}D@/XhA咽g.);K.!Sx}sR + A"c&oe+uF\9/ t&Ju ޣ ;!JER| 7biifa߿΄h0V@3g%BxB0 /MF"'}M%B~X  Z gTH +R~KB@1[b+bOʥ#NG4uo|ۖ T3x>yFYg>MA`^q̪[\(kMK^瓺#L(&ɩ[ds셰kaY Rg㕀.Dd/[2Ot7b 0)TA(-ⵁYD'&}7MPIF`U܉5& ެG}Qj kA]J̐L,xP\Bnzӽ$i~#0&x$@/@lpP7_EjdU.NKz. .\}9SÜu;ȀGeE2iz\gNZJxYj&[ex@r+j /0 "MJGTו~Gp $a]&VEV)ϔ Xzj*8+y p %Ozi1ʛ'燴# 藜+{~G4uꬰuU6FLlTv]?͙Sw9y>Kk؉-( T-Vާ:(##sz&+?N ^♲XDg.y: @e{:SJfITDF`?܂2e%^ ?"Kmq%SR̔m1{SfBLuӓEo`"X @@, zmF9^O+ecL{Y(׀Oy}`s d$Ghۃy T -7qݙW'}Ni͂+Cw!J );)]O,F#'8ć?ecj,d5E=S658q*O&dmv1mՈ?9śE tI՟ϷbFL ~X z^D+cp8QnUW rCw0 $}p:絺Sd?Iv0_4W1,T5Câl' KQ˓co]4R77%,L$@@ kP/t*roCm/GH:DĢHyK-'2RdO SoKߊe.$C0~\L3*̄Twj$bw%<L'`~cFih=g +"` İ"☘! T IXWB\Y4wol We/,;)'&$@#Pbŧ ' ]K? Z{zUX>Yh\{!oPL_K7m|mjܡ#e>WjseÙ~TTlWKˇU=RI.-!^2wU=>ze@꨻MsKǝ̕/tS!F@c_zfi&s?=OWN:R0k+#"bbY%C未_6*y~*Em|~Voԧ۔T;뤛nZG/hkS c.sAu0rizd2@ Y?"q9ӗ xH]"w<O%S(d}ڦUɾ9W;+4HN E0Cq"{%(~X)* *J* =_GXi*! @%A߇ S^'fLφn[nF2+ ߍ]F?\ JhS]!Rlxof0[O/iI.*"@1O@Wiy+@瑿Fz,p/X~fx=uNn97CP E@GϓőAHЛW Hfn; %m?M@3 d"0j<}PJ΂(sSsW%{&*CT8qdяy 3c3 3e8Cwoa2J*/#I"-Wyսn8ڶ#,gs @x \oz2|B'"oy(Wx 2j}s[p=*+yaBqf%/Wd >U9G}Tc'(.jsgu˜YoH51t7ik|)3U,i8prP]n7$\E$@QQ 8`OJ__t܎6cqKd$ Q'B~J!-^+&)OuPc`+-ʏI?#Vw>uGSZJ:J?-_kau|iڹN_Z(Fmp ׀W"bcT$DW|/jz:wW@`H"l?DPI`<JvP1@D]J6`7|gB-7BF]("6ZuwPG5F5]6 =|< PPلy"g?N?ҿ-:ET4߭{]PغT F+9eȳ+-#'dę]$}H3U 71:C= 7_nJ}vVt 1 0zUJx m'H2 M#+|dhef=-lMMob"3:Z~4ra'%yUو7~M^_( 6QoSdy G kq(Z$_wQDO oxVu[xݡT Ƹ=΅Ejj}9)Oȁ"`~@ `rJ'.E|觝7s{oGZ[r}˜~e۲UAskJ~U~}"wlX36ƕ'DQPJUouǫԈ?C4?bJp4o7HQꙠ~o_U(z8F&T@#m^Hz:u<>L|@& WPE@'HE}B k1Ps( a(qݡi%}oĨ|j|H@-c1Cxt'< c1δ:kNZF-WA0!5Nk(U=wm+ﺧ{@2N0  ’d > 8`M&:!#VO; +AMD|Kr{eD]htt-*4oX.T /pA-͓.q *Fj,ps{V𸓚Bz58 1fa)3yu0%X16GfeӬF1@M$#!;GwLп+Mg#ha처H k+LWXe*9( # {d2Nj @/du-QP"@naIN#h6S{7x~]|gFJ/ f)%s(̮"de-C]ܜ_',|,J8@Rg:e]Yl!+ϡwdr?`U',@ndvF} =0g!? V<$`~X.&PU ,˞UU >GUOk(kezFJGߤ+T&QE@Ⱥ6ȱzPt}sf5` KNv(8tԗQN/gB'K`ZޔmMi 8MΚ=ߤԑ2.߈׹?DP2G :Ê?| _Gq*%z)WO1hDy-A@4#*v$!'X,G:).7 -au>kSswc[<')?4MN*03# . Y# PYH4R0t^Y٪G$^N%4KpNa/y5/b,RZ?Y;N;2La?cM7hv׺n9V>R3`j PP_K/i/d'=L:FDkq hP\"uM\!3~KeQi p4n蛞1Ԁ^/D8C@poJ(#(H8 0@B(4۴:H"dy֜#`BvݪTnlގ|#ѓ2o B['VH֧TPy'@♕I`>< 5SJ;ļJ9Lyo#;h^6FC0Oߴy cy W]OapY57|Sya +gcCK#Pu\s;{X$=Ju4nJ 7I5J[#-*(;Se_?=jpQvK'j44; T?* XC{'Z+i?"mN0W,>{7_IM/C𾓜5O^q3eobLyog}ɡxG:eO%x"P6P%?a]`_T FyT\"@IDATB 'j0D(\Q M!DnT\&y1d"~ pa%F7GGxqQuxFe`S`i3+!L@{ ިO4y4k陳qn2Cp֛Ԙ)Y`JlňЫTKj8\~)Q#E$@ͪQr }fVk߱mz) T_͢Rskn܀yD@!4T+S! _#?t#? dZZ@ڪ=jC2?2dYE ޱ[ۅ [ 6yL 6b,Y9(xxo81'l̀@"' #|ݥ%?eEr0KTDi(_SYZr~Lk2ߙ=  $"0IҨt= 1-C.>(Yjc RLtL kU&΋_N2#}egi:bF @1̸c0ֿ̞ug)Y KJG?͓H5H > |$-Sҧd=ǰ `2%>"_PsTR$+s 0([+< T5IE/x, H lԸRlV%Oׅ0~ n\օ.;zgIzH/άoN(>[`fc7}9V0TCL& ٠a/!n|c#*XmGkG_ߍPP`<!Ap[(REFd#?ڭ#<~E5Zr3~_Q@, @7m Dixǯ*Hzp%K_(~Պ^KgHg,0->G>'rj;:B96X -֡Ax$/Q˭.=A/q[ \OX] }WZ$B'BHVL:,d&*&[D_>SL51ECp3'2$#, 'es<ˁQed fJږŁgʕ{Argb(AqH > 6:sdxgVnSх)}$u:hX"iJŏ{D_  = C,R4Q+T#KP-QDb UGVTdj"Bީ|Pבs8Yc2tF 1J8F q@VGՃK+*-2CĒb毞gL`)k#n<"/xgجKU.VGMR}5_&?Lq\g88$ڿQd!;ňteSh-'N.ኽJE)-!U WOV|Y+ERO̭Vev <4EP&q13ƔLI q"+Մ YG#09VԉN[uZ&w{P҃*rO+0@·jADO#d5MB+"O?qZǚxzƲ&~?lLhG*vj!@@`CDhEf_)0-Uo|DJn϶1հ00@V:<:כ(挆"`5uE@;V.b(&q_)cqB%r B0e"" Zեm;&cB͔(ўm6x ~6&ʕG٬G|7f$'QZM}^Z_sn[TT g>eъmVtSSj~]co#5iXot=:gkfsu[q~,UMIWAP5Iԍz3JI+= H "d%Z]ݡJ{u$^ZkVy_vf)TfDf@^FnVs)B J %6suA} J@L7O *DƦHPly[4 j DWB$fys뽣GLv 2j{uLkƟG&ae ~{bχd>M4}+b>܃P0cJm'_LxQڇf A,t |9B j<8`LQBK'j< *1#u+o .R= 9!kSlO)ݺ)Bj6ftb S 婩Wx%W_nv#sop6gKs4TX \y W5qGXL 7JV5Z'g:`Vڽ)J ]DIw@po#ǤUy" Z#O#W b;8gIk [uEяŴ)7ڿ+L2uZ'{NT2,B](:CL$|?9# #Pz8{܇:0M[K׀ x*ܹ+4-y^k %Z86 R@ψىDȡؐ '%X{Vp&Z?j7]eSQ[R|CiuKf,m\%<.중3T6쳕+{;@YPPZ<axMDd%G#w6/,1հ0ޥ:3cz82R?Js]jGblLGDL/j!r٦7U?T:f"2$ H*h"%J8>Bȃ7! [ηE*ިGLy LP=P _1.oVz[IL$P8 U@#7:K6Xz Hz|i'}d^UսjCP*_yk=b*&\vϔpä[ 2m Xe"*!+C9ay~Krb:W%*!0sЮ!𿢶db=Fȍ H<ڂ`2D@HʈZC/Χ.V9 #?BD伤Mu]n$=Y*ߘ =SLCSKT iezM_ːn//1@؂*UI%%a"%" d'OY N-P$"HVD_qOהkg[S(a"'XK{IX HJ'">{MN@gg!/j[WoCoP$ao;55K8!al  T?* XHUפ'zEvT*@4F@~bGfou/u+u}ɞNTT EW7G%)Grh9\GQP yQ} "3J(~'퉞߱B * RG1O 58r5GŶМ/Jc9{X1@  -ETוH|b&OTsT&DŀNrɑ!:#'Y6r=K.3|(l3)"#=2K{(FǕ8S&69ԍh)w#Ee&OU(LP8Xw}Y)D&71D;St=!_b+AEs`/ǘH P"@:xm"Oe"#`ހ. kY$:3c')bs:<Jj 3g ^?Y L&-Ö1:"qM` Er{A}(i0zTG2c6}F{h#T<)|K-%laH6S|Ώc8j!=Om=X"\B5gT6VPlMƀL$PxD)umz }/ swҲN=N&BI,C_t f٭'bW-{S!g܀6JnIA*%;BG?\ ?,!V܅UNيw6i0~%r8L|Z3 f 'Y 3oH ]9J$"99=?$`ه0=fei > Avo_QrWZʙʂVا.y؇%@)6}WW~U_%MD;¿dKFE@56Q?zj9إFRn.'_Dڰ-F.&+l;GBotoW]>076`" $ %J.<[@ PPntRVu.n3s;J̛F*?ҩrOúQviuk2%51QR0aP(ސoV/'Ͳ;ͳޑW<='gBaid|B/S|2Ot j8|G,D~w$X~,}+`ީx5g E|ɱpҫ/3W:K&Con$>A+qyo {#zdH>E cX0 B3~ $X!_iq-^> ʾiW?YMV*K9Z(e|f*\(iZo%ݫ?W/} /DG`>?Z$5_Z2I7ɾiߠ|[tZ>Fd_*ɡB~xn_+ENaY5BƩQ- B q}RK٥/u|?yu-cQj5~F/GSuXd}՛c;SQ58(fukc,aF{SG\nMʲfD xjD/yQ@zV53ѫ%4[Eka@Rot?D~\-ևJ x)Uy^KW1Xe"?G~"`?Bg Shz> p*@~oǚnUc OQx? Y#_{@dW}J rwn«Hb PPH>@P s ׫*{lx%Ci [&VeH#1D|ǻ􅞐q~)$S[-ަdKGB?N}qN3sDG :{{_خe{ej"*jbb/g:([roz!$zGzҋtDH&"ޑ{J-;nQ{I`g~ܽwwv~`c,sviV:&bgAP2ڔV=xRȒQmk`Ps_:PI#(ճUMˬ=//Mf#FqWDXO2Y evks1UaJ7e ѩ(bgQ,:a= ߢ}TPKC5X)`HHY*" Xc"?~Q?Ȇ25)iGYoa_*'2fUTg^.R8N7`Mt$v%B'lE)F"lB"oTB|a\j|D0:ƿ<kl-K._\6GB 3 '.[]}x^煠z}fA!#uXvv\] osNi hnj+QYKURgWZ*b#O@\>K:һ`%HW/ >Z\%C!hQBG-*T@Xuv8C@}8^eZϗ).k>z2LҬeᬖ焀 ?OtڪsK?Kُj!cZ^@w NfOj{ KI!/iI(5\ZTdC6 Ep&_AWpQ\09 [NM @ Y&wc=7 W1uҬ mtvoS?~6ɿ c^n@Xm.{JI߈e.? o"YsH,+0ї4?}ͩLfNeyA%hsA@ik̢P ;PN6*Ȧ XJe J-<Ċu"0UgY3Mfy%tMfjȻ5)YSFN$mE٢@Iv8V)X.DirUi܎L ! FSdcթh@gERG-UEZg.Σ rӀ1lu=Qk HdHQn%RnPOil.A%j^Eª[ LmRHe `{izx3Jw%W4:ŎmF0 ABaB% ȓ8FG1Fo0i<¤PWdB,t~JC#ێ8_:d2-g=_C8Yb_ \c݅8vIR_*q S/xaP6 e|U;dN-5,vHdK1; HdX߶"Či),-}_r5*RŴ1%JҔ;65UfAm-EAAa2Ϥ=y75mVXu~۸-0\?ݝnI+ʍavL9T ),?IO_&智cO+0x(ɫ maGcۮ&+--- |1|jО >IBWvl~#@ ~iVgbbo}>>-G.}܄418zC! kxp̗#e{"\=0fz7ImoWFv<Ŭ?RNsK޶:e>1ZϺ))T!C&gOOh=cQat_#x 4b&_$P%'@H$"MҰҋXסOf?<V ,UA 1MYS8[%A+GV{~RCڸI#bnSks^mþR9V{TIԔ'\lzbYN\wbR)P*œS&ht#"lC4c)]rO׼GxuߌXE;ܳ_c~ȳ^t٫}Ά |~7*W/CF{4Py˼+ہDd䤓|#0 PqV(W#5P9v٪M~v~S-G?4HZKs|ͬ_lHprl*ClPgF0||eyWڶpMZt__T6{6`O9|sNC,W82`(2}0$m5ҙcϧ̢0K JlO~I|tKݴ'Jy#)En K5WJFKr˟QG/wtӧ.p'Mg|ZV_h^Knny,+e-r> %__OdK p7̧1O=6tA-Y bg b%4k^ݫѽ+]'X~Q` h+ #$J|mg*]2:s}~`0dS(pi;ֶX/TdkA>bK/{;7'؟(Oi8{5D<PK{=8 `vȜ;Љq{Vui-DS5OrS'uR%RFsSg1~>_C֞% mu_SϵlWI_|x} tERU 7zFlS{t[^(]Ox10s!_Fxꡗ#_x^'Q'L;1/Ǿ񯬔=ϿYEG\c7x?g7Z'Ï,%"23} ƿ+ p#+4t1x6,00ϻlT$IoobNGz-*&s&OzԻS㤇)3 d'݃M=`CЖ kؗ "+G D"VƟHi쉈烃J GRCeh7p_jmVf zDS|wf^pdze MϼD7C~݇1\mtQNXPenC@%%A8,NKz[p/ b9yX]_v  ~3"@Q5E*DaS Os%R遊c_':sP ,geLO6'%s2Nn@Eo}\=t-UC#DzSVM*I&$<7o=SkLA O0z T +m}B8@l}VRLӾS=?Hnԡy!QvJ~m_K6cguAWVT٨`-3pWɌt8itF)Ŷ*K~'{>Jڃ7̶L-Z&9A@GLPΧ%bii*,13׮1ڋ\rQ?cS`pN"nhPab-WW ?4UOa҈>Û?6pE,dN-vk0:#NCǻ,|ߧ\<71xN5|g/ώz&I=D&eRy|:YPG1)T3ͦ_"olWwmINJiBICL3.YeYbÐ/gi_ o~s/S}x > ? /|1,/5o1.zȥJQuvT^ۦ;닻S@'|?={pZs6C ISH*B:n+e@A"iY_ekW=gKUuO(7T)4U5 _BECP@l7-,7EsmNέ0 ֎̶70uWя{H8Ͽeכ|&X7U j -(;F\ =Pzԏ)tCO esw8bl)g [VQYq)-^`G]Xa>auןX.ZVP6XWׇ)Wd4a<}|^{#t$r^DJgm8}"uىjݮ*߭@Ɋ>Ԭ%tr99N+{IJ҄ |5qSGdɢ<2RUTiv2MշR-~͔j>>&B'O"$VDٛI'yo|)/5Y*/}g2 ~ҥD&rf" 6EН,={ݙB/Ѝl  I˨;CuF/4{i4Jꇝz=SIzњ]g߯ƞ8uՐC4tQ٬#m7/ uja_ v ]$:-x׿wOݓ '4[41ثa'ģCX|'Qy#Vln!6sˊo+|x>h%{d%=h8UsC3Hzvz~N"K\%Д·&ޙ F Zs[@sAA?W'*2 Zkh0E 4glW,N;z~^X[ދ5ԟyKB WA8Gl$0lՅ3*>k@eY#* ͩ}Ntb 7 :huIJk@&PYddo2O3lQ~v+Czc^Es*2mM><|xyIF>kdZZzv7βE.Ϳv~?.*y}ibNnCn 0OT )ݦ7wk*M(-~R}OxwXޣj<'bj?S0W=À/Nn~kna[O~\{+~ïCpzM6w*sXzBϚ(H.ޫаMG+2Շ!lr2rN)vQ!ۏH"P |\NO_waǬ ?im Xا6MIVϾYf~@^Cpѳ8˅7ZkGM:0H6LuKt>/җNfz)X+`Λ_:@Tm>kO"hACQ)M8 /:Ɠ]pne ,!gZY.mu:5_v-?~v8sukO00#,Pϻtxr ֭x79^G:.ӆAO3)q#[\^F- O \Y-s!s A!J-jV|4+GMօ!.iF{[l-U,0~ vR-Y-BW⑓S,F,+hcE@ SmK~,6Ŀ1x=(''W2"-&ؠ+]GHe-|%X Q5-_1kSȥmg&ѼoI{T_PsJj,)ϓi/<6BǼ15ɶJ>2l{z)t?u#{[Dž Jӑ0M~5("oe;d2$]ч=zLw!.ᰪ{ mN'K@ YmvAo[xkV7^9d=h\d<9d U@uNdx+!H>5y84&$ F4+211-c) bOG$KtefdZ?)~7Hc%jY`񦸧-"H4WH?`h d->E,\Kc(/BYCǮ 'pCIo[R|mytTzREwƎ,Yxc7'!#} i—n?ΰ{!&W˿A֝fe$ )\JzF"%*Rk{箁 Ŏۛ59Wy G S(+G$xgC(i`tO6x) Et*VJ5C_㼵RM.g:|UC䈮Ghe^*oR] .=κАR A@BIX\tsN.pb>bJYpbEJ`[Pr6Xn4vm{`kt{|[69+׈,|#Ʉt`v6ǐ=]$vlRȆFYljl0v]- Lz_IELZ7KbXA?1!Fu2-)m34]K _0NǔUolTTRi@٨_m4_j! +RU҃T\"n.APu9 ԶJI/įaYP{+o!guR:-f_ g:_1*t{XYnwCw$UI(8Tj"|ٺcuHEľ3 Y}V߽^QqZ -^Y p^QEPQJ*49 /8K'I>1؆WJOU,2}vUr…'Чx5s{#?^ `}+fuAQ!u'b9~"$П i\By`#?2o5T|TLvIBa;Fn4NwK a//}(^s8nNXsiًVb?c)|Al<`_D//St)Y!&%[ WD.%qo1A 1^r="6 hvɗ/Q~6ʭL=w*|*[V`6z;_颢T F |{7Wh*v#AÿWmqaZ*4@V{Y VfCd`eO-ߛqhD%0NoQ^o'`DLC HJZ'ixwkS ߔ2J7U20ll驼G%s :T$n[j Es#7toq-@eѵ~Kie.utI `@KdMؑ,nA|"o)`DeQ{b[*-u@IDATZ eqkh, w1=!T:˃wUl*̓uc_/"SXܱ7AlS< *y33j$d}ꅝ,D_ƜwMK̜ٗ/HJ"{D7O3E' )*C`f&Ch ѧ`y0N'=ptK @)~E;ρ F$ Wɋ6A٦lC{Wyń}leGű'܁/`aNJC 5M8Ax26[Xo6n^y93|T2?(Ѽff>4ߝ[&Rp{XMAaHj#4fh& p{]I =ME]i07H 0ڎw8%H|&Ax8bVD[q_w@,xx^?,RPھuaY;M :,Њ|T*GJR1˶]K~`}[9;jXg;L |5dٗ3n_0{ `g@vfQ a,`lJ 7sSI uͺ<dCJ9'z _-N.A%vcǀ}2n!74FƎo ߀B%^(Ί=΃%.h]>JIx1^ aіyA1hO+AmEFw۱Uv(;pyY e2&n3G{8c**3\5$1I1_IrµGӬlsjSv =}[mڠ;*\~/ŒC;lz 7K5?4(E*0;t9)ʬ.HL>d@-TaܚZ6lG<8KB `2kٯ ;qw5:kiUbMY׬܈({ G| 0i!|9bk:?:XJN}Y$ 'n,Y(ph@M`IG(LMinqKp6 טUgɛ ZV==$ f$LS@ C/p ~_.&$\J2:aHchB5uu:w 1 ؇5K54pykF6̮8Ħٸ ̱.f!J~~BE}Mhby_T ҋwM 9aal_۾\SU0[\w2>WG飾5ҜEK|'4iӿ`inJVy+EMPEZbD A к0NA(C%xJ|v?A@pjx6B4ZǸa}h1B%ӆt9 yyyS hi6V{Q%sXWdU}sM|"Iwlݫ;尃^G>dӛ]9^K.c!ϛ@sz@\}Lh⺅xgRQ3"ÿq {I 3iN=p,xB+;gJ-q8p}A0h+^gG`YD ҕe["HΰNC2"fq*%ϗetӴݸM29V\ vliD=oXm|l|| ]=APL-H &xJ>B&|_Vmӂ, ̋M. |QAōL]ճ'~a!|SOR$%:)祿M{ss8agx]i'˳azcpƦ*&}Ey|4$#?v2{G1Qt?V!9T'PPpG!B#8XLECM]ZEW𿯣0H0٦S#_e: 4'2!@ fg\֨!7a/)x 0yM& hxrQc|ܛmߓiv9 (\@0!<}!*H VdI ai#4aں'I۴+UT8Ț|DzdYL٩ I󔥰! ՋS w2l> )6|9M^xZcy2'‡:x'c}]}LRjS =&=h5=)؀Ҿ-0f`kmx_l@[xm+FZ-IF*J[!ø7D{,X 'r o qE?rQ?cUSTr9mvhb`nNX\co">hN,,[+aX.}LXYO#XAtA;airh4gԑZ>fj1Jev:z^lk`s:y߱ʬ}s=_=jWN<-C%z ;ܯqklb`sWW4ٺݺ䶓ű tucW#V8w|v46A)]S) )K}(e9SA#|/ w:B$\ZXiI6B{ݼ+mz=P~'c~f(aeBwo?s0g {2,7o?$׏NUGњ:3oFu&8"WT+7 t[(VؕZ@- MGdѵv[IXEb!߳RV2jw*$A@@r 0Ӫ{ pD?2x hEA94g@Hԟ*!MO l_H|tS6OYMMR5`͔jVMQ7_4TОD9QRY DYTBDn+?q"˃*;mMZ=UhJD}_F@..N{j.ԶX-]t'{&{NJ XQq"s)ɄߋD1Rk6ڇ泾36Ф'Jf}k.aۓ2pP&(^;yH@`.rUuz\4sx ~<])-R}[(m,t)XSǓg*(#.FMt] "j]`%֫-k~0o~o4i@Az>o1Gvf3:YƢ=I{H9HdJh/ko+n-5shS>1C?Bmx#`1E;ɛO5u=okPq%Nhzk{(Ôo7 s$ *.|$;$,4dq}Ip'oKkH7P߿T: S:[䥎7whAm^H9MT_X "* 4VL^+x҂TomS6Jo^rv-r+ǖ?}B}NٛcOw =voҍ]ʵx\&{kk?ւIP m_{ڽ'eQ]69-H&TZj;ah %06 F?IY6܃Dȁ ~Iu.BJ#A } ,eK !˝! 0F,zNvYd PյooG: [$bmk K*.e'I#zKڧm;NJR@pv! C4p9%(%*:7Ƕtb5 8q[!OM6 _G XhoR'9A=yGN=?|V0Ra¸  >RťS$y J 9Ǿ,$S [E 0.E刄$ {AK0Xv¦m'TZlyփZo];~_:/J}Q ⣓j59F}a}:YyW5'nݓJU,<ɨeY{sWt/~U.B{+I+X w|BV}~_T=Țlrzkfz7cMzX H*4 O0K)S}ឧ=Oν%sщ+j4M4A%RE%@jhTRmSA&I" zȰeX4B=Aڦ8v~/ N97 8ރ39ġj}hqb㐢zKie(v=U0T %Ҕ5͠]^4odz H*k Czubq##k}8$6*7* 9یNqؠoy7bGyJAmw~XGl o{ϰWtn#u‘RS~EObfK$ccC F.x>GoUcT˂xYW |%Z3PФ1I_" TbC㥐#-h>*tKik[+3XaOW5^a)gdйIT~k>}"蹹 *ުP\ 9ATK U)(0d!QЩ<=Ӑa,eD ֆuF"ɽ] }8F}q<)BC 7oG~ilSC7?@՟P~mW&ъqe)z>s{5AH'YfWW5zܧKٓH f4 jypj" &l\Oyu:[{XoA|pK+TbQVP29W<bk * _-*^>T_uF$yR>" ;JRwv])AU iuHYF~sQm9s ĊZk-N֎S_K ݾqdx(-l&PBk~wBBa* g>Ϟ 4M&קλwQ=&ISE |񕢏RLS&m2 X9ZZ~(͇$˃X_8YY)d SduX<}Y a/ tEPjMp Gс$TѫoL/ 4`u[lw9X ߅'v8]mEl[O'F=3tGp=_}A;q74dXCG߼m~z/ Ȏ;c-&hOXkVo ]GVMyc!5þm" ̎>kW={.V7Fq^ q7! C]{tcFU}`}eAM؊%/]?~ПFM6g ,I'o~@pN ǥTi2 Q(.;3A.-R<%uT{&~b  &.49חvs-`Ȕ}XJڸ c=(%L0ϪH3M?kL1x7uVo{d I0-L qaޞ_Z;MI _M.ޛ Z#6!Rvk!~`"6)\f%  L2*Zt/FIȱ,4N%LEٷcݻ[VGwc~Z*/ųZVfDaYK.x~HG68te43Bwzq뚆7Ea+7XIvQx3 Ko x.bjzIɔK'wד}hG~MXH_ŬZ*4>MPVP =TaP  (9.,b0n2{ <zQSj #t[Aʵ߲qD@u<6evJ's{tWi\)#ɕMAA@4"LdIx UyIs`_#ޱgI\WuNJJ^ Q':t<>l2tvS˭wۑ{GGj3V_/™k-/\9UM,Wj*yE%bԝ sl>sdyJK15k`9;7 kC_fW}וyqwatFA@ Q:JֺtAp4w7wϏ`m@%.G4l]ˢc%Oow,=del+Xs ^gɰϚ@e<6pRG!`i."߫053./Yp ժ|,Qت=Ξ pjc)H .K0nmӝ>E^raH40ooЏ_!8zE%}}7}777.oCvĆN fЫ$/Xhh/h/˭9A . Y~d3&L?`Y]oMݦ i25l>G7̔_2vb?s*%iI5 ~H Ce"; Ү1ޱva܏>չj`%~ $X)UMA1h939}JHG(#bZ(%$ѧ _a !׽Ɋr&Xm2-Ogt!fY cGVdVo۠V [O@0ӕ(oDߝCGJyю|<a\h*:W|PK+Я4EaQYgX`]-]-e8 ݦqDQgBE+8NhΞO]P oY'D8R UW@i4$a5`&$J,8}evZmY[Jg >;A r_hk:46| U 8VC!\_ΊJԝofffL;{x\AЖ-SO%^#]_ :GgQː{9m#m,fUR4[ fJhjޛrn1ډU jj=rQ1v7/_G][wEYMi<:0yܩYŧ,Qw!Z5 -ⓥ tUPZh[p1@3.";UqZhW*k{9E'xYŊ>fLY3 zמ ozݻ1s+UX啋v,J'IJWBK8O>+΅\3D1V-k K9Cӛ7$l(zA5N4AdX!NTn U-2h071@ ·D+S TsYwx-{v]|~gJ.zoJ."E PTP 齈 {R=[H@\y~\2ߥ;g}ptB!/sJ79>`~@W<+ qp߼ 7IISg=}ù a%Q`V;K/F['.Ctd  Ήk;]8'6/)\=).@HՖ1c$B F?_M7! dG`n`n_Ns C $(r0PPNJ{l:N?9e|O؁l ]ާWI5e* 0 3P`my:~QzB%}99<+XaG k#np^bOQ هmJ>4?˙}bJ'nUsLf™T/!X, i^A_f~*Gw!%@p/^޹A> nU8p\-Asm 2- Q"8PZ[A{^h [)3_= 6|HR)fIj&szpVI>O2i𿤀X^ĩEm Ou~' T B_IZWuW2z2!K^޵dr}}piৰ䜑尿S:D1\N?y|M[OO(BMNH? nNL)jU%y<_Fz -4/9*CchDMoEZ3LZI(9vwXmp#OZ^ǯ>.ǰ(dxd$@C7q'$˾/,uܺu@ <An2~,MDWqW 8B(wpÍ[<9!!=O > g[W)M|uuE[Ŷ\9[YgpJG88,Δ?O{Ii~xϊQ{B(~pOȅs4AES0ǥ'ؑ14?]ێ Qה}Kb!;KRyV|s}S|716H93xy aNƏ8/‹JDr:rD\tCK퀎BP܇RP[߀wp gF3߱ S ޽z^t;ZSʠ+f7эJuJLAi;ɂ"(NBhbET8}(S&!E(p H rڞ98I~:80}An15-Iauzeֱ)!ط:s̏kYEwS616{)}Pte-Տh9h.x>_^ %O \BBϧO_nJ˵8j M,zQ5}v6Hh@ffxx3tH{Ue C],{-KhM†RIh(y!2>?a;<r- ׺^ywX]UQB|C]AOJK=?_x#!i vQfx[–خ7Ķf?z jļ|=xs->bml-ɝq f[b]) 8οOح5֢0u|7רqMlMd9n} zo XQ+ѝP+Hc!pփ*DwKM|[߽jϨ !YgO6j=gF-ш毇!ʬbdiQתq0~_q EEx,t,B X5xC2NϪPRYTt  y>xTȾiH2x_Q ~/x{TF]r á(钳(tdeakv]1Xt;z)(Qo  )|zww$ ):T wIo;w >ũ!98&.WhQ䵪.{ЇoYJ/ExU7jVV<(V9Q5v?P ducuFd)5؂'Px,<_A))D̿<EKBLp,(|)ۏsR~J֒gGw?8k<{zRĞf'^ A}&H,uc1H8ҋ!>DA0671~oCW墾E};r^+ҽHc+_xQ=y jù>@V~פT `N9ˏ>L ?`rsԓҋ ,t  80gPH)m㟰でH)Ɍ>>[xҐ5!3k62va˲{h0e!x[{Y@w̒p*4FiBLs #"۲Gs J. A&O3A|ҕ+`7[7Y7ajUC@XEv4/,&%\ɿD~{N&eZMXVcJ-Y`hT7/]IBѹD?kn`"IЄ! -IYlLv6~6[\ K Tf/fNBCgP}`@*P a V4ubMOcǃ=O#V a73hpg ?Oc\(hzZ [什{+u@IDATwXV0"-tѲdž+:yAϘǘ ELQ`BD✰KweSEݻ֝I7$3aus�j16ܜX~)){< I'B@4MS*<uM)1-_awHuyEތ {`i+ld-,ЯDZ"{.7N+fZ$*Vyz7FRЂ *|"S<(R,t\5sT@KĜXmVwMʇt&0bרwig fgG?fNxZ>ja}~f& {#z y,^K XC!|/ɬ-c9aXT[_KAuĶRJOcA pD?MwW5pS6c V-#Ӷ|w=u$?Ma~^ƚ,xuuNԥ{Tjώxa~#V߇ ?O8h8@ s=3K/ w'ʿ@U0Wݯb{gTt@tЛNA,a99>s{GbJ· .h;PMdqX'Z·O9ee #–`0=.3Ƈx=1'() "fZx 3r$uοx䕹Rm)tޡ -a9Mk` sp(}B]eOJW+ c b :E}Ư S8cRCG0zRӉDCĂ(?i{t||ũ\=7.|7Y,`PSYo.?}n9.(dcB vl{DGN4X`8Kf:ZK6jPsX!?m9!ۃE|6 ⹐Z-$]b%!&I2ed~ 'oIfq%xuҘF_\Uv:'.кfƧ e\o86]N(zoH+oxiKyyy%Qс)B'ADDlߓAyH&7GGaφx~Em=Kg3zV PlQ؈khؙbjJHVDU PWoM pzH]}Zccg"\@,PiN(S*_/WYac6gkKz`w(Xbލat ЛNIͅ$Vg"ZՂTh!ĘzLI_ JKIAY];3w]ɗ۲ 09IXV=ߓlM0NT6ǐ1QTehSŲʆBE>/_rBB[* z%?0Ճ{xBۋJ+CT %Yc7xaO֋[LގL >(2b K+e0"Lz30W|Ǔ)⋨IۨClpv/uMoEnНTZVQYBuPo|\󡟡qH 9oz U B@+nf9dc9^U~o-,WM=L= [ӕGE.}z cp{*~{x(pﭻ_'$"QNK8?>م~R٠LŠ4:q& GYD5bŜGW(+ʕty8BDB,;k:ZqdR<Sb& |҅tU*|7DY[[e룩s0zS_'N&wgWuiyRIԾ}CL¶m_JJBKV0TQ>yv{G3ƟhQ=6 Ҥl7 d9FKSæ%H **Rf S (u5t/V,OezS X@I֍^ ŝ5ITǶր>sɿ(bNm,]oVeU^E,̟ Ls[.X*fXW`7Q:ÈQp BU"SzHtdc=yUg֚@ g HQ`.]o)lQa-7y>z TB>Uu2(;dPF+Wlng[鴶((ؖӨ"ֆ=~U'I8yURfxDԏ.aP8o$\0>+ƒ^{HG*8QxBv]l,L_ {  >|*90_op9{_MpzP- u%#s*&xne.Ϩ!<\ij2L7~r#*R^vظGC]xmt6΅_;CX3[9_R^ȫW%XI5 R٥xҡ r}dU(^ZFIX_eJwo$zD"}y4 MVMKf8a1TT [pGެ?)$j#v92` Iw%ln:~7nNSJ<Z[j)_—wׁu~0fޜ͒07Y2|QcjʘsSUtXT)BԤQMαh5&[Rh{a#ݨ}Xd V+p1mIww??bYjDIHF9]ʄ|e25-UcP{9["!!f=$ŪI*MP- [L1'MJ[@E"_O `ºG- '\Jm"TfR^U [T[-hLٟq E8/By 8QNUE M [x15HpOswT>!\a>t@޿Ʈ2C6أ^ktt^| ˔u &J_za9a1ynYvf.#DQo5N~)sTgM/P:5g} ,պ1=&}6o,v?S$ޯGLҍNʯS2n%@O c;2}}aj"m^c/}](yb;MQB}+~ x ^ LC( %I![dw\kf7~'eX%V *+5AX4z\ 93î][DY] ,'ybm9@_q,*-Dx#pPsQ@B gϵ#C> -MYBC՗n?*} ͖~%SuH{&z *MIM`.ۊr}2P sI)S࢟l|T<\z'uJ~n> s*i+%.9렽B/,ѢM&f'ޯF|:>RMG3C dV?UeD`mΎ[;@nsV?tI8,-.s;>@{6X2_qpꀸ!gA@sA ^!bbO9S!g߬64ETYs*4c߹Z ? ŧ59 +D\o]vԛNO_6ˊfX4 @xC@h|%`K!l&}wt,\&A7boV[ڔR `(V.o>3B]T΅$L:-t 'ys߬E@aZ,`]es{O-|+1Esg# 7bp 3^4SS1G7)SPnNTUAR&?Ѕ/;xu0|#!H5 U/`YHm"z 1>J֓IR8-`ϯ2qUA? c'Q -P1cзFrC{qvqT]Wz)SR cLIoI -BM6Cɾ~^;"t6?u7@&- gG{~R@@m`S۹ Wm'e/#L<3UPfM]m Tm|Qkv ? 0;2<ﳿNO C2;ś71l 7o-ԩiQi"7Iʃ'c,bӕq8%C_&w _U z}nX[Ұb]Jp*8 :/$V0QOzΰKR~ #4qnP{={2up<@Dža7oKK?ˢ΀pA~ЛNI =VH}p:d߂)X$]=5Jnј31i=[h9^Ǫ'&294aћNF]HP@!9^ܛ%6 xqހRٔgR{$mfYeD/ 0hp;Zꬆ(+@m  Ρ=_)-494 ,Aw1CLsLP)<<R-,`n7o$FO{+cAE'c[ 2=mkmk cmvm (;ٛۛCQ]t@$*]@q {5c GyP1*@V2*y&8,]NE} GGYn ӑ2`()w \V`nhfcnr!޿mWm}B@1`l}zzx3sZ40ƃ U8`e}} _o3p{g X ;O]y>}:](oM Bm΢t[6 3dD,[J>u#3D0I礶R[?Je2|ʸttKn7PP̀՝UVG5ש@BBOOXaME7':t pz*'(W\<͌>-i[rp@=CxNt4+ck -'JܠxFh! bXSS@WͥԇQ@W ¾ ^z9 lG4eT:]߃Pa5Ps?qKQQP+ @o:t E h!yu"<;#d}& *!d29T_*Bkd5!$4  ,Hs$k#7XCQ@># a9JBp.Щ 3NNӝ1x7:t x htQ*oGkދxޙȲu'<PXA/E/{F;t\Gz{ $9B]G|R> >#IiG@PxTKy+%("`0DO-ƺc Dѿ)_Q@()Jxp|q<2 P%}TѾbY S*n@g<:\clTbg"Vz07@`0Q4aB Axrj&+E 8U&8s{p=|.6>}JEDk&&SIοfu?}Tdke H̪Mxrfi9+ 8³"}"e'OrG`(g: =WvqxZ0.R]|W+>L Y}V_*~,Y111`@x  8|0  ˔TiK)S%)cDJ>X wv֙30FBbQQ6J!`8ź(  5% cvP008:- R ␫4M]*|+ńLTN)k֘D382 %-UuN$XmA-;;s0.f16$_, 2 QL|3$-i`Ag Z1,E%@zQkie> \Gы*t3X_44Fj#w2`n-O6\F`)DWsuhM=R.S@NG 9RcX~4Cj$<M-=:`zQrzZ"-zk i:u^TЏJc~:nolȣGC_n>4[|Z(XIi 0( %P9 z(l[oio@ R:rdtϙ)1\sF]3:[= 8<8aD,k5d5 (-=;ʗLIDC0e36}O)d;>\bSb|H/BT'^: NXC00 nʈwSqY,CHx  th(~4p`z=O(,-ݟ罌 ͱi`7PN &0ִ ؂p</S@N[* mLMѿҫ4*`~ ͉'&OLn .%oL_Wl>ֵҬH'204}N$GfAbl8?p~ǻ$A!pt%RUD#G⠌ cTH"4yKU ykr<0Йy t#`UU{֓Gdл I_9o{NP^Gib@qQgxR7N 6^,: QuR VȨNn%pAw{X 5-` 8bp3Cq/M U*`glc*Uvn$.0|* %炿FZgl( 8PH]vgLKITCY%ڋD#6FBqu1ѕ߀)y6,NؿtZijd'U{ImMê]1)S ; hXMJaVFn"#7:谊a3+ZԵ;&at`_X$/!8>,j4ٍXo!,E8I  2e`SX~wa+=F%?u;xm x F 4 l7ۍp]5-DƬ ϳ[:݀ҤnG@.*U¬iSQ@xDO T(bb1O%O{^ a}C[fId㎬ 낾}HtɩxCM5 TtL%pl|ls[ςW|a˿-d~! ڜp$/bf3@&F<㕌W2B!R&10}]K]0&8ާT?/MS@Jm=k^~2Q  d IeJ`BkGP"tm.a DPJc~m$P)`22)XSǤIo%:#gcslѴj'脈pGUދЇt S\]\_ ͗فU%Pi|LUI5)=T%{qɮr9qm }}]mvZ@ B6GOx'bplۧƜv2@9)AZµ t&,Jv RzHpf͌$6>!{'=\o91+GE>6$K(Lunodi\U?;Ɣ].al"ӅSM{MQ[)) /zo / 5rL:OAiS:` H@Q`4zw5B >Vҋ{W[5~yX*G/hB ễH l@\En,q;sP1כNN]/>?Q@.X]5l.4w>#h&ʐa'Ji儥Q7>qZ"3 ''s7 ~,SMdO-q#K<XGÿ59nSPjQnޅHׂo8 P~G# 9?jq,l``'Η0kPLp/8x k}67IS[ ȲBP"r- {(6JY n:[(^[Po)$"$!@ Y A|v3/ۤs e@UZe/mxx)/QO6m&r>YwRnُzDF`svcX 'n4E_uy!6)WB!UUP. J;Ȃ\61_g^Udpv)+2x=%seG@M"[sSv׼`!6-cC TLa0?Tm7 \Ewgׄ  0`0 mfUELxQV(+0NO>&rC 6'u엏w.OG851'g:-si͛y⬄#U[p885>xlvʒ%嗾gdi"3,_Ue{Gj \e{/~ i<w1KFSc w!Zm+!rP{pHc*CR|狼 ^vp\^svgP42 A$qXdpcZk*?SIJW 9b0R$EEQ]_Ktl -*܌2m@_yY";7TVCjZk , ڨ`{$H77g5c;< ,UW?NJO`/Nƻ`} |鲄e&@^{p~P j_.O_[FGpx_YrK|Bi Hj a~=r^%DTKg`}c)n:zaX%XJ%Z&o2gO5!,Jeu,mzzS^e'W$vFPp](j' ()~8^iVvjP^9x-}9/S\\:c0(|0"4pH&s?P|:sU٠S5`ωQtO=ܷ5^/J a=/+1'~ϗS0:wVՓF]]=_L=,F'|I뢼=ׇDC.j紉H:! ȗ%WјDh[G3`QJj0F.{PϾ˸'ᡛ,|(KA;e Uަ ˫L-;Fʗ%jhXp| 򮞯7&`SJqlO)y(2~mL+eyD;loM V~h^>al"~ft: g:z ,rRNķ#:ԗΆb3;w15`y=WY$KfSY&X3y ){ҿѱ78m vk18Ȳkgkѯ6#ҏS &HQ3_ ffø޾ @AhB*~G< EJN cQ}rzPIn+}h[p[rhOʔ+es~3Jm>:!x>Xj{ot(i 6rf=!#!e|Q#-!hH/uyAt`M5zZ\x VX<n0qN;흺Ux SlȺPNq(?);C*.y@+j/sԜ &>3!#Q sMhMU } DJIoLW؅U<n;Fxg\I cY?w&d1ю9Nc`kS P@ Vz& u~Auc+!ZQC~p s 54/qwAG_chB jpl³/0Y˟xchHǽy+ c%R3,'xATFXklk{ycFpaV$Qy(/qeC+7,%MW?ӂt*oʻrGpcwTj#@ޒ.St+X %hZD~?~3g2u~]9ŀ1xsg3m[* `z=‚ߍ?o([(<ρit(Z> EZtZMܗ7ο=o{,/PXjЂ膗z)SI[ 3o p d!q!=%{mHT"irJ;XGٶ)v0($ utR/a 9WdjyoF@IDAT=.ZEf+5B3ݱ]Wfej!!PeCy%W j v1S@,Iz)[(`Av  $D%kKi/}4N@¡4uNZp a|z/pV-9=ȿ]a@yÑ|" b6c,YbKGԙYy&8 7 + H[u_߭Jг,",_ՕA>f)5cMC:1>~c4ƿw&?o)e70Ӫn! 5*NoWr|]\pK.NE͐-~0x*Z*y?9*t( G<-|lZ%1_Խ>/u <֧p =B\* ѭ[i Hu(d@@MgXN+xXKx.r:T3F"BjtCp+Y[;\Cxb=B́" C#dv{b;~ EP0[^~5}$K}Ju_o? yT'{k{5d1#<YPpQPsD;̿sa]NOO5G܀~ q}DXYCV֮wveYYVRKNG,.P <ÀQ>"ӋcIZ/D2Nό|%?I:|_ƀ½I/x¹T:GR<1~(7}Q0!^9eKvw }7_*x(mnq[?k"D%Х5b)-n1V_Bs1)+Dg8uKj/J !r̃ϭuX%I|VK^ƻ×ov@n.{Lom5X'KB"˅/g<~؍c.C]_/g-!\G_+csb7rFhi9ŘY oM7 Q  KM/8CiWd*ߣjf<Rhʆ媺NW_pm0jy,AjZK^GT% <©5@5HwT `8- Ԫ -D4'[(`l 8|AI嚎iNXf A>.*jRa`y,6nK,!xrC /cA.3wV]`dW!~do;az,A?e-< "9T0`s=b[)V\H  ,(H,5ꡗPm.E=duz|~[$`ߥ=ND-@bbUme_|Y(^_9Pox*cv񏙄xv[j/U«!70 Tʽ(ވ&2z'i%EN')eFɭK7< ޮӾDaV` /6υ嶺XsAC{pd8ٗ ^`qpTExG)gGl ̶3f3 "k'Y}A4s#90&_˶& Gs sJ+KY[l@.$jkk~6wXQh]B5UM᧖YX`ux(5N0qCx}d> PLk& Q UЭHc-CWm)tL0t2`)\n.G&`a|P mMԖ>]&Yjiby(bfKx'qMW+Y~oЮS""*U-O0W\ƞYAkWčvͯPлF K`cٍ BK+ J6źflm+67@P: P@X PfR׶#9(m(`;qӕOQ=#2~;6/+5Vڴ ױd)937 ʳECk5)ƇL*Fk4{u-$FSQqy!3cO?KU1"MY_SO3ʹ y yDU5}Wd'/Cԯ`П|/̓츰κKwD*jZҟ[>yʶ4KFsyPbιļfהq-3Nr]jḀCw<H] NS:af Wn)f{~LU|$-HO"v߭sw/8HYm**e61B/xd; ۗ[Lx>H}\ F5yiNB@ıiԮҮl.X=VmQ:r~!7ojXv˥Jk{k{"0%}e:n~Y޵ YWiEU@h x-suXʻ7'&SE_Tӷ.0rj`ҧΨ 8 cr"㤶owJb0F<,v=x DbQWVhۗd;xx+(N|78ʒ~:2_Џ 6ʝO,sK,-X"ź0>yቺeyތhc}tlӇ]|r:k-[\b ^>z55ӱVyQʗe{y:bk`l~ S(O{dH}.oIIoPIjBjB";:u;="2G޸@MeXdԒ$*5GrP )wS@DzжZf܍;oL*]d)Dm鶯W+KZDPm~ο>x$eֻ3mykc^w}ص=>FtyGyeЮ_ޟ{=b *u*M9wUa@J HfH4CFXxXb $r+4/Z~na<q_VKm_۳Q8G :Y@n͈d_lK$Nq sl2"ETԎtݶ zEuS Nr_f`]_'0X4m!԰t HqߙH,qvXFVK/8S kՑm.#HtL,y-)|{6 ӫ:ż@K7S~>X5*VvWQ9|IAQ 'n8^e'xvH !9`la:eLİ1_v7Ă8ܷsGwyƿC>,Eg0/ LV ^גH"TGW] O#hG]^ 4FQi:.`{bH+QOm<|nRDF<5yvVB۳+>Ks¹Ee/d՞oWObeΰC >fy_۱֋m~|gX@/Fk#V ? K&C9\-1xyWyX&ѱwgvT@LS0u72͢;c[JdiYz+ʲ0-ˉ\1RYkC~<@ Tq-ޖ;22@пܝ#W@%&M7VR3OJ9oR  TM7ȌShyM]gzɣCKN-J={sżK޻fhUI'sjsEОwA/! m|l]iN0'hnM~.r%!K$D _E+((+Ow(]V^ ;*ߜkxJ7q.f_>ebY-*ȥ欉7Zfy_w[ϻ؎u4 4;َBuǩWs–좢޹.=dWhE:Lsw(]q bk>85O(H56 ޠK+G#5t;˷xr(Do4O]`clsˋ DQZI'y2Jbw*Y6' v|E[-FuJыܬ9BGrP )Pd;p@S`e#EYBB;EB %΅En]2W!Z{vW~ |ʼnOVOTR_Fʂ0?Mkz?x[<T#-ߔhN-z`X}χ5ZiQ=9@3"Yu3ǫn\rӞ5Eu2wʷFu{8gJU/wzoBT~֮fA(nJY':K<\lh7s+ z3ޚv :m\xXń [*cϾ\Q\=XCƀrr;YЖTr{jweb SbTzl'Kz?3t\ sB -"| ~$6젣痪D6A| =^yGJrfhs%dlF/kIfZ^[ (=r 3Tz|J@A?knix[ 5P4hnZ )r#P ܕZruSvŁuJW \R-`y9Z;MRaB}NNxOE^~suZ^nA1`e|߀B;I/.u%MZuTE>d̟?e5 -lZbGce?F%i]BYGuK8rNԌ<4Y@.:ov.*s=Nٟ\stt^.?D/뭊<81V} UH+;zS/1 ̩S W>PbY?=Hx#R]ߣ,tڀf$\#S-|OyӳqFc)龍zS0MCNajlj 6ܸҸn!zX.z kIea k&KA1(\"Xl00J ߧGG^rZ2epU?#sUJaU4:"`k[o ;g_=I9]b߄ Ȑç͒/@ R[Go9ޘ1q<7R%^MLqp\GG,#eo E|)I@ 5Qk"XyA@ /PcQjNXܺ1Hgnnj^aL' =Oۤx2+۰w~nP͂k|:j:o˴N\}߉J_p.PJɜ?Ils"s!om&I) UP'U-?QoN!FNK튴`=|'}_7=ZvF33(Pun- ۽ qȕ#k*8)pqfXGSh ͏Z~>߇ȏM{kJXfjna]֨5epݫG}޾ 񅶠1̀z[骜fbMdgz,iu7y:CW*qѿI"8o# ȹ\5E{W*#Q/u~rZWr*nK˽2ONVPaŚ%[ YTbM _]`|'~gч%}njaS`, ,C,Ii<,Aw}_<\=<үl۬9ɦSyK'[uǚ}w~^!.S"_plβt#2ʪ cAБ2Ѹ> dHãgXp5wcAGG^9ǼSRV(4SWL?b2`~7<5z"@?WY.'Fp*ᛄoO$WJKjltw4Q+Nr{9+xȵ$K=f_lO;(p;Ь@ЗmVǙMmRԧjpYrmzS%c9>bڥFL dCoiOḊ`fBτhgj1IAC!C!;3?O:F6ג\K_@  *gc=Q!dM"q.Z*[r!7]+K7ܳTM3 9:?Z[x L*be}u>SKo?Fšs.U xM[QUQֿtl Gц K$>89ˈ8+nMP{m.i>qKx\gT> nEE`FlC5JσRcB_U=\;z.KWdWy/~ 5xIbx$E?+Mk_$Od651=czGJK>JZӮaaRucg p tVf-렓<,K5QlNK_`pNr,[Jt vݾPvl @P]U{rtg\04m aaDq|( .G,T=zF,nvρT] 20fg*G/!;y[`C4΋.(f. OOR+1,C\- T5 Ħ6O3J;v`+MQ_Y3!z|.y}2xb/:q>d,w,gR4%_PJb#]NqV͒\ALc*W(f ÿ%V+S w|0dhR%niN3:52} }ZJ(w=}q)}O B4tfo *k=fbl7~k[~ ߬|fto҂#e b?^*#c9'/\J:pR~a'ZR - QT]oֺ. ]ŀ*UCy$ Q})ժ$˴nnI!}[pՅx=Ƹ\eO=#0t*՝?‘.l߭S{CE?Rr\=v^c,(P@ZeC/i?kȳZ8b՗lLTۤ&)H3_nuze_<\x3veuBj#_4/{q@v{vI sQܯ"ȍN y8>#-~Zo[pE-k)YZbNobi`:1 oЄeߏ#-5+( aio%~_)|_e87sfA(ZB oVrʞ}_\.)\ƍ8O *d>5x$Kp=P j<6O.IE퇰@v1z'O0[yCDzfkQhSnL9D;8,e:6 } MXZ:=:#Qj[fmbY `;)0p6rUY2 q衱;`R.LY RB2YrF6R=eUX:}Ep~WΜ}-󺎂qO ['NZS5rvWުc`P qխ\+K.9[ oO(*宔~gD3,ץg3VŢ2@ᕦ=jX=d=Ű vG•ɌO [;Пǔ,G ՗KwzypK}+)n(B?m귚 r]kqz=|׍dqgc^{菝t a|1vc(o@mE iqZwkQ'mb3l\\Xcן*,},;'*mnn.o)J5/$۝EEiMmllGs$ Zm^-[бX3ٜ![_:N߄E>QREW85qBno+˖2噈gwU.H?7Egʩ0FA'cm=zwZԞ|Y ~Cx (CtˇuI?&&rkC7CoE݅ Xқq%N"F}΃ҟ-t4@6BDߟ!y?6nJȄ2B|W?0[ 9ķy?Ř1B8s*/'` mIIEAQO%:2B^YTO`8h|gJeO\ù/ &Ć^6o(~ڭ\4އd"SA}8ܧcC׭~,B'uiD+y=ω_5WUO ƕ ρ z-kLck&ڳWV2ts>ue*Ӫ&fDl@`Exn!syA"㥒(^rQ(՘B;0wqr񵜿v3j%kKC@n1#y_1=y[aǺ$W \ +Zf> Fz;4V#+7eFc  %nnD!eeS=-r뿝,ZSL4AL!Sxnp}$)]Vݟ/GŲL5JP@IDATU%J=S[ޢ}vA^M}Q ii %'bE.m_E{=摝 Zg 9E0[2W-6 8b 1 1a/NI+8!o=0Z_mE6\9kg!W8ˢa mo uiQ@>.[@gd{ƼAxU,d?,[,ٯ}ŝ(R O.g~Fm?тVyz[vxAU,@k_W,#ȟ)pT+W u]u)ESWWnINuѽos}zcIǕ,Jy~bp=_Bql~Yޑ3Nռ5^35(,xPG&œ< Ooz)(ěW_}sNO <%^+\RqcsPg,E{\ؖp]S¢v|x!&,iddgC'`Iɇ~]`<`.Nh/(d!YY!!6\?~~O\zϜ ]1ۇ}pgz0'NNZP,!JjҁO &PTl_@m/;+;~YwgՂ*BaIUkuӛkqY=Eܞ(B 3 h PBV-(:R΢]lXMQ,ZKGQ8ŵZƕB+$L>&w% o;/~Ǡw=?^ݑ߆#^y51  W 跨+叒yp\^ҝxX#BL]DžػCF3E!D^(}-Äy^s)?ʕ<%{l%{rFeR8ywYy_C{?6~g^<,u̫uWN!~2we{m5&6SuBGPtRIvx1DỗR>'q}Cu|>J`ꄂFyhQ[P-c[B]t䟝V|zi8!&,En?sLK mȗmw]֩򾵩$~pq~T9_mׂ? VxG[uU Xdz4(DړgO)ys޹4xϵxrKR- ybXki@WKB{vӊM..yk+3#nYqboBTl)r#7]YRN_<\'p] Ya(o)M[8 4};ݪ;YC?[U!^թĴB|25 X\`-7tlݲ|Nq5}Mt\DqsqpO*#?M|lȸJh X[%M`O9-elEg;WU9KIK^7.k-IMwY4B|~Ss?ckO.Gs)iΙ@Ř=!EVT%h@`f=,Wհ S*nPST^jke a}.hot$R 'J\ (1awn^==$;eҮ-F=0[[-nAfcM%-I ׮0H$i/̈́q8D^3Oڏ<2FPSa^6 .@Z0e8:o)씌0 U' (?\gark4Çl bEXӓefeWtՄJKϜL>R'iՕNA#Sc$|ӖTҢ:|Ubp1mWd }[?PP~iP|5XN9tP( -@< X<~yh m 8̸s^m%,<-YDW%i(LMRh +'Z]ѼK0h|Ix%Bz|qx*a >h׍0U ՟YD{>1z?Mz|I{61kc. iDD\oq`þ YjB[o{?>O3c=ncܥ5T}?77:⑪܂dT@ ^enJ7S 䱆 aziU)iDr@ͤ(pqF Mտ֟&Y bO+ *K˷eZIPصv~t'ۉI 3x_)Y ӂD1!@XEsZʱ)+[j  ږe~B.387޿"D-0PpURR< {v2SΖBL{^ 2KSZ| a8=d:M[x٦ǯ<ݝ=xc~?dKa?I! gOF/qriDzVԐ[%emryC=_Ƕ*B|[ޮI=Z*t ϗ-䠠[&fU,NLDzt)磜" hvo侄.ie_p0}XD}_y{=!H0nSܦ"0~H}#L?V\6H <4 HS9^_x@ڃnw%J$uT6/3-z~bZ;(K > z¤Ks62m{2}/Z@O= ڷE:07c/ |idJel>(qU|-=n`OcTlB 㬘&^Q朢gc၇^nMl;'LJfWذC0LCqbCQ{s̍-#Í zVIiƫa/8\vi0ON"%pO+xtp\g~fv֤%./mX}S]]ݛkSJ ^M8'R#_NN*uvA::m(UG*Y->LINpgf i1ASVώ#;0ck44>P}4}hꫣ'LXMk}U\Vo  #&It-ׂ͡@j!Y~/*Z򼤶`;0sse ?W pp-^^UrbC\"; ys/]('|$1}e;+ G!u[nyr\1n͝6ObP!d,8b ?6(Ici*KZȽ-pac[o\! B%Qpᚋ$[tyH >m(w G>tm qDp\|{nMI?aSM&SsySO#DZJz^9(ıG]>uY'ESZ`.l^oy%Sic.+:|l-cZhHC-_[άJkM(qNLt?]/.vUq)wC;/wY .wrᖆ^tl!B8h&WaT{'Śy6Ȅn:vi=An%a| 9pDȩЧ@Ly t ̆ v:Sd8]@[aFڍN'-)ߙ0u1f`$~̠;g"?աϓ_!j]V\t눍fbX^Ѫ v Uar>zyˁ( KDc9&};s+V}(G11YsFMim#`/7P3zco>8Ʃڕty)ܦw7߯9Oԃ%Q\|+&)FS? AeJ9JBs"5_U)ګ$5,  r5g#Po*y#˜NPaՖL9:HD;; = s3\G"s/EEN{>D%\?t)YRz=rVRʍM]5kPCԖ-Eeefk'-,cl[ fwT;\KdjzWS/|B"::v< ךQ$;S80b ͒n|wqJU ,5cUVdؓUjȧAiR|p]$s>ui.x饀,<Xά[THn%Wɧ&l 7::sB[gY@9DX&f\-Gg9 KJ@owQo $ޛ{o"Q J)*(Uzo{/\۝[ KnwvݙO0.Ap hx8 APu~)JXQ\aW~qsar{ZS!h" LCs ;K\_a :w txU@F@y} 4(`\a_N .]|>j8(y|/h.܌ZiJsgL>"֧療۠08Nw(J@G1 ጾ+*S;" Z>.ʼ[0>q0PťyЖ2 ϻO/Gv>vǵ*|o̼5MKadJ$L&΍ ()ϪB pm|e`)RQ:Fd75IbL'G=Vb`iaJ] * >?Eap"~8hbͫU 3|[n`[`9|HNE(qҢĕRK]PC9h6*@% +lW(sJ #^;8bЗOZuO]ۆAro.~a?CkHG5 xH7wq3) y)e9PA8U Ơ4Gn<ds-͵4{$t| #|ג)*=сvU+H9rg>5eY!v/H]>!0f88 =[-˳gwPjQ~0EE@182DEY+!π sD) +UD>oCvnkxP"C*g?tʩ`,I >6F#" $oF鰗7b4X~".Y @`Gt;mPFInrxn B+ X ۯHvfXa{"},6wBPUEoAMyUr@9Fx;(9 sxROԱcbA1m?,Pѕ1."D}g<7mtoqf7  j6i6i۠z jE"ϫhSB= B1101 "\  4!D]aJ pVh`ja*JԢ"C_p " PS+8)DC,l){ٿ\Aɛ-ZU3w$h &l x0e^ĺ&@> oÞV j$KE" `L`LPE "[|Ax]A; %e CjQxiϹ.Ni@zdFސaƕ#G  #[ ޼Q)Ǎ@- T'gBUw a  R;vXxR ;l``}kjjj(b:*juq<` <iosd2jfP5JwB;~ mԉZ9B ^glG@ jQxp>"J2S kaA"ًpL;>z~jk _7\'02}9:Y'3V`ӷJ?hzD nUxwq@4T 1fFUͫ0W݃%VFL0Hii/`ڀ:٩ JDbu   0`'dA BM$S]aB#܆GCh'tN4@x> Ϡ ȟms9( ,2YP\6\vݏAWpHW|#XFQ-*,{ 3sH T =z~nItߋ1JRJg(tW4v~B )2+*x@GP_Gq^ A-h?,z~U;x0R_Mu Ťn 0xREoee8<J?{/=1ů\]"$U2O+Wn2%Lm7m; bO'4d:qGEEA@xKm2=) !'ޡWq2-r Ȫkjo8wY;nτP>ƒ@pU&] %N L@CXNh*j*yw*^G눒n3mCA8^|g?~^F~`|w@ KyȌoޚ5Sc%V'v@)Etgu=vUП% !kFkFzj:. ʋ$(<j@6w(5î ،zh+,`aA5㣽(ϧ**#B(b1x/+vr RzTJ5PA+ n (LcfC(JVa+Vbܩ.UK i͠x'N0Bqj,8,,P+V)|A; 4x9: <MYP23 ; rٸ PdhC@up(P4R)]VG<76>]j;(.l&(^iq\ !>qrkk1=jFԳp"sZlV)jQvt*"v lFZÂJ>Wg$vۇ3w9ڈe}Mks5+͐Y];b!~Eȕq'S!8!/xRrր8cTױ*ǃI0RN54XmU959uuPݪ+`|x_'-}J^=˟ڶǶG:ƾ@j\+L6i -b4`ss4Qg\p~=@AA5\YMmgoE8K{l5굠Di (8T7E燀#D8ʸ"<|r@s¸A@ƋP4C7s ;7NS^#y|"_$lAb^YF˄P0"Apgm@ЏŠ2vAg 9]Po==.C~UAP@-ѾjZ+  : 8S|o|dNtk$gyBۂKCJD\ET~m%=Nޙ!Oh9QqEE e0ApRXȘfm+újph kk|~2e?=RMRx߻/1e+؏}_c YcHPz)S`ir]..‚ؿǪ[πb)$J²kAcA)kp?vw(?ja(u,h@P K%Ԣ$OD &D']9$+dʸo[g`Sҹ1~|{ _bPL)@Pə-ѫܞmH(D@B L,9 HV'mZ@-B%1A烀3~cLC+z22pSsr ֺU?OK^F )kڑ`It#,-e?LB98n?C@$`E} j*/%zvA*PI'r/ĄЋQ}εدȆmHG-rh3s+*-BNy(gV˿:MRXyN|ȺKܟ{es͓5z_ev0t*nCQ(_E {Pًz?"a 6@X߷"\"@g~rDi|dWn"GXRhX0zտ -r&5N^ˌc!u_b%o-EE@E@E@EeA@Q8&CR_]U8rN!_H|*:$.wBa(x\q.kgGu:podBj#GT?d:z^?! TH `'%H$m{| }* n[5W~bԠ0}Cw hFI}#`dZeZFt8>o o=;I݃;WQ?RЁ!lbu~UܹN_ir1Uk߁Q^ED@7Vd So֖gV· \-gWq56^npvɅJi¯uRx4C¶42\Fdd~X5evBPmJSKLTPe\%tX$@G#xD8'G@y0'jT2h6,/K<`LFP@G"$N^\"qs6›_l: ٠v@d}\A2 ~5ىŌ`AJڜh=3!(ߞq ߫dcuv b7Y8 GfPu*r=u''zY`$G$k{(a?V-,޼{L=wxDw/톷p:u ۇngow׆'#V[a"#ѿqqh/'e[6p-N{bl>e-^n*7eMXԱ,X2!QPc5y{QbIJPp6Ѐ5|;, xlDmWtJ;_|duVDއĴbaP9 0&8}՟T5Tݿz,½$~U?d=gXE,Mf MK-OD  [=ko͕ѭB痱bƵɳIZ#X juQ(0%-B(@/Չ  _-HepZ+ pzϬ!K`trog)e)U֘f [XXFJ$.aĄ nsF휨eMuA]oCPvwu>`.‰X8 ݱpuOA(XL>BAYuAГ'&mz]6 [!CPM1_H. ]jQPx,㉭ sEcꂵuu1ZC@Y>ʞ-5odH6 y~N~^DVheOb!F{^~6#*H&'S?di(͞5Z'# u31-(n\,\zZSڦiwn3,;H\GQ8 w6Gt7fp{71{ .2΃Ԣ"j"b4_@Pj387\rǤL+ ̌- g11A=22Ͷ1 @DC)u1*"!U-ˉٮڮخ.mKAϘME*/P$}I璘Kk``"o7u-Wx2PUb z ,,,.H)〴il<wDNe$YFƗ{9'#yH%a9eٞONv `}Q#X38Kfc1t\M8kaJWO- dc$OVh^?dXB` t&&'!h<(.0KaS^o)qKv& {\;*/#z²И v"kWkMkM[ҷ5prDoJ" 42fHHԑċ`gl*ꊬ(t^9~Uc,l:f!k2T\`y/0\Jy?}(ǝ; YȔK86  lBB@jQx5)=i(ݐ~<8 s}9%>YUTF_ 5XG7oyneB %cCi/+Zd+bjV?'P2El1M@#,N@-ςQ+Xho .٘lAf'6Kq|;"caoxC:2/D+w;,Wy,2+ɞ#{Bb_{P&GQ"LuHUBNŒxx/cmcc{Lx )Ik\ r)ݽ2sؕ&xe<=ch*xEdG |XPQ-*ُ`fO~] 6X)&e]+BT3?$)_!o^ <_1U5Kr "PLIFƓT Da3,-bǠh,w-wq|`M(6z*L6)[2$|v$ɋj  b55XVӺ>;PjNX^;v~9j֬\ÈK޷S"!2~LxR~:xP\n=Г4$%x.=N 8WፐrlMl mQZ˴x*G"\ ^8&ϘɮY "WM-$ ʪ +<"g]s.2EE + x6"lųX i4{ S^nq0ޙd9oFp#yh #V<|f-O͑8! &R{ O |p_k8 ȶ*U`AXf aۋqj_T׋AD='xnQN&N|Z4o`Q|8L1Oؼ2L( BGx&G2>~vVlB/EN$χ'|Ԩ7:4Y޳flA#jeDJD@pFAὰ}tuu61`[Z |o+C -Pڳ̵̳%UCkZ>YmrNBαK E5dx0A@mi?6~,^hd1yG=& j?Ru)LGT~yůW'jߠU6M c^f1m[9Dx%ӛ7 3GLs)xGRJEC@I/XZk5k'wpRzR:<]l!!xsX^9ktA^HA8ſ8v~^/BD\E ]Թ!ˣ;Oﯼ!>SIӆdvRKYU7Ba?7H12iM]ZbcHVZBr_TlcaEPx!FzP.46cV.,?GijPX(xce9v6fP W9LM`EQ(XB{-K[F!Μ;TZXKy°~EEF@agEvQ9&s]*Q}}8T|PґqW|oPl]Kj~årב>I۩1rw"ZZPE2QUUg'Tpw|H0^䁼2y <|o%0갈9wTDIVkT~WniF.'k]0 *)m Jbh)q_G ֤5y^,Y#-hRJE_CR 믉!c>O!ܙ20?$A^rKv"I~s=I8s(s7d C Br])WxgZt=8vt{7:?P"ka@"gq2yK>=1R|?w ,l*]*"H鞵|]Jы*[a,oe6Q@ylRĂI)$=qO I= fͬz1՝&x0,b ǧM $~weXY=׉Lg+ H_t“EB\ N NP^T(*O=OO;~R(6lߌGy"Ӕq(G4e}4;FWfoT2tjP-e?O{H-%F\/N*UwTXaʳC!P k51~5biyLw UpÏ7FNu /Hk9)ݻ 6ׄ)QpIL6L'r &<IOD4aqn$w2Dϥqt@90}fMK8TQT"p` ĶS.[]E-iPp&40.7.m毙"ci|-[C*"RG;TfQ<8ZkxNߊKY"dob%isyE^ ;oBbtITR(tKXCe5j{|KYֱjXT~F-PܤC䥊m׮غ؞hF]̹1ue|sJW+-r <@JxڢXNЬ/EIRW.O^##E4.nT](.]--qt DڢV9Gc(ϭ "^慡t3&ꕉ58$SF:7 =!.1 &nF{Q0U#tb֟.Y xUEu|ھ/fq0Xb۵mpK-649 `2#Zdg6a@dow?Or7qf槛hoA{^WQ7:]kqjq.=y <$~EP(p~ؠ``Z@XDͱb;פ" ɰ(}vr%,? T%2wac֛!+2ظ|A O\B?VR (߮VFK M'QO..ȟ\:XlAXΊ;=l@|zVYU(Ԣ5=%CR;y|"<*[~Uz&yΠ)L*tlu:Gs.휷g#|&rdW{Q"+ڰV8ikQC<!  Q x.{{IxUEf_\~܇C0 5)qWw{Jd߸,SZ'3>u)tΧW~_3сvuA4&[g!4*V >`jy.8+QN9Y@"V>[D@tǟXvBX5:r7< HBNQPu܍3J^3 ٵfh})|k+eCB0iݕ6-NK+J2Hch*a::D ; AœRC@΢ H밠IJB_'"GTU*"!\k"8\u_#EC,ݮ]dTSis鎄 ,KCyGt; "Pd=T {4BCI:7ma3Ļ/ۦĶ뇳![[m^w;a .3Dp2.υOǁމyRO?;w4.<6zly|,?h'PEE _AdɄ_nlqo B$+{kZ!x@SxoUT k:, MϿ[29fv "hQEE PهzE@Px{? Tu`)7x20Ď)SЫOjy640c:nmG) =w%W,W&Wm|^OW=&4lg,|"%7b#e?4øб.~9`dS F DP 0D "Ә8Ĝ9qq7F7^Nb>,KK8hhxdά %ˑY),_%Mn(G#Kt+9_>^?:pH=v>]]n~y[ tjQxa{y+0c{|e$_܏ E)hˋ8P8X (W;d7G熀4đzѺպ'"KFc.F%8[WxAvGղ~JD@wRy\dž̨kw/^4apFOK6UHZPK=ZR_GaǐsSTx~<Ϊ"hѾK {ާ]x5ުNH`eEY4wn Lm 0Ddq q}[Gu8@FӸgm*l ܕlUH: Q~rZMNsY ş\1~/P"W%e2r |"})L:}ZVz3Gܥ 4] K-|1lD< \\_3#6CPW!w3"1]OFIi 'H[Ap _zKsU aܺicEHKQ7nCxx Y@{2=缊5Kx vʇ DL&TOݻ j/[ޕ\j=',U|,ini ğrJ>Tҥl+oX7I*&uz܍xJpTâގZ"͔ZT^+& RKfm[Փ"@"Z8AON Кlsrjeծoҧnn6vo=j,ॣ< x3!?.sډdj9y`/}73z%a.̇ܶEA$M X'օ2k=c=m=KWc!6+s~s+W,'kVj"\ dž. KY!#ةke!'c1=K9)' k< O~ȓx.ܬKd-U(&(2)J~('kXh-cx##a "wI]}( CZy̾;S{nh5k]xh H8/"/Y%V93S/M4pΘ!]r]ro9\:4X B,5=-$Y%O4] lt-6I!t*:oFK@-Fi?tSH}nڅT& YĨc:-M>b!u+AHE| A: `vc .Qlqߵ–!ŬuI,4Cl_[:GWaB-,rBoNQ tOnYO.=|ZȢJ2 (*[W٘1H4t20FKp,d'GﰟZ^R9'[?s]+x<##`Gl47<'kj.bY.ٱkj;ʷx|u-bhǮc92Hn`/R\COJ+ÊPi%7|m_ :@2򝚯lGRI$ɽ_;v(=ׄx GCxxֻ}m=]?k n.]`/^_w94qK2Gjv-,kz_mD ECN?s{8ȋy3&,"Gև'ʗQ(X3O4O~eZq:Q-/1}ˆ~T[0͌`^L ],84HkDyQoۭ֦a|A?@Z%#@n*ot+MFmK5[=S>6\>ɴZeZ/95xw>|a! Cd/Y$;b53t'FvrcˏDO=.3R(`c9bq$8]E@-k~k~0Jc+cRG7C^3jRS*$~xc@d2?#">V222tDvŮv5L/\yqy_NdKW`1 ۿFJo`t`ϣk L09 ,~ Y6Y8 :1EhE ^][:h*"/w"R5)N]XhҠꎪpG bryN ,))S64{qEHPq(J_?P"lA!t"Nt<GN~BcuV*Jާi|C1>k[{Q w_+[^.aYtbxҟuPy,HyQ@;67teq#k=jG=mV:]>UVWGCLQ>%S2n[::wm!*<X=#(`"2Bp.goUl&lؽ3_!{`ap+"=Py˒LKLN 4iX. $UjQY'\OvRYm s]⯋$7$ߏ7 ٛ. +_;!'gm;l!<s۝d=gct휄| ^U^WD{%Sb#HCx?S"ytrPrC nxroX o301Y]"';2eD6?GU0vi[Y:s\=E7wEY>|Ñ?H~ϳ&"!( 뙰 6ZOr,e|I "f V;h"l_˗rN"TL&Beoré^^G^xkT3z#kKGrTx.\PBAu;YWP`EgV|D1Gjfsc@D= %Vd't4 @$OsaEhwVe](8x ޘUkp7?v"[liϿ~Ӕy|.ϗCx%xyІC!p&X kyÔHGS$MuwYg^+֖f&Pc0dx-j)[ VQpjgTxN$.'ǁ1c0G􄫽Їk eӺNat 6yG{ =C  %+F  |;sa98s*E s6}b{(fm4ytK W_3'>9>٭ۖp-"nsY:x"\SE2rtƛ:OZTʫEEEA0h_݄evG 7tL/zqpi-'me ,O5? ؑsuZ&0RM3EKg}zdx^ ?}WekL,ه.~PT1KJsՐϷ3 ;&w'@h.:kc@z S fvI=5N{hiubqzOggxqT:IW1p0gMDfי~`" `]x0gX"ri g&~+1yǓl0/Ssn7g[yTWx~6fvTЍZ,r- q{DLKkm2k蒩4JZ'\'j~P {NR~* . GJaۜ d;Ofu{j^1svۻX L;g70p0rTU0Ui)Eo\}L swF#&-l Hs7'?y1zeڧ:6C/|m{IMm_6 8\X7`Z4!&t< ,Ȉ27Zj50`#EnrpA^Y-vOuNE@atQu!UHAI;2>)0HԱc-Di`AZ!V;ǞO?șrm r"FJ^!kRFޯԾ.h+vD~BN9PŻ8r`OjuPΝP!S8j?ݝpӑ|8Rxs{%b,pNd@=N:+,fv];ݣ' ./d.meojc8Xŀ-agq"-IrJilglIM4~[ \#9%v60ixyMh7XOGaʇl_@Nͤ;ZuEZ'y:(sYb{C$E K(Ąw(t`FD^Kn)?CNu Ϲ Raxj̉ ;!N;^{`t+"IeYlEW\jEPU!|-߉xycFBRa %BqdW0<(rn9鰦kl4 <-rTEns]BH̬*5>[?-o\#c+`PQn>N*4,RN85SC}(pͽM~Gد)F`A>:j||6DmkcdndZm }o~?Y(ux Wb L%(2/FT f kPxd؏y zH$ߐaۧ.D67EUR!  *+qu\?C]UZ" sQPp݀Jmh1ZMivA3.)kWR?iJ%Ć`́p`XP_I$?xjZM-uyxeZd+*+'Cf |5a-#oX@]4ӡsS A2r ;bK`j^٦I Iqlifh _Mۼy)Rs)ґD?iOF-gbBL[J5EnQ gsv JP  ,ȯאLػ(tJ{E bÎ(vAA)vQ H( :v=swQ%3mnwgݹyusa!}^?9Ė'tK؞\GF\ 鷮|2}1nO;#('\m;[,bW$H8˸.v+k+[w~Oېj3#2zz{}L]~e)ֲ݈xB_8Haa5οSmX5rx W%G{ I.u.KTDHX9SXGn{ؓJֱ˸-W{H3^}F)ʼ+P4@-SzB̕Ѝ8"GjOZ[zlïqI%:XC;+ nh,C,n,oO8prv8Cwųx\a]x#״Oi y띚xj"<0Lk E zMeSqP_sXL2HcfUdX(ztđep'*[kA 0`b}W$G!PZi=y`9.2(#G,SF+q/WlQ! ލ5FٝqSKx 3/gł3J,y\t'л #mEe7kgf[ ;hc; {p5j7FpU(0Rp'?Hk3DP\r<+> 3wd^W[fFx; 9~_pD l' rtm+\ʢo!/{)&j p6݃Vy_d5XMV{WW+ ~z,=?z>QgG9kp-8%_pȱe *UIIPbbٿd'I=12F'uZ,m3{Vu|{5Bѫpsz*BbNᩔE"\[<!GKw.SwD!5(S>?+YrRIL;@Ǣw/I_5Y!X9Fm["օQ:.PhƬ/4K1΅? +'|/yo7^Y,tV~xԈ/Sf%*>F[2/H-b\Hgg1_Xzy"bY `* 2Xg0f@OK}#g}[`'œ"\Ykrj:r.{wP$s{-;,.U[[u m\nf5y a͕u,\;%SF©Vbuy$V ` 'u"jq_E:ce'z/~B.V}}.2&Yc0TW/׫xYr`mϲ ![zf1<~Ή)UIat!,.Xosrw\]/2YEXhm6P7K\*=."pݧYl"6Zl󸉃?{BOSt.\s0^~{c$"cɏ40vXF - .Ӿ1u WN;b4H(F]ω? 5`xmhL2y.wbEJ!לlly!o( ]+P!\8= hX;fZ"@%^7 !L'W@#pKolAGpCR;[´yfx2"SL |k6L%zkZuCȁw縦=ŠQ lwy|9~F~bTֈkt6"uE(,cnuZ#çZ%C:7]e? ˈ#jwg6Z?Oٔ<=\,FdeAxx u8#wW\?N b6U3ѹƹ ΦG~~˚!Ď2+̢Y4ޛ *:a?.X(pxGx)mGߞJ1hjbHǸibu$<@ve4rMDrV޸DG(>Y!O&R^+N>kAv vdد7vW-u?/귾?oiF)S@} qFAʛ_RA81|-L[݉3ϴFVV2 @ }-S>5c#;NLa^~~y(P\_8uBaf{qI i@IDATOX#cU<soC ^Bئ~YKeڇ&F8r 꺜]}O@Ȗt/;JxNF?Ԁ!G>΁+i^O%7ͭN&GLLQS {WUm M0ᖥp癩WScs6+-51R'?b7ԪpAQ~Ȃ(yQOm)'aA5r7Rb5Hc*fV/o>ʏ,yɢ>S>PĂ_ c+X" wk@R;ѵ\}&U +, U2 P= -)Xw[{[G[G#;r\mh.h͘=6h4?`LRK(ps^tdkڠW1*zgâ H2Vl]bS=:r6t=5ZJGIY݈ހeJ9{ <ӍXQ 0(PAjY S9 dq4J[; ڏ}f{S=q=Q0{"z W0_A {zQj7_Lbu1EJ_+O>hUB9-_T?O(U\]uFl3v`\3f.ļ63\"<ܯ˹9s Ǜ~&!W,#mbELY l@1wfOӊkFaVxsLu@j燌 oȋaU"{ӗ"A!@=m!~1~5c*֜A~W Z>gaSl*ϲF ^Ov[!"H 3ǝ!D  S~([p0 K 'g")uVǘAa?JƐ"5ʘ&4-O} {xv`vS$ 盂k2!N} b'p|NU-t}|nb}5Xi/j{v `sa388vd%w%iP%M>9f9pWTxDX؝.Yp|kj+b- bhwYsgGھI] yC1#?:JWꖶ-λz;82-Im+Q7Hփ.T+utxElDx~n, `8Vʳ>o`P^%3ד瓈{qjgw* F#X ~ nT ESMɎ{.ZꢝyqcR^y~"=ОlMxZդ5ws>aEXڵȵ狞/ C=5u4V c|޾Q ܄"r8YvȼKuViތ8ri⥉P<d9B1C~zy<ODR{\4ݧ5 3ڄ*Q P&F p_LE%f5ۿq{79;)62Ve-{0V!V(X^Smܦխ*!t=h=+?_x/: D SO liN.!" 𹴘 իlٞ/ڗ!L,U6ż)##)h愝N,e .".#1/fC|{U~nrc_>saYiӗ1׾6N}[=qNXhma+ʲxS_(B=0z>k|xx4pE fڎMC!ݘpl ǀ)XnLl{k*BUIIw|!G,??GĘԈTvםq\IdAC** ޛÿ9*~O1.İzD#^3w}``8P>;.#Aety uڭh.rl* ^jPW"DOeCxB!lgI_%MN E@<,p|n 9"f_ BM~{S!1Ŝ' @ 'Ub#8S>/z2=K{vI<= KG9`3qm(6bb{3'?@vR}[V&4NzlFA*u.V؃w%KƏP8d{IL*\z9 p 'y^_O)4kk^lu2Ӻ` i_)&{5"e @V'.tp,h}4lnzQZ˛a/U`$'-i L );>F*/9gf:^]ꆳyuj64ai ,[¶཰aa\x6wF'tL 1 r5'j "ߋ|7acˮj{e2G ;vļoʹ VxORfq,E`qB@K+lD-ۻ^J/Fo}ˠ IPofl̙qͰ ޛ B&hsO[>Q[Q_(myX;&ϠH;°B;sBZ&uV٨+o]1 椝^[]  0@2Жo4\$ˆgїE̿})hC VJZVN/‹6Ų5]kΫQ '[\w6.La`'K矚'?e =N} WSJ Ͽ##4#!NmfE:"p8b$jZRzQylhObC{܈ލ !u4J \}=E4_ 4FPz]].Y<B?VLE;;91oAPS;U3:қ؈au/?yr^8yHpboiSO%m6 VzM j#H4О_~x֯YbYϳN1#~ >Vq<@?,iH;#mUp]d?"/EPjrG{ ~cD| 3üJ.}Bvs<^nvUK=!(xeY}q~/! bһUBz.:UIQbiHB$cYp?/^|Hw@GO).|;]ʦgx9W8BӃ IL/*H q0}WyBYlm)ln?e藘8[0sv}S {Mb@z6ld6:??yQ\ WK%y=QEEPTɼ Dv,7MZI~|_ja#VZlxyofD0GPo&͇hK ^PHKìzZ?[!Pb࿔_XÏCv^mU{ReUMK4NJn6fW(\ 3ooHXl)s(ϕc[|ly~?{i.g 0 f (wmΝ׭ocHC08(c#bPD*귾e]djVBe=fu[X@/PW+p^=7ɨK `\J^aI$P-]K}_B,i]2d.Ί}N]_q?!Xs^j 4UKFk塨 j6M a`B(W_ZZ~T ki m:IĈa)Wm-*|>g}OFh]B*>B~ WsCt<+t {Ч;[5vdCXSz)xg{>+,9ٍ d(Ƞyj]>h`i*R" ޯTJn {^< [(7֧h6ZCb@K@рv]3q|:OI8zkc_>5(pV"WD᪛`YPoD0MgE~\Hx ȭ3D>E"ɢ=oTT+b|ۿۂ(vrE*@e,7RN&h_~g6|ECoUWOfa| _S e:[9.X@lD?jle؈ˑj80 LωeDw#M~kD!- (ʳ8<^܁\(Nx+ OX(R^~ߊ77n8:yUY>[@]E8ćץ%":EYG}|a.A ~߄k?"L};~ B4XCΔRq{mhSh% "iPtP^Gw1V*_80\<{voi<Œ0!ȳDۘ dsMj(Gϧ?bGj0} gvA>Jޛi [BP&_X "bڒSXL(|\4onTJ:Q׊ZJhǔc:>T ЋF{$|urs(nΈTrwY}G+&?\oak1ye[ߴo IO]fvѴ2K<æݳIЦ&_֚HmX~R'X)2w?Bτj8Cu`-E6 R /Ń*_uEEF=Qd3CGm}} p^#*{+p/e@ Xsw>⥸b{ A )bD5PTl[1hp~0]}zq}8TEd; ߡۿ"xv15a#@AFU_9 ۛ3rwEl{wbV?t0lLkk;[aiنK7^>^8ަޥPǗsRధQpAT~vW|#_x^ ְhDjPz=_Iɖ5!@Ջ b`@V_3<ۈ|9RI&Cۨ>H {Xky-_mၲTY.7mcYdgw>F!(^X*(WexܗyY:PV*{!{(Ժ*'J?>^Ycn7s/ܓ8|A=V5*,y h)P{CDjBM1WB64uXP]p4⯔6Skߏ7]XZC7Sp˫\D9L5 ȝ\:ak+WJ8x=ucb==6ؒ6~8rif|fXHmx '!E%`$bSW_AĦAоu z. XӤyqۡB^;U1NJA:6t+|ѩѼL'5SO@6#^r:3r¡ G/ԾxݐI.{ivM#O`+v!ҋ)谟:2fW~.͟Eߤ֗sw>>JךO/P(F\~*JN|o_wNhY<- btϪ~Yr&pĴ_QVڽ* ]N&mIE]:fedO<]E1@_u뤼c,R0MAW*|m{]~ kshb v,,1-xSۏH9CfQFѝլNV.:ڝm|-(+gtՂ^YGRie#DNeqwsD>܄Jk=J٘fv8>bm,=:#_iR #r BM Tm+\a^,<۲/\85(~_8HF7OX 6z+ Pu|^!! \)׈7r0Zᩥ*G |\eJĞzm"U;a*vNŏm‡ƒF]sNE_Z(L]-xe\?L}P"}'@;'>K3 ȗdi=9Q.QCo:Ǖ/՞C ew>{=u٦DOOt]QwI#. imVjpvXN-D>i֒-WaRi&`?v0,\iž!c_ vzG cP$Q0`~3Yx`Uh P/OxLW:p1Ucr^>4+$9Z|@%J(,9Kx ϱ0j)N/gB^_O<'9@fyF+}bȟ,:S֛s7݃'@%=ʏ|F9Kǣ>U7q_/҉}*;h ݚZ8!:5*L~(ߥ2c6sb(J1A0ӊPlL l7-PtފR[UQ Bo …[ } MBأ?oT@ј 6a){Ú ;YS,`WrU"mim}-ZTETމwWڴMk18}BGf8m|4E O>f?A)y& 5q DUz%5O}Y`tEzƪzU|VV BcJw0 ˊ ;LFcZysqZ?n",F3Hn:̿A=# /W@" |c`HrAg`xs:'gƙ*CABlջcrTc$mIaX:+eYӷR盞,C2RI[ uaC,1^j!viʗaw2YpZUգܰN!/G}_YXQs+]*ZBe;P&6Cn|Xm9Sz+=A,{8Qu;l*ׅ DL[*6:\{$NZHmDB=O/yx?? >k4H,RQܨӿƺCL9m֋pf0'QZZO*~鎤RKVvfE6ݞuVwtvZWUkhRTx C je5L)WgwbG- m6r'Kn:bVuWY˴@Q+4Aɟr2obo@I~ގσ2$dyV U")1w{;5~? a{6@u ՀvX)˺0{n+{_a!~Y9F||l 'P*WRD 0PD>}aK!汒Ї|@.k2p0E"L|{wzwB#QIO0OvN_ibq=â7Xkb&C_R?~U,wC/;Y`ꈫyͻDo%~ELXT?`w/ .t zmTaݠڴMH8j$p( ЏW;[ZGsl ӞbknN/c;@2Ko0\ZhDy.ųua!!1M"}y} qIG<3%ԦZ7u2cڿge!T;H q"}!GRהH"lߎD w0'm]"C+B4,F@,uE)19?dQT1\- ?A&0??G|}g sQwLx"sz7:A `x6D7gS?᧽.:,wP#f_g1c}1q P9K0~Q ;Xf0orsYU@ssn#`yR%A>-s~s!X `P<nn+em+!`}^ Df# 7qY?!`z,d*OnrLwW+Caςu) ?%7N5jO 0)W6uh)*3΍v:8 HXدсez5VE{ipMieoG>"]*(E 8^U̽rݐwF>{bzTh桶K@<_TA .K ~W@-u\IO {a,t7Q&Za %H7aC|3!c+~Q[1?lHo(@>'̒ fş)VUd'P؝@h@Ci2u]!~$GQn~W9Z 77`ң7rYDL˽I 9MEcw| nZ/c0cfANޣCHFY-k/Re_f υ *S`K.@yH:}Qof=snyUjO '@){:*5GXA&(__ E+e NOCXk¯RO*U/n2q[2#d B0K0910dw 38`ɧH@>}f@6W6+!GX|.{$rRDO4ދyc z%tRa)QNH>K R(<{dg(鈻l}*;(E;$Y,,pgv'0Lkb{AP 罴n0[-$ osN*nt.@.b;eOkwR+y-)bYЩ߉٤<;{XIw[] 3Y`P9%Y8}pꩡ1LX Xzy#5(e |Y եBP ̮iuRsџmv-3ѽ4t"} !9cb+Lȋ} R@f史|V t??mෲ]-E&vPdo1)ӵ ]vYzx$  E2mTӁn! }GYXRO-`W{pO Pt׾*EOcfӯ=qZA ?C5ȑE"p#sL:EԇdK5l1?AZYFD^ZYG@goրh&CAJ(~r0^G.>B2 Z0rt_Ho=(3%o0CL,tηȎsif /X!'K`~B_Kۇ)*@g N:ev `w*IJ6[*ִ>̬{Y4x^VZѫ3W"=P0vژ67MI.>pc&F_.g`@k'7O { @#h2UDo$xc#CXXwd `ۣ3{=7j6F**-E"p3){q#rlCZ SUS$k˗5 "P3s:%ik9<~s2z" ɵ*$Gwe/_3C.W]BC6Tyl7_?sj8p^Ž1冗19G60DB)kDIKÞW(XN"\9OhVԄ(x{Ge[kŵ1_J@ PAAePc=d"ժ- L%22*pX^;iy9ڑkћ%{#4bR#=@\B2sZ#^6&>ntcyFAJX 4hb_[vyD Gy늀9p]q K%3 6Wx%%b }! o*lVc^UWGkt-YtdQ!0"$R8KAPK[{iy*"\oiȮ-fwZ(%f HuPy9t5)ORL_$D  ل@4 :?= [ScXUrI j'6)ki.Pka A (D 0fBѧwbu{OAOYUHD0I;20' hg@h"[[?W&O RL mlvC@.؀~ 7{ape:/٣WtDAgxcEyj~r&84C bN-s#v@OXD"dS50Tᵔt6^$?_O(Q{ IR@6_xoY4ch?4 D{5fojqXK;N|-岽yț+0AE\,1oq7ꟄJ_.E3 _vL7|{-@%DHa!Ul 9twH62ޤvMxhLf~ٺG@D)֫ةe9% #ʄǀG* ~;E٬%ʒн#m惰ҬFnG@Mx#߀6(+$G@^'u~7RG[o*Hz_꿔=[4]╩\Uw˥p|ofǶB?\p烐q/E"V㮐EVl+O8_#Q<=' |8ec -4|1{K:^W}j+ 8jOz{\Ѽ) V #ڇt g3XM+Nt͛#z @iZ0;OZ Q=65p%! m |BL/Xe%-Ah@]$?H 9>gy?dRG2ouDW>)zhۧ 1Jg4a>$KS(YOְD,od]C+]mI;TBL|z-a#u0% $C\/X =(UHOkG<?U,\G@*r}dTb_( V|`(*S+Aa!++^3pdѻyQ(έ:toRGh`w{ 3xݼ6ɚ$7!a-fg 4VRTŝ/K~ERk*I \.=5nyRg6;[o*3y[ؽ/P 4䵨l 1iET;z^ bj}9+m>Y j,9_C AkvxQlwf"s,_6?1c)I;Zf\ Ԋ de^Е ޛ sˆM ok }%޿¢ ˼*^wjz^./ruB6! b?[Q?W^.sZ(xaoZdE@AxAeGJ!OEqH0Oaxnzd@|B*= #NgkEO.nA'A8pwmle83'Ԝ ӞOА7";)G)5y$+eؐ>U~E1ɍe ~~S &<ݎҎj9X5Gj/g1u¿, "Y/9ݴ\:t]4^ґ J>C+Hq},hSփWb` 0B*8ƿSK+=A%p)k1gQ5֛Nv|+#rvYD22@@@E9\C\>E!,(2 e<, vϜ>2~_ڐhe ˣ)AStZfh*b{,TyN:/ڞ'KC0 A FC]"x"T.>a#S{zCduȧ3fXYGoVJ*dY$T &\O"Csp@-ug<8ɹ)A{[{kUhնg{u R8q`(Zl>#yON[uǹGޛ7ݦUK6XM%OWEV==!wp)GH ۦV$%5;~ru`psh6[>U<є.Cm\'2$p% OIrqkÑy%2OU*ڜ4SS <ܮ֔$d$$Cēk @F8IoINr?<逸SQUf5j60vaGޕv wR. dfjцRr߈tҒۃ%wIp=<+h62I7F5 (=Ӿ`;e h$["PG : SPjqHJi[l-ɷKw?Lr9$JKDTτR2lCF[LaDK*%RdDoboi_Y~&^ ye'ʵc9YR D\V5v}DXpKfYw 53[ ̞i}, o7=W`'l@ PolTdb$j>1sw9_Ur v&leO_¿hn'm2l#j9Kk0!OhrS'ʧ5GfK9M>˴@$L~ڊF3Vߪfٿ'?=ceck]_u&W87x!޳`G`,ˀŪ%hiuV{h寬UUgi?ۻ8ĔeOפZRp#ksZ 50=Sl02zkgImy:z aZh+YFXYEFv.Pmr7lv|.kjmC@]p_-/RnRh)g5T e'`d,i1mK͕~ 2UUkU |Ux=J,@Q-SdlS>g SY5ʿC2tP~hd|&Ш]ƬKqgzi=R2_q2լE+2qXZs%5cˊҫSnӮVڸhU~.3u*8=Z"ef'Tjo}=1xGů'4g͑ZVBKMtyϚPM;^y9K0RiVli̳o޴ӻ,}qRA"-Оa2ɏUg>Ͳw&_!dhɨiG)Ì^{c:mO%8nd7eF}>))~X[oǧOF& @ DvK YNSd+}`TW.ªSȕ_ߨ?@ d즣H忔{U;ԛ zǕk%^h/WWYv\EFоp-xrv \*2oڋ9 j߶˰U&j@3J5>pn"#(d4 3Y6{[m׊NDV77 F{oȣoE7G#v*):>V4&iF w*-lcxl%8Sd< VtC4FuE#f&eMu;X]\;.^̵ Pb4pԚGqg4ø(@@ Q5s3H[9G6Gm\ԋ2ĬfZoe;m"m mVx~CZ@|;M6ƨ䟧ȘANRȃvf |6@!Md\p:2;[{cPn: U ^`ϭ4hM1$TJ2 iKڪ%ge&K4?_`Wքg쩭@zZ_r䛡I-gJծVi͒w9d ʻ7[g4i$98-Z Jٝ썩q2jґƶIlΝ&_-&h+gzGm#_ځZ#Mv_MmuU;Q6l(_4A c\l.,XV+@@|HF[R6Y[j*,3ԣrYΐu8?oQ¿Q"AZ'&>f2>_=N_k(L АkiYTKN^9%XtvLȕ6i͠cB!aSlj#ӗۓno*Krt>gW4%a,* `/pY+Ctηeh>߶f? 0s+OC3]Wr&E^ױ*6sn|`kyYz'ϓv9*XDL/M~[sC8syʠk2XV^ؖUC !-o1JVl[J+F (jO=Eƿ.^ L)wȜkG^&F8Z7(w^xY';>7\LeJTɄ.FzԩRcVls)"/g)t,W;ʄ@c$}\ojwJ0iօ;[{]Oi͔fGYU 8rZg>!S1!PdE #p[R?]45BGMOIIMo9̪<4V_~&'(vVe[s>@ zE3zu֒ŧS^O7X|V8;U$zWfJ'f98ZӚdTڅgow,極Xm>ihLEGj=%gR7/5%X,Nay k0 s"}EH%733+_ͺsF6r]6 sQ%AIr3yR|le7L Q)ʆ[-v (>At ,zǜCGJi@ikM9?{cx<"GSj4͝כ-8f&@@3`$dytȷ۷E#ifJeԇڹ_/õ\N? i=w,fAxL#sۻ`U V-] ޳2m3Ip9]s6t تo&<ΚA:nZr3l{ӻ0uL}ΚвYtmY4W2kNg$M.*)2uƙ[ëMy-mѦfGmX>1oIȵrw*ͯ>qF-K1٩qQx޶w?o9׎3iFɨlfcj̧Sgfog)%Gv6CLx;FZ xSZ3:l=7Di+7 :?d/$? v5P6Z,j& 'OI_rK %]͖s.IUS%>?/5QʶO^:fz?JT1_˹S[ڙN{5fXY&m•#=͐BK؜O24dΔ^IՌ?ñm+*E*%lk v8L'3 h593_Kگe}TV}F @( O@ T+K5GUvJ},7鮭תӡLj|E~9T."XVH{Ҍd5#>B elM.4{yYh_WkM|h0F56n# >  #2 =eC6׷>0%دXxwyr ~EW_ᣦubPx9ځM>n6~yJW̛&f\}l>ZƲPN5x*Lp[h^,I}mSLQ[kKQ5+#=j@_&tO,M !H`X @,JL"?jj|mWH}Ӥ9PiӀ`v;"}qP^x;ϼo`|[~h@̦:M Ȭޔ$'$iġE;ѫ02*S_G7ھzgJ"(hSh2M5#`Jgķń-G $d!֬dS^ϸ.Dy+޲$nٲ>ڭsHirMl ZORkRjq83e]Φ l/]kⳜUni-J}#罹-fS6вu M*Eͼ85x'便~Sth d}ګʶ- 4zߗ\l'N5:G7; 6m}V%2W_5 .DEXJYYq8%)wWvͽb=S&^wSd.]{Q .QXƟ84}f-OJWs%fo@o&쩏f@zgG)`f[}ΒI? ܦ4X L |ԋ\ʏfgImmupDqNKU?Fi6Dv˻ZGbph 欖T397ɶ3oh }[+ hQ:c( 2 :X ֥ufm/QOxulWc)C.;mv7UM}}ãm!k^rT &@Uf/5qo.yV7`Mri8($pt#%‹Rf߂+˶O:9V#Ny50+(gUyr6,ɹs1du_[؞:eq@>*">S0zϕ'2 4=T7LŨv{/pbzjoݜ%[oud~^#>;jk452G^2X C5irHX@TPf~dnivqv ^O., J ?KUfe}{/HZ{Z=18®o^s}X@|c?ԛ ʈ Vh|GЌXH'?=s(AKI\_9!5)ڜ=O[.XTVh6֓ӵG3ޮi`O^@ >$j}+;f.U1ĝ_znR[x`Wvs3vK3oxŚ?9nk;~_?nw4 NWLpw`j8%%j稪2;+{ k'jE(1DeeȚME74k{D/,`B$]{Qk<`o3=dvF2.c۵u+YIa tKs5rԌrmCd\dy %?Wvժ5WwiM̗n7E4@pQ1?b߱Y3eQS&$G`6)\:~`/{\3AfjX.05qS%WlP<?_NS:6M|8/ rSk?}uzݬIm7MX r/x'-y!7 7ADO d_4__[,>dwnܪ~+#?$|//1G^^.Sz<L+_msߋz=;CIJU=Zk~Ts\v_w$3!sxP)YHSW u`8|6C'$@@!] uZӰq(ġD?)ЕOٕp~e^rvDcgW~ h~9mb4{kSF#oy]&?/H}~5" `%D̊ٷ}dbU`P{,,ѺBۺ֩`a4@ |FWߙٮ%{u'YvpwG5Ǚ g89/*^̿vA~&=r^?̚NЊ]nfgk;r铙>rFj5p~?f% x2Life|ooJ2]9pf}qDvstW#/@MNNp韬@]]&B?=W9s-7wf@ԩI[(yT_$84@>?3ht* Lt{బhGٯt'saϰk\L]iK®\{Hôݿ>M_\ǖ'e_>K ?Ϝ6<_3p%d5%)@§>5W oI%߈Tᯡ}F#S xwJY,Mkh[>z$Nnoqh/_Rxn_%4`Ss}Nzh^#F`͗n7G%q8x_9X[8kH0.ImF@ y]/b/dEmlx'ӏ;\g.oB 4Zo5۫5v@:Fa{m r[^uԬE& _ i808-ux~q8\wqmt1f)P',ρH#He,ǎMxo])nֽ]Ӏ~ğqTinծŕ.nG $-KqORZʿeWvӵMɪۙCOL2|i@3^bơ=˭A"VKxNt/۾[=*]qZ%VXvK^~}Ky}-OwYl0._]/ȍï׍Ñ0wMJK'uj4/2"+&Po^S/rm9:^Íe=//Յ.%z8,>_u3nnm şyWcȅ3rWU8Y IkOEn^x^f'n> Gڼᖿ΅O\x[~Oc[^ Qn`ml滻0y!Mw]G8Ԏ]:y}^47 7-?-?sn^Z6lnWޕ^T4f Re+sJ}[N3qnCV+%쵷TP+{fWwژ'*^qw ީ .۬*q,̗MeA_epӯåCl_?vn&Y3(`\I~_w/>wnun27Ogǻ出{pn^q(á-On{K\rE.3m?gNw.:Q~{=;wr.օ[ǡD:.qM3=. 7=dOUއ.t=}n;pap^<ٮ-wO׸0tˀ/q{ﱝj.u0u~$d*,B DLZ!jϟom!s_|Tx=Eְؾ/4sOf]MI;4q?X+9GCO&AS K#R^egJ$3)U%Ԛ$Ih 9eN Ж^[ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IA ĮS IENDB`ic09 PNG  IHDRsRGBDeXIfMM*i @IDATxǫfw/qG HTP 19`>s& ń3%vn{p\}j{vvw{EHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH`M H˻W^w_[sr>`1xA$@@Np5~ =#(b)s$ P!?]@0de~{m#SV \n5+^ORye~j۵8)Z~8Lk 2eu[}N?O8w|j []Luޏx͛\љc6.w\e(/mImmlVNo~,׋qN\3rˑQ|weto^sL';9-GɩN~++7\i.oc pyA;L7)JiOQ= Hma0^3#eGP'y+QrPB.:uLS-m޼d2@;.xol=nkSH9^cx]IvyQ= }y#6y˝\B'_NIz;ڐ2(k]? Ir|ps#Yn.Ǻ]0'rmA qrH=\~7'8s$N.c|t$K.d;FQ~壑,oϥ(uE_d].KE+#̋d5,\čX, lm$cN_t5,\~F21:!.ok-n)!kS89+\˻N2NxM@A5_?W}uI?Wvop;Ljܾ/w|w|G;]VzHYYe(j0(:w4/LAjK-Wr9RZ^4<㔻!ȝb3X%NzQqyop^Ո@1jboNFUǜԴ[nIxElg_{җC/}wzus;zCq[>3}+=_%NdrW'l oqB>&ʗ-Hw:R6KJ.u{tKNqlɒ]n?/sP?ɯ#X$^Dru#pw TrBxtw}΢VGGZm]]کCo0rr@$k\S p2I`N! uD:8CLv]u(Վ@,qɃV&=h] \\c)-͋_I;{ vxÞcxDK=֯m>+Qr}ɛ)9HjIvY+ a]=I_ . SB=ɕNQ<3BgH k%/G2 r; ΏWne3|,mEr-'5[*U+楒on?,D3#ČVԞo[>^\qbzt0/:TWWu`NoNe:@Ms#1YW)wy'/.f2I*#J,V s9:ڜ)MO&H##˵Ƽa 0](9CUs(n::뤯GmV;?<[sg\r dx>oi'E LU?x{5qɝ"AS7s^s~3n0pDҤ:~~? BJ/`]dq1.L զYfɞ]ȶLcTe 4C $㒧 3v,[O'f[;F}~0Un"ΉC{j>Y]IPV(,x~Iρw093C.uCW/;6ln=Jn^]|_Cd\,I]}Sߘ}>\Pۣ[[-17ee#P" 0L$` e>>{ &3%8ZXplJDc~Qlw%x_L5fׁ;mT$LL}3B-, 8¹H/+0,T @R60=BpD2Y154CeS0ƒ Z(yOҤ~J؜h؜y"]?Ӛb\ƎXCYz\bjxA^pw槼욓m^ JN֫%}l WTT'xYxDiYқ}&~o^ Bqtcx5x f"-Q{4Y L$P!`bt3PZ[Ay :{;+d+:Տ︪@O, ; \ZϗN:%%Uot:{g|i=?KqU;lW= A 3"F"~Z>?m-&Vj,3?p4o,yEoO mӴ}=mCtD!,>9^=R=>G(nM^ߓ@%`!\XCEXpa9, :K#X!O^ h o.KA$P <['؝~ [_ˡRznZ"7 $##_yBW=ѡ`"`.fo+ Y:GueC5G?UjP.$bM{M}rO+]EE:DrZ"I]j8w(mP+)xӜDL$'Mwή)kMF 9&P:`P@G·,>)Tg O LHj,k̂XWFM4{c*gl[h`L I`XԒP]68xIEz]̰xp{chC.M'A6!z~j"\]7T{Ő cPlu z2L|A^5)ؑ0rjT! iGm+4+ '&HzK}S/ZWn0EL-ajEx]gz=oR]u~09spIʃ/q.6@/2˿y ( EIJ Gb,Zʠ^rD]to44ؽx*P1 T^>X0y-6?<?x 9 ׋]6@*3Yy!ʫ?3^?FF鏁4JE9щLFYW)z|pՇPF8:ިB31]$;u lJ4lJHQz P,t5Vf0oK+=$=3C|`\zG0}9vnR|տ7lI^};~ oe+K9}Mzi'㲗vǨOXNFZ'֌$@weG/&I$ AR }.~,h=˿u?Up&(leUQk2lynF0d-8Q_m:YeAN;R/|2{AdjFl[lhlybK@r)yFP, slMEUje|ս햄l^ȟhޤ&kidyǩ+] &;9s9hgze.gJmDMvPP?+U+*Շ-vÆ6cXyx{|'&j`sbC|X KUnSFb&4t}oXZ'ILv=} K8~jr92e@/̶;sГhɒ~Qa^l/fwo^8yx6B 0nWB^e d208rV]Cʍq < /_܏6*Xӂ=}2rUM =uP"cĵ1@PD";ΑEJMkFJ5X^~l|o9`xVœJQZ_/7dJc;?Ä6I d&P]!۩Uc"@/ ( bҤ]Z? (ǡno/p)`G=&jyF 8(,:M{V0TfDE"@qa9ٿ,x\DSKᙙԢ;$^/ǯ Vg6ʼݕZ(Б4' .nE'Ẃ+/9BOɿA{e3&8Yj2X[t~1|{geI`s Pb\bH33B?2^hu%YI#%ۏKH$1 ȜfFG=zL̇anD@4A 2s1 k}ގ7>BwTU@ .XCxH,!v(Ǔqp(;YXMWey9WWMѫzIZ[9xw9/mV'Fh=.I|߃Q>óT2!WcZ%R{;-i.]b[k_|@cCPE3*18>Q!Wo)f@g:0'S ^,?g$%A0SP"sh&ؔ}kl[7K!$83_Vj}x oJ-.$'ɮe o@quj ?:~gJ]Vn H7M|KGCwwJQs/rԍ T5D˳*ZZb 8*RN)Y3X'(si~A,h>-ʗ@Q .{` 37aأhȡ)i.0 l~QcY#rdd= ϯ] 4?i xin‚;`R`*O(fN] ~o}\< nr>Ǝ#|M0%;WaȚ$Юr0y-9xA{2@`E_nyuw<4:jEJ-(z1UP1:5:n+֊|ãK!5^"^16BM!ҿ `efpY}H N]0 ӺG5z(VV߾J\և:H;_a53s^, 7iA1)7ϛ O`>LJ.Y(gf 49hG$QYxOY×s\cKAK1.Fiu HDFrC_U;8'u.!KDȿ զNqT wu)%8!1M&Ϝmz:,G7Ss_ =Z.~d{33e m:Y3&JQޖ6BS|.xc!x(m5xBN'r 4"U*lގצc@"0r$\sx9,{@7:$(5b.l+-.>yUmQ{WcT|k(g`ᾣ0Uexv̳(^ٮR1W6vhkE "qNԃvbC?weEd^K'@@+7㰔,{vz3:=umv6UdR|RF)B3uZfǃun9Z1)0%|2+D4,U_Ab5k`\.Lt52SB,s5G%ߞTg*@IfQ$C94v9-pOv#HJ*~_a)5h.'4<;Fꊵ2-'!;ls6'vpn!u;!k@=(72ǨDheSm(+ Nra2́˴Vp^؜e,#9!Ky!:kI`ll|cSR+ [lDΗ1ɦr.oXobN '`Lb6xZՃb {~`IԖi}ԘH`mAI"(e[.!_(svJYb\pr!TkqickEXP㊫Ɏ. =y%c0Is2uwGD?Ht:~O,Զ ks~nM /,EUhM߽+m7\v3Cޖ%f.&+OjkߜeEWgajX98XW},ڧ؎bWIVj"cp%2U5zKأ4UY+  --6b}4SK ixF~S[mn^r }o$~)` ](z~M ̏h{FAW|~s?eН# |s.W r=I??@vFWx>`ic'0ԇrqWW8**U5-EPⰃ,uZBjc`6$=Jb s*Ik^1 T6H35?AaԲi!/{ |p:cZIjhiȘ6&[m*r0ȁ0x%z+0Lu5Iy 0ԑffo|JUmyn [AYn%^+qL$Pnjh]L}-^F\Saw4>d}mZ E_  \%#OC#{y?>- Y7ɷy ^@Jmll$hN XW%'@](G.nUP;921Ü<OzlR+G=##0ӠVQ*P$M6Sr2bO1P`ez:`kGjMvQ~5ʕm9\;2Hzނ~Ÿq t說r-Wo[S=¨߁5Ǥ^%Pucёk%ʍ@} O) :V+tOޖc1_m**7ќ8Rw1SOj#̿M}D/*zYɸI kI ׺Wt)No[EnC-By|#@N\mޖcFp.p-/`"@AhhyG~$@c[OO~lz(X\{Be_|qP$`s"xw\O\J|/=@p\}Hk0(ɗK/˥VD| 8=VV[5W^4T߮j\yoa1BGH(Z{  Cpf/pt׼8. ZV*S='Ql(uԕވ͝EkK9%W8H sCh)%x$KZC8Ǵ2 s-|>S@fn-Ƕ⟐ͱ(C#6pu^)>U ?hzeu/*kmm:v0wʅUr̓~$GR[iWWꨔ@6FSԉm5cF"z/a 7W .yv+3Na܃JXl6y G?$aBZ03ò,ЫͲ'L-pDL ;!MNBm$|5 j>a KK;=YӺǦ$ä !)3?8!J {aV@#Cl;tQjdbHϧICc )IX)L!+UOwye]']>?})u1a?@u,HTD +f:Kc0H߂@xoql͈IJ`-_"fwF ̹̥뽥Arh^1?ԺG@tK5ܕws=;o؎ffG> KVn1[:WwetuKxA)`AmxeN-W[,Ԍy=V  1s㰤H](enJ|j\ilᄭPއQHf< {)GXzlLzY=.+ */Q]d?n:aMjmcYNL6:0VP8WU z4B~`d9(řмI5&st3K-0I8C@ʚM9i ??G9cx$vLҾ>:, :b,h),TcpQFB]" (q{ PP+Hg^ c)m#x5?³f"@S 3+oGT_0;u;z܆7DV0CLD VH{%xٱp )&vӟ3z-%r*'CKOʁd"Gȑ:lsk 9\?tSlF:\šCl/ &0l,0&3 諸GRy/yq0"/63lnXbJ<'$ەh߇djƶeC/R P"3G F):ה:HB[0Ī LT [քeg}2 lTckn1ϘP$vKѮ1y| l9 a8$dkC R`)0m;boSG l{`IK".0l>ː Pl9G ?nwl(c񿫾(߆X[~8gGB=傕'Yoz>EQiREaD}j~^LzE> 5@IDAT46/LY[ȑcäFC>o h?r-ֶMW)DgSa)_ePbϖ2Zo<PaH(*"cMÇewÓpaFmR}w[eX;^#`` /b5ԇ,.V;UO2;cuG#. W=iTd8  eQ5VG6'Փz3`3i#Z^yxEYpGӁ):jP/zq\ GYhZp{ (5#͙u ~кYJrLr<`4H:FkAp}cP*f 6RiD _?uڙH锊 %CGw y$~>,j5TƤ\?Tz*ޔKPZBFd f?oW|](m(o tgچkNFծȟ7wQ? Q y5?oXlƻa8K5p͞0w\Ǣdu.'@gg3}Æb(sXJ`0w#,mNV|?|6 p5aN оƮxrie=RK-̃II|.݇bE|6vmN Փ)s-~ HYÚX)3|;6hu_xfD'}% 2JR;J8\`cjd]:&sɸ`9G!:XDǎǍEƴ>%TTU=00D20Yz:UAcym_\ނ}}j DGNx.u襍w. l22ɐBܥCH͈6z%zh~r`LF@;@ {+̐AٿXf'jW~Oba,pWf>@nMv 56W{Gy%doA5Ǝ2],eʳȮ UoBaxNt;cp_J,j_2c;qgr,ym%g|ga/D9Rrꟾuog"˲9 ~(@@9';j}_%aIGfNZW_^e dŻ/oʗ7q(r\&zaN@ix"A76`fl_6A!=Ό+rNЦ+3wݲ ɋHY[ hc 䦚:7?B,F?%& RSb;H;/M h3ZI`}e `%s1?AeM>thGd1OJ_pjI׵Eh{-+VPș2(gic.Ch0! .7B7r~Vɪ;[K+aa>m18p Hݽ\M#MNM'3X8,K'Q=Cw) gcXF `07]v@~." ơ%Oh,]M(3tY`vAzBa-$oeN}t*Y4 2 i ?C NH^!0+1zy=Ƌ2t8bC'P Eo@-j|^ :dcW%0S"axsgK6qI,'^ňLdp'x *B9欕!5H;51e؏ ΰZOx.MUWtu &+y|u鮏/A䵉RoFŪ3ғdG (& !!UWMSo “"f5ȫx~PmxwڹwC\P'={0 Of(: 39}aPT54E˙vo X2qY ;jT<|_o$ NE9sE^ ¼B:y|3bXkLUk:BxU}^v-Z?`j@89"~ 7AE!0ԭ5pH`5$2Cn(1qF՝jtNĒ9iQBGNjU${" !0Oje,U9c|O8l c3q`oݸm@>GBjB+1>bIl?%bd!%pwapQjj==La=zp|v4K&e: v qPB $jgԑ!hrBF{@MX  Z;ldq#%+XqiTgt3̨C)Xb>#ЀmaT'1*D9."ĚAA)feN{|?~= U.7kX]h>I,qX*_;l˒ 985GL/wy!j^ƾjT@Pi#dgQ|n.?`޿1ǿolrU x˴i Z]ǣ}lu62KyL$P^|Q^yHw[rlM@n%hzl <@Ctq8w6jfmΧOrsܚl'cI?jaּ}#rjJڪF=9,9YD7iݍh?vK7U1I8◯Ұ'afnK?s:F`6r'wO' TCf$ PނEK?S'{qX]-,f 3~\5,)en+4&h\e#nz E9:ZF(%z |tEK/!7,_e`w>N1&0ݹ˼ >.w$@FCc1'KCfljҖF`^ϯz,Z1^bKlS:&U^[}WNȕÝe8:YN+cV2n#u:3(|ug|?s\싲>ck\K1 x $rNjCss_T%*酥=0:+2Fڬ ?=?|p6sm''9z2*I`Qy(S~ibo7z* nޜ2Uõ4Gv'ײS`ܤà =ʛXIi_ZI]M1Xy^GE,v ]@بu/M8 bA&Xj<~dܨ'H |&&`>0!SBi--Ӹ4B`auO HG7F/2d>7/睮,z5-k웼O=KEW ԀurzmlR<6$@L|W*=ɴQin@nnV`lQ Dwr DC](_p]7ғZֿ"}CeU6b^|h]Yg)Ct26Bc>H' o DZj䁅7Lo q9E& ߊ?3_mHaH`}>Ϧ#V8tz»Ќ5.bT6`"鮂Gs[&Ay 6VOͪ;I7̽ˇ?-dp C:cNnnHe+"gíy;(š?D#RU`T\U@_r+Ԕy|:YP i9G}~ǻ7@IwYN? fVO0s>? W @-M,?M\) 3 B>lrr]LK2$0*V8D,iPh)XaQb ]\XA-ĪS#Eru%8 (cmκ]5>AeiLG7u{8}~W۝k?^鷛Upz~{(yLW'%Ws}P2MUjWΪ5HL$P5 IԦ>2r>̣Bsr .PZxØ7mLUmqmejJJ< <U$q^hNC~'cO_=vߺˏVxljN\eVPjϽxgH/ &%0QzaFdXxkUUV7x .D 껭AõY,Wa;6'+OϮ9Uޤs2_]QSy0"#UkDRb#Cs @d>406L K:C&h>Z)t^I[E^?؞ao;8}8f>ǙcLՆo TOHBԎ_rLIA6UU0v@늨f&ȗ:r.Ʌ qļ[jg%5Fn H`-ZH< Lmjnu[J=tz篲Y4v1 2tW)eSEus rIt ~o<FްFez\ssD ga#9[ Xw3O{=4 h>%NNqes^+ 1rs-EOW oŅhAU28]$6<= mk ,U!`1Gd )|;x@1~`ʁ cTv 5g">&،*лnMPΆ?@MK $6LZ#iR`{mlT̼\Ppfͱ2 }#ބg6,[`j@;t1l@ۅ9k oE҆!l4 ,7kr+h94 T\">3L)Dtپg"JL&obϨ$ҁP$miǩ8[A}-D ݍrqwc]mz1`>;xIQ>g3*|H\F}|Ϫ*qoAirMx4,>?Axe^OV so.I':s֬#&P`sF^vAkY=!n0&=|;3֍گ21Zz';PX'1{" G c ?@.gLXd,MRU otGi'Xs5mM^ !PZͦ ԍP "K0-К3./u د#( TRT^#PN`zr?GCZ1CI%딦FRۯe#@ج F︞@Lީ)EA@.NnkɫO^n؎75 5<ͤ8jcly9&zE7F"i:)c9zY`znzvHmXA?D:cv,PZd~! yzVX^ ~M;i=eZ[ᯱ>vvA\H( ` p?(/h= hPQ`'/l>4gOK~yVIU?ůqb= L(>ybz0fzfG(!CQ:F@`ɠR9n d|J>)vL$Ph(G<:`?en~R)Gz_dm%=5m%Te.Cm|sDjylա6EԸGJ!Ľ0bW-,XSe#`Gm(9+b,|v"bX0  Ep2Y`,sew^o#kt,["$]i-=@_]]bwgj6DN?zaBD}V.EDN7(@v)\E>H-gBJWOHG裥>m_ Ke"" H<&B /XPI#,W^CɆ뀏lI%zU@4" DD bAR^B ғg&#| CʽmsG3=: o' p]:~/٧f6Vx&}x3Q95b -JWH;4Ei|;]j _C{Dv(VK,4%oxN{i ; ν`M VC}p2<0VA< w;] 0( y>GW}̑[D޿||~@FЋBo\(?jHo}~}]M8 ˿D<_ ؊()'B$-aKf8 Nߠ*@sޡ6boJ|Ͻ3#Ytoa8 7d=*UlžvPYQWwaSg\Pq HΖٗyz-c?U0SǚO 3˫K?UM;矽"w -ϥR# h(<ߩ.|x.HBB Sy?; jW`WQ?wiBop\۟-h@|t{,zWoJse8"(]JKK>.IZE͋T.&C-M3>s,?Fe6D=ͺTUmSwqjn !0@߮j(ҭ@ #&AxAq |=A k =,4腦 e *J,@',.[~å"0A݋Ѐ|JdžՎόg򪈟K]nn`}p7|hG4~[F@&`ƯjaL=j%y"jq-׃; (502ktRIvs e%ݗG"agUY;;xHiZsp(eZk6GO~d7ioAu<4(/O9Ԋ '(e ՠƵbo’3_ bET@,T"v2h.EUTKi& ffA?J) !]5CQSgw[eZ5ڙhWn1,ŮGfl~t.温k~Us2[c- 49Hv~>`޳1@5;aKV8$$϶#nA +9)why)d~mih[i.i-HD-#)2+5svj_CBpTI &|eou+/paPgC`(#x̱Ɂ% u!Z`S2)EIX Q{"۬6(0TtHEtyHuȘb^ҊvwQWs ƭ- gN74n[LSb_LwsSF[^_X#5>\_f{Z mW{CbK6tVT;76 W\7@hmoi~\sxc~X݇뿔"~>+bp:v%#%>#G8QP̅Oo=+ 93N- "@)(; 3?uEV+1Gpa+&?Nj=W{A݃Tz!\wc({\"AN7RF zȌkxbJeSRB6:!0F wAV t߹:CNK+@9èAl3:PUw'(\TU]+`\%vxku+JvBDF[mXQHF  POu(?*W XF`f<Ŷ,FmUZdL%HK -+tUx2u6!]sY3R,j; 8j3_tcSo̡F;;Y_>c1Ǩ鸺]Po8y ۢ"\n別_I0(?RhCO?Q#TOe U]]¨S(;~7q?DY멝q f[ՠˌ%G٫xW 6X aKꖷH((cX 0fc멋u ɖa#X]׬V}҄u5 wp[}$;z>fH}ⱦOÌ!蓠>O@ՆPoO7I5bb}}( [Aӊ"3\qG}ep w@QP)F|+xuN۟@@$,K!kY`N7_+z׳LC4'I W`vNqM#pvEY W {y-0k"]h>aK{Ը6vښ1B=jRy>2 K9"+ --HE0].)0}%CdVkJt+@,fMS{>^CaގZ/ٰ53,q~rNq_ B\Z],`auV߂`6~+^C;~M#G0l=%4S ;, $v?zdF, p(}_@ t#tW~X=Q!$V?9BPdcA]Xd0wy2yV G^qc@t|Ug`-];!N*ʩu@z df{'u9jED(㕁k%B:cg$Cޑ˻5|3 ̕F[" wnOEJxO!obΉ9R~/;ы2Q(ny@M8ѝG/ߤ0ޑc꣺L*&oSz7߽b-H!`T n{Ih+_kSp:+P !50VS{u 8mVT(FkUSvM19>l͉i,̦j"N֮ Rk& 6F#fSh zsE g߉%w9Mu!P9/8WSܿa.͘Y"XJwT;"&≗6O2 FOWDv(&bU}. ߊU9n,4$̷8E/^7@"<<>F4 {]J>-4#4p\m# l3lc^G^Q5`7^Lүbޛdz7@l7 +}} 1ݤy|t¶A7گ2 ʯ ;QnG l_M7RP/ $b#~H-BpT{%24\y˅r9W ?ߋ`/Mfng-#{ߊLQb;5/EVqe5/v zV}KCaQ1`[F\W+}4Y8fo1(39p}#<>>F 4 sXxɹ @S#2KNi*\]\c}U匽(z0u$/W|E4RO ӪngssNk)KKEye  {Ơ:i@糾CۈoX2szD\ˡHJS di~ @#3( ĂDhF xbA7I ]tk ]clK}AF77(s@bb>NxNH pZD0{!UxL:ϙȄ~_< (hV+" R@83~d/ s[ qҴz.4Gy NΝcQ=5.}62`l!/@ YPyi* d ňĢ_4#Ds/+ \)OB<6qmz@nxN5ڈ Q o9_]I.Sx(AR.}{Ffd{x8sR $`g8piF2T+ј ( =E4at+slKu MV# MIK'ȵP"QD i%#ón~x$G@]7a߭!b4w@^#@d 'PRXBN!Nl(t[ ogw@\AISSY;4 8#:Lfogן vuFz,mTyi4A-2@lj=?~R\B@2T>š7#"@mQ1**AJeWmNXr6_h:7 2@T 9K#s?]F-a(D%iTRn ?Ƕ_n[p1p++h@!uKN?+Uk@*@ݜXCeX-֫iuuգY9+.>yft5G<0z݅_M %'@  [AM|^# z%rS‰ʼn‚{[;bvZĭ/Y她!Zg'@})x?'.-t??꿜yP♄"fPj{Cr3}*@ Kda[nT"Ep-@uz8apXݠZEIġ?GÕ*3[=}G^EcSkL_5gD>B燞pQe(X#ca\fH @6B7"Gh'&{W@q4Dt1,vwd 73t'Q<@ȿ777.rOA)A7=#駫 ?gu_#r(/C!Sc"N0w0xF ` N 3q* 9 // j˂y'v?\zd 0~hЖWX7#(& Wb_ š#(n1xF\"C#߁_Qd4?a".vZqˀ>[T|dW)d[OAr\q6 W+U)M=Ԑu~ܨctRE*fͧcTwui<:hLy(#ēr7^ma9ʠ-L8sw2*'zw!zZ!x$sm 1NZ\D"r- >nGCVByCV7B*09@\\ (7EЅb++E= $ V2<-ʪ>tj(+4/T\:s[Oރ:j l!(L9ޅ( 5>6X ed<ҟ`)s,= Gz5Ay+{Q Gfwc'1b8V~7Gx7?kb+(F;X2e0=H(9/=gGz4yfl}3 po!|Hh:h3Ab&/YX-@_0|+T ~%˲ qh*<&9"/U\95b2vfl;\%0;! Uڝ3J^_nE1+Uz*/ 6=(lĈґOQB _ȩ@VB>Uit "ɻ?(y[[y$u!='zD%~UTk!fc/5DzyVbL?,]EDdY:sF!t'0Q<7f#(r%+ hnjf g ]z:O+y_[lVKÄ{KW)uf/h*(ZԍPc0odE˂uiXE 8Co~e=~ϧ.~Q] DkKV(Xw]PisW6#( ~C\}"-ov9}z8p45(ث{llNa<(wo(PԞ3!ڃ"e<OixvBU\w :\Jgg7 ^K2d_*d >%;Z>! ܞ<, 6P)5"0zw~Qړnt 4_{3NFoF^M߈׍F@ Qk"x[!8Ftt4G)GXXc9+l Dyfa 8kR(΢$e)V[V Xլ Q7dx+E bCBP`єjz|~ZcrsN>v^ƓuG:4 :ɜaB6s)bKIߚ[AHC1d%߉P&՝s]JoC}RU (lZqVs֛V`=:S'ԔJ<:U&~ I3&j13c2^ؤgY#~9WS՜F97P}j<=?(=*ءic%DCrmO[+UvU`B{b?)=9z_c~=/?ZI ; J RT(7WkdF EQU~-y="|!o!aJ]}934HZaˑ b;Y] P¯8ˆX6sp" cϝ1_ D>m\VYi#'J@=w4;r۷螆Gzrr|u9?dJ_#[10>ڕ1$Wn#0;gz!kwsT1g]@yxT aAU _3BיMjz~OR )"_>u_]Y7=+^5oEMSjS|*_Kcb_5gջ|;|"W^=z;ile'U7JX[)+II~\[O[K v2ǴP9y D F`$~UDG3RW=7v^=Uspy8^R]+jYYW:EQ2YH9cғ.1nFN]|>\ tsh>p`W.|z(ѕ&d5Z'лֺkE%!5^8"n#nosՇ+b5ߌPm ,]+ϰ-K `(JM-"S(7v&Pc|wv O(`c!s1z"2!~;5衜+m:ߵ1`LHԑ|IvmT:9p3xBLVLNT3/&#嬺/{56{@0> 9;T014%ņDž˩h}%OOw o51 k򼨫"?C 1-6y']=_Ս7/y736_Ym|ŞXU&&4]O&j|V{fGlveUU'C%QNA_p_P?uO"  Ɵ!O áq{ C,8O<]#p6O{6.,@ 3 bcr*FBp]2CI|5:Cc`2)o pđ Z'Љ:sA~`lf<J匿y[ aYrlJUNޘ~UbG剫SL0X]R]hO8ٍVUWgiQUrJW,99 ao{M^0:,5$SYU>'o#ɚ! .JJraQ. )M)wPˠ0ǂ.}xLW']R sF Џzcxoܴ|FWotDž?ł z )~}өu=qjkx@.ޏXbVMfm A/d8$YzyBvr8d'8`?&_d+eϦOw>ݾQ\dz}9x1) N:O&3{W0=a*:850ʄ˅>}Kb늾x/ Gk0RP@H_nїJHIU8 _$P ',tz(lD63 \11l'b#0bS-} o(8qCR?x>#+GNA־]}FMU+Tidwstj,B6&o0 -&9ď`+)qPln̢iԥ5!5N6K!I[`:lt'/H(dE+(2O'J+sk?Aމ8̾ iBc%|+_=Oux) 7 C pcyB탍j#3z">]+pf>[4rr j?^D1uBKF_ATciqysb81h4(K7{CxUϤm9ZqI}|AOP`Q9bvje&⨠g&C̆•=?|%TȟZ6@I/1afstͯwox~nw?_~x{ B3(64?KszRdzG~rPM)UUK4\(qI\GY$F_s˂lٙcJTZQ*5n_n@@[0e}8BS{Vr mҼZbf@7-@9W2jYj/iG0Gxoӗj1 h:,=pR^E d|Dk- HaH0.27"e~g7v1HR]&Iۘ5#55ܞkk~b;Rwu;vѾQtP%\pnkq ŵ-ķ=Q hءIPWw¸Z>{Q+c}sgT63 ! ;5Ay Ac|Qmr'nYf6-W~5J-jaS,z7\xفղkbv\M|-=cj"*WگZ!NKBJ) aA}ļ>)> <)jp6|4k:-j+PD,"k#`;;bM&^تe̋$'rZ#Wscu<6UVu_7 tæjoX`,"4^tp81 M=Kn5[`%PXajǤW~V"Q +VKo xRi~Ѿ#PGu#*XO;`]ҧf"! ~G^#"ك%" ICeTHĩ%2 z,qwAj{Iҷk6\JWoݽ8zAts"ezP;i\_h!D* #}vs޸5T P4+Z-kUϪ IÖhC`BzZK J}<}mOH:scIjyUGc7+ꅲq֗jJVF4/E3`֝$pJP:Ei;L ,X% T"n> -X^UfcQ.~֚x<[ hz2iZ3"CC:|Lu3i J7@^!PBU#A8v?;SD*`i!%VB `M)~Z[+I4߅{eXaEA.SxR8Wϑ,oW`4DTsp(A ) "۽/HM;hze,lXẘuåT'fĈ=?l-ﻔUfGqjFTvBv$K7BMp_VQ(XDޥxՅCCP$=a[2\0mDL=+58Y~Ϟ5Kh򚃻'd_/O#Vs_StiS;T?1񯖬Q<KDЪfwŞG["#Ag.uF5( 0;&؏Wಹ?nijcyӞ>Vqq00Qk<v"ݳzR,P*w~"T~ymr93RP| fg&}gL}ߢ^ wz{b&“n$؊@-'c"Ei`v; ݆(?FjV k`XbvihNBoK-,GVɆ"e-MU@9 [V-& =GfLyI!pII:q9~I(W*㒵OPI3Auzm1D-`}5=Gtk2^O_d~.9S|ᮻ۟7&x&nn[mr8!Wx_oD@i3R%k&Ԧ>Qqf\ ƝI=Q7}|r+LQOVXYfYLy1wT<0/P:ɬ,nn2c[8= x UU'"UxV\>0uho0./?{B-__Ki:dt-QЄG׫xr31 ]?{޳+$pމ|0CZ"rJ @`BpGC=yI c4U0?^e.̠{Tc}N[6\^+5X$uuWfGkzk oӆlo{ G#wy̍|1~eaccF?"Q%ka %0VYIbɔI!+B)a\j?<σhXxA'G,?)Pd?S_n}}=Ob@+觇p).ƒ )/*jȺ%*fX#ҿ["uQVP~Ojx`*$wZ{$mDžd?Vh,WH,_Gk$yKWhMcDmM̱3zX!`JPOa \13TgwZRqeTb!-pVr&  0` ʳ{;`RԨ=|K !g7" uL>dMUaM@MV hF{pw; jQi}( ?5*\qx ?VV0e3BsD4|XEU{aoKs?ĕ#xM<^DӇ)b<%qexymAĒSnL lSk7߹sC=LO82#޺y M¬ӆB zWP̬Ǜ{>PЈ3 ,9޻+'#](lw2gcKП8bԗY,@oB?+?~|%\ƶ{͠p,HݨM}zB~_"/F1b nۣo\۹ >N]E6yd}. F]Xrf{SLBRWP{5Ix5igC&Ȏ>:zUVoUTs:ޛ 10:@15Ab=-' 64_p$}ǀwvZ 凌( ) \clE1z![`O/j c9ef%ssx.EƵȥjf8OL*Rc5(ʁRl7+ ne b]>*2@ρsXބm:>d$4!b+a>'bV#bIq?!aOy[1`нp ̦O=XX*N`kZ__V`8uKR- ˚鑟/TO_K3Lu=1aKD G 6A%$X@~%/lq!Wf:eɖ,ls&`/ίP/>TbRܚr/5]re{E@ދti{TE)(ME(MR""{/BHBHvٻW7Ivoow̼$t@Y[V74V5hxMmC<cptM:9*~ב5aM0"wh(̈ ̉Ckbπ"->´넏 @V >]屈Y@xP.B K$Hx›qTj?h"AE. Xִ_i% bD:+ ^$0'' @ `oXWgP!7ށ61KeSkԡHg.Ӊ)^5W,L-Ԕo(I^: ,MP+i]lOبo<:'S;T-p3tݣ&+1]X}w`|x*˯{ľ#X>3ca`XG5DU4 p KR1>n]NZ[1@Yl,$LͽY7ɰy _du?J宏Ol7.j9!:)Е' +~Q56>|=M8ZWZW9zPs{S|ѥSJjx{ U|k[qS@뎱U3H@ݏ`Z` TFc&W}`(- EǴNt#bn bt Y#X;,0CQ-gÀfbfX6o4`I 'XC D[`=pBS&lq8ϧuH'fp4yI xB@<' rc ^Ek* *C-n~^o@?J`0_LleWVٵ%^ w^aZسOѾs(-}x1Z|"K-)S#UcBvpi}L jKa!> Ȉ9p]yp0* @$us^Rl4Kid̤#_]*ó Tx#*`"`2+ބ-Lˁ7ll+A2ddaVl>@&Z]G S(MO<wB@XY@T ڶ( s9^$E‚ZOA3Z[͛AwIvnt/Ji=kE^\>&MY9_4 3B($`_ n[!c̅av4Ԃ8 ,ͥ@ps!V bwR_6PNi˂\*In/ewP_&:^hkaݮݑhq޺LRY6K C2tfeX0+}h!<*?bi-E%>߄l:2|ai$k))9/{`>&cBSU0 b :( @.BT?U?n:\ bj~5?ڒj/vu Pל ::}5B:<.=>OdFRu|"u|Oab2ɶ9dQ9*c3~*=4%aM{'ٱ3I7JxQt6>}>cR7Z D cX<~YN(3N;dRޮ4$u_bhߵk^%B1{+KC ., 91G2RHHݠK2@)Dɷ%鍣BE;؊B*EOg+.A]LVSt̫iM_vRN}v~|:uxL ,\`uPrfQ RTu rG̊YƃƃK g 30@ $Y_l67_[pS}qp60;+D+xEq8NQ{tw؂o[umm4οkc6P,Z$~i]xһ㱅ע0Λ*Z7^Ƨ?,?V}B|k}ImDޗwXŖPmm5Xz6hf7yiuy~$/‰G <} s>Edz;Dg^OR)ҭqߴ`lQfL+38}8oEt uC6/芿Ot6Tދ)|k5~ ҏo'IeW&k<$˨ SOc^dyNVXf^}a OgAJ &($?qYB7QRf"0"b #S퇁ANh04|VnXx۱5u ۢ!Xa! ; w.2MZ2b\.|KV>>LטwY1ǜsio^@IDATK&)GUe6nbE"?`  w\&0>JޯF%nG%)RJ UN+ keOهFTyGy\=#ц8C1lɑraӇ^`㓫 :An0H*];FD98kkOmh5U'66@]3mm?˜:<6$ %݂|pR*zF8 =RH;MDl#wO8a+~#F @4h@t?]APIZ)m65FӖŖK,7= Q6.4.M-cIKxR6FxBҘ4C289$2B U*4F.nm681h9DNutςdD]fgF>n9]g̼ sQnpnܲǛ7q}~ P Q„S?,I0/ʬ9r@%2V09 KIo=Kk%JD U&ͩPݨ'٥L:iu/Vʧ%1+Wmao.׍Atկ;K|#ƞ>֟ W\Z1?ğ/O[q0u »V3^Z53{II4oi4Cj[Q4x;'a(UP lΊOO6i].c;9]{aVRYuhǑF3rg8hN)r.&ۻCod Nx.A֩]p sKR&x6si 0&Lߍx61+ѵs sym@~'6*grbYdL19[ii6}}>A?Zϱ_~`?.F{ ů"5uǰaG%3Q c<^Ҽp݋ (*߲77&Y"䬠,չsGuCV jr .9ы_*uy\]}2ȣ? >۞MvdN^OyH=O~/^JtC`fg`O[׌!,F p-}@Mf7YEP.r!8wVO|K?*F`-Qo^1R XE#L6"D ʍt/"zǧ_)}ƻ- 0. c<ÅimWHu!'e,6F3H/PQ}~XߦA@j#a3Aʘ:B`B;UWpIet90kT+t~R[{n A j+vWjР/UNWԅ N@Չ++ rՌykrB0M쟾~5jg;YC`iqɝcH;΂P7&DI'-BB3:S\Ƃni v3<6w5:g7*YTR6۽QĚ^h#tSIEW\K(>~pV%<w<IS 䮁e; 5TI"v$\cxTQ?bWnP?U }.ca/8c*5!D0ES;ҁsa{c)hk)X;cO^PrGhxB+^r"ade3#85uYI_VM%Y-{efS[u g]ξr_*1b!-iDDtx.OhLN"LΡ_]AvG&f菍"A?}`K $]0d;eǶl/ߜmݬ}8~׻[[3Z%kxϺG^a/ݗHn]T+vB‘ui*KSU޺޶ٱv7~k31;;u#²~q/JH0. 3H'a%ĆUǽ;~EZ gcix}`Y4oe,/ȟ˕h)a oGဤ1XzBT:ў+ QB)(5?Ak,ybkD?`4_*Y Bm/6N_'Ste+P(MD+f.m{G|>Pu@P`U 9P[^9'/Q1`o eX_IM#_9\"-$Ip-u L0|:| Sj\w7QnƜabʶK?Ûr5[Chqd 41z@qTvAb\b^ $,>}:#~3@@froܦ[opãy43 xcQxU8w/L4l ؀EӠH3`̺ai쉶\Ų xYAaù9Y %%AutLrLu!h6':P\|<:̕k-eqQqMD`sBGS# jE#[ R!ނ嘴Ħ;Q۵FDiHr^نJUYO˓d|X/\.bmX}G[xW&l`b,n$K<8B0W  a25X:"+ K_\䤁t;l+ëEg3HS+LOH0<{xAnܚJˤ+"*}d k'f1-VT5FuQqYdA9 f I&<ÅW0e&7P}}lӯ= 4w+늷=?r!`䏈S Uk1>EPb?U?~GO +n`̻ͻ^3teZN"K1Dөx]ΟVժq".O,XEl(3{f ~xW-Egf|K :UD4mվ| V|>?㕿(? ~붱f*|,f`9ptƨ g!/ %Ic;¥noB#{*ho9_u *cuuY?e~ـ}q_C5/e@AD_x ʀ@%'Kr/em^0΅~;WiAKn$V5l m_V/;e4u#%/̑h~;+YjuDta7pm&_q.:cj&zN%mv݀@nd1v34\f_:ϧ}e$f$B PZ ~/~ DqS8<=!nLJ^hD-=,f-ٛE;Z+v֬^d5bd`9lĮ*( |cɬ.9FY LJONl=e(oKHyR Tʨ,X"F1 NG‚oX:fCh-2ca cPW5UVh"֦(: _nCLS<x}ipc $V#j !6H=qg}:"7Ў賗ׂ%ivr  91TH=Bm dKnjĒշoq\A.͖{gRz~1ˈz S}A<}$jAKt4vS"<t&hו6@*`Hz"mg ފ,BN 88; ʛ63ʛT.cQҧTE[R,rr[}>ў,W~Lgڊ.;/*_3E^/Xb}7g;"zz~3zzV_AfD G?: \g;i;^K:Ug?w7BL/=|R:a-lbބV3SS)GahyAohGO->>!LDkaUBO ][zA |?¾Ai'/ENNWGu4B[{Miv(].\fŔW:&Mu9R=7 ,3bDf.xZb]xDzVՈJ-K\^U-a3Tt377[h3 }''p4qӸϸ/GT\>(jv~>ʼn.z>~ǎS5g].mR7e^ /X ,WٲYXجY3gbs?[ځs`itlB6N~x(툳/:uػAlU;^Czo UD?7'r/|h4CTJYhhA ) /G)&xEKs146@>#WFq\ K`\|ˆG*1X Xqwx /=}VaGcnM巌_<Fä6؃L\pg)l[ٍ6DɊo/Ƌ @.iAiA fem},4rll Xa*|!_JsP <y*7|8k s%VUEKğƂiݳ# 빇џ#!{_o|O5+(vrW}/(3(0a:{4P_3TP<٠(+ Ѩ3 U1+.Af ]q2V&!b$?J/XtYq&BA.S^ %@)78Kw)D@\'HvZc~)xlό`me0ԇ>#WGzN+)7+g5Hۘ9j͒d.ʧ_IJO Yuw]1)CTV*,ycPc"Xfx`c@ B F9PO։Gh!r9JRc?HJb S* rňSoɧ)ضj"~$Ӄ0L,3Eo-p3{56b0nW~""d xW/^|f8h8x14S hάY'!nߧ)"첀SO|1DɃ+Y ( 4^4 _TYMƗ[|7+V ?2ގ|PYgK/S"r(j MZA ZBqEJLXhlj 1ߋ~ pBthCfĄϝ; vv}K.ڗגCNI7 St_{@("p8ႥZDDknVB%_͊DE鋓;"_3iy:ߨsfѹ/Uÿ *oJ6=9אnJoPq '!x +Xc}.|3lZE9V+5S L%\+-މMe31OAoKs `"%CcaDJ$}8NşǤޝ--ilPi) @ΚaH尾Dg&_ێ9}a{L/6tUT&f&:"eD#RwiE%]| _R #E<_bMmH!Tkrr35t5txxien^;v U*)By`1,h *|]&zpS=ڿە \O#>wzx7Ϛĸ4o_ySϮⴜ7R<*2 \#}B;̐X¢MPBP0<}]ok ʶv aBC.@!lf @Da}3:c͈ &եX0"@loR;qF?5FD,s Qb @3+$!yHjXm!hX`=}yd. yv") H*40zo!Ev&.I7P-+Jj)$4)T-`o??}gb@3+|dm7lms8ao{V8xOL~`72mWWkV 8:"lV>ZNgKP  5WT_!-LU"/&LUB&fpfy\*}-Bu +MMi <@rT i-W1nkt ~#`[!t?' l:N><f{ToL[4U߈uG<'67ܮB_bet{lLR-={,Dm9q?9LS?m:GWĻ%@%c1dإfl=xݑIoG5o]7%5 t{e=jw۰먓Uut$&s'E }h-2V!J=wƽy".̥iF$ Q b&Ĥ6?7ḋ?[fX2yXָѸG{P/ QpDNi{[>V >C%ք5eM,/d\T.y1P mTV2^ț̼)o,Qq,`ay$;iRݘ(9>Yq?-%k>ROomJ; i U @pE1 &k1sO^H.Fmax(]'od?)` 9ˑvRfpf0_66F6 W^kU@s>gÅǥa*f_C&Cn俸F)]f,x_u:Ҕwʏэ.!oitgJ?C}"}Qk?:MiKs-`z.!bo9rl>fQ47}٧pN.g4h̀m֊%%ߟ9cQBhסmvBx 9d& X`0L=NS_$jyemjNw똞j~vi4ӝ# W}bRsmui5`o@VFD[pj_QL#Q:(C*+})w]}W4~$c럃Rvx> ;^v *f_v(> nK -*pSSӰY(O|} e.`-ܒ F} lrew#*~oQZ {oH, nB:ڒjCZ@3_.ܤ/|:bst"|g%v-O' v Nz8 cAЗ]7̀oo3f yo 2VQ&45\v p؞[& $x*/AEx/%y^}|;ѾR NZ3t~g{!8 ݾԾjTTo8#;aA§0sw "\#VbZl&{a~)(N}(u\ Xsj~Fbjpc{r5H۞p1, $*m(,'PC b&]k,{shQ/I#bܼDDz*LXN2 H:; ,>=K#J%!m7Mo@H/ϑw-.D]auP>>`O°6kj4YSOSO'!*+uPk6ڈ[׽aZhZyp IgaVB;MgVfU`D%zE0=-ê F`$rA#Q$CnqC蹍=rfMjםE%[/adw2$l@elkf|2k-e.v ?vZh4 2H؛"%@V/6ldn)mOO8pf3 aLuvh+{48v>V :Wׯ9k@=_$$X]ݠx? &~?8CnΩ3~"v]RoF++"&-x%קҒͨbk#$.)R?~첄e3X&z]GC m;vG{]_!͗悱ggKсI*p ,3&>8Ro7h+!I!-2 ]zV}y=:=Ƃ fʒyc1YZʼyg{ `E0߄Л~}VP$ڛ`R\ѕ;'7{.KwMV6j,LDeW*B}%ėurv&8 st3byw)ņ)0=BB TيA"OAiz)g b.f. %M!N30h2pZ0j@C07!Y=YO׏G4Dз A`SLA&~]ϦV`;;l\W|bփg-x#C,*wQX `Vl;{iU`M!Kr(I㓩[Wii! dg޿Hgsæ{{ j䜣co4(1#ϕ&H7-}?dj; *wonELlXVbC>Re$/ua6][Y~hdܣ'v `/`A+؇Ѭ7  B+ʈ9Eä 'Kga:RnITd+! o}{vN;Y}utո4΄| T!yDz8 -d,AGsaYYI`>5߆po`m+2 x]yu`|tO3πUZE?T--,mf|Ţ1nңcA .@GOy![P!xϷx ,K' e|qWxD˝-{y%*aEBwΊ{\BSV[5՟+bċ1Ō)0ƣ3/˽o3Ʉ}gSab@o^xB$x !R`T#v懍>L)AO|z=g݆ôS&ԓSikS;LNN7UR6Na,L= ~OyV*j&Mz@AEd&c}8'.0 ri7=ɂW^JH%.*Q\\ \<<a6wpLlg; J?rA۾} 3~:G#| ګ&ia Dńc&w2AuB(v94ظ"A_ˣAR'36Pۗ*FU-Mz5|w;S.%Rײ5v5_oTtֿ}p6WdB5'٢\$EBbZl1$mH{nI /X`743a:}$A844 uNJ)f __zww~nܖ?{><p,jU݌ݰd^`|Smbab޸P?g Mż}"GI@i=9Wے7UT({`~KS,grDV3Ʉk~D4%,e{Z"<CQ] B=\rp[h!R08yr"OIujq-nv"z?nbolg" o<ȜP2o ƙp儏FFhp_M6.zFg zݗ2753qw:V ECqho1K/&&wXq8vI0LJ&ŵj`B.>煦U7%B']Bi5;۫p>[ےvԥul)t Yl嚱բvSP\g`,U bQ-x9p`KLA"v>J.EGYuVuV:blA0~#@- @au&|\HaLpx)í"I "8v_`1_t}Ƈ!=W-O*v0cַf clw0zݗ8XW}|m-/!+cՔI4W 3\MW{,f% >Ooh)=/=i?,su O<yA<,Ff2,>}u0g%N{ʿ׳weQ) )Y XzYo3T6TLxbt-׆TW$D()Re1:r}'UK:gW ;^KL-~['@!ܭWy n~= U 2PXo`JEbi_^Rz9M0xEh@re``PEq~)@%6s9&|Ex_XA =ţ!t <=Y:s0(y|N>͡YBo+Mr\9%F߼gӂ h&lx5+++1:H` Z%MP Db÷m0fr>w4T_`\R|U $& Mp4RGdNS&+-,q ޠ*̷W_c{c}D7c@h @IDATdOl^Uہ\ȫCX!h_]F8Gg G.b Dz> b %2g̈\IX>e .5LA<:D;i7)7߀{ _g]v(~}x"eptzX # 7ǘSyHkoӀ%b& i yk}qC|1ǬTAYk1H?H00.;_V0$*ΟbJ"Gn@cqq?OMa0zFL^& --r3ַ4FZ!}N8(dzoqXѺ-U~Ǟ醀i=%@[|Ep9=amg`bňJ"T,kQdþswRߎYOSJ/*5uֻTU GYI.f`mփS'E]AF"k[]K<GП!K @pl c l%B(:Uw.S/foXgHY+͸΅*x-~`됋K`9ʍ2&Vy/VJ`,-ٖlPǑ,{ &A' !g5dT]a%r3ryuв*Ւ f}gw>} SVP\;'wIwr)W |&~-jb % Lfei8F>,uM+A"3yT塥t_Hh>rR!`[мt|p0kRs8YnB*L*px>V_ 'H= A%PўBȧLjH(S ʗ#'dfή9D&0 X+k]tL-q"``&ĩ[7vZ *1s~]@aX@6:˞> L\C^ְ@ꈌrQ[TIL%r2riSHJgur;I&sZOcas<+Īy!P~s;G]8J AHo hȆƋ>}LL:F_-w;~39A;8;spzN E;PI>"! SK00=ېy\&X,ͣx[YVV|U#6N:Z s4*1vk@|(]NuFEKdžaC Šj7.x?ba>y/K bO^P"deXl A miCڵIن)]i3RіQ?pB"pV Hh| l&86 ˠwhq<gR}pw2`Ű{ Ĭ.k!qŘ|d9n9(/ J,W7n[K. (åᘷpnJ<,N-Stԃ.hr+,^@Hi/"gȘ/٦lcǂه.a[+d-m9}~_ u ͩ[ȨtW ##uFpHR*Oݥ7LYgˎAj>c8_Ƙ2B C0wBzt Ȃv&aj I IK)i;V~OJ S{h&*$`f#4e#Xڸ|Tr'j_~y`Ίbs&d(L("A(`W31HPAQD %l>q{j `} NuzΜ0`fT7ɋ˪W6Wپj(I&0l'ǤzmV@6(?4lpK~:(uJRjXe{UViK #*TTN_/:21'8pN5MlρoD?n`5HiК#'󜝠;}2XLaY85FRKYϠ7Z70+cʲ>b\q1dHC ^zD:Ir"7B7/|s`_p /N? |N(MBGlj'1@fX:qUyF>>gj>U+Rƚk o2"e>og(:ǜz롟]>ʈXΒ!VK]NHkt9 ,'87xMf=!y= (}@H~<ZB^{Kxt1Yg]\?&cQ"[J=j{ 8~gסƓ'S=?H/h6#̴TȜY'za"7ψ/\#>$eag1)ܖ# zkCιjD9 @ʨ%4f9k[lVZ;Rul𻄃>W&pz*R'*Axn"JIfTUQZrڹlZmA^PWl9v^ðYikaأ<-%}85Z@@nDHhqNF`NQt ?ʾ oNaD!@Lc*rAO3euw3WxQ'@-87'nf)'?<ݑ/;$Al=jj&3DOMnQYظ`NuʛsmZ^qjիVhXսB[3ް:^>)փc*e&B`EQuf lwI2(ZR_3Dk b 1ID`aGIA14!)pu /UdUBHp WY~KthNA2>,.bs}3#}*xs QVUڨsO.R5oDTcF_m=jՈ vL0HNM5d9V +SU6d$ Saͤ=)|>e?qF8ZAӭE.ZLksunZ{R%'l՛~+e^cg8KScE/hh 2>uoI   STz+ԛG) ^>grNkYw5N`F~`v;(fXF{ߚ^Rz-Hp%'i &u.3ϣ~PO;(t]]IWEtcܥ&ו|:9%We|'OT]ڪr[mڦ?B .T5Z\_Njq-hpM5Sߔߜ&&׽IOHV!ӃU7; gOX]ZSPw=x,=Rßk-V,QF53ȹ2|odkI_bFꓑRʪ@gяhq8K)fyGE0ʳ)H@)ʼn/TNn΅œU㟮_~ցSntr7ŝVzw3v~oXm59$0[PZF1$^K܍t|<89IѬK>0 f 2""pp_φ 'N`ֳR.ۣLg2E(Lv !ρ@d2k\^gfc7'p``` e7ߘo&ސEW)/9N%g/+%.Js\_˟OvՑza_m eXWŚVDV$#DfmpdR`W7 8Hn{{XilT_q:V3bxxsm7UԱ߬q~:'iCWY'Tl]dsMP^?PCvй(Yt67U_Q<`_s#m -O jAd菁 ,,>gge93 "7'A2%P|N|߷I\$Y!ĞjO9YGٱ@c)4{䂁9R.`%ߡʮ\4Em78>R9r3kSqeʜ7"řeν}-qyjڳԗ{t-Z74?܋E冱2v$XUs>T$ 8=*,Ϙ,Fh$AHV^Hfl48$՚07X豗!5M5K<|L)8^UZxyT4X'.?\?R=O}dI/g]jPȷ;E29n8'\;1'-:E d@,z`j`n36stiLKq ӑoD @/qC OqzԣyVIuիvuս;92J앁ɁIP7{zyE*!p㺴`vY~{>W!2`S"ȸ}WsSPשٺ36GmHn~~8uo< N)jV.Vr\OsfbC{{tfd^qg߈R'{~9P*92{--=QѝʘaD@dsWG#GplEGEQMH|H:gbp ,,*Q2E' ރTQ8faU47DM7xZP_b>y~!+sSmY:Y).&zl _.KOY(5nJ1K*g]cUYf8I#xƌ uU^<Z Z&QDŔ".t\8D ~mW R;Sj,*:P?I a}(; rd>dRO@oZRs5*X2R h4]2RSU06*Oyzئ1E\R-[/~35Rm?aIҒxlA"U\z͸QK^J!ƑP8H"yϫu??/KԔHr?2/nJQ_FfZ/x Br\bs9ϱ7b~-M?1|>f?ppEP8UUG؜vV z>~9>nm]g埘{znnf%Av†{‹݊ki:\jM"r}z:ezzOdt3&Q@a o322jpܖ`gh`h 姉h"cgQ« /Y(U%7풤Jie#SP|tJ1Jd2f9= kJ.ݡ]w=Ⲟ שuy-;sIM5M] ʹ+g*e+oҲJ6\rǩB=Cǚ@&rI<~R^D*Kq"@dLx-@:.1M[ӖzҞa?]y+8`9i[nGWI r5|W[ػ%&d?զ幮Ú'6s9 @ ~nxJZ7m葉2Cy_aK{$RdIȥAS8LJGq"s`pw'́=IEE28[QIW:uMz&7ݿ+\Ϩ#Uݚcgr᪢Vn!Ź%Fmpw}uҽ#)|UT1\BЪ 2翭>uA.uNz>m=z/~D)8p]1CS$w`rlv*WtCۭVg_M~9@qF(;WSATM2](~p "eE/<kijlj,0=7d h`{oD5_3g~OdN7\d.A)O7 [PH(&*vaƻZRO;&Y~'y%T>ȷ1D @{3fj(su!2җ"xLҘyꟈ`?{]ӿu)oK|o&*p?Y7|P/5eDs2Gd`g ~%`]`>Ěa8▩ ] =;&p''BT*2?R)8l c ,E~k7n 㽷awɦ$,x+q8k֢UϩzLBj1Om#D,1T8 }nɲ"s`?q 7Eh(KD\, !!:d>cN߳3.ZW{TWaV0u\5ϠR[ԃCa=:roܝȜBUKx nRLɠ!94]]]qaI(F&F&B_CBn|ppS/[YOq.R,tP .چ/U"ΌKux!1?9Ȯ!+]$,Í[NC2dV*bkHqrg}Z_NbQ 1xE%U^ucqtA7 1Bh˳$Ũ+U|z~_Uv[ 7DU(y+~:NЏiy+ 2v! `^03B{ox|x<18P_|؛'o(j{g* :"33Qde.@1^b߬o&tV'LV2<Nn !T﹑}sˁ?1y1#= ޯ7%HM$/!d&IKuD>;X`KuX|g!Om+}n0bmtRڋۦ#HE ܌%ۓ_|{}s{s@sC]G^i@e' L#kYf.: > 2F;z>bafRH8>j9'9xZ+"#q >xelCzq&G$ndfOdd1­srCLJgkXN(/0#уȀcc[cD+21+1vxՌc[(gnIGt)T K qCR5Ht^9>7n["2(µ=(&VLbn[[^MLF}=rHHMK``2Hp'q <_fn00+3l/>|X~ds4P+YhomiGߢH"לw^%xV|Ghj{!qK2wRVTOkb2;`fΰ_|w~?HksTC"( lMR\eXC@$NHO(ztdao{ρ=9XD3L<] P! oq A=G!rn`w&ҪG=(|*1<.Rj!w$|te"M%ƵO:kCΰVp/>=|ƽ9MpUڎWDw4CXOKLlf[Zk̝TgkWT DPWu^UWgVWb 9_|?r{=؛e}O[16=Qf0 |x(wa(9f;H쑼2y%33G/[o3209qFFB3ɠ:5ܓ,4'mG҆_$,d{+q{s/G=>Ȉdw:nٝe*̩H?utk\+ 2RZA ~uQ##DnGF>|1uk~~zEV'/.YFEZA"$@f_ rȧzu9J􉺞{=O9dX+Ƕ08P-jxa,|ؑ]?3>8QɢTb7@vH+E?/>|~cbPm"2F0yZ]V2(z~OT!N37Wy4\r9h)rbgj7WV etj-3b+}s?y7 3eNYSw'yCC8eHd߷__][5rM UлR3S31G!#v_{fazpns7MCӐ￱??~ad!J;m"̵6m4_B+@!g3͙NgnŒsl9U}i~D>9KP/ k5ǚoiuldD}5P'':*Jty/c0|!㧘ml q|~i,5/7ٞ`19`w2ݎ6ρ.W zy >B(y ]g`"JdV|;3I^t-KI&,+*q0JGd{;-4t@R^!+. 9j9\ %\w tFBZj{u<9 6\t[ݤ;Rvjr\zک[1|{2z5\ż#FVߢo`+ %h6Pe]8"1ߗ>. 7e}C#2X ꞣ@UE &BY-AW&_܈'P"3 =ͫE&e|"Q7t3VB."$;62r)ȩE-J:&pJg_։Vc5j~x_w[V8ץZR=io߂%|򶗢-Cd:Jud{cDؗ^nZhl5Q:ɟ'#WYgsgwOa( Ma>5̏uK4$ӡ \!MR6Q?r67 S{ZW xXG^uu۫bV}1<; &x=GBZ~(rcu:`<Мe.2hsCG5`W+XG~#֮=l"BӁ]\֟ϨG2 zmkw}o}X_L=ϝvQPB>b^oeiA'u3W50/>J)˭ G_`S~|H7=QWG|~ݔ`QkZ-Ѻ )X5Q)noRAq>,O;Hq(]O(w @SWawH5<#~xTdwfWC,]0L:SŠ3_[= z3ο꼑:8 :|N |8H>J\\?#ݦzt?X\ߨo Lh-$ *UJ]!rKڡ03L>=~{:y^9(Ɓ,sf|KOIF6G>)d"ZCr+kZyl [\u6f_Mu8J,I}, m8[J$NкW(8%IWEρEOsx;@'{ @NTtJI,5>79Jw*WT%-UĎ~[DR+y'gue@8.^ԩ볱IX>grEΙ^O}89)Ѵ92kkE*Iy0H%fYA=L}:W4563^+e8+f!"R: ^rrh-;Ӄ7SK-;9;{ \pFU ,kAb}Vm"viraf@IDAT-=uWFGk,D͎+Yʕ W ~`fƍuBp;V}7DWł`OO}>ݎu']~w,dJ1nF$2꧀.tv:b2ZZ{.J2sB7MׁtT7z o^"?gBR>KSU0 =OE~d#ZBeĘ#Qz}v ~VoAp\_ Pk8_l'BcAJ~qRH;5U 6vD(V8'^9Rc--snr>7!opC!* ^(]g-iaZCE< PR)m@Be-iה cm@[ԣOSCe9^ VB75u:I"A_ϳZ0zQH zxJȸ7K>&9sTq3ӫd`޻~muZz`jԐ/#'Y|a#wSu]Y"z}Y%_:R_ $"ˑsչNNO]_u=Jeq^}ddMԇZCYW閺E;I/kZ ؓ,J} fBqCx-T"(^DbQDH'n_ӯϫ5d=Rf^Hg {22sItL^Dr5թݕaRu\C5U{J*݅gMrI7zX:`V`?ٟ8'@o^BOs^O:~vn45#Ȳ}johUx:+28DOGHו?x D=SJw@_[ҹ]bE m?Ba=n$E,.NA?6ˈ|<{Ob*^.|ip{#{X$kR`<_ZdWlK|2Hd&-nPY%SQi,S1n=ߋ]nV,ڜTV/;t{e@yJL$9 x`#6$Np( -?TЯ{{~u`!z~r..uH2K/?T.M &zՔ~<*~*5ތ xUrtg;B餮v Y~98;Ӧ9E R1~A)]#Ƥ#]{)-z/@>UE! O'&S+SMgomʠͮYQWP7twoyn W 0up kcBHIœJQELS `JyAT+pwiӭHh7 Tu]p?uVAdk2Owiˁ5б@%z( } ciǁHYCO'*g9Hlq. a]׭Ѓs>,r"&#L+G:OoR 'Uߍ`2x.a_.Zu`(bj&@?؂11z|{Q+/2A;4 j Fv/Sk ` \i->HSU[^*k!p_ffa{u! cs!M]} Gv*`2qw~ ^rWy tj:-ee?RsyƤy*Üap%[%%Wi/u(om?{.,_|G .Qlߏ-O-ܓ@UCMs޵OLvTdB՞HUx5PoPpw-K\;pwY Ypy?Ԉ#ԉAy#?4т( 6qTBOE!gBx(^b;@ pr0xP sCe41"PP~P 1 !ͩ?GL#ga;'֠XnߣX(e`0t xjףk.CC{v_|sǞhUrȳT1JORO#nH`6M5?C}o-Z|RM@7ɳ+0ʸt1+CZ݆9J$;Җwœ2EAڑ@ 9›n""Aej8闖-K'Jewe3ITG1 8 uw'vPOG.t@#u1AR});aR 1L 9\?ÓcSe_Rv6.ɸC@T ?P\'^3\qN!Nԏ9|>gqpk k1Q*Wz (-a ΪNLT}Ie^It Zn34~~3"iРKrt{_y  $~2REċ2_OG"]N]lML^\\҇PfH!g^RULa|sjb:q ;.I :7acg b T?Z'j>deAT[xƚDFOUh@׏8 0 {"|GLρt%7Ҫ*t C NE,/ 666/>OF9ќ  ~z sǗ`J 3Px: `KT0J|hRPח}Џ~m% o8#%5 `"_G-xS(_#^q>OЭt+Z|#pj6uuq*_O]::̉(8NEJG_pBNXnt7KgV.QIG0J|Z*RLHJCS\O,?2?i6TwAPQT-F% p>09I3ՙ-݊z#咄Ϡ@( ]F.|h)wDGDeCtlz#AE-B,0 Aaq2 ' vw?s)Ed'P~}e$^*WP/A6yX}ޣY(y|= \aOǒE({q#H&1/(C'qP/1k}(% EzY#m \x 7pDw@|@l;衠{$ %rY== zބ> ^`gzl/#)'~Ͼw~s?{tuWC+.8w}W/]~ Pzg|e˞xq̞ǘ9dCۋ,5Q{qHDLC!$kn?!beʇiaZ3َ6".&хrIOޯvlh?D"Ƹ}ON ]kqI_qɶ.<~pU8R.2?:t{j)PP/f:ݘxꪼP:OqNR/`U|'Ho FL=ƈ~T&Jo )A٭ 8vy|'%@%k8-4 mFNvzP^K*)Qɡ☐V E1u1P~6DzWWZVqu},JLͅ3!=u,4=!,, ?wK}NS9"+7 D9>FO`IwYPOndB$]%A=//zͩLBѽ sį1X@rDC&{\RZ4U>=Ncρi~98w@t8" Ӣ@.EzIU;xw0 I> CBc!)Ne7_۳Yplsڰ * P*S/M?1pzKmrGL#050fa$̓PԷ3RnOlK%{sJ[a FC h3CpU|V< u"@aͯ ~ /އZ#stq83;q0}'}>m)fU=w@'2GdSBob77.c _:@5u&̟?= rbcnX_90;?UPAOmGȸ/I_ fh8lG8d{Axh`雺޾Bd 8-qe'&\ jG}Įaǚ#%wMz\Vw z@c|<-L;vs ,$|ml70OڿП4;8 S$RY]}6!5@Q_9~= ְ 9ύ~uwWxۣ^_"p_\0w (-${8>E22|~{LA$!8.?p8d(srp]j^Wr`T"M *"2^/ҍVIb "kD6-QlCe=qU^y IW~2r: ܬ}=O~}i'c,`+2/I s;y@Fd<ȿ(A$H};ߠ.%v 0t?f1# zi!F"Wf12($9N(zQV, a̞ٝo@hTFuG{5&sC}5qC|3E/2# 2Gr{..@N=^|4MGDza#&Oj'eLRH Ph"#P%E1Lq\BE22Euu(3@8Hʴ3 }U@pǑ9(=}tF~9s/O =/ˁ5g1~ ߷Moy5C;vVC.06@NapC[_xhSeR1dUD\^Kךuq^j%8"tp8A0Z9뤞1u,ZјO\hkBLVm`3x1:m,F~\g?fSMA=96Hb4?Z>Am7e4ߚ2'F8;"p> n^ ac`qC<w\wWW>\ 'B%`gE zsKfX_dYDS8qy$SDZ.ϳ=:59$N'M19q~ٽ:o @';Z&\FMAns`rw[~g#\YDZL]B"*QYJiILJ!}OՒ@]޲*3P"B1T<7w~H(0p㝓x MYk N([` @, 1D4gdMq;ڍzSzNQH9f4(#I}R;ْ9"2'\3@^#UnJ.o*vjr_V~I"'<:.`)(ZcC"+oգ9W. `@<°fdSd랙ڒ EZbtnw{n9qc#Y.xkP֕| P02BB""PYjf&uPxYlVu }qx棓3ۓ)ڿ3adNUt}g}Ɯ _wEvٯ\`V&|:|u~3<D2"Aa}_V}+x3"9(2+!a>ځKۣwF,{)X"Y]*NI/7䉳|˃ ='"8q&._#&7Uo,B{Xr.F9Abv썑co+TֵDVͨӓȫEd;*T*\Sv=>2#FetuE>>k=A7[4MyIQ,{EHG 9#QL b0((&dDDs|xoٙTU]]CE R3ty9Svbb׃-Mp[#+Їj88Xou=ۿ@懙 9P3mw^.WGi/{J?ɿ59񘏖*/u:^<7 >W*=׊;],cJƔ%|3[i޸oN|+J7ƂvPIza^.)w 9L=D-%2 5}of[? 8R<Ϳ\6B!DsH/2%cHk/v3Hy|`76N+^[enB{P p}?9HL 0!NM@dgmzܒ`0X%:7979F)aF‡ѻȈ'=X}VA#b@g)L~5Ů:^OG})אps`^~)kгLIU85c[JFþ0#ZJ`3MZ]o`>?0o("J8JJi j7/+[&Q(r=ͩeqO}YRYb= 6T0v,,6(K wtMFl,%lxFsHV蓮ϫ= =ނ7`ո{wzIV8dr(PrA{ ꄉ.?95/Ӌ(@d\ o3#rx ԯ F=%xzgwB!`oS3Ĥ;B؉ w' Sp5 1(øQp?A.F` yA<(R01_iXP`iA/seiHeȧnu{B!DsFPQR @فG2%>T99/V"0`"+]759)@PxrDO(:]U5J(B)^9C29D^AF)iCCh@yYӑ9jBjƲ D8orOKOW%ZڢC ׏ `ƄqҼ[2a`JMD9$,(]C{z TEO9ˣYyp6+_k6mzXa8|wO(g0uͱWqmVMH`o`!hsHDyQ,s-s0 qc7A4@<z̉dCnDzj֢~ @9sg?B}n(H S,tg3|7u)pʸm `HڹAbc> įR귕ۥTTyNe|+-j"cE'-'u-,wHx>Q+pQ/ܗ9 =}p;S(F }[Rz#t #6Cae|yvkd,9JB!]"?1rFUDA_bzg/<)\=~߯˩}Sz&S5wUUoY&,E%8`ϓR_W(zN;;wvj>ebgO`6`+dH/}|wxDS(dYNKV٥{Gƿ cp|7{_:wpg5~Xi{]c77Eew+u7+|]߹P3/VK=ʦTOXy|)[f~c7bk9Ԟ{(A-*8etVr:5 qiSyN&f2/XX,ȟoXs'2;|{|В|?\8{95qzʙtVL]ZZ58:p(#mxU5b cnNV&`o#Nl*-P?LT((p( CK((p.)`F^F Aϫ{!T a-i-Ɂ=_5xD1]`}jNtMnY.]<[W9׼˗T=hמpYE<|D\ CpGc:@3;+}EiAi?5ӌa8{jc+= (:"a8,060u^k{=st]s*%" Q}з?7wՠE{;،=H{l={9*1f5OU cw/Ϩz‰Y Tr_k$|  ݷ{Az%[Jn[wLSӷn\9GvR/svOQ|<+\U4n~yQ%? ݔ]ZKXʬզ>bI[^[9^XKA&f\- x+ӕ l㾇Am`]e@#N^'J%vdyH{< F5 rcͿ̡~U:V(a~-0]@8No8l"ЋX'2C|&{ޖGD!HIGSt_E1K!dw5:(ծo^lkܟ)KoegTMֲɀ;տ78ѿoF +aHŧIyW{=ҿ1\vӟHRex]{$dYV=u,wh_ֻsMPj_m[UeR;]91C뱜r;=u~$i Q hmGSr?&]zvww18ۃp1*Pu`zl$dž| r CY+M0(! gOdy!`"ƭzO[PQS!<eʖ OJʿ,2uy1 [*1jk3͜#QvV W"tVMpAKt=|"{w K*>_"ށ%bϺ L L9nJImşYiqaQ×!P3I^00M׿7Y@Qh6Qq]=Y0j786};X_c!\60ɟNv'ukXs"7 c &!Ff K=~ dE}6bakBU^󽵼Oi18cP9sM;3&OVtTD 6=f =f+Ud5kAu,fX3$z69PN=ǂqĢ8N ! O8uL W0>&knanD`~a9E1hJ, ʑ? ﷙N]}4+n.L;E0֜TcۼP,8\2{P($ԏF4fNnSYSfbM20{qvNT߲7|e&sa΋Eq[:\4|RYw"VYgӔq]qмՕE!㊕S?~jYፆn.K|(>Qd`+d+π;F lr@D1Tl{A"@E c Fd&2hhc 沁n#e6wQ82:cٿ;?kDQI0pP>\(p> 5s*d8 ¬FH?@ɔ+K e8F2(̓ L78G9u QS/c2"bөq qD-Ne0VPہ5g3hz5g_!>ۜ>r=M/XVT)+zCкr&)hJR]i(|cSwƲuTX}|w.2~aznYqԏE'V@<֫-NJak%c|APuãXY|'f7 Pb+_~;beR!案8Qe&@jPщw%SAQ@ZQTJ%yaޗ/%ma9HQ:'.4xܟY C&}S?c)J"Soѿ(i2k⻰EޑǾu&z0~|́y=T a8tl&p>`*Ϊ7! *3]#8k1ش4O.EqB[ L!I.)l&`$/(P Re /YjX* ΧBP9 9 Z?(^K :pŠ/A$[!n6fjs+G--Q&wr QxJS`BۉvLℑ{'n$P`ָ͏\ #s9c.BPv&Mꂆ80~2,BA00f6(5CPEۃZJ _{e߃bUPE!0WbqiZ5aMI?0zxZQuUjC/XB`_-`^Z$ j}gerF9 G iȓZç"XJ@$9 8i^PS7ވ\KxpWat}OgW Pþ Eb̎q/'V}WU_5/^7>.k'2 {`-5 )"Fp'H,BYΣ.Og#wԙa~{$ 3rmfW wsLd\}6(u)B0>RMAsf!{U] }omqQ|:h3(y] ndXs `P@< VU P'֭_j)lhXHZwB!Ds@zj.âDe  %]Fɛl)@Osqnu߫6 H~SdPk g1`1b5`LExo< cս#ᄌ?m+ ,U4>ڑM(B4 ,R+dХ|$w9/0GhFEXG~tJjLz!+>xEo U+T7umXp>uZNxO#&rv iRbÔo`@/2X5k,M 0 Uj[0"PQNS6ľe}IJQ jL+V^cGѮG lG{<#@?Tl~ϟF]o 2_or3 [lft:K}yq' /N@,! vYq1/N({- #_W `^"I5U ɑo>셤AeOF@n.Qu+޽LmKl[8v:$~KLA50-ـ\Cp\D ^8hy Cx&ۈoß! }`p\Fo d[egRxǪsBOIN,M7&Dc8ì&E ~9sGC0K)=^C9 YݔP$8W'_(>vwfeN; LMdABϲ,@IDAT\[&>ǃS*+ x;`n>X<`qh'a]@gO~Q@$YP˩9- QTP. ,WE^Q DpX<O͛@eGYy#Xs4ꄀdr \qk u9w8tпSץƵ@a7lFxPu^NR yk-y7+ѭS2ۺ*:G1N'RM?Q@>_%1z6.u kv8SG]_КY+Fd[^ҹ=]2i u`uIam~ >LWЁj^AQ(zQ vۑoG=c@[Ka=a`Klm3;wy|ރنqSvF;cypܧ۲_xV"U, [AYTRan,<# 3w J_gMj*HCⶁu,v$<luG-@>WFqcatZjn3V;~aw֦g0E?ofekR0tu/.-Mwh .X۔~M }+ٌ m][(PI(֧]Z Ι~]31Sl ceceWyEx>|Y==AT]EG@`)V[*k D#X EE}u̹@b1 ].9W&NQ:6@/s[@o`W7K@LEq RI0A6ACcw9B?^V]ZlR-27ou)Ja]U|Ўsd.6!z{Ӿ+j&].,[/ŹC;d[)hw_ѫY Yvea%߉|KɹRdV,YW']õh|4F[AMwchivdL58muf1'wM*5MOΗ]}] *SǨO{p$Ӛ@iW`ƛ\_~t.qba3|_WoDk>v& UQs1)lwᣣ+qv+yx?j  w|cͣPȸf.rF/uuX9@v0qINآlgvq9APc@R%+TՀ3΀|]Xp|@,X*D?|8VxLs#~VZC(ORVH*-F9& .Sk`0%|wk{0G0``&@DЎ+@RE f9nRp8n?I߯Pqh-W ->YH+viҫwAwsOW Sp%xފY=EsRܠȒLV녤<?eZ~/(AXWOSvLS8pd ^DǮuْG/JN.9-;SX{&mD=u8i0 ,d{%ҌoA?Jڠď ,D"Z\/>hZѻE:o7 ̷Tx9K@/ba, `6U~sPSZ ʍY[bSv-E3FG_Z$!w) ! C 1TʤaDZ$fޓ}f~hj sLqL ϰ^ڱM 02 +#c2DKg<>g﷔6ٳ#F&m:`A|qeF=Nl3- +2MAKGG] \u}09ޜ`οS|įQ.MEJ S=o^ZK֯b: sS+{\[>uۨ캔)wl]V'N&(~:8Yqry5WUIJC ˊsz{t->r\^" x~dnd^+䐯 ..J)JG CZpaf =ai ϭXRkZb{o. A {hZn>$FQq\f-ﵴ=Qpu+Y}; `Co? ɸ.Dq+"cc۩xQ򞜗:JtN`vQ(>CΝBY.rKلC9zw."qd3BWj8س΋b睉(R-%vY7eQݞX(≵\@'ZF0F U}`\S7I\~.qj0%wr=>In ' "ұ%Dc&/r ܥt0~#^lp'RJB(Dr#|3o-z {-=ve+im3Qe 0,ֵ:}N.\5W3s( j{|Fq#ݑDj x 3v)QyѬU.L;̒[WIX-LUou/YwS]Oz㟎3#!&pPW=O<'tf= h1fp7剖BZzktB!DsF'83R^|N([E0BE0'~iM/M/b[V [b>&1FbY.$Kehe&SgLMwtΎnJ,e e79yòdheqR 8㔖YhnYM y0}@?&ʠ> JG@+vI%? 0Է N-=*:> "%}vGHXx1MP/S F ΣB=MK5,]d\5d*W٬R貶&6\i[:6jX{FG9TzFݨ@ڄ|qk2{ ^B",ᴛ`qN\04Dlb==.8hGkպS_?A=h J 5ehG彖,Y6xn2ྡྷeYkIG^|efh["7*q@,Z<4X Jvm Pa|tL,yW|~we(*sc-W (ǸQdF~y2ۻw9(ο3p_](=卢,dic s߿1 Cܟ:;&MyQ1#/ 5N5K76qo{]QEXG8bQZN-K_4غz]3,%3> C!&a{5mb}HNTuf8aPu519١ `SڠѿB @`K7% ne:Q"\1r0Y?gw?C?A!Ll Tkf8lr}SsKK"ϑ(kac7Yr޷skD/Tl tkiAԦq0\ŀ:ܝ_h0<\vzD F"]I9Lp{FҪҺ頢vHK&\=| KPMȧH\G"ۖj Y20"X ,1C{c$PV0~mЎ Jgz1/C'Sm+A'4]9ZdW < zqres&hhw'%Q5>Ig7Lz4]u" 7CTǙ߄ꨏQ݁-0Nd礛`g01ޠQ/!ZT(QRt3ZË3XU0w e`Qͼj_b}<Ҹ0`lt\ @XazML?",T'n-9HZF2u0H' 3(Zyx`!.>"#(/rvpsWG9~SϞx:8ʘ+'ԼfU$~/;~pNw}΂ظ(o׳pn[vV0Ļ>.-]350}aK[,BD/@z6O/@.,~o,@>.MÖMY>|v>~1]?뤍.=7iJsB)U禘Tyw3vRKU-ym!SDtyBH@J|NP]w/Y#FZАvT\3ω Gg@? Ō@hH޶m[C DoS› @.) s`crA&s~Q 4#}^a D^)fé)Ϯ=VG?F!!TikwQvAb(|s`*LbWv+jkOQ-eͤB ax fտofQ6^?J,s6sl刘,-l_ӟ 3fV>T Uy+ZAyV >ScrMH;ۻ!{0pޖJfC("sݹ iOްO9q ӏOQ$s,BVVa%xub:oPA,̭V8a~N~ tz:l*\'u_"?X]1FLT b{,Gu}i~WTsjA(睳ӜwoXwv1af*#D p 8j)iB!DO{=o1DFX" # ”pupvV"pOX.Y+@ dV׷}|{{\eV)RczG }1X)!ƒtѣEw1^x;®ٝEvg3 ؟} Fs3k(i?`F!чa2j] Y5^,Ϥxme+1z JTp]/ "t b HCoDP ~˱MU Gdm$镔eS_ָưV3[ݎz,lVhw|}RffԔ1Cӓje2yn<Ԅa"b;sH@SǸ T/E4ʚg7pè-:-xF}\ԯ ,β!܇y BQ`O>¹=b\ʂb{cbx;Qߩ9 _ӹlUX6A_>! ckF͇f# *'Y,?zC7RA7 kX_Zz_h&-Uq?*[軿ףrDNC( K%*,T+Y O3s{cj@EX6֚D@ tRB@7mZXR6+T-+}$YWTJd/b2u^eFWR:PmnJ*pً ⹳zaunmar%R `6t ̟8@G3&`|dЉx1cGfcM¼? JHǕ/<[ؒ:X1K~]%&8gŗNK渿q>sL]:1R(?( tAAY9Ծw^Vsal3U1MXcUXRץթx >J˯t zwxt,%-*tp:;Я?UOYUVnIo{5I"IL9#Ff8-ڛW>rvV4B~;R&b A5ې[l]u6٦XIM]V6P@orriG(.a-*p36Hv?dpkq7c~8ӥlIq}^漃6Ij)K|a`?OjyQ#$I(sze؏\ FVW%\<} 㚈lFuuuP%X/fn˼6sXxffPhL{ Gqa\V+:Ʀ}nŽTGn@_xqSx%Ѐ%0{$lgsIEM彻-( ,xrrW^ܫC 00;8L;4qܪ/p?5gT+ԧ9r]Сȇ^օ]lJ'ӊWliځ*\\dC!QIl^'u[J/^[( EIˠ)la?^4.2WDoUv%2bV?̎F81߱n D{LH|,Z%r{̳~ wT5]o識@38P ÐS y׏} ]]W[&@L Elkq46cq{|L%4 ]F;{{{f!ZGd o^!҈__dlvnStb^0H6&LP838(I3.?ӷTlV}+@nq *lxR;ol.Kg/Sjk-cW [~wW:0&d#Tsұ-S+J\n=<oyUgAEPeUAF u99Y(M-ə*lj1jσ-N)s"Yjز0SɋdkMD KoZN_⧎+y:S_~  w_O< ߃< @pj yl(Ogg-QV=D]\ "a2]B6;tf.1l>ns ,ڛ {93U^ ?G ;,"Q( R9{bZ \}7 t( QRuVzYS@fX,|Te_k}8C[ ?嘚a&- 5P0\]"+"N}uhJDؤesľz MʼY1 rL{ N%rKVH͎x vIi0UTkj0ǯhsH4Q0& ##"t}W@;5iWxy/"5rk@+KiWcL?<45QbYɓڦlK {ee9c nUئcB?%g)@ S-eJM}OQ=4*=~ٙ;$7dG!iC,A?\$</LX+8jVUY lشq\TjSK.bt g33}`PQ#(>?6{zBW?a\鼟yfNhW[iA_7Vj_B'[5kb>0 k>v\؅(GDFj z8 ApCE\V$TQZEHaf͠|5;\KydsǐZ6oE<'~Zn9Q0}8#"x; d`Cߠ HPtv)puK<0TLA@`]MU[f,$iMD{w^̿DSس.&AGt[!z}L$Uܘ2_e㠻+a3x^5߳b/o|?"0H2Ex> .^04|Ex"<0VF+YiFNoQ };аMA} q 2e: ögROvjj.7%I#Bw3FeEAZ]( wal:;Q#Fߗ\:]0 +J9!`}jU}Y-cs>>!miyO|v=R?e%ςD1޼qSP3>e'holݤAQSVJW%GXE@  gb!mA;v:%#|˲3s^UjnY^qw>yUbGם0ng\:d\!@s@cq=i.~0p:8"ʹ e,}6e.\q~oG `65MKQRVWwa̸ҋW?u~{<뇦B;q2@v@_[t뿶69JF˿Pw(T ! C ڸLc$S孬oo 0y/+IˡE)~ ׈&bSN"|w39uY턷J&%*'Dw, ⅹt "hDe?nYC7+ 96Cd\̅#vS*  &pqzA8np>l?€bF ޾LUT4xȝjE, @2ՌJE` fwVE{)J/PlIϋKYlVDjkѕݗM!(۷ŵe 6by }x Df5@0ֽD 3Cti 3LeGu/"WbaR'}Be͊}8՗72X}n|4;ؠK}yI[Bߟ ZGt9s PCScP8=|%)t1]}]V^"&`b`8dvS]a"^ԸEmJTVxqx1AsMtm t}ƨQ> k^_a#f@ <|0zACY S WyQɪhc"Аm|*6m-+(d[wYsu9s)m*.7K)9}};d{ԕVj'pN\2pL~y _5(>fZG@.0/h c%P [@;X:gC{aWxa= =7Y=vGmD.<{^q%qN%Q¹ޏS#T@ vk7*j4;+J!^v /;L?eACE3 ywTSﺈuxo'0+W~/P@zp/A'k(bQ̹hψ`vr!/s{A 11c@XOG]vPdWWRObT  /k($fӎxYiymNE` sKMFC9ǩ-ʊ |1k efȲ)wdݙ_yx#+Xn`vnG,/|l~xq. r\{@$ %RKJK8 #z:Ѯ{}񤛛FMp"זBqQ||+U]޻̋棈A~P3Իݥ_t'X?H^eāXXMH>r?s>B(RD HŸ+'y '~}9Llk%I`ӏhϧ?PkC,L1[=\M*UZJWJK8t~ilrPM*Ll]s#6O,t>ng G8i!bP1 u C1zcqCcQpYA-!NZҠ уېkozkۖVg'ˏRȊO-U~ KP8۽EP?ꕚ~'}l*/怜;Rm%= `A}F[A f"X.=8khm0;85 ~@D?x'Ĕc_ J? ^e(tI Gq3a~eKsX@: PwD=(Ń{;مcf%`i:0/7ykld:@\NU,/ qF(`aļQrԲe;*5Okmem-'#5q;yĢa.4^+$bzdzX) ?0ihĖow󦯍. Krk'f$ W9FB1|-SMXi*^7]c8WgP eϧ`׶(ce^B-";~B8`* )w2ED@1=KP 1_^u9%8k}*pٜ" )פ*IssW ?G"C>:l*E@gȞf=O7O7LL鹓cwY5MtK ׀0X(4~.!aAyۀ0X"++ ¸ c- LfT3!,]ͭYi(J2g[oZsVef6:' +wtv)`;i (r<< QKrH #U\,MF! Gi78>sT7P'n։ *@TG@Hڕ+Q#h_yN2˿ЭJ_&e3פ^Sf4cnMAw_4 ^~%#{ϲ0UBȼAɱ_:׵Iŏx2o׮7?N;"0K0~/tP ׯEĀesc~f #󮝛2N%kӔv41MW?O kQ1;xkF֌]$S]ûF|̯inXk(%- RCR r+[خ<" ӲݯD ٺEfM:Zd}Êq^n u-]"iHpC<|"%Aqs my ~ E! } 2B@Xtnh]36bI˔x|T|&WKWMc;m?K-~;vl}$ۑua*ALnfoӨ#eQboBP:Ӭl+dpAʨ%n3Aj|<$`TMPN'0r;@C/8Wu?B `1ί?>g-Y}fciR OOⶾ^\^P Srz5܁}<7{3ɏ@F=^YA@ 'x^$q;uAsy,t\jh߇:zYup6[ƚƲ_|+w{faqD0 A}8CP@=+:$>uh"c<न'l ( FELbDQ s9.l>oLzO`֜էTթS{FsxA1f@'xWO&V8lIj7I"~S=q L58^UؒUҬWBIؤy ᐵvYːL0=t5ݐ8S'~q #:1]\GCF{vOc9J-d/WUjEeʓD]iG]U`8 O~rQ\_KĕshYh868 g 50E,dOeTާ[ ps { R/˹l kt~G'T,R2GwHHuDߠ۩A=q"Vv'?o9(xg ¡r1""ŴA (ز '`֐$LldD~';8nr;v:>(K^V ([RbgŤ167hoҘHK̈3oxi.EFݿ<.9BӃ6nڕևHop^>F˿Y5iL7fAw0;4U"duϯÈsvootMUv?OƊ'5r-2|~x)@LIi9љT Nlgvɪ4O3_[ o kdhZ?/[7vɰ%ReǼO ꄧD8}G4Q-_$ gE#Lucev>UwR}YT"׻y9G[up'l\Y#̍^B%ʁ3ɁpΓ˅Hx)H%ݫw' e /-Ccqj<ԣ /%TNL?^vU_3EE!b&Ck'Hcl^*86847 C>֑\,& ;lZ0Σ^4 Dk!9`y&fYWДnyUw2eM 0>ei?O>'m;?;JGwFڅ[ C#Z$R>~q?5 R.J'`E;^Gڔ+G`XmNܤ'~hGh߫y{f 8z/ۻDnH E߽LeD*Ld恒O4pBc| oC%Wc1Z DxHKy_`VرzQZt.7[b$ڣ7 {;(;H۱~0bF@IDAT:amfyV2Ũ^UjWaNx,"V=2y^)p}fv3s՘=rh3?=l À߮\ww_L5"{{*￲FM c-jO1ynh-h8QvO.#S5. ` OpVIp#DZ~=+|Jn*| oJ rjދkp5C!ua&}8Bl(o`5ҕd׌'3%Xi^^շ%Wh]35Y_psB|_wӹZºjXedK(3I-4DJcD~>#QaZ {HWs.p $4иPeUV_TSテ7i//ň룗bhJ |P;ȪN~sR_|~4PިnhgI(a$ `g); HK<aU|z Ԋw ceݝkfň{n!/tq]s{-!F>fy%{|/xQM8^g}*omV_Ba<y@nyŘcVjYrYN72__wr6`T28ީ.~2uFޣ /shWZ 0Lޚ5 E>qO3ʼv8}y"\m#jؗV{zI3yR~܏\y bH$[F.UhF3QvUld,jq/<˟[ŎZnHԫW>3YXc70iDc_-=%Bn.a2/0 @>qHVu؃c͇u@o {kǰ_e-Ӟz\CڔW"GV{Vvgǐc~wPsn5 rfGH O]]g 6qm'ӮWҮJ* s 8A3DȧSrgU6+ss,=7o((A=>TZˬe\)d|n﨑gz8'MUUїR!n)oNQX/T[m}O7Y>9I\ R$H =]EhD9pF8`FOi*S^u~: nOj-Fos;v1%!eW7o>~KcenTL':X;iQ*,")RtAJ]IsHR bOC 6 V Vָ޸$(2gkqxQ3eHݩ$eKEm5)ꎢG8u1܂l؋Ag,ud&l#Ѣğ[3'_"&8D(d\A/ :q8n-l)) [GyM2^L E0_w:Bq9V3̈́aO)ܵeD.+8.}CcYn7㟴 =>Ug!}XVʗhdˊ-Ku)%.\\̅<CNm;2UԹh'p"f̯<׋@5 :q{G0H*W.A|{).AUx^乆JN z'\ =n8}9~˲$|i'W!/FaMn "\<]wɠ.0.Cx^'Gs]-VC/[ Wvnguf zϐ@~'~CqήG/Gdx~>U@8p) Q{Y@N/迒BI!I> 0IP?rrbU$bnǕuB깸$w\Fs]L`pJ*j__AlYٖ(0?h Д:#|<+3(HZ!E+֣{O(\% hB 0¢Eܡd{Fka|"ސ푑jtidS#<: !u`NFh$a6ԮO~׿yԆcp5\_Uq[Qx*:zn98 ɰ诗se~.o\sZeuw,yڑDT]sB7L-=b9s SYwrϰށy;yy1f]z&ϳ~P(ˤ 8D-6N-}Q/8orI\c'}umOfF1眀8M- ;j!IWTLkMN\\i/qσ]<.vX0>8q4.X$$]2 N 5¡uy8bwT޾ԬI߲vqnOo_}Oyvuoހb3K2B}RV952-neqD"ωJbfr5͆}{nrFVEn?Xa =_F\2ϤRk-E+l2e_URt9'/5F5bгl]\z.l):E^ V1IBDKO>4s2ivC"N܈)m0=4{Vn;ũ8z5r{*vU_Wjg#?xxnw?KM4׃ƂҚeQwgabԣ$ʁ3EOû S*]H 9SQRq·$3˗d[}=ߓ)VNN_a$*,}12l\T Л>!:ϩo ӫփ`~WFg!q."پK0(c61E/Xb p7#˃a!d iMЉBn( 7l^dg?oTT3y#sfDBK2q꒛޵=U?~?YɅat >k l :ᵸ'tg8S[uхdj@׸,35} ﭬr(oj#mvY7 Zķ/\8g 9{f8g`m둏}jl05FKÉ^z'Fu+p |H%`/'363f!@0զnK-E\q }nMvlt3^^H}B')~ gF*ؔ1Nj5SjE]Wm(o; |8U555`/pTwwE򼝜찆f0~ 0;c0ϙ3-W`{ B1A"Uۄ^GLW!v׺:T2|ރ_~l6E-J]Хk"ڕfyN (?Rt# '̋f̾YP~-g xI"eW#,D)c+q/VYǃGd?B$֦կ)CUg8~\e,WPAߟzr\^}=F-88Vc8^.ީqe$?8GD0;xN{㧀wws5>8Z PzlpCKBU?൉>|۹Q] saCNIΊL*7.W{O^8O.R_\o՞t1E=KBV=QG',ʁ?p :jo{:eb7,jFHuQDGyn.E6"[<#1'4#U˚5< V(0! ^B@=gMv\&9onu_hՂ|?ǛZ?˜l>W2!Qu{$biN@OҮ*,w$i qķ'^3m* | Ba>Fy}9QP MDSSە`p:&#))Kp^URGv `(58䐤DC#팔Wc* 5tM{7>2yg]<#Hvis*~zoBT|򐌊JUZP9DS&-%mqCqos /Cj􅾬^nO2Qj$#=+=j<:_$+ʋ\0ZLmwUWR3OL"9;F=F}3s7Uj?𣕳 j}i5 c۟{ORc{'n87{ē{f)^he^d >.taRrHZ8wjߨ"ϤY%ϞVMWF9OiVt=EC(z9Y%;*De NxF,EˢHWh V4 jUJZ+ZO$C 4ßa6E8/SlV![[U `'S^bz 9xrv~r 5Y{#n aCxg( |OCs (/S@wZ _8nƢ0Qu#Ǘ;:y> ^C ؎gm5Ek%p%twϮQcvVTw՚"@KQJj7ánRg&Ȝz5Zڕ֬`Ά6Z0ۨШ0PH"2 #uboaX75r պ͚OH\ΡV0}5Pvg-9l (a;.AatmpuwsѼ?%CB[ d#(uFuЎ40kK۟cQ*W kq_G6H;yɩ6f׽~`C+eg/ /sKe| D-mǣsծ+hA / 6" #d@*T^^Юh7_cg8ʁ0eKW#Ôqє.z%;JCY *f{]jLA\MeK5f^x ʾua4rMuV 555 <<5Zn-yui°D'IΉQh3ebv crG +;<06.F{~pW@GQ\m5Rh2B뽸67 c^=SxِaQ`)2Ĵm SiIے&sIՓw2 GO %cٙBe-i Y 4n?)w.wЖ93/F^}e?x3כfve ͨ%'Uyf?]~^l+<['O>}%28Ҹzj oISc@ VDzHs[FE?iaĖ0z=ހ:s--g"$" o9D[Pd2Yddf!RxrCAoA'0{݂.b@'_JacШן{jn&[WJ\<{;>F/r-ĭ/Ik:^'M0nXޯ;c{bFW=N42ښEV;y!Y} MenLAsɠ'|ðY5ɺ1?t*xWw?sn^RЃg=t7S;-xymm!RW1mr-qؚ DvO1%o7s_y;;,c1+R4 ;b|z|Gy.T$;bs{]X~C_'X=d<`l&nO>1RN j}]t_tC3U`3j@!pDJ\DG9pf8 lD9p8 a;Bqh丯JC~0"OxY6_vLأ[WUeVK''uCno6 7IVjA3~be(lC C(0d^b锭h[F%r~q}}'wqO]{8ip>U5jOwZoϟ}%+C@.?fR}r1 ®qm9xȟy n>44+r*"t[24[fG:p8~3%6Olp`%*h/#q$!'ȅ!0q̖,+J`|k{ A*Ġ 'i;os:2 ^ؑoNa{!#9 eJaWs슜xO7X˲3Hlen|~-1x.Ll;9HЧ_'⯍;7nSJ)oiwK3IE .~/q?B 689 coI-}y*'=;7 j8B,>IorR{^!['\`{}VxeY㡎\q qЗe'ő42m[?+@ wr{'rd^:xNj ;TOoz983 +ZZrՈ=KO1]R&~L/gu\4.mGvyk^J˗ŞxJjk.hrq 9G,Ш"S( @ 1K*&& V"K6V$ \!,(f;%FYJG?=\܁mt3a&p,`ژhhP3\}V h~~'!l=s8 `X85[ . E :غ̼y=oFYPhd!.;/:_Ҋ|o\O( ԩ8|GV@qV71W('7+۟s8`O O3l-5Ou4a,~7^" gzHe1Yq WY.Q7b Ъ C۞r?UW7[@FՓJ-u)6N|rF"l7i2Ј%8'E%K|m[3O31-~ej;h<QfD{pY.ܿ ʼ5?bnlyќ>DD-)-N8ed瓜l粧9{Eػ{0! $%GzQh^8:|Zx9q0X.sȲs8kDnw[7Vl-ޏB?۠HݙO"_H>\5Fgѯ0ulo U w]if+I?;JzC)IEӿ?Ǯ%T nLWL>GKX dw 3~&xZZyt)~?xG9u:˵8j9y4Ntg)<@3`/ {H;e4^afGf|65SU65Cu˘/y~#惘ʞuu&8$9͹;ȏ<Gr??}q@a7-~+s1z,ɟRp1ɒ0UaW%X:a2z:3:&OK?^fo.UTKQ1Rё9z|H`. ]Ĉ:C 1+I:C+TK(`4Q-5`$I苃A< S ap Rpv@&rAg_e83D3Ga p^5<}SE(fKP zP ՖK|SrQ||Χٷ9d_-K2'#rq_jj0\2N>(}ͳֳ=i\L ๝*8!!ʁ8D-'r@{U߇~~[1'&H@^f@ދ {ִҭ@s'T۶HrثCPe]m],Viq.'&x9$p7rBL E~"Go{Bguy%b mܿNAwa£A:\(Ad=la˹\+vңKa/OgoL{O?R; 3ֹX Ԅ\0y>5T)j%r?[c?|W8U~l~,\p ([#nk$ 5=Wp/]IjJ}w.&2_/Ȯ9˜{_u1һwA1>Fq28Znc0s) ~\7{YzxItڀ&)_ړQT5khnONʱYhyUTw$Qޡ$Ɨ~ ޵-.W$]sn}ekj,]-gg>Ӆ:VBM?24v$+@/oWv'=Sr漍pN~4k%[o^BtjQ-=ʁ:<&< GXF$+l5L#W \}êu㟫_  IZ@f8ߤ*>D;vowgT\Ԃj L/˽Z+٪SX_pHܞr;zǞ=c]OדYyPR#jF=ZHP(Нk(lP>v8 }QWQ9u1,j6F(&.%7Tx)'>ケGP_ wbS#PgjGQ-ENȣ%r\JD@id%A V)S2#v0f?02K ,$ũ\{A=}H*@m@b^R-7p zxM&Ǔ>g;I`3/Y0 Ub*?hYaH*뀵ڌ!56;P#0>079'>hdw8qijԸبaƺˈhsQ| Uڨn57]У̷BSv[CIev6DT)ңIqZ3rb;[;qRYR&9x+PľZ1;|ĢQ'!cn+fʽWKcpA:\|ΤGPw!1Yx ؎ "Gxn/cO>az63;=юEw1lK ĽC>TwBwSo;aJJ1 vovBv|ǥ7/lj+AW{#)ĭ$ dCaș`,iŸ1c18c*>yGT&V9} mU)]F`[KԎ9s= iAQ_"MXH]౵!()L,+tŮ*dJd*KvUK2͸<%Woaϼo &<OyݣщrY]=Q0lNʦM\bOpO7׳@.x':d݅ƸpG:a,,s-OԳ#$qz+w@@IJ}PҾ [L7cLj|?i` W0BoR#0o1p{K|OW  E_<*`j ;^$8#wkIoP;6PV)nP>3 I˂2L3(\Cx3x1_<-k[Jt  `o/i.TCM1 bPQ3:@* iO(l6uBPFYkBrC} 9fE(H )`o(jڜg SiK{Ehr(q+'1Nrcfj |:k Y!^ϾABAS܏ WVV 9ZOk͡> 0W}'tۦcmK]BcCݖ3Tq J'8t0ǪN|/pܷ T[=a@€_E[.ҘKcg"_X;v&ЈCQ_D}gWy1#U#?i;x$x[&1zhp N(ck2TJAR&w5K82AO N6['Xc0Bbq"HD\Rm'"TThrq}=q BpXG]-x1(6\Eo, H ;cFK/xw†bmqTޣ\Ϲ!O*UOkmӐ)4Rf:-TR89 &ݭ ZǂnyH3g?5B.r. *nGk9(Z)zfFFy3TXJ$#)/q;Viߥ_q/]RgO9f1ќ#cvfiPD/|Y^ˆR _Q>bϋWc1R⤛8|sF7+Ax&h$Νv=LtP{e zx}.wa@_~V}+'_'Cہ) ןX-+T5%=.5D 1ޤ-j=b&]qs>]Sw(]m o\_M(f2h$Eey0|d"gu;'v"p#HďQjch5]yߪy#=k/llb`$t 7G| ^}|\ zpVU8r|O *S}88uzGOOȑ z#@>׃G Y߲lb41p4Ue ^C\ >徏]'frO@P8.-0 ';q.ߝzQ8aL2**:ٹr'8ݾ> kZS> e 5>2D~GAVrs73r)eږI-/m86FPAhu8㘜hJ nj]uGiu?<(P%ʁ3qp< {:@tN§lv}ҕSY0|Z&fUp5ƾZMQk[ǦءZ}Uo?bdo#}HBquuVwr8S ekO80Ivl}xn䤯lO~0 x`< % #~RkSwP}]L$.9\WpgOAss %/iWΛ-Q983w3tz>!-zG{Oq`4)W'b26G6omz[r=&eXJSω3I:]/fEdiGqbh{]_#Fb|}tYe]HL\_~I@IDAT*2\N~I̹ ic* -Ҡ;ͼW5adz<{䘹`8tz_wBYHP8G0yC/'v% UF ̈(ph\CEA_V 筀p s幫!X[H t&pD& I)ArxL-V?~:npHI_Sld}';+Jje$Fry{c K9O{V+xjQ֤~sǨ @f&$@(!tVe+[[U[-:-{*;-IdWɚJEЇu:G[Y&46ʔD0T#KTJA P~GKQEpD LZF}GA<կHh9*P e9fT)P1Q/rC䓔s2gT&m"w鏜En%Sm+Bͼy'pDǗ֣ek&F$S3tO]1$*̸/h+PZR犺fZIѥSMռ_ I7淇k\v#7v~ȵKOG"(r@9zN/> Q~ETeA<:NTci00d1#d 5O1Gjl\ʯ<5J5uCT5L_`VLVz^.F=""r+WHըZA5]](G(p `net!ZO8 sYO\ *';̟K)4(8G8Nr>{ȽMH_] Zٵ?wh9]l q~[?$r^er4ή]-u Gc5Y5p4A!UJVfZWHw-՞`@!xlG!r>fTр&wL,M^D(D9p: s>;ZCN2c sV :嘬(8KXq2pcG@{nCbTB2+gg\Wr{jLfc`v.頝2)OhChXhɚ+f~;wwI}o]IwQݘmoPSWU8[Թ(8U5>&,(3Ƿ+zv(¥hFiQz I26". +Y>]FtevK$ {LWd`a\#,?ң[Y|K8mvV_1_ _/=r?Wk"Cȸ$8]"ڕ͚3͵DKv^nԜ?nHWE juսPGL *Zĭ.*Y=( 3YHsPOrPm~oj:P*Έa={etR2xgs9P2L!۵Ƶȇ9,s SY~YNBeA^Q{wPoᤒ~3hr ʁbpKX=6 ```-s{bt,XS90͒+0eySvcLz) k2SleO+̭GVoG۫OOY|+9Fh;d&Z@$ CW.GhD9pF8uGOz <8$d<2^5ڪp(TyNB|UWqX+VZw~f jڙUV=ww./T[ʞ$AG,ǜ?2ѷ*d(Fe:!/ q\幊!se@:\VYc|}zD]s,Tz;@1 C;;yƇom6B=hk4&fbXhM%i*=S$ YtaVwu=MVp'w=Dygf&NppIAI JroudՃ&^+Ȓ4 Т@8qйwFQʁoewd' xI  ~ܸtD]LHǍ8A;J4X1̰#`^ol43V%Mk(XqG/VUNEcwQN&} 13` 67faXyAc@o "kٻ+# 2b $52P-Q ܾ3):=ht7(<{J ; ?)aCJ^*{Bь 'dHA_+ Z(5bj~Y_w]8Uo Ĉq ll\f\uO672[-qtUrU~UE1|| ,Ըĸf~W+˹#?gg'0~,uz 18.l _yŸtl? *6_~|wcZXS;@--Ɩ\GaᏆlAUi+X5&~igၺ~NWDd.VϪ'q dhG#dcˌ-(rp 8#l4#@[8Pgٽƍ^g,3F06uTGk j5;]C$8YVDH@m&^'ԫ.^g%sήYB}/qB/(`g,Q `ZBY+_o4jS4[`ITþ `kV>߷oqO0O]o$$MZ +* J)C8 9! l(\aCC؆_ʼnHha#r{l^ Zk\ƗDvquvGn|Ŷ3{̙ǘMl6xۖڢmi4 @R ']eSp BnҢ&_-5(p0 Wu#2:h?~8pw_D_:K =^;! π@ȳ$qK"#el3B4R`b&L| @@pVb>¯{mSle(}ظ^\i W 07m! T񸃭1VFF ^72}3T+Aw{;~ sop;73o&L4`e;Y蛻hTxAa 2=6wSw:ֈyW*aYTTmf"NoPq.؍Yf+pI:mozh0 6A<:;;p/&8,KyDh3d;]^E,d4dP \f~P&n#2ՐA6Q-bⶒJ޳oLftCӡѾ%{+qG:1h_+ȋxeiEii+-W,W@ ue:S 6h&aXEkQ 3`8y B\VVc.ˆ55&==د4T)h5g -9viK}럄є33|](7Bt!^>M"({`D-Wqѻ||DuQC;x|ẃ?X2kƚAF/q_Kveƞc   q~w'Op}=VG@>P& <+XB O QeYq̓4yrawWpW|X?H/ݖ.J/":bgzݚK"*_ItGKcFi,2s!VWFPA&7tDâ" -G B !I ǿ@(yxb[@0xًTagl3/"y? +:=XxXt%;cDN>|RH2\g C@U[4KRy 9"'AfCQoW@r%`;5J%# 7m9+zvuhϫWy_OcOc0Ӈi?G\~oKP|x5TfW/6? g|AD ]ߏ-Gq1\^\<6|fm K0`XzɌkM r<M:Ep!/*,Y`LBˏp+=Ƽ l 5jTű-h2_vp!cB3" -?X|XuB|$K>y~ >Dw5$µh*iIZQ(̛'pbGcl72$Ă"Y"khɅ&ӥUk%epdFr[ˈ`b$JE~s ` B %)s.:h@A,\wAi"t^Wf-Zw  mbVk#E(v1^c%b (ъ6FDd囇+"b#!?T~[ϡYY,)o'pygg0vBN$-i,AI!0ݠ4\ titH:(-K}w]]h26WJ \mm1,..h_QS~Y;A3&ehBl&lf,ڥ3o6ES{IUy67Ohv1"W8=`}3 Kru*GNT*q~I6z.$ןR+y|S+;ϳX݄&k`@ "w/K#/o!R'[V-su>raYAmyLo\#$!dIO} yJɸ6  \B A$,z8eY VzQ+kuV6D9!9ra~YA(=)ˇ ̷|$?3SMݶ s WtukﴻlEB @ a3,>`To?mzE0oZf B@`` /Jb,nFl_ϯSU6j  `pi:wBVꀥxZQ\kފYKZnV$5U^Z6 j!% "*@ڡl83`t@Pqq&CC;df_ }u}uqEy c9GW9x0؁s&xAv٦~~r_N;Aʽ F\Tmpnr`ΚؾZBw.[-;e?dNƁɰ38xfEDv' ^{Ug?n vN'zyxP]-]-q&+ 5?anonݍAE.`A@YpLT>~K`xTR(XF/;;E"*Z'qԼQFXoV ?i7yc 3.ny'*s^Qlo'QK~ÔkJQz! 3c~,  t{:E~} >p A $5`<"tAlB&> wUJWpzB A,}lS%pޢiOvsnd>Fͥ|v*|i*ٿ?kt{->@Azdo0a`oӰ+Xxd0:bT0;9rz^gv AMu|i` R`4mgbu 04F<)|cuCۤT|l0t5 ~ß"5lyc1H|)_iEwI/xӉOK={^$R3Pg &iNz@[}T"JV0j]5ī=Gr|4XCU`w_11Tlb02 ਄ ˫^ܞjOctܙL -}WSAB"Bb|݃M L`1a W^xȹ99=BLZ!pv]A[XT\/VZaOiIt79(uIດE |"9g/" YF)M2?62_b! AHվy @" %Z-AP? Ђ%LX tɻOҿ8~,3Ocx'ImSs"ILGZPS:mޓ;&Ap뺫3p .(`PX~*? Pw:Ag;Caj>doB&G%7_w |7nc@QƯ(44#98ה #vFFxoXX Gĝ`<}+Aldi?>0o\DBM\wAPBJj#8 ԑ`ˆG|Ev. <^,kXŠߤ|>ľG'DnYcCIcY3jwX޷v}Oz~@Bǡ8zrfEq=$=9g P&UӆWգd 5Dn mc"SɣJ$Q96źTҳ5/{kDMgnB\xܷ\qwgwZ:30}"+} p,6F+by.kO>Czi`!u+{>S)ru! &k!g/cy,ߢq@t,A,F Zq8Oggձϱm]GG̛6J f ,$ף ĺ0#6bwEDq ?(iu[MSscvCD'oi, +Btfޟ? zٗq`&Qx_KBT,Avx[PKɄҲZQ܋ ;8+|>>O&ͯWk muhc" 4Ut!ʀ MzA e\{hTz]:NP2@7uTuT%<'MMZ1DČR$}hz4CD ?^BmLZ5"h=ryѾ BY)Yu4(C>Ò_wo/zVYExᎥtoLcTծ{T,~lh%S׀/ք3NΫv*MK|>{N6y*E`"DC'e$c$WC!˅46U.,8keR9=,gUS _<1n#<_{JUY)̬= ms(Xo _uƧ;cBA (E` t.4RKDLKŢ_:7 }Y(b%>.fF.FV7Gr*WTyla߾CUsvg B$4oÂu~_Ʊ0;;w6G;_Keh`n'  BOc-vK?@@o}GpOb`|i.q<0aDO9ǝÝ/3L\?f .cŰ`, -7ؿFC*I, h3ʑL&L*(yM7/uzښgBERUhSHb>)֌hHok՛8:Zi 19ۡAtxkx:;sF8ٌ~x`Ā?|͑Oȏqqe.Nosߵo~ʼwW9p!?G0Ґ Qņ&7 h ^x'b-k$_,%afDzNj.E.6j-M ƨNw9&iE+ MF .@3vbȦv ׺#AWN*J"\g@$\4Xmlo|tH D vt[ ${'<K " g^v%c|Ҽy_9(9S>W$mI󧱉 Jo_X1oaNGtH4w,<DO^$'W,48g}zKo< Cw~ZI5Ƽ>}o|1z14EQ`%?{@ :!M=_$oaD TDD ; Rc+m6ִߠ[dܿv7ֽFm2<>f~&+^7Z`8 x󀋻caSSl\U\F3m6h@:_^ux4?INOh(*V_ i&E( |GNqc~l\@.Ms/!w 8<L۪mxLEt2Ao ScmN6'a̫@p_ ܂KJLJŠ N)k[(ѮqE2̤|:@MR]y0V_E@~2t+x=_B Ţ8l̼)B`)S::u;ж/Gլ'6V*=^qvl`zË.IîHPk"n8Y$M0Zrܹ%S,A#3hPVT<=N~L~\~yN𯄏  ag7M8],J|@H n񏆀]R5u0nhOk`)=JSLrgB[0dI̛w}iC!\J^{hP~4N7Fc8 WTYXyJO~-a1}#lchOu_A a[zJaxR7N7@&-lG_> ;-A/A&lhk1w<G8[a߆\rL]UW #}EDE |>a6XR mG33"sJ;s[ʮ=.4 %lҹnl, jM8@>9ѽ2k2e8B5 q_ʗBˤ32;yԱN4"*1k2k2ؒl+6md^%sAknNӵ`IZ{"ȴ 8B,K9F#f X>8 L )_;_oM,AY wiH)7H|_xy oV  q FFDH3q{`b΃=k>ѝgtY}gc û.ZZI3:w {%\k/ѫĈaGaheF[jgON\':&RdO #\hX+ֆGMpbV0qܘw$o/$a`|휐!a-l;ێQ!}>| M7DssY+}Op 3C:n ہ ~<@Yp!@@7A9șg)Zj׉'ͫݱIR"^(|!YOs5.Z|\!|GиM:AZqx?7)sBF&=e^4?Dh44M=w]>Ɖ+&o+o{sެlApR< |rTw;ww!D*wE?JUOWƻS,A1.tutuuuo ,R?`1 ^zZosږFq[(O|+U&\[CPPd1b5z@P" ہ|/|GB1GAъi HzΙLmmS- my+=p `L8 QE1b<-R pGC"VJLԩdN9-+߿J:('\ѩIKHqź94_[Ms'CH sBp"E6a>AO`׼s=/-WfAT]d Gt'g6V,۟xWڙgrh6P32fHkn"+w/P Cx}z,"WBU~'2T|#7{P x*xACpx(WBݡR $L:jӞ\?MD j{ BMR@)@.g]fmem:SރmC$&?R030S*'n40%~5j/Gwl64M:^)M9&5+%F-*`ϻTS@C i3S.Ϥ]J}Z[+JCHЏ>;kS\ x41@E{ 3} q? b,#O6Agn ~7;/ xq9|#]\ǜՇ#,Du%> H傍ڟd^t}-}7-_ӡüCM6uӶmm/&]ØO~$[>HZSZSbergg~ђv}SlZ@AXwA .6xc;y|dZ jFF7fǍ޵ `~~E4I!4"@@ГTs ^ҋҋ`yz`d(AN#))\ts#'$\?&-fB[py|-B4>V!hM(͘GW Ss57N!%ԝ)7bW{)+AqzX$UKreҤr'~g'xR9 L A3`zGOTR-50Jvx?X>:Ss# 典#AEnsmy5ؿwB)C@CRGdo20bJ6 1Ma^ms ݷކ,֥֥ \ YOpB̽vŮ` Cj<Uaìwf8;iofZr<ֿW( Ku92L~,^xǵ_s*)W:i>UwxRYLJ1㡹YhTD}BFЌkX>VJXG} {WȎKHg-&#\i43jC52l%'I;oy` _B #‡?Wط 'Mbi+Ï!uKffa o \a7 _:=txK3|b n}*pHRy֘^2u+uH&.wZe,GS:3Zx-u$.ĿĒ/=c!DEfmh8mAۙ»_)S(t]%})El^19=Sog|MA̱ @IDATiGXp-FDh5,z,9"3 O!!zkm6 yJ !9kk?LHWeG)vۉ*4^ sןBt;u`͍s#E<U<- R8)EWx[ GdDEgRBP7S&ŧjS'(`{P>w5`Q[^ pT1 _)O;3 2<R7:Hqr|^Ct2ha;.iy\W.Z.ݙEo ˆ@fRUn=M!ewG8`MG0мbqzm+\0b~nf8#]]|eOogYeAḾxQCAC0jTQT,L r| 7ֵz12D#O!ЄF~?mQ@!I9 Ҋ4{za@r̤DTRi2QP̩y9 :R@ ̫P"*ho#ɨkb~m%N; cKtL*;S!57I̫-|օ =Q* ӥmeHX ^6!4a}d GMlL~丹|2n@toZWJ yTNRT7BL(]):zvR]]aVWOM kZcR-t1JdX(IZEGAh6`8 _=E!7+B `Q@2߶+!!F9QcDwF7I΀qջ|ǎ0wx<^5y 8:08II=2y<ӓjl/i׀0~~-=.TgdlC~}CF7LE`"/>s=A"h8y _Ќ2cR 2n5o1INK4Zp˭}_q%{/%HuEtI, b**%H}_}C}_88j* M&v!!Oژx[Cے , |>ݠ\! qWT͛M`}O^<|g玼мPh.m~?vZp5D`d'qY~CPe()XYGv4}%((hjSWE5HWj> {PfEA6>[V a>!f`l h4W9!P-[p_K0DR_B@%:8M-ʂ8s<6%6 izS)vZ b9DvW~PkTD0LFͮ-=ïmu5bnP@$m>d+Xv<״ Cڗ7#oull3RkkK=<}WO9D o$`&#=nODc<;ZurrEʮm*%_+ӻG:2,"ʿ}(j* |5Feg2!7fګAdfj!ljq o`oJb=aQnHWY ꧛#'xdmy1\em֜/67V}Z^E 5n u0( mx I.4h6u+#3O$|ϙ=;tۇ?7%H(z 5aXFve!aVb^iJO@ُhNʕ'f#$DԞ])uK2%Z:!sN(NR` p|BAhK.5f}Xs8Io[<|+,/׾֪YohtNϮ2+l*/Bpl?'@畅E=V?=v4(D|!m}%,p%!Ŋ-kXV%? "+Į`L3c1zP;fkXt!`&ЩGρ>_1pԛ~/A`UP$okԒ,W#Q}=jgxQ\|>)ToEl{ ~oZ|nTf9`ok#ᔝդ Ѝ{|R[n^GȪ-X0Gxc!!wb,Z*t7Scc#>_-VjEu8Έ(XX}o d7~ yhB<#ټgAXE 6ggl& cGB?B 0(=ȷ1lSHݦ~~ Ybf7cYzbz"9<IEx!^ϝgNΈAW˴> [EO,ƘJhgətJ)N boҎd1ɬIvJ}TÿR&1W 0K>Oý_X[D/=L|f^5ҼF{1* $#d C=۴Gѣ_@b;$= |eߚoQ#}0SDHpL W:YCOGi;L Mr9^|S*:*9F,(ceRK'ͪUɭV8LBTa%ou `}l  ޤvy.{.#k_{AГS:hQ0y"tF{4ԅ/ @tg8 EXYK78 _O:i"oU|O bM{gh+!$X+XwwJx[q]7 ,i"!){]VIгe]'t \¤қ_DAYr5s5tA }&T)"!F庥H_I *}yTPs_B6p!kG}04yrwrwKqrBKq 5χqPfY]-NݯuDĐl ~E$vs~@j+=%J?^|r?E9$_ ͮ~,̀XH׆К1̰{}"u>("T-uDi>Nd0y$yQ,9RDwHsHhN_z:jwZ@s^bu·K !=homlʢְpCHa>$js!%z udSXG6=r7в1myv:^~kɘ~wa|y^c|V> A11nYYh&Wp|5%.tS)ЬB@tj}-O[e$DDX:=ih~Z 0.ԅFєc5+Xd#YT=0y}Wmrq dnܾ08;[7.k KP_D*BXtd w1B$+p=bݑ\M*t#r4yBhzj_\jJu(9W)?>׶kQ 0cԖz{~"XQ-(&11ф՝='.>k^(^bC ej!s S (A}ժ'\<,g6ݗl~U*߰|)-_dǴ|/Wea?0D0~g{ AŊ '9!oVm!h!K8|A0o x &e2[M_m(Vb3~ v es b@4?!1LN'{^FwI6y| ?Ba#N|;m?o8^uiژ-] Zî]x"\K<6dRKԪۭ0ǟN4T<r_$p&n y Tq"+HKZ~8x0?Q h,.֪6)V^cWT[@?G.XbՅ cq|0pDZ#Лm~F`W|y);7b2XcްPb c$.|En-Pk}m?%}VL3Y\M\b^(r=qgd G,z pQ1xZy|1 x1twX˰覶:Exo`?w{zд/ceBNTC}aʜ&YnwG4fu $Do^^WR">K$?[3d4|F,wpۃ"?$bAL/Hd5v nZ6b7uۤ'ǹi/Fi<>@F.b`Zb}D O*ޥt40_ؿ}(!C gׇ~EhA// н>,_COR[Ty1j}nprXNxee zzyzAPR+ȣ8\9@~PC/_𸮥|RwvN (N-Kw@g['5߷ SzĕQ(ӨY34%\:?~20T1\8(mFw_MGyߥ;{ d7H' !4|Щ lgx qEM <>T㛇<\u `E|)aW.ῌ,2ӽkOY7.1nBK(ɵf%O/{ +XH oS]w!%M½{ocmpq~',H TBf+}|Q._XY+5@Ѐ*QK8ୂ F,WV"%L|<x2lKmK!i\\uS=BZ/z BH$\CHPvM >6 zXVnF˿\uBt^5bWTе)4kXRchl]#( fKNx1$wR\y::7N|9sҏ^SJQ8F;42Uq4^3:m-};lbmRJ8hAx'.f~N{gEi4Ow@g 8gTJVil4ᤲH$24[z-)|Ō>D4Ĭ X|vI%k$) nAs<{EWV,73 QrĴתݴQptBCDѐ=3=wAt`v bЎ1@^Y5@$}Z[M(r[,ֳ#z9yU6ނ3"W ~%&g(#?z.Y:!΢r<+I>(OOVەJIݡ?+{?23ָcnn(DgF"Tl>p]̀)24YN)_FiQyaĨ&$i|hc1-~A(a6xM6~?j{?ܲ7`Y{KoJTDQ" ("XMiR,ޑ.ml$3gnE*L>{gLN2'>'Pn0IA.V\x<B j$܃-YXPR_yX?]kaG8^ 1xR 8,2 z!PROJ(:bXAWϹ?N;mOIYeر6GOE/ψl1eXY7*T Yv6y &`C}w_/@ͪޡ:>0%vI+"}-3{?կ#͌(>'Tٸ/rv|·0T~Cn c*" MCt崚ܠK|Wy flj͑ES}:?E_=ahe&wEC;.#Paڹ~0|G@!j< @d+A#>FuTe+EZTyΩ"y+Q?DZqxi+Һ)YE  Ǩ7Mϐ@`p<b>P "g򞣀in]}A^ ?a:JǦ}pO$ *|GjF{kE+iSQ`*tYnx=!ZX2/^y@?#,0P R1\1*??Yz/1{ շ|0L"1~N,FnS/*Dʌ=YuĖ)K{Jg N8ͮk657S=l$2uYN XHŸ)вz <!N݃`qPৃFHmRp@Wpje5~Y,`6|+#{>K) |9sƃswvÎ!6Cټ)8B3j)̒>"#I0?9_m؜|fm}.R, mUܕ{0o/Q1DPK[J#0A7 ZYq 8'?"Xw8^' pLW'~7F_y.ߧAϟB@Fi25Sc+ނf ;W[LA=#oeZѡ\ZkrX‡RK7_~.-\Ҧs?L+cBRoiT]*@D& !RIiDʴiP8{  0?.F_5~OSʁ._il~`@pBH(#sQ:DHvp_Kz: \kܙwÄCz  L`O6@K+:jep;2q3j9h]GeUA )kOP<@Dq12ۮX~QͣruahfWY-춉 hIuY*/{ vbM`H̡0_ S%l^3FϛDJ3FyfgRR7qߛa"Ba+G-4S[kGUaY!X._X>u"--)jG.R+}c^ \C'!]dZ'0݊o[>rُʣ534NBpn);<4B5bL?>Et?I> n5]WEZحV,Tgy`gryx_Xq?ó@G|HsQ (6<`hG`ތy}1R?{,Ӛ #ȁT'x3`&4*]X>G5dWdBJwP6x֜,2צqs\\5\5@϶1$ kjp#ICx_i||u$*WʑyH_ԧQlV}aT̨[gHZrgW_V?BObPBӡ7l>}狎B# _JÆ<[AK]` jwt6Ihz!~T$j˩B`[tm$T<5ªjR U{%ڋVkS*HO.c+e2&rZ_ g"7~zgVg8QFYCϳ_y%pEVr?q&Wnio`FA݂k/e\ `M/Jo^Hs?Dv++㠓!#D%k>tBTnhp kMzHbzYXlگD.ǤGG]HO ·EFp[,jββT/e] ֝\(Umϡ\lv{ ܵ>Pbq P?~@?Y@S௸^ڗ׾01x0&k5dTTf/ SZپO^'g p7LlHO-_{bt>`CQU} `h(DP;' T:G5{ Ad v{)1\_N 7@xG+j* 0rǪtZ@37{}@APfqbiƶ2/J{fyj}gܐaH+Y^3WIeqm+| i>,E-.?%b!m k+nԾ>t}ɍ7C`X0|a="QFbxBjͷ_X{͚Mep;J.{RiY/E?Tklm,q#jsG@-`) G/sHFcʷr4Bih޻jv&n|/[q.&_fy2^ 7K, :{>Zj[Ʋ!_Y 2RA[5 + ,p{+9m]׭,(EuCKr~)| CgszB1gDj=͞p|'RYz瀿/ʺ? ur3sS8_Ӌ/~, 98n4<0lp$lmoZa(.QlNQ;[vͻlrUYcMɂE=[3zfl(tK||PgQh;|;3fu(遅1O6Zo@A4M'^Qy/2Q鴶w"oH;]n5N/ZzSZISl m\|w#7ۡqt3ICQubRg*DR.@4R ?L  &_9[3&O'q6A<ȆwE biB극 ؏#^B ۀJ?jTK%Xy@{,EFyw`+_fFdD 4Pޤ 5c^;y.Q~lWϥPoaKsuҹtR fM8hj~%.8^/U ŝrRR A= 𦘈#aWXm;m;V]\-]֘5F?} _@r`r QNC0|\q!E<` EbQ@۱n{S".5Mymϗ>_\m%heg,XyRvV^D/ ,V&8Sd95__ t ȕɗ`dMbp_T5@8l*3rdc9ʧҥ"eYF Wb2#4_K?BtT?Js煕V*aygDv9"nk>S󀘐n?5qTᳳ;07.61V!U>F;e9/9dh0+EL_[u>fQLupF] w*LX" `Rgٓi$nOa3cO6^SK~b.C(FŨs(8öT1mbrϦLH!C'އ0H@49gHݥ&ɰ˅7oꪏG":pT(fcӕQG3B?}>ݔ)>>W>â4J~cG/`ojɽɀbQx]*O*񨻙ד_~x~8ry)55kc}> ˇ+pBFIl _0Zx̮JRA ؒ6mQnTXs%׊fPG0~NAJ zHʘΡg~_q!lH `?Z(sbmb+*QUQ?O{_lQ3Q3IHK+4Z1I[A4I;<ov|'%-i' P:,ZL_Md.gsc!aDKG/krkRpP@IDAT+'r84+)NZ+ه ϕy Z;+V#e%WdB<]b-J9.@;(zs)^eS+ XO$" )ʉM:b8~--}ҾȎ>!`7\^dڮRW4j8޷bXX)4#'rALgFH>6y #a؂Gr%DW"s0)/En \nM^W`$~^SLAnK<ἁN~~ƸP,i0}nP;z(#.4 aejIOz-| #De ҟZJ T~ UDm=BBI%nUq|3 ~ilj#Z> Y(VX2ccCVgJ9?}YTw_ =\z#g~bSˎ1I>"b0nxZaޏo?^`!QjVԡv9SlclPdt >6??> );.K8߷~?ɯNBi/:YK. >1I.sD"d@dM) * ֽ(#0>!||oaΚ`SC lMDbdpu|LMaaE/ 6ˀ&%%XRS!ؿɩyKG7<Sla"8zo܏U5_]pJTGOJ|.ғ83? |u=o1o#_#g;LH{1J{DTlcVUJYa^0׽S1s#8MqZӤ|EͤB)2 GlBo 3BD)@|3BrO@KM`@9BrGRl\Klw: w(nU 667!=ZLv\V(@?RK'JxtTOPx7d%vEoU*AE#JxzUtar?~d '!pֲ. +ez]LƃST!x RU__`{+Of/rfD~,g|&z|cp>zO''b?/-GQF=La_iK̯~J~|֮:@L1Э8_!F c<`JTIǂ8#v"hyt? t qB^X,NPXY,ޮބ_ڥ(ͯEBWw"ghsdbMFFS<$df`ؠG@ 9 ݇OGرTa~4? H!T=oJ28gN5NyFkNm7*Bi]>H>FdCsSEeoƢ!,1`Y;$(x>]=<S }kb.-* SS`C77Q_ [0 0{qcu0yH!/x7BF`.T>UFt񶢳yy0::Bϟ?W\0p0z' B?%}oY!VcxƱ2ҠRY ޖk'-!b⧸Ž/qp1*ߩjiCoe U)cƳ|_(Y-S.f(`z<a){Z%<-7n=n|Cb8$_O _Ҍ5~.vr3]DŽ2 l&n=ܭy{WK!(/ZPV0 jDJU8?PwJ)#FevuuCѝ/ 0)ipkgT\9gܲGYO` Tf{S@E0(YY5^R h4uKu-{q~  ~iIƛEB ϚcP}2( 7&+je5H5㷗~hM6emUkoukT/N#9#*#>]^FlG>ŊS"+!Yc\7*>cc0ؓ' ,]`Џc )<,[FYFi} #GЏF?ݺҺQ,X b9[L-j6{w{{קa=UU}; ~FD(@wQ| xn\Wch笑u3Mz [H}];?dPwZCN,vk] U"+D#K?E 4\<-{#`DY!*[Î@Q_# %1Q.@H3F@lw-|!<p 0o/hzAA@zl&n6wxUŧxWl>l*d=s:HF>N[#mmE-NPXRx.bZ٘/ m쿼9ѥu'W2} <@;l=V*W|QxR ΥXu&F.:Y * z޲w(tLi,gOw2B3~󆡎= ;ͽ 4B1Y:οo!_@0+Tf/)[~|g{?;`8~ 3k"zga 1CPR嗩k<) O'e!P+㔙j=¦Gn"*u*?[l&g* ]QP7nk?_rxx$zl򜷣EGܔ隸x߇2GaŞ07y?CP.@!ҍQ>WԀg%qC 8xJ9Ȟm>XQ(RQAp#̉}3A1[_ݚtEyruR&7p?/:Uj{YяOx3}.&$/;':JE&䜉ur-]{w7E:֝KE`D WuZ|DOU:+гEFkV0_djtĂ@_'~|тOӰn1FwA|9gz]ۈjxRVFo*ɿb!5"̣i Qjo@ !blC>p|Xbr՞-,7lB; Fac 6{1<XziP[W X~+1cX .'V.*uQ'{cMPaA(^Dl=(Dci[x ȉ+L2˛oVy^eSXRD]a%je Ä2y~ uā8j?ƶP)@Ҳ}iʽ 0xnEŁ/ SRl:opv^JEDg[Pv,Y>[>: z)Yt"Z#+cv%߲YjրeLSCyC K'laz{jGgQ+N|ȗ9M未q1ݐh!<c]7<|L^OUOB0z >M,ED/^)fD_0!nۋ{ }EOuE/L;`z6J1Iledg{j)); vjˀ¿(ThQ',z[YR-E+gZs(\wDfUhRUF,<^f3)p+(`'1aRQ@a&V{{ɶn`f3_eqaD>M=+ F|uZzT|TaS_,}z -:t}ۥ*ҳF|e7QWc/R=^􃟐1x5}`Khr~,7lÜL И=p?xCu|߿>RZJi-LryKe0 'rhAL 4`Al W',ۗg%nY+=jJCθVkF~BKe[ `7 `p> s+y+uݮ^C|Og߂+@ Uqn,#Υ% o 4 9Oֻ^j}^,} _Hir/T8HVY(E^/5͹AwU%1chF ^hО.sB71H>L§,~SGV'ǟ~[[Dr1/{ Q`ty E0KUDb{EL (ci1ƣd3+?)"f(i<.SE/:2M $bA,h>]5;' cgI[K㺵g5fR)p,jyA&=f3)0< ^&Yw^GakC>6/'D5:zx-:p)Dx!:k2%T\n}qԱ`~U Hf|!9ykr\\!Pv :1p.rWPBN( pW׶|{k!+ 8|>\B `ܓ5Kxj M.l\9Z;z2?S^dlc(/lM|Q^(5փD^Ǣ(.>#.3\\ebaiJ0#|V8%ƞv\b} M#2_@tZ8r\΃lӡfR_$M3!.蛅vksC/ 䜖 6*Ie1r!JפTVa9-zǭzF;7BGv+t%r/ Tg߿<zٯSǨLfɬ'5h4[;+2@)$=Oh˹7ŀǝUzƁoUA;M?qxmvZ!5F } ß\~1D,^thıq4Ԁ ?)(1)n'"8,`h('Y=e2>X0 p <>HxcT7RtDC7ٙ-0 I 4_$'Qn2& |#*[[9dHgꬣw0jX}KQkƦMQ C+.j_NB~=n^z~`r}&DJ*%8fvk*9o29RrsoqMì+_9@@ѡ(vIT}їdՐVTUAJEBeq02`^'hM?WgyZGU45cۘAq1!_Gm-0Q *ğkږB/WL BŪŔ!|+,mz('ѧxJj\,@ݐt!_`o_aɼ/Dkdr#D&wذN H߉ѻZC Vޤ+ڏQ7%k5D r1Bǚ">p-xR;C() v*&Iv|>umϋ5LR®QAii>MvAU?jQ t,;!_NtkS/j_dx2D)Pq 5gORBV ~B!Bgy1z8w6IMH3 3/N B'  "*JUT0KSqu n]6?p~0Da=#DŽDRj #F'TAYJ5)=&|QxvThn=dm iB|/oāt@7 2 Br0_$5I?Ie#f{{3)pK)l& \2F&Ǽi?Mr|}`1W<$r ( ZԻ*=qǖuSWGlP3B4&}՗/{Q6^YsOO(8.+|8HWuY(Y<>GI(rNԖ<( -E6g@ +)(j妥  s8/c_(.#U#f7+'0ڝJe}4 ~7"$s>J wQAT@3W*(ASj}Qz%<8AoR@#{n3Esͥ}896.T'Q9dsCAe|0s06oP56Oߦ}Y3]W>]ڟZqI\UcWRSD2Crǂom) 'ޕD(~( 0W: 5xz" KCf0% 2c4"1 U|lF<˷0_ 0DX⭋,0d< _Ĭ#*@EFUoRPM/nZ!h7ܖ 41 pI 4# EL9c\}s6ib1V#o=c7Gz/R4܋w&e fzͤCНUzXƫ}{^ul{P &r7% NMh(+-ז#uG-uW-tLThrm}D93ZdP%̼TKxvm{Uȯ]$Yjkҡ;EޅM[P6(-!xvta?P\Dʛ  ŞZ@0~Ǡ_ t W"l3C'p[DO;fa^Zae]^& )# Q|#" [5HA7({wn7P cezZM[!4OG9ϵ@-1۽FTDqYExWE|]VB\ ռc@ w,= OJ+4ҝn:jOמK)Qя!YЈ$Fё )"{pTe޷P)ugTV஢Ү(/]: }(&S3vwPN[,94'xCO{`؅?4#qDa\I8݇׵WGC#%v8,.};}r9,%h-mM)LtTjK ĥqIw0hX/.A6I@VP^ꉧ\ &xgs`w#ދXx7^9滟 ҇&|ʄi0b~0cAZg*_"zgYSJ4\q18#ہ' }V]N?qqS*ZOgvϪղd}*3 iA=d&lAD߸sƐߡצSTCplC^5xK(<ځ"$Ia 7(YKGW#^D 2-`R[T>#55H8WG`#7{j,4軫iυ`!Yg KST3@g:@wwwm+F*ڈl廲g5+,VGqiJCY^h%^| !Hd4/λ:0!"*QP TQۯGoibE&'N*Y u*ې#o^)2S1G %[ X1ֆm;fTXe+e'Zk)ɤ?Ou[S*+JHx}A\il,eSX7P^C*: "S6Q<ϟkag(BEybb69;JwrZ/0U.ujhćZ"jy ^'>PV)_}2ONu}9-!7 A˫~AuP'ܢZ|~CW oE ˂I0Ed53?!3Ya(YlCF6&αA<ȡDt 5A48a0.w1o0i|h)z:hYzD)fey rk:8sl zA|I~rvk000~eoOAA&(C+"sd sPEC@?$su*V X_WkW&p~0`C^ h҃-=e?bCT } ֜$fGtUBUY)y54MDs "c4L1nR:PmTՉ`^p9\oCzeYMܓ4ag{fJ\V0bJl&n'|o 1mR4D`DQoK0sd R4B'V!~r}P]6YHIX;S<`'&xޚOy#D0!`ƖPPeTϠ`$yBBYrdz>hs!"aٿkq-k,EKu] 2 /x(o D#_ҩ0d-[ig3rek0WkmUՎR[*eKY088w3pʪ"2]*[dii?(" 63 ]PhƟT"uMIE>VN̥KD? FU*.ߓP&?ꙋ8 o*Hx_$mg,ɡ/]~)4Hn(|1=c~c\h_^Q +)pJrV,dZiR'1(7u6Jn*iuWԞ}IiM]ٷQY1c({e Cw;/[Lz% 0s+C{ߋی\m K(|X<6]HP,@"EkO HU<zzJ:ϧ[w^%Yf^Lle_60 i#GbKόb9o}ol\鷪{2 .:#Σ&Y>5:"i֊A'd?,cC[k0rst83cF9M 6 ƩuL F Hfk6w k HV4KC(PUPUZV/(_B;J+(EԘ^C0TA'p"WIn}wCx[7 ͑A/JLц!D`b.nPZmVſnP8l5_hb+!X8ſ'|lzXJ2H.Hn5h}X'XL{/b0_3TKi3Iy_d3zp.mP$E0 _\xĖ9`=(C{U$Ee4)p)8QOW'~Nl @=ָ'*Ch88ʃX)[:@ep6 4VgEE(TV*D4V6{1޻op>a>ʆ~ W钾Db*j!j˳E_6j7p(6 ,xvk(ܫП.bVmb-AK2g+ xpGū!q +,7) fhOz{3)p[(`n ͓ >0@[2IFN>QCxtxz5vFN?W#;B繀)J#(C: !S=[[ iJ堎]Px:r2 ] [)w\QBV,Ìhuɭ3>MW N-1+{KDUg43<9 a0Fn:DK~t-t.V qIyƢ䚬/E7̒-?>`non01)Q`q$qێlȤ@??F3Ƒ]=')_:o!?1 cT_E4e%<=]X୐a.z7COCaL"ϳh(Q壟SEu_\c(xO]8uP#ٓ3_3ۭ/5 Γ聯sSIA |6A@WC v?ZҷXWDeG!ۙ51gd. fhM9 |UVwN~)jP C @RɁE"B?-g"+| @v#`]Tgr u>}cwJ{}E1 O PDo{ȯM6-Lf G7F, o,Ł(<" ᢳ(J5c F.{{2#& Q2|7cWh/}?u׼Q\O+zCS< 5pP÷Abmp68:=U R*PBÆ>ERw9|i[Z(STH,K1AVIoB{Kzth<;"ht|;OYR,/f x`_xON }GjpD-y\C0@f_<= c{P@ 7y7 GLUsܙVfufyHvk.dGP^9KK&CDИ%Ϻ[|Cru&0DnJ=@r1] PccmhG~NLY#,w!  & ]QbaЬ)@,rKhmMl# [ ()C*lr8\y u4Ll]> O{;1Tם)wk~RRf<97+qZ;1 8nWx__7M3 ɓ@tWpR4 ?]8Ղ~QFx~Z1w Ŏ\!/p7O\C'ʪ:q'!|_ay &`Q1.!d/4;L9 /΅ nk%ILяZQIZ9Ø*xD@?ïB},`-voi~+*.Dm2;9,;!`N_L@IDAT%ȄwR~xK<ִ ̧nquSr#C P P8118ўc}b@t5tn׶^gBϿ}}ETh#R늏{ Lqh]\Fi}@cT_߽2KTJ# e7##96w98 8C{9Q.Nf?M xY^-S(!NR=toM7twd]UyqYnHtf? ,S6́e.GAwR.D//0ܯ8P5roŞ>Dg{3?XoPvɼvPg |ơ3ߤKqMܶR jh=%d+43U) ?Eq rLQ;P-u ̙GS Ah@I71_>\ !c"j| -LuFbtzi(y;MF *ńbC^~>bnm0h3 `nGmV?E?_Ħ)íj@H/VКT=^&WQWv^V{qiP KBT$B"ȩq]4%mZpܟc;SR{>&" fQK#Vh}` GxAsA0#Ϝ| o<2q{e2h` .POlKĈ襞wp"/vIٶ\ӱG3I;MX=.iiVg7_*) ׸B04HnA 71*@weɵ|.mPu:[T s'@QpF=QDvs""Η`N=,&žY_IS "sWqDs\hx8=?;{_S/IJees^TK|F b rv3yS@UNY _11WD3?ԺP4_1Zl 7`g;>í !+COđN6+ENQ֖.(ly>}&2)#ILΣ#5Ү1[먞hMKJvJEx+>~I%lEhe٧p=1!Fh@'g-:1Z$n/ܿO?_œ`8Q\<+#?j@RɓPUPd5}i}h=$зPOF%`oeD(W5vȏ1Q3 j7^^#.KDY~7/`CL1&JWS9 r;yx"wu  fw\A@SD(cx8d)t.bS,F|4}X3Mw$i{999|xd,>p{Vf0?pcΉg(4kږ@q"0X{DCi.X7BɑD ;'fݎ,%g/M!lI bD5A"vߡ௣V mZJ0HA*5:Ifi]Js1 IT*UZ-nS#(})` A$yH/0_q)~RFf![ܙ{(ƸS78D]D`DX!<=)G/6[ n&O6,0ֽ l 2>P\jEq+ղV]ׅz41$JWJasZC,O^+Εfag,J8L>]c`zI%W"ID~kh³Bic*,mt*je Še.FKyGL"cuip,74==<^Ņ,`h&XC>q2xl"0%+h3sg2p69x_Ox('c^~ގؽOt׺_ʍ4'ҙ 4G@ BR%0:nx^lPQ@OkGs-KDaѵԥPT T3|(UJxjBKqȥ´ k;0.~*V=`L8MO#O1(V`-Q"4` BL e>,3r}U4NgB0#xHG%uxߐsAyc κ{ WH*W` ^CAuFdvEYk;Cѩv{U|ʞvޚ$Aß!쪀]/B%0lUeѧ!2a Ӎ$D@^Dy&+UVE۸SЧn19'T#"F_R4%96{M7sLq̓2|ϙ-cf;>S!px]4 p EkC33ܠ rN&#} ]16b *WMpm#V*t5})VSj'FװG܎xQ1be_Su F@W.WL4Gl~Fȫi fMw&+]TjGQ *㺄y@+kSr`n* OT0EpW*^@u"HdZ-zӀ^n] SO|=fN<8ux 9senG;`7ţN+(_ 9q~ԬGku` mu}ͫA w0%ϼ?6|C \t'PXAAz1΢e9>thGq_M  ::=I`zZ"PϠa Z0e+_S ڷAs'ֲx >{>"eAUJa?<g:k@*T-x?M.GӉYÜV\Jf]4M9O90*_]tրC9*xI7@~7r{D O8~`X^1@9W ] 5_=MQ:]N#2eœ*e^:PӣD@Ԭm@E@kMHCdǔiLt>u Ms+4с!x9_M1$&1@CV)bjoLK yuo/Zz2wx3QIh}J~Vz +CSaƽS'a.I2s |:D5 ׅ8S"Pp?Gocp{{s7_0a>.@.͐PnՎ-Tr("/+_,ڂњV}+x~6NޕK%qbmm#BDTt 5Z#Z ӭů6KHEɎ_2#(,Uf4i"r.`Ds:ʛ2izl%z2ukY ]/!YH{#ɑ na]E4&4qþq=RQ׊n\@"YOM).EI*fk3e7~ZOLK"G=~^ ~[-  JP pCO/bdu=]#&ٓ {L׀Vc? D7ӿ;TJ/WԜ?7E=Y~7 {vA h%f*>@"/T(X1Z֝C~8[KMg<'yȍQ =Vlt|E~MM?Yڀ.waN3JfvN2+lϷXR5ZSk~dɏgJf1 9ns:g@\Q^Ap]5Sr ԏFw#Nۦ,yxQSXe2eFV?\=GW3dCQ2;ØwBCߐGgdf(@CIH##xjA hCe~(ۣ)wr@x_1@`;0=W<]j ?/qM~5'ُp&}˽oʩTS=qavA+Wͣ)\Dr|s!79_ l*[Wpom9hY!\=wp?>j "_B Dq../D.͈ݹ|f[';Zdx,f刀NCQ#BDjGK+_Kh CfnK4(BsizDM0''z ۢY&>fXk84pT,|=y[x͏vN2uz7f`" $ALcHK¦suxGc8ރ*3(?z~=P߈ SQݺrH$ЀZO QX%=)ّ?YY" ,uR==}]tU\xj qZnxii2",$7ӧC n mEowE 1ʐb(KMZobmܷApl"+nUqn ~z4?Vxo-- GG E~/lEݏw"YLl4:ڋ/u>A p.ua)EEA$ymb#Ih&cs[A%rkځR<g"uHt6!<KVVƼ$TfGͩ/9]l0BnU)e@ y8?! @xb>3d#)gB+]9MEh۝|Shg8H c>`~f"+1)1EA@`X_ׄ%_&X'@~oyک:J:_ [OI &"{:4!g~ӏ&x*h«mTB*-KwA S?'VZ`ԶΤv {5@/ ְUDBrA z)q]u,ک̂sQZ&wߠ'|zū\o9IϦC@gSOϠ$>Y 9 6rpZ,&ޗx%ᡟlgy#) ˜S3؟1Ȭ4fﴤ<+tQ tt<:(dj{,T&4(Αo=(^\ 0 9"pW2G zzGW S>.)>e}&5˭*=h^8 V!w;!D bW<Җ [(߅3Tt^c{i. 5DS/ ^kr`zc8 D7dPcaӞiw𳑯GSG7t%B}qTۿ&l=SM:CϏЫ{m|{Ѧ6l=`HZ3+ Y4yF_F5}t.kb8<p3g|/.J/}mm Gї?1VZMӳLz.t^]nyɉ^('7e5i0Ed ^|Dj%=3cRrNӫT/'>CVCJoWg{(<+۽;ա`i_?0T 4)sõ),#f{D0տl@v*QOy/H'5>cҿMWd>Ql?#2u!, Me T?$ 1̡Gc8+>3?K3(T*:#ϦLI<+JPXk#] EXbl:\/-Wisr3΁{D\ACj3AG5U9h(4!( D"]X^o95ya"$滆vSEi *+@u-|L&HQ_膠\vqJ̲{#iGԖK7eM}Hu`|nO_ ?a81A#d3̿8^Oco@b@g\<M\GĦZ#`w&_Y8>{6!D@B T2 q+䂙̠>9 s7{*e L1ьc_R |jA PF2 Єr_slZN"`%(-C$iJhz?I.y7 `Pʸ[$0?> gաM6MB\6t 0TÞ&L1Tܩ){c8XWhƾcIN./)]$6R%9 OKÔg #2?P@=ퟋ CI.trq-[6xoH;Dw}^BLAܜ~)xv+]!Sdu!;)jrX8CΙ΋~_SK0U f`0/q1P`H.iE&vN%T PDf,a/"ƿwtC])?ҹK֯ ՠt"0(_!Z)af'̎ p % Zd&O:98+{:= ,@r՜! < ј1>ṿ@WzN*؛G"5.MĂ|.S-AѕG%B=W㦋(U6A#~OGX#uQ$c?\dʹ:]i< 󯦧xL1u]`w1EXƸՅ6dחvơ4 vیߩ.HKkzjcfb12нo2-ϳs=sp ) ( _dz;y0OwwR  !P%r3E'Q }#S[t/ήO?^Rš#:zSH,xqO l̽MVI_ _!J8NU&ϴ!WSyLa'´&26޷OυWl_#hu0@vEjBI.{@F|2fZgO1ޥW'pob/_9 9d]D!),?0($,5 sFkJ__r%DVdMǹ쌒s/,dB =3c, '{4g,' `@M_t$RsB t*]y:]J PsOjԬd؇?ϬAp.x)bk۞'rqw0MW~Lx#&@r $7 . aroʃev'_i~۽XըKT%L1-S Xͱ i3Q.|Kzw{,by<)6QM|*2$zM 8Z\;ۜe8,їz^gi7-kfwQC5ZjrQvW:^p# P~Re,2mP|\iAX zaJ+sZ\K\'G| d-"8UގE5 z+6Vj>[íhl$&_I}P;rȼDs5T=p)G3=:3[5"JGy3SEn="&flF0;]coHH)'xA#` 3s1C`_-8y /2Q=WǢlIkOCFb#33r`T/;Xwe p^E@P(j*/0wi4.9U}0h&-%jCWG$t{dחX6B-i~2|xYܡM`Io68oc^A Hdb(pX3{z G"̵ŷ "G0kE0SUˀ9Q_w 4;% dA ;ī:<NH%Mrt~uEwj"E:x?X6d~,}eOU=!"{6b OPLŽZ8Y;S xCfv&|0_TZ5S7 n[Zmisd _bdVСeI;f~;‰ݲ`B{`MQ.;? AY_2g:oM3xq3. , -eBPs_LN6'n7`؇HUy*D !14-`Ak3] ^ut=8TXGkhW%tb=eXDEy bZܧ"$ߍlq7wNJ @(@ͳ,njm%r~ʏMZ+fK} yaO߶6 p<VxP%, F4i.s_hџ{Q{,D?ě?ɼ7r*g: y?auMerMȦЪ@W/ۑ{=hw=+mn  Uٲ߅Q:B?;!}Av?ftBFݚӬXW~X<{CK"<`d0_)X2ndǻ]~ t@"Og v*_˱~}K;=Z/ƿhIHMηUbKà(UA|u_Tꐁcd>,P*E>h5R4jvp|ρJw`Vi7JPJW+"[י<Ŋ+{QZ=]vLM8J_ETA\Ԁ Y| LK(5u}ԛ@6_/軜hjAY9r>]ǭp> wSQ1F #@[P]8>dyC1K}6ArwsD횺k~Ï}be3#DFq(B՜Ds(bZ'yt%bjJ%0ĭH`%(|6A wp-PYd*q\sh3V^,}=g ZR˜)@! nAєSx12#o uM1| M#"GT멾fJNjUm5Q^ P}Yu2\-3)[nĪ=?7gBtc2OW[P@."` Ic[;J96gVFKw9:#r Z!Rtep܈L1O+s رiA?!eP:TeH7NP bŘ󺀙 gsA ^hFy! ٷԓ"pnK|Un(T6-~a^"5+XiB@  UۂiMZ2MϞ\F'Q̢W,؏;NǴ !IPTJ9VZ`~Mkd wp7w+Y>l*])kR \Kzps)JUǷD:Y4=vu}*AZEwXpb9RE%XXt8cb9h>$[DTvA|0gU$X\ `8* T4!WZ,i" wRU;Jni9^X" p\(e^@ OMvwvKnӂ^sQd=* 'L0|v0lG,}k9]W}ҿ4yk '?7c1Kt͵e:?lV q൸\œO\. Qy6qv;FGZ!jCGK 1̙эTM?EhN5 ֯<.@:5<ؙ/R - Q5pWNA P)> !{Dz4%۹6Ж9nh߇ZA:GPfweB禭ɈVC0k5 j_'0ogD_uGc${ӊkPǝ0n_^TP 6G!@ioVyᕺr`e 0o c8k!|Sv[?ֺpvFn+yAw.k{eIDATҺǭqtX^/t0olu>t͑rUsY,o7!K"& r)1Q_wb0$J3vyDaZA reҾ>N ',=t& z<>1}Hh '(֫M4rZvCZy3ӨeSN#*>=. ߼l! ka^#}eUumxn`.c8"3')ӨQRf ?q`"Pyv9>*)h?&^%bA*3샤u7΂)c;CDyOĩGc!,{=.1Z!pU*zcA Dg`>BŊi)iZOfœ*cC"0 {0W#HhaJ!v޴2kr jݹkbY-r AyB> Pd=Ypa8a^[˃hڴrk% {SF;({&9K[FzU U>/lbo!;'kbۭ@ Rzn3wb .mP2!ߌx`Axs Ě^,޺9]I"S[~0yM L1o4ALt,e5'@'FȢT<7wB*Ԣ;I0P1=J )t>|~~ mZ` ūr L{8p aay0 =(w4ѵ'@ `?!PmN7~o vN=pR~׉p/ů!<`E!0k"T$;ъ&(IbA [/ q@O:TQ/Ex4ͷbs5Oo.3{ih0 j?|Q *(:LDniCy`+μR?RiNaE;\CA|5Owcclt>Vrgڙ}6o.9]W {H3qPicMjC^Y;յ^לkj] w7wg؁ч-_:?}_+x {E9%:DCfԎFǞSj)>EX8L2 u_qh-|ZٴI6+~'Uy ^.%jA (uFm$ Dvh[r;}Iޜʧh6AxsA`]dzh0:4v:~ps$V|'ed<̾yg}I"jY9JcaBWCJT߯}O-=YpWern0SwL5?L`I'z\_9mR| iTT;EuqYl4(R+*i@ 7 H G2B]o¯c <14_lOb( {k^ F 9 = h1//5:ם:;XwyQ ੱj.ZJjL _,ډN~=i=B=>ڙ4 g;/y=ML9 PQ/BzL|rj'5jj'uo _Rͦ1$剆Frׅ2K]+'E3TNFКDE@aG=wjéUM6%=v?epUJgߦE v4xн*I[svi[Ry^;X'UvBϔX9Ph;}Gcfj,j#~T@Uڪ!" yyϳ>) Ќ^6tkZ_>>'ퟶwIf,ݕkcDzfp?._v=^ϵX(|j|IOu1y“~뿙ۍ[tinz_۽^/Gرu|IO9'8䌥+Ǹ*Z?||i7NtsʷSr%7i6]_~qY])+J|utגRb稈% R<֥)9#q@,ߊj͒o"bzĦ#OrJZ] LhҎf~ny}ѽ9f|gouwWҖt\;i47?\>gl  eGZ^c7~|k3Mt&:YSiX'#흣5o' J'-9`?@Gէ<[?8Y\zm##kƲ 5~(?k"OG&ʯ?dl?S_򚿵Q/|Ǡ{VozY7Gɼ/EWҁi=]0zqN?e S%C`/xg,PsEG|qk%~K<:/'J\9qR޽ġG~IA.*qU%vP,(?7(}]1؈qOd(SM><(/G;]~=}yG{pnuW?"6 :cpjL.ݽ+4=3?q|[\4~S~tagl&5Ok#N݄g6.l{;"F's͂C9;x4wN柌TomouDSsiO] {X7mZ 𽴩F|sz:tqs4s׌'?9DyMN0^yZ~"{I?vjyg7yXd{?uZGsGVNcZx'iK.Kq2#⼈oCڳRbKJzE/b"d^魍|z?\ cEĈ߉1#)q%>{0(w7K3\l*]J0#=#VJMz ^|a˛K|Kβu9| &Ra ޘ^+"Řȿ$K#lWGO`i&Rsv;Uu;a=1|9V%6  |WޒKB1>&C}J:<գ60kCWS;uj><}Xv}7D^F%7KVoF oGC;0_n7tw:O=)wWfn|;oF[?f'L!ScWiCmFoL<;},t~^~sp{ߋNmk7ikLA-\ӌ.M77д9YW\tx]txJ:.bԗ+##8/thă"0 "zۍuĉZ1Կo(R竔z.ivQ#NhUDǩtV,犈SC_=#WJ]0'^77?D`(7[;PZC/ЋGߒwv-O&Z܈]54WM?`ޠ[ƝGm;5y芭fޱO&Dh-},Ytg4~ˇnܞC%c~O:/IVxzhG\d_  g˞YZIۚuk+sܜK60l;q<ƀ4ڴ9.MHW7x?'O_z׷q,i,#=y`wnm<3>y?7[s5fm߶noI;yuL ,FH @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @{bVIENDB`ic05ARGBFT                Vˉe  ߅ ߅ǀ À\zܚsm&*'1qۄ:')$oم70331)8u=)03314ۅ*1())/1*(')0/))*0.܅+%Pc5)1332+=&,ޅ3*@5%22):j)0Ӆ K-)1K?*01 -TiF)-PӅ|,2/+-0)./)/,)-2*Ӆ[(02-,Qsu^5+21(`Ӆ]1+8jQ.5nхmz…ƀ…̅ɅȆwwտՆ Ɓ߅€ހ߅ ހƘ̜\DX{̶fX%+')Fwk4'*$e31331*+Jgqc6)03313}(1(()/2+''*1/((*0-ħ~)%Iw\4)1332+=&,Ĭ3*@7%22);k)0ĬN-)3OB+0101-VlH*-RĬ,1/*-/+<;+/,)-2*Įt)02,8ƻ>+21(j|:1Qλe29{ՀͼѵˀπӀρρςԁۆҁ̀ҁۀ݂̂̀mȴDz ȲȲڀ Ȳɴ͆`~oP?Mw{&)'1WnF('+%A=0331)0UhbG+)1332+,1)*)/1*''*10)%(0+t-%c|@*1332*.VqS#*q;)QڽF%22)*H)+}b,*=dS.0011)=I4(.<ڨ01/*,/+>;+/-*.2(j+/2+=ϸ|5+21(QA4]Q.1^² úõ þɀ̻̻ic10PNG  IHDR/sRGBDeXIfMM*i@IDATx$U0S=a3,s (i" *^AEW.*`@1!UDD( IIKl]W],{TꪷgN$ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @(P1 @]`O<%}/Ϧ@RTJ~񂞫5Ώzu-zV=鄈 igslMi87hߐRg>*;sA]szyZXsSOŗ8sQ1Ŝ*w l[(Iv'ܒ&v_@Z7?8  04f%@Bv <UGV`\5W2X4Rb+ԱX.ufE)-7qo9|`by 9qqܐ8&8*8"ؗQeMMl|sɯ9e)&Y9qFs!o#9P/![DӣJɱ~W/s>ݙM#XV^PAs.O~?pLMK:?:릩ir?R P ;]MрhbT;wW&uFjo*6m=Uts{뽿pyo.2g&5CknZlvjH  j=V׍0r}h㜛%y`tקK78ˤⴴV55#\uyOxs.o×ġb:|^ux^9đ9oÛmZg抰ww\{Jޯќwuws\g7Mls,족nx[&?9Oo7ӛo^\ P 4狲K 3 /l}@sC 4 MDWѬH4Nzq^3toy4MnW)Z%kֱX?7q]r|e_?0ߞxX~Dο+௛|ߛ??9yz`cj7Gjyzs?z/<=7s~<}9:V969q^nÜ_'5r\5Ǖr\*%sXb|/cS@9z7l ){4w{Zꜿ*s79/c9"8ӿ;+yz)'MS~.O?1wYxkں|Y֗)iƾeZ lܞX>V+/Z' XV)ys)P*"پuSx`gDg%iNwS乣+[j/UrۥM=yEy ={A)+W#/)ӳA4XjSȁ _;uEu=ukߘcs}S^.ws9,moMCf7Gyv9Rg7mc./uZyj9uxs?\o*gLc\E1Owg2/\_WԱ8/<'r:;e7[NR7wJ/?\GSs9O?Oy'o ߯~u>[NQn7?y~75gk䜿;iZͱ3co]^=srl>9o'  bzb9nI@p77;! qz]_r)\GV1iy\\Z&$r~:ѐ `Z¶ey~_ֱgc>1Oob!ϱS^?|(_4M-%r\:ǣs^){ h5Q=yrSs/רcQ||.h)CFӄc}Ss<[{xGQX 7:u8v^99}?OxssM-=7ܤeEs]ڬx_\hYlu֒i:|^s\9yY9cOy~<ϭN|L>_,}|]^3?x[nnμ<s<9||l*ț%ys|O^3srcy|(o&1]wu˱Oy[//ӿ9ޒcP6SUIoߛ96/(ehϻsNm(O9N?nob|?Nc';w~J_wC\r۹:Ok|Йw_<=?qM-R'we;f@|f\OK=I~w:_)so<Ɋ& @bV{mg  @ 5%QQ'%6 H_o}3=:|ҳTj{ f=8dm"Us?r<2Oo8?1\|!翜;5q~3O7̽94{fcr9zN&QoOoc:;X'3{ߝ>t5?\k>}\3Zħ\sWΟzC7=t/b4d1}oZa}s7.;b֔Ή=N:3=_ྴ`fE L3ZLKҴ[V|7}/M؈F;Cs?VLgN3YFunׅ[O%py4b W}J4X)m={t/yxPgrh0)g:51!o0:uA盷kfzn>LvױZo~k;}V_]^\v:Yohl*sDyM@;WHSqsO{aHܱη'M>qYy{]v힧r>? %O?4OW @`X <ÞA.6~u\su\:`::|Ł9* )o:6C Mh EnXtnznt1oE+OKMf'Ħ=|Ss 1ԼMCˮh ezY!'ƃ$<@U2]4"WIW<9ݹ>7g*'Ps 1hRJ96⁁d)L?,w5k#~q[!@` Gέ(/E1=ݸ" !s_xqHx3sC%篑ܚGh[͹SlL9Wk͏;nҲ 4 xj\,T ?cn)_[bz~U\r:|Mҳ)rXw7\y'@` trnVN@Z7^\.*fw]2-&vδLyf1tgzy=S2O"@,xv4WҜTߍ(w$Onߔgk7T ^={\4MP2]/?"z?f㜓xCKO>Ur9O_:Ku~ uu:y9rM(馦vy@ L`nP4褾4=i=ˊ:zP^v.-)HkE~titeO3,˔{|,a @)3>ߦUG,$J#88,˿?'3ҹ?vJ}kU<2 $<͹yJulxV؝9^R^[{qzu:W:_Gh4'Wx^\p?/ޔX Wq:n:#yҷ\)ȱ77 y@ϛ@U(>3*s*^[:<ݞV*/Y-PPV1ZQKKDxÑ/&D @%W)3bU4%F-7ʴcJo{hP4~,Uuql}C)G M y'Z.':x/xqu,u6y$]! @?MOљRk7ն=:w8uLoc=1i`FB$@"PF/1&sk:G,)]MnxUڸ+m>:kw[Q} @ùn醪غ;ų{FvxTQL:ZZ91MPT]G o{Oa(V /\ǥ~[Աmu{CE^g<<"` xnT<7ޅ~珽Z&$SVi}~{x?F1ƜRl:mnP7ʳ\/WˣϓXM-1#n.YL{AVO;5qp 8?7ޅO[`[F5cVJ+LoON۵YqT-x^uttCq!oдu#K&PHKFyOZ<8'M+7UM;Gִsx5.ci`%@ӺTW}ӈ[#jL+}kq$EĦkHGk'  0kr:+mY}r9몆^mPP88 xnT =7ޅOʓNĹS8}O:涶X-u儓6|pM_l-s'0χMKvg\ ]rFM-O7L` z=wTߚn.\h_[OբH~Tz[pSt; @ @3\tީij֏ӄF^=bhlоOit^IBS Mx@8f:::n~q_9EydGb:+-R/7p @ PShT2B=*_Z?*|!7(W,qywqQUc!ޒEG󶪑^Rg٪|4UE[r8o.XX?m3>nKR3$~"Kg[9Y?۵=|\gi;*fn~xkT毿ϟ_JzuԕO=p ik}Yy#-ޚV}_qҎZ_N^'QMtMƭhj]$@'PfE-UtCQv}KxSYqjsz(W~?;1@5bn:0 @ϛ@(' H}W=b.-<%13ŤnĪ!b5jD]:QsiSF86@MVV,rVW\Ң>)M@kcǧv ψ#@%%i;xjf!m^}[wn;!?~eܩ]['=w%#ޙ<5c/IMuŤ{;⦴MyUZ2z^?vt{l<K @U_/xYx1'鎴eĴgZ+}88"GecH2gX?\{G:v4E1uDOjn2Ҩ޹QoM9{+*UF o^7 srF:ڦdyJJ#^.i!#'7[4 8x'jbN"@!PM^MOiu ZVu+ux[-[{btW^ S[ݝ1}b+^;nrZbCFwZgƲKU3=m$]Uߋ"e:w>ן~ڰshߦbx6Դ|cZ|]&@?JƇ wIM )zxcwj*sgݭX$MѪ/~@ρiKd.>irgiR|/80lS"^塣y_GPb $ll6 C{8L{YݯJױ[vԭ鉋Q3+.-ߖ(VoX~n 9#5cRQi;[}EpPڢNڣfl7ctNCd&@0v+/a˔GY )*6mпKyqZ^qn.F X%MM|e @9*-W5v(95|R =QtX_y,6sx , L[I@]t>(c`fѴUFZZ9-ޟM:_}{(uF_ٱfHG*-qʯG4qp / @ yF\&@|QJ+mU5|߮c:Gs rhz}DʎivtgT ז{%ҧ8d;Kq󨷧} ibZ]:.ޣ!@wf{AF`V&GS 4,EiߧUb䮞bqMlI"@!P7@XDðۊIivqtךڿ45عW}WL|ugv2@^ӪHKCeQQz꼤=gvzς.#il7]/6MY8W՝e뼴^[ Դ|yi4 {_i7{gƣһC߫GLK8"M;CJ @t[TDbxPTY-~ޕ:Ѹ] @`X 4ALkvk_SWnbHaSN8¯/Mr6L%@@9G7eپ*61껹HG?"DqT7Z7=>խ- E75Ѽu쿡Tǽruo%88RjS'  0? 'd>4CWXw:n>k쾸RgR78O7BNՀUV@Z,^o]!}e%G>=u1lY(Qͱ7K@yɘNE=} ֯,wH_7d%}gT N?LקsNojy3G|#[Zی]L?mz"=PnfƭAl@USR믞\mҬb\}_K,kӿy:x]Q Ѵj*馪 JZx 8)uȥtN4Hi#)*jzܖxNLWDqpC94 hNqZ|zGZ=݋H1q<UgEğzըqy_lL{c~T#Lʏ}t <Ob*'05/}؛Zz6QPR>_r:Vݔ/dsnAz$nά7,#,)M5ٻm*Ҩ җe;왟-?J{\ei\_:VqÂk&@QO5}WصIso!qNY4 [qnktsO˗ijDRSqE`*7޳^W6|c_uYݷViL&@ h0?! x \yI']}*r1j|=a:\уEwDQ3=.ǥiˣf[85hW72uƭU>+^qKGBYcz4*FG  :Q(?+ʭ1:1ҡ[GG..[Z`fK7ãݳ9J @+ J+Vv& ~s-v_=4G͈kYEy Ñ 0*tUݻTlq~\{LGVirXQE^5MͶgƎ|Fo~ZW,oFdM=~e95 xjjPXW H<2@ղq U{VYS4Fz.W0Ź->[NNo+zY.1{ҡ9'`Obn;9q۰YlhZxڞ @ PR篊YKGQ׶ޗo4U^Xyi;ŖҚѯox_afNm2&"qQ qnTEBMapv/X)ѯ `bt_}gOtFNK҃igg;H¤,#@/RD0)NJ?wd)ҜC<&l]ӁE XڹmNnٴ\MbGu1 Ź8r(;'s9!Y3BROT!P[qMʼG`!9g/&@#0ޕquxD[A@u>}=klG5P'*.>GM=G=W0mb/K7O[E,>=w}7m3bb8%^匴x!_-.KuvGXy{kbsctu81h @iuV_w}iĦc蔾MgGy<((?+H =%nU ݑ=SQF 1۱{ҫ^vCqOFX~hwMŞTn_kOQu´:8!7To|$@pЂw8}ZA`z'&+UzFtkwB_5S+f?a t~i&3,0tttb:ōit@@}L6k{cif>_aAE $y*}6ŝ]ݰtslYV=_M896NOY @` 4^#1ޢ|zQ7QA>juaPVOX 6%q}]혵PڰKQ5|!<`L&@Wtm@#-O׏U:WՈqP=Ul(9Z FsڿH۶^_0{ڑikۍ];2n>V=g݊biÈW @3qFƦVQ=+߷vo;şn:/؎f` 0Si*Sg+[Q!ʣOW녪XOp3Uoҳ~8G-*>CȤ#RoZcwitT,?+=o"_m7|wS9yw{JV cQuCgglx 8~'\t7UXz|׊ *5#gu{Lԓ^'CWQE47FD;H;>Wn跊 27b1.2ӳ[Z2-Q9,|@u 2Ti t\?-v?E[w;[|>xknbMb(bc܊WUD ?Ga@՝nԻ~ U}f QaOU1btnv|ώX5#EV"@,s5mg⨿e?#\~VɥjZ< ޔ-}oWgT Ǵk-1u TXäap(3U@o'=K^UOH勧:vP̈;ڨX(6(~Z6 }S*\df؎ƯUt`"B E4Jv6u_ , TUǺ_LS5Z秇uyKZ8

]flU8:._5T42P @ yxF=PFTkձK+껃u+֌BMJջtT:sfZx{嬕\ 7,n5Ŧc~XyδW1ő5qS5jVT! @'МWXkbF^:n(zcR1*Ai8/nztSgolXH>!#}Zwm;EԷ[{hZ㣑@JAU}_;M)g;&ϪoţtD;*,HE]|>n,Yo[bMvNjxFFõ*W|t4@g$zԱzuh!ͣz$n=h{yN4x}ܟ[WN8)7\_^,J+HsZME Eb`/(µvmka VQED*(XXmO=<ٓI23 ׯGJx1H_ " K-!#ۺgq[Le$.qӘfCIw-3e@ 0 zWmNt%HPp_f>&׊oh h~"i2z{} 쌞 >al"3X.mF?mcm3(2!my+ @=h%8T~,d>"G]eюgMr&ŴAV`I* t,5olp9tiB mt vGbESM(!?Y#JE@D0s4#q,<PTl\[7|IfkI?*b@dnA?A0ejKnsYr:Zs(ݱOZd@*ۑ" "P D} n;qH1~b7ƽy)t}Ge~%SK̩TOYg " 뗀/OMDӧ8;GfN5Ҟ򺝘QʐohR&*{ 󘒬kP}ssڛM9;xw;k&vO&Rj@S|x om[D@6$G9Vb'm'o]]~u`᫱[0жYֈ*$*楒 gfUף()YGjtz r)U!ɩ$XS72[Ơ]VHDRGٜ9?:cg8 C־==^5c`Gy_X7/dr3\Pyu8}J>ktu$ :" Uݜ>Ӏ^ *0%e\)K0,>M_:"xn5lF9Ɣ0rS&XPh[ZT?ME^r5Gɝ%DW ?CR)2D@D@D@6LA(h} ?P80|cen:Ǹ +n1z.VDJ( [1{>]}GW{f#4eow?t#[ilWJps1So>@D@ " "2)bG?f9:T2PDaMˮN.uG;pW>r7(q$<_ ;-ibKFmJ{0˜tˁlKfr~8U}fltKݨJ Z8V}ME@D@<7\ټQ/۶+PLj}ҮЫ1FZ+ vVz-=(xnS oir#K{e56^UыS~ES !YZw톅VxXlgL…niº#+våhT!gᕚyא>." " eE`[?ꉁVLiM.8~?$%*" USWmYa9t4D=:f؞=KcC^Ķ~u]yBy92cJ6?:~?|NbߪL_%E@Dz1j" " BFq?>.қG\n4=(?|ּ?fg`?7`3Yi!| JmJYί%KSO٫uK^tf;|hpJyXJËFVgDTE~ S-ktcp)_m|b(d0;}KpFwEUUsrAYm|]O>a{vtN98-to|ɇ7Ve K_X'ZY^_۔hnLjlʩw=S9/cHEᝲ;{i=!ó>Զw瓌s%3L}֭~pĦ?S(|ڇ tH$ݜGUk]XsH v1u>UOXK>HF | (~ Og_\%S/#kc w%PϞŧ_Dً]۷pCMD@D/3}5sXZ3t.g]5 G`145}l{'nᓘCx0Oi΀P'" kA CWp˞B>r? 'ًl4]ȚowFtRGsOHk15#ßHүTt(c}ct(o'./mpdw,wbaL,L_1OZ2 eU8=D=guEOV+x"kgAhǦaܩ֘ 4 ~X-e>J淙N'1Y称V|^퉯{{x>2b$3dNtn`q+/@`>e) ѴĠ4t)4,@e)*>qrfWpE@D`(Aâ+^foM7xOE;Ϻ-u>^I5mWivGjfnLb70&A)V߆MD@D<Cɴ݊~tFl^x d%[%<Iϱ+/+-SQjFl1r~ɴdwi? [8\Ar+qYV?^Ƥ+E\H-tэhXQEqd"+V<نnfЃ/iѴ-" U׉dr$L=b`lr`laIx=aGhMhf^&⺚GJ ußQ{E?acљ=|b0MX6Ž 'W XD¯|<%ռ@#ґj%8Б O9˅߱CbC8ǞW+9&%09T9|:a(c%)L0c7Ě("gL$AuVj]sL_e|txJE mJR$P2(Ha6 dz)q^.8X}Kw)$e&ŷHW_ZyW+9h̵cmPb&b`'1 At" ";mo\K[lV-+l1r1!S#Wc.c:go@E!%oV8tm]s4xj yuWdW*Hu,l~a Ҡf#w7*+GV5 W's~VX|DdEm莎Xp/-%v_~nEJ$ˡ#T(qvcmzVR L[%6e?̾d?l%:u7?| kVo%\MOM"Mxh0g<F@U|E@Vkf:ޮKNjX! PJ=Fݴ`_oWֱ,r۝J_řnAо`7&o_{N݌jsPpּzyGD@D*phTqv3 hw=-,Ƽ '=CάJ"+lX& ) `ir0Z: >uK=d*&" "TK3ڣ_ss1 0Ev==0s9N;NqDla^ywX- GCki3&Cn}2Pe.NTD`M 0vͰ]'Wlǣ2*xMB_sS(vc:32s߸ŵPVS!v_?z~m m3<Q-fTU+W8" "P?ema)qǾdэklggYC.|tF" " "PNL)qO1=,y-`"cx܎9gHHSՉB E}>E|nPLgRow:$m=AƢx%f&(տU@Sr+⳯Ʊ˿=m uQkth}XD@*3hs#ξy9hh2<[<M߆F}ZwQš/Yl n-}^]Y2.I|(5vukN\ָZlݯ "PyTrfD=ݦc[3lsV1.qiF<%q K*90)>pY." @R28RAglc[:hА4vy?!tř31IJsXނ~, ^V^fFD~fHk=SD@*9T X\z^ĻOA!+fBMtx:M͑~01vwOTu;Vܒu3:"{yY;6l$gK,æ])ì[)Z#{M&"P XJsDma|_Zq̰ q{ц1Vf9jUq:}Xc>oK(P: j:!63Iɏ{c ?w./E}!5')!" ]jҩ,*_Al:ve?]S&?Vm^==_~ bM0/ݫ 0],WT BJNRD@քe_y\`[ScSp5N;pE?[]"h2d3!Uo']]qI+t[Z/x4#ۥa9r;08|[ DJ8?fUwJ޵͓+f'cGE`wKh)ԬZNVCrC(% z\F QG'`mM{=qe'lj" " '%"] k4?ĺ71~{Ү`5]c~jk|EWw xiXܺf2E;?)/j1f_ў" "PD R%;-;7^=f5hm$+ϥyeXwewcKMd5lowixu~КOV󋷶 ]Ⱦ@MkKڦdLWZ5Z" @H *Woᶶnw_ai7$~jj" " " O#p=O4H()aoٗao; DIQf}N̬0IwA,ͷt"3UF5w6{OZ>HǓN 3XOJPtޮ@/ӡ" "PȔQ*"a b4jMrp ƮEXNdi0i8wPq>Few}rGٞѯB8U /Ds4k rHr{ëӢoYQs" "P xs~ZU柁Rمȷ]9,eMⓨy=j MɥV̩M." " @ w|D;`dQELXAg(}ɀȸ%T4hn$mg,ΫWN :6;RTZr0dZȮͳQϷ+OK@_^Vն6ƾqCPݮ@__@E&-T4v(n/{N=fs[b0>xN3`\KLZJhP"kn@ zK=j/ά/eIס]p)ӊK xtb7zOMD@*_h ]pe/d=ரɣ7>fe0i欪̼@L -f^*[8]GuA(w~>/" @U=&B*-і=*CK;jmϤ3BGGF~eW! ""~[S=Z0{c62e\1DD@*-T*i" ;/a%;^q֕5[Ay޴@tQF/]VJϧ冢=nN9ڭXtq{ni={0;ۅsڡ5'8ۊJ|w+" UUbM̒1?ZQ8+1MwTl;ΎI:!`:ݨD@D@D@x7j߲tMZ=&b Og 8oZOدdO^٠͓>3gzUi\԰l1T97e" "P D Wy&" nzq f}0 #8c`O/M_*2=_;:\MpS푗U?vHCvs֕=6CW{QpU4PFD@O)% 73T3|/6ˬIxwsn, n1݅ՀD@D@6%n51θڋ;tRcW2hM&dʀP'"P% D|6sD6`?}ίjnoE\~({'Q GϠWj6qF\D@-`jh," 劀;`i{7p t*@jk=h=4Ό1՝v n($^ゆ5v.;ݮv->Ys!WP]WfR$=3 RE4ԋT.i'*o ޿K`N\$2N<O{?w[4W_wNB5;Ւ\d۱V;ݗak$" " H@W@/"P~ \`׃Hm(h`_g Ei0+=Eₒpcy8i֬+ZG[aܾ銾atMֈJ|H^$x" @T c/@g(KGR~a8:F5x;QV_@MD@D@6)c`s,qmoߕħ[z (t`1%qhCt\%YTߐ^ T*nC9_ַ|wVmsq?.aR'tRs34F$[| 5=(qŬ#,E쏤\5hxw2\eS2UƑn&[vWŰh|JhFT&(Avۣ DϼO_]: V(HlikL ;q,7yUx&"P)xRv2Vki6%7 NqT-T̙GS3)ޢR`Is AƦ>-*,KVsR-zKD@*)*E@D@֘0) ؍-WEdM~[?OPjG=S싩e:vu@IDAT C rr*N;Y1{0=Xd}`|=R߿g!7tH5h( r( :@ nHSa6S֐Ӧ@8c:pP&a;uGMD@D@*#S@s֯)'/ނg\a? rwXɾr2R9@ڀ9qދ=b.1xa>r_1̱T墙oC; )J4_JB y_BYDܶp7KaM\BL_OUI@o'MKDrNǼϖ2a nKtS1daJ S.:/ aLBV"6OwH+!q88&).<5=7E]΅y(ĄK4bL$p0s\ RkL:7uWlXȯv.i:K H-xOsh#RR j" "PYDڍ,&Vu,5v%d7I- qp]>NuxޑPy:2%v8^n4O j_o%@& j_':|,͏Rg9qtS60hf3eJ@'%" kC@kCMT p$mX}b 8#bxu;KoQ]kTwhc8+qwYZbV%w$(^Ϯm‰h`_ 9H땇D@DBM3I>x=j#:wp;7%:=3z^&" " Os?3Q\Kaۓyuux KCBxJ7zj^#Ԟvτ󄍷}9/3$P~n l|hϚQ/#xoGxi0W٥Y[INL__g$" kI@k NTyL"CD:@o\׉@$u ްM~n3:?WwN>z?ChKk@g^hg DNP?2sN8 >Dv?hY `qԨRFD@D@+d<?޽gOyWU3z;5lɜ9 ORe^/&"xow0ymO# "ُ7"v9ni?\Rf`vjU3wX@nk;/w:LJɊ wt@&'0pcM}TC_ҰtkJ mʊ H0k&3(ٿk ǣ 6 sq( p~)>߂"7>tb_ݽAd8[" "P\cF8~X~I 3 wuү9B5b`:)(t@:;TK×y? ߲hr^&"Pa |Żxhٌ C8=e`;-x8V~-Κ|i:H0UE+yY,K]|ž]a>N M@UE@J5̫ZHpCFD|a4ƒHIͽ~ J6ۢ%SCgrq~\kWmךּ" "P5 4P5ZD`uL]L.4Aao-] TD` DlM>ݹe 5۾YkT.ܟ77ΕTƦA I͸7 :v^?H4[0#t~KTN_+85gq~4ncAxi̎v{s~[q{y[ :[tV=fƮ=;WMFw K U__" USJR8l,nC'E#%Bge}0Fjbog C1Mܐ8Zq̝WbrsШ}Y%1 m]":0v:W{\bN:z |dT{kWbbu{cFFNPyؘ1>c@I*zvBD@D@ʜ\1(K!q_21e~aS`iS{w@!0w~{wf: D! v"V43|Aoi)ez6ײk_-ĺ2&/32^yt,u%PJcȯ4p4b\1?u 9$Agc\{c]& mC`5,ݬ#" " "P 'k ǜ;G–s9l<M`33 -" DZ~3d]w=;8]D#4ϵclhrCz?_+8:8RlUpS`+lr3 ~?,KIDx CЉ7SXim'y:/oeNחPvDt(bU9,FވJ`x3leӂk- 97b)9( f?иք{R~泴cA r(?竑T%>CIOr9;5`8!vʶKu_;ڵ Fӈ6V h~UUD@D|3nj%U|# .uh܂HJq}^BޘN]ZMD@;H13ga7FRs3ZjwYd> ͙,| fZoucTkI;? f[C[xA/#D@D\gb0' lԍ FGaBk4R} e(OlZ];d\/ކl4@-4)>nC 4r7Ѽ/2>(t^" @:KI1綅\MhMax-8!(thCKV)sn4W@y PDߖO)טk dn_;l_#?N]9ONMDXLC9lCgS_$7^Att:/DG, ߷~>r*H"Go vw)Nv1tv/+ntH[" "Pe H^'."ޢr{~j"+ [*mC:@eGz$`$o:`2 k0u-RK9>OBK IExt(5&Ǜ? 1crmFLc,i鼴I{ ԳT?" " " quic"beǮ 2)1,`x3>X11~wwj" "P^ DYb~!o{csC$aTOA}4] 77>'" kO 2{3Oq%A FEv v`4ԦS.ȡ~)" " F #4=6M{p0}$W>_ 7WD|Є3n}يj dvL$pZ|Dh;7NFw'ߏP^~ V6h+׸"b̌'WP`>e)6]Lb茆✗F*" eL D I} 6~F3/v1 Д6xN VAPm@ & )VZ¯ɥ-1<be-Sknb,Fa[{* {Ptv ޱ8u\? ؂o~n.Z3&[fhdtpEn)His4EpĶqWliklfwչ[nkSsJ]x=v'YMoi@^0\D 4vӨIX ?^CC4 CH~RA`g{ wyΰc! 9=Yf â1^}@4'u]Ze݁ȾG} ^ЊDwEj(D=|٧gYq;;(Jmgyj~MX5H,E@D@'15vch[r _g/{("|F!"P ,匿\G?"1.ľ4G醋v46t!%ބ7{{CZ_'j"b]_Jh1KtDL_@e! r%u" D&n~Aof)`:S_hLg(\E`D{E#_짔r,t(.?%8R|ZѢ+{7{c]l(j(Xe#@HrZ~ɝh[;Y?`8^sۖrX j!K=tp:{:r5BP~&@%h"CKCm[~z(&3.cl[&}1j[D`cH;r4" ӡ|ߝ#tl 8G{6 eXɓͦC >x_R"82׫ I>ƶhJRMYLN)fob5;.UA*R9o^ͱh)fGw:jmx.ɺin=-Q=w\[{%6-|.B>{{p_nv,HUE@D,xCWEsgc@ oŒdV 7k洒ʞtpܣ$Gg+5( E)'[oJz5BN]&5C"_ eb|:{g=w=`?xG'vS).@Gc^w߭y0ʀo`Q?Cu|ž OoO2~RD@*(hѯװE@D |^؜Mp%&໴@h^CcC@a'e"-ñ"n|$诉Pď?8:J4qm}s>WXߦBp83<k, @# 6Zn" "{~ 90-cyijՍ]lh27knr. b"|\GLye_$禲e!8=IYķN~Ot4nGAy9 g21E@V}y\,zٍl L;x1y:vUO|:xYEiD@D`NK}LLߔjȤ4gkh;n85b9۽J)3S@ysl8Wݕ\sa=dip"%mQp7@y' _!OD` |3FC`j1f*@ C ZB [Xm wę|m%NK2T*w25t(!܂65>tFxӮ@!2)@MD@D@/+3%>J`-\Tz1R6h<~ĴȎ3/2!52%HO֝v#fRe#qQa$3~G{'&o-:vzKE \ח`SLp f,R1[q/" "PaSMD@DLa"MF> hRXA?Mg|0*j9ّ_hI;X)8N+}g&ojj}iQb0*|=rNt;N<%|),{@# Qܽ" q7:ɻ;36 r*݆y\[';]:oz$XKF>[:gD51m#S}և#sJKߢIؾnF>כn$e>ewKf_aެ9g!"">罓A,vD #;U5&PEUjoW:]b/Ugz҃@ewp:4 @'ݽFcJbg L?F{;Jv7tAʉUD:}(c<5w ߧ 0S'BǢ$9L ]|ĿTSV)sUw I_7]Zm:s}mLcC\|tHyP}LD@*?- E@֖UFMfvPK9 e^pLL&@)O&5K_A@C3Kne'Zmi[6>_>c#Q0{w_#;u,P!&" kO >Ʃg y]^v܎N;5ƌsܳ䵧TUލ̷x$7͚zZE8ꇔ,d!'$k2ϣ'v*uW9<5"Pg%h&c5漴](q/sq,UX?O} fP܉a`:wgYWƙ XCA@q4 rH}EAlz_7[TCf1nj+)hH""?dSKq#r|.? v\5oܗ8h^ڌ^<;G[kOuW4mOWwx XkE*kLީ~./hvTrev}zgbOc1NpX,}ςrN2%Gy#5X) ֋7e-JN4<qYq9<#og~uG"{im6 ݄+9/ Û؉9؇8lFk6g1OeZM2/@t34%@Jd)5\ ]g<(6=3`]r6A΀9"3g1,b8 TP1G%Mly{#>Uz# @U@UI7M\RjM:2[H#= x2@$ٺO h2,rH> U<'C"!kRWmy8#ﺜeɋ:/>?T|CrvolU00-IjKxh6|?vbw6U#򰬀}P)F {>41$J8<. tǠr/+V(2^c,3qWa;O̟! e+0 nyֲPz[Hi?HSu^ZWOj#YW=*fdV8?%86UDP bFz+~=gmSWl' lqbb_  #0S`G+zHXH(Æ+]!(s_*]"K]Cb7.ȝS8IȺE&}Q>c_+D6^ n!XD.F\0,\p$|/-b89 гe=m#'QB TYHHH|m5Oy)e}a!c7}IxlUs˜_" l.N<&Rus^, )_Fk_6}x7+SΙ8/ 1oXFS~Nu0[:h=?UA8{Q=FCL7DeL&EHHHadJ+"+x_~Aʋx_aV`! %g#Ĺ9?byjo(,ISGK!l.Bga] Ya6/]HaQ6۷:xfR!$tˡDc} PJ4}@v=XsGp`Rj~?P|? N\Ʀ/II;x^hy;z<À;?G^Ǵ3 /Ky@`BZ1CN Y\)u  Ij4@ccUD!IP0QG[6˯Z|mirpͻ^g z#MisXvHH_(VcW; +-Hj 2-2| 7A6NpDf6; N}`Ɲ,9XdUtAv?+"}oZn^=a y.q=aD&gWb)W/vXq/oLĈ 4(z6 pwZHDnI_ ]Oʃg!~ADJHYءʲ+VX_z=z-{0UHp}o0X.vK-$`#FS"Ib Wd!"YB@2 5. %  \` a! NI Q ֛Uu|wcx\z6O ޻HAs ^>ħ'SWB(t;Qh?.z'9*wܑf"&  I` f{[)u8t;-cakFu;0j}(I05 @ kP'u)L'9m>,@oF% tr'aYw`)@m 7B0ٛ!m%xg!Py&0  $@$@#HZK.^\ed]Z\{`;5AZm#!' #K"2Vyb;93Z"_Zg#^s/33OWtx.l~H .D(&~1IXoX{n T&CTJ[Dt6T?\>#JO=ZͺAΈPY#{϶ 'KfW,0J!/V{;ez x+ܙ *cDJh|ȊH0ؼ,C`GQ' ]p+P5[8.15[ ϝx[FW")HIK/n#*e1Fk+%HO @[,U p׎@IDAT̓qC=#)e' !Mt(ni,tkArml;`wRoV*N?8UJ=jѼ߂z3`x>D @ZOi?#gk'))~)Lc_?s^HH(IփzLDG "ĆS0LoU5C/;HB!AX `E($zG_UrtQ?gc6}})mnIK$V$03IHDrdKP{Ӛj2#  pA`M$@& <ȓ odɷ6uք2n#egok_70{{, YWMGjR{B-D\lOg"T"P$dD 螕qRSb(?<q6[Lvɮ T)J$@$ay]GB_+ Zw"@1Rg3 N`a83Y F \#> s! y]Qdk(gIRy6$ۍZdSi* z D[l CN " j Wd ꆈ{@$@gIwKx XHWCE@aϲ l /^Z 2́o[kk:;Ȩ\=.{?iS${`kIn}l8aAJ@KD8V`ҲCV0~!-#ta_K)$eJ U)w3 QmQldPL,$@5( w!,v{sd-.!bG,d GՈ;A$P `%a ?;rrGUZaxf>(C3 gj#{Bzb %7PvQJ9N7ʇJ$6XϗRN<2Ѩ7oI3$XH`D1l4z~DL o ^UHnݨs  .F$L៍s4Sّd x$XW$@B2(z\<͓}:?ݔ]\oU6GK?Pz`>7i2؄ABkd!yL@= W'e e\VzB-̃jHj&YmEVo/jՈ=ןԞjSٿ) XHwIE,Ƙ7>&x,'rQc6VNjGH`S $<"&y y&";0Ѷ-^Ǔ @!@Q#$@ i0\gc>z@¦F`͎'$ zU8y&㹊eHo<ͭ{&Vz|#@TU곐 Twfe=Dv]Ya HŎ;+^/?}#|0\&"N \ۭ $;"jF*1oO0UDb敛PHFCn5ON<- FPsB^!b[dQA$@$P pCS?UH`XMr ;-@%I" P7uy M%诒${J@\YZ_bW9#«t]d$.^siކ`i#V`' qO1Φ~><AIm IL;ov~Y4 ~Gyo_2I‹e(Ya YzYD _w>O$P,Zs9T V7y_{yYYޅZyC~ɴÝ+'k qjcB$P @#3D_Gwkx0lHkR'@aDž" &0q[0?ü ih}~=w'1}k\nD.J&J.$@H }(OH K8}nz/vTl*Wcvײ5`Q0B$iͺfIHd`ʧܶL[<1 ' TߠKC`IX"!"!&O0@}. l8/P+I{E~v#'_.WƞfkV^nT~C<@S^enDE$!fT 6M<H(EE"e~s_uM{=Iߴ{IJ6;!44@,$@$@Յ^-w?VBU|E˘aJhtRv\[]v l^|S%E8(;58#rKX=_n|.F},֊ї:u`!-F zf` m:F$ UbIH prL$PiB(2y3,(Y0@Ȅ?4`J`x!Y0|$I'2(zȪfgVo\v7^w?L|d05&4 T1%T?EPz Un-S]} .1VZ H!PIH0#'T{:WidH{yg]>L 8q3HIK/H$P cV0) Dx̀&0:9C%v^,#18?6ۤJhTx[ -C)2dR"p}_s6ޖiJ$@H$@Bب..e<,IK]oR\jbaCDB$BAqyU5-;,{|jȲe:*?R)m e:-\ApU>[II oW??W^C] yFWk, vFhd%K<- @e( 2);{Y 6-4P]/Z D]%MEIH::~*l @ `&/?C_A@CɊEE6_ǧVP(lgi=&ӂ|劲[dDSrAсM]ߍ)6tWPvw T:u!͓&^4'< [ @%Kh0 *' "DpX>XH""w}[!d?(66 Ea`A rb SxWԓꝭ#cc;N:{CXk J6fhOA$P\1~Pi7wzy AaGsxnYÃx̉XHHWAz'G_XIx\Eh@ڢI~OjyZBޒ@M!F sN̴+懖A+=/swl@b5EY<[Qlc1ChEH/TKxJUF^H!TM"&bBJ r2zboXHR@(؉CDd %GĻAŲ}w^׺4KշҧȮ|JKmԁ?p_ 6%n/$Y,#/JYT"mP@\'0 @u \Bwp˜RUoӣ\X/w4to%pա?l X E2"K>LFj(WB0]Vq83 B@G7{4Aq9EzLy\oX;Tr>ΰ&NCQk'D$%ir€G'{Dop/I7JJM_>A4slK$ N,P eYr3Ċx|=HiwR5 #v? *p7օ6Ɗ9s(o ?gz +}dn1Vi89lfE Jq`?,@ ,Oy U& $ X5PY 3HWz7'q,^i< @X^SJ݇;@rnt{٧~y1ռEp zBwI _x5<vj0 7ɫ*LC#' &饲LG}jR^ Fî @<4|,mS~LzCZr|-2Fv@{)L s0F~ƦiB/Vvcq\ flo%[xK$P/wc6pfMƈuj;[C$@UH`@ K @$`hY+XH !TZ~tl l! qr!\/)s_Bm( bgePڿoPVxJz/+={Yr! b b-hH`# -Ř[)wbMϗ,on^쩃܁ٲ/H a䐍8#  YLl=ZH9CHlw ry(mRGH ={)jxQn>Xo~{C?k+r*mݞh@![\<$P D!;gU3x0W#C7ſfiD]֑ @eB2iZ$@E i*0+nGg~L$@K `{_d/].?ɻYVHKABʸuq"X+<ƶǑ lYPOAhpYǦ#k2^zBO SlOg'] abe.HE\HK4`Z*,&t;f|\+m32 "~tt4dʸRr&vJ6ý#B@4`b.U*}% T[._rb~6o=xkG[# @O,[K_Rj16HRd*IgɭR3dWx/,,{_ ۰j5bE$@>gI S:?5Yc ai+LDXg_NʗIj / r!ZHCW"42(?W>ky/օYe?ꝱC:xA8Gw@f ~fw`um$*_ɳ$;t(v)!b^b ~!Ra%튣8({;`& 1LEm0w [D$WJ'=q= xn'#FNX0mp<G *3K0D e&#MN$@$ `3Ij < L!$ Kl!9zwQ5Sg?H`S >6ԣWz);*qͩQ,I?vpw!-xoKlk"5@c"ڦǒ l.> !\ ]&-Q5oTQa=#ҩI +VZ׮)XKkb,+t6-2ŸT3_qr5Y­`4)f<(қ @ (INUZWIdH+e6#G__e9pI M&D \̀Y%"{`UE$!!q#'``GwԳIM,Jc(#2ҽyH&>ޱz/ABHNwHH% ;1SaR/Hv"t1iu݄,B[9Jƭ V_u> 'j`ew֍8oc> @M%`q1D@ G H:d "XB$@$$@~HH`} M@PIp[pMf>|H)GmX0xM~Y̵v]KKiș]h;NV>\?ֺ3wז`|YH hR1[z;V Ǻ0\E&bN(G ?mdCle,$@$@?>?+%Ƿ0| d̬Zg $ IHBgh TtdItC⿇,\9S }#?LP]M>d6(dI} @7 ;1Ŭ:YoѦ$@$JPJOm%T Z7aQj'"XH$"]g! o<)e5<\!#ek{"m\rx?==:Kںˤ\:8vzmH`(_ڗIkFRGs溇^,wj m6 5HbyC*wŞq^0Y+_)%&*1&pܑ1E0X$\4rGHP*xK$P;@!E7'PgjR h/ @!320HDEPRGa$@A`]D! )vn?e-Xgmc}ݞ~^̽Do-Gd ec;h1$@[[+Md*d3-Fw74Oqӑv&h#}$bP8eɳ @jB6w+^|w usϡ>B~蚥WSj0 "b[|$hx. c-qBqS1o!g"=,QcwSp : "L r#fě$ɔu `}d< J NɛXHZepdD? lP#KIf^2㚔 G&4^$=YKupoz{moAf"2;s(&۰6$@JB/ [C_!ޑ2E_́0gN\/>wh]gIHfF㤃) L$_˩_&I+y0ZVS T="GDf0S%C>I$!֩M߹RCe6w͔S.vɚ)S C뽪 vcaD fBlE||/ lKa6~؇^* YcCc}=c.b ;y!|/ @M#&0^x1k&-̵w!ʊDF\t>7*k;?fev6cAȉ09C+P',RG-9A.&J#w4X;Cw+8 $ X8"wundH`-tx)5 $ pAů @NjA d3ȭqlqت28y %xQI.fBYCWIU>R.Mm[FV"gDK+-t-, o TK}ڙ(ZC F 0p !rkdCXk7JFD&K.V%=cу1[P1< _ɏՊ-)U4=>Iv|l$PD~"fdLe'Z)A5@WID={:l(;F_;;O`P$m%uBmɿGmv>;$@$`W3 sEwl -b~MHH p\, @-$0rĉ%%"axgD)Bd,q4OF0JQ|l\j!2vH$K*eL$WGuH[U0@ʮ+ W{6F?)7Ċkrq1S f+ύשʰ^XAG!)cs2]Osm񺷶: XifaL .U+9*zf;ˡ3xGY.cם)1M$omH`0Zia m$-fQGrCo ]E!(Pk H]>V1VVH)u\gP%~Fnw`" 2؜ T&Ĩ\$`#Lq$;J I椝֠Y%vC]:u9j orޒ l[3X "H60H:ԯB Y,0Ȇ% J [$@@7lԊv  UB>ǚH$pI<od\U+)V/uGWy?zܧo}FܼBʴL Vbv #lV$PX*EtKݩ>ntC=IV99x̤0!嵍K$P;T$Հ66y7zVt}H}Zv=W uV36eS9g l()$U!"朕7|? X4-;F$mLf M<=' M&SC0*_0vCj|w|ޮ޽9Kڢ;zh^r]t6|tvdh7Dԓh.mr3yN٪! U}qz렣e*2AE.ݩˤ?ag`$Fqy-n h^]LG^#z+דhxJeF 1 PN,/ј9T43~ P7`w4śyON֡9 -xH6X™?} Y<;M$@#[V"]P8o&A"v4 σwdnCnntE$阿wOn;}1~=s}z4B`&D)BFdʒ%]JT^ߒ<*~gl,O#4 &ٲ1QBV!+ Hiмu0APCA͋3F\^QmiRZ!ċ0G%{ Ɠ@ PV2o;DqL/POEmDЛG#Q[mlr @HK\MUUy1 HTd& T ? 2({4% @&wl,_+Q֝e[ߺc k׺¿yGkʆid=^SR y򉳰 l,P}o䷞rw;zyX w +͒ G$@Չ|sY|< pZ.L1|%z__>]YQ.1F I`-F0XFkE '6C4L?'>(_ pG}Iw jKj˺me "2gmxR H4Hϊ-%\aM,%/ϐ9j$@N Er+SLq/#,.B}#}k͞bry1zL9*2Xڸ!2{fhC7aކG \r_c$uh 7s5}?9;R4$խȳ4HB O;9^_Xq2JI<- bX2׷KKvIdYr"umH$kc,\Ԧ#DxnB$@BnRbѤRƋ @ @ }Xl* @6ʡ'^(b$@$Ql&3%y_:S&IҝV[b?}$wwk|})Tġ|IVA8*L `=#6@9Y/xl%5W" <\p^} {st{DOr83ee fl7}Jw)wUau,kYS9|ޞ[8n%f] &  lN/b շvQRPе͓B:ܳ @HS8]K̂ua;8iO}-`8Rk g p`vV&۸L`(ѭk0@i$\ugH <z$aXHH $f deD[  :W k  #n#kNIbIK֬HH L"0av+XieGyG ݡz^|굗E8VsL6! EKE]1_HDgmwczkb}$}C) dBIurڗ~BIy?TpϢSzh-< T+IՅ@Fe DzOYo#yGZCΕx$=qؚH8m%B$@UG ֵ 7y |uxHjp1X: !n~Llqm!i %H]dt'JL{Ʉ,..TH{\Xd q &x{LG/OK(-mlhj$B+iȢ+r?;Nh,Y>׽FS(`佪i5J$@B T:DfH#S&F?z6-e sW$\ eԙQ1 G_#zy~f?ٻ@΍n/;#ysdjMo@5VF=Pm+Kny@'xI7vAL$83bIR@Fh~:b7a!*ná_' x v\p*տleRnب7ax3VN#`xs>II߳#kd"s1'fxh%T'xHhlR4H@V$@$PMD/1p#\Z HDtBfCl/ƿ>nF:>: ﮜگFg7:,{HlA8ąG@"K\MPǜLS'Fϔ%xn)-LxK;H+ɸi!8 SHC7v]?)Fӱ;Z_͗}| u@pۯ6b_IRtij^ b ,4;ν^2 ZwǰN޲$P5Vbnd}(\9 u> ^w,үP  @ pSsd ]/UH)t {\z+M/XT堯@1{Xɪt?g߿+ h5B@۸—x@,&ږAtIqZ+%PqV:zү 3UJ@ wtqҵx5}tPDO㡤*DŽ^PJ%`{Q7lz󷢒`6)h&z n<#ݼC\6YNwdg9!m-V4z4([-8dcCmM`t_; ;S 닛LN6lP^$EHmqf$ԧ9ٛ.¢}.F'#FL9 ؇VqYZQK Uqoj[m5iB9#e%\*G }ks,A,АwKdklGtI_P@'<4ک}t2K *Բ#0zFKUiW3|yZݼwD zh 6ph2{@$4,˰mßP+Wl4ilFI35ʟJ%Ճğ6ߖw+EBˀoxL4`3x\LCȳUkBТ Ό~UĖ.h?ժXъuzJ@ (?odh׋F0*J@ (%7s {}a2HOd򐯱>oH>T (%M`Q1$PJ@ EQL9Tg ;x0_ϱ? d2BDn1|nt0/k9 k{+MM|EPJ8N/[% 6%E jUuT (%$hs/ ߅\s7VX_)8oef`7[NK} Ó %u57!D0aT-JaJBPp%=| `T@c|1y_\W~)%p 1QfkC /#9l~ҭdG0/J>"T(mƶFKԏrtH+ƿtG#C&6`MX:-J@ (%{&Q3vY.)%* BPJ `S1o࿀(%Z aOSxZ[M]Ԓ=^y7 sSrlR.yM?>B4.*c!}܎ jŲO\ I&^R|\29R}ڻ|nFiT1b><; QsR}zzpJ@ *Eߟ'>LqGz7Y|ȶt{c)M5f] KQ*Ŀs9yx[#]yw]c8nW<~{ 2X"vS}UJ@ (?&`ld[hJ@ (%'qZ+%~M\\*ZPJ Ud:L@9[c-zJ%9:?ϯ--RF>^:"&4XGоbCA ;)fE>X%CL]zQ|',a"(r7}*%P6 XE}.E-kVn1Tl>l\6.~~[vrti2O2cp }XE<}r * x7H&]W%ǿ}l"=o+%*5YOQ (?EGyTipzn+RU1Z)%F: :sFRsMk27 n)7ĢJ$OV'݈^Yg[MT֛?Vm>ǐ#2h.N9ʉ,&;Kw,~MS={k7O `TmQ_ xo1gduPJPrwI8@lm")C+%JNޅjsܽm̿J|_䬔@qJv^o%BQ15c5wn_ (I`#w ܳ0\}z~4MA?hމ{yzJ ROb!Gְ1`|#h_mCFU8\چƻi[lsq9ĀhKjHꏕ(rxjzJJ@ (DGP4_$sIUK[+%N* \E,n}/ͰZHX_)ѡN2ʷ M6I:6goGjp+5&~!DZ!^iltz04wv[Vs1.Ǥ'5=,s'Ҩ$YkH3#Ytk;s{6b_?=F$6J'ιlp8Ino Γ7c929/C#_+%~C(`YyoPJP P? on0X (%p !*<85LfmEŅux vWa_R;S_ncqR7}H p% ￙;cqW Yijl?ݠP兀yVN^U6uFS r?ɼWhp|\{Q^i_Y;S(¼H a\>eN\o*cXor*hQJ@ (N*"{ܮ8kݠPeNWJo#cxplnCb{Q7PxD3f x1,/Sz\ȔqdYڸ+I"=aa^]]6dƵ8#^d"S7yrL%KKQƠ jX[LOP@(Ą2|Mg8 ܕόXw${2*@7Yt&牖PW m֎,mKg/]Ifa|-xy~ZJrnW#b%@`m :E!wD2vTJ@ -jPP>AN9b0_t^:螔P7 ؾCl11͌v9$%5˹-(*Ȓ3>YxG3s!$Rע" a 魻Z0G=X1~yҎhG4qE\Q\Y (N }6Sĸ"~Јno%'FL k11͈ʕ:¡!OcZX5R*5zaoǺCO\@P>SlkBjhQJ@ (G@N`"jzݓPNJ%TJQVvoS O|FhZ$-TuY9W¶1.\DCWi6+@DRvz8J7$"2TH0T91Z9y3Ht|/QkTZ/&uQ (rN vڧ<#G m`L8=,cL#Ec ** 1yi9> W|&9܇KoOm0.lOR.kNtRzJ@ (I`@k4ie6%PmJ@ ('ð֮ߥjDAwPJ@ .yZXsy=29,8V&;mDYF]*E/bjSKXG+P*EGkV,DQf1KLTu>5Kјjg[t,#Ez1Z) B`)lHxNq_7z8bj0 UQO3?HΆU{E7ZCa5L iFߎ.f΢ ;F$xX+%8(]sF;:brPFw(TtYP l?*yœ;p讉Y (%X//~Jv<㦣S`.̿Q'٩T8QIϠkxx'yVoҸkQɣژO]d%TLngtTu.sTھKCS;8BpkCA\͇k^qEumlh̀x)%pĕQ6\hRt! =rOQ_3G`cyL{4nF (%(%S<ʞ(%@hSPJ@ >xJg/C_[ﯮ*%@!`UlQbb&ZRT-|YIU˹egrtug3tGRU n4lƉl㷙'e)v*:U!+p.ư5{M5Eϻ0cknE 8 ^.O#z^ D(M6R@F ʑ*hk)Cm hϚkv 4yװ}ϬG/H5E >5%nT]W%8l-QCg 4Cf-J@ (%#`3hQJ@ ($p^w{?6WB?WOPJLpk5?`J%;]EueN`="d=9d%3ى=CZS !ah.V1+",SD`#viۤ6 wr |w6$oV9 <^f}lAb0RTRۈSE$o漯Alt羬p"cnP!4HwWVD~zΥ@7^{O" b=O17lbpFs0dڎǿ5rdZ(%D?N4 (%@ZnkKPJ@ >?~@1L RoT (%J7+.v$[ B}I7-R[j ^+:L&sO fP]Z@%J M1PYb$3}he>O5_zŏQcE{ ,d=r]?rehhQJPw#Pvesxow 2AY;CS2w6 %PEZh#` ] ~@«Uҗ7L=|AN3F2VJ2H,d۵>T*p=Co)XLr-q(kkHU6E (%J?׌b|ծƻW%  C (%~M @@A7t#1ZPJ^Ҕ=,s5NٞD3p&<\:Pw&i.40p̔l@&尹Sm0H=TW1/6˝X-םoQGn7NM9f qC'hQJ< ̀" q_цFt -Cё$.x\Ю%s?ߖ8O/f{O+y…8-)L^I& p܍6?}nİe+|Y\m:B7ahQJ@ qISD>\)砇8(胲3݉PJ #b bSD}`"oE (%4EJG.)$no"g~fd}LR t*:ds38ҢJaqdfG؊m;~*:PzU`?\o[ٞ_d/5?iPJm$o3˃LE (%"@PJ  RD0*0FW6PJ@ 'g1|2g'h*nղ8a$g}NLDey~iR.nÊ:tl{$_+p.M,o^bA3\@sgE (C G=>dlԧpM0g۞}d6ƘxZͰO,P]ꋘ3#-24G)~7q#W<+R~C^g x0C3UcS5d+u1^)񹼎b@RJ@ m'z #z5(S^ (I@H-%@'o~Ҧ<]f= G Bi6D iD1twrinыʮ>49LgpsXrNrWN1%Ikn=gp2E'K)Xbo36f#]y|.3uςscLa~z=>#W\3~YobWcYwso;y{Jh%͂c^$+t.U<ͳ 'O29^(SkÏMx>51̹|6*m :^](A%F1}US-t|'okyY*?sYaڽS2;vqRnN (L G3GڧwwH:^m1SϱǼz${}> u/nK /`՟jnx ࿔cJ s=1t\["#. _RK>?;>MGu 4Fp8O3XqsR, #׫sdz`":ϏF^c^teΒ^l slK&۶qIx=pbRllmY4ﰖ |k4cϥ V?bCF52^[=(Ѣ@)'`h}4POX+%@%{̕cvK4|5dlu@Pe. "|)6Ps P`Jxǯewߥ$P].`1/ vLh!?DrD߈O);oSUۻ>Hu5Nͤ*o3/ ToYKX\$NO4 wϿz9F구r<Ɇl\ϚjT5רFZ.2ojA3hps+M 400^J.w7=Qhm{9ƈ8)f v>TGga 1UBGE 65"E^mP(oEVfLT (%p X%ONkNh?WO8h sDNC97&Ϙ^|FU/ykN S/xYaއ781iuR<Eϕd~AO(ש'wyN@ L8dnAFL_'ؙpoHbv$^x5q6%?0.%$$݃IZ&a'ܒ|6' LJ*Ħb[H_@OwL?LgBe*VPPmݹ'ܠzژYSL_<ᦧtbO?Y>@ѽ"zP--Jq}\ƨ@=m̏ͅgkg9rbN s }ٞIr čN^h߲ [vqU3clESGu \o-j~Rlcimʪy7K2lfְ&|Ѡ|K\u qKԽs;S/;>~z`n =^3JCբvn( Sא^h]~*|`w.[\9TEj/,Պw G9aH  aꑤ-onG3ݹڹ .z33?& J]5&r޴.zMgzw`{b%9Z _S"Ә*iy:.khzܧh<@y\zidFM]A/h׽*Lo#q֨J^ly%@&+%8۸Z7R (?E J4i:Ғ[N1Lo{| 41{'"56T܍%B_EiEC(J,I-ꎺgC%@ ,+C/ 3roB^gmљw<fwX_,?9k*gRA\$n/ؓs&jL(?M bnłW_ ])1%ޣ}3G3H.!ELۜ>̧> Mכf!Ck.W4(bNzXϟQltyA6vDs4 wTKNj%R=zv 3:K)Wy?7ٿT1hY\eZ &Pup)qnF) 5JqcqP2PRb45=-VQE (G`!c YNF&ɤGw:GRrwG|_½frUZ`K}?{wVzD@<ԿQH-ưjU*;QY޴~F4<9@*TTZm9QGGVQ.-"]G(0񸚑\IԳ}evUB;§g )3eP^*-CkJ /DaZ%8#Q`[QR'M%(wInGK6Iμd47x&睝eI[.8j-0E)dž:09 ymqc#-$/;"8OOK~&/)G&O x̆ )gk+R.JMRzUڼpB$/uo$_MI%M5{}m8 'gOaB-o_J:;󤾾'=-[s!<'z:dH<ΕNpH1,}29dp^T#z^Y-J@/XΊH&5b?wwSJ@ 5jP֮P@S5k0D l8%w6辂 _:fo)j.h9:oݸO6j~klܷgl9iGk̬g*z mJׄk ^MpG/K%H 61j.q|kh{"2Kܫu( 펧LdS44YB5a^V y"719rwtiPs|SWRQYԖ՞NtzTvB%zM{hsM5g̛4<ﱵ:K`6XsAP)M^:riQJ@ (PmJ@ ('`Sp&#j a)6I l0N"_Ic?J TPް1"x66\%N5Ps{  ?*\4goqҾ. ٻcZ[xun"*z4Ud䝶o Jvz{Oy۶-1{=7U9s/M%7͙cI|1FIcVɉ"r~c] 2OCT =@U{iԢ T6[d= fH hrK%GDUv\3?qP|oG̹\>F0/&aQ~ν)5&R/m:l +u\}6T?~Urs<TK[x RNh:VJSRsP*5ߡ) UOW<4 Ӧ>pǓdF"즠U|A-r 7dxxyf"a1Ã?b֗ɋIO7҄9K?Eg37dӶh&2Z:Y OŖ{.8PB}s-,qK'}8Iow=-D?3@wLQ0(m ##ƑXAfOO8 c8)sD-kQΛ9CzZZOV)uoιEp kwsHƤs%^~f"`P̽'{I3S Eɞ ww}Ku޹"9|{>`B^Q~AeF2B,cЕ##pVr'Ӌq%1-0rnrhZr5g&r04$2e5-gnS.gz#f x)bxpD=f$>90"SX}o˷4yzښC%H\`uцWRW\|\iO/>Ca,貾*%*5x\X (eHN΃,>b_dX * YSI֚4se1Tװ'$'W"`VTɿ`fI3WӦ'_]y5_XKVW}2N{oE>+y "L t0g2IaywG^_ڗG"fxb!O lC%#K3g#tA¶#vywLPtt3#3Bn,dS=ȘPoRiHvTSK[.斣Ukoy]JQX݆}u= Ir^!Rtch` B"MD/.پ&F' E5EҢB_~=y% GFO,U*87/+—YV6_ȕdڽ5 X/m'7?PT?Q EQ~$^Tt@kiBs#r>rqm~6?svt\kv<&uq;[Zyӑ2 33F SsB}}!}[+)t {Y8SIn#syyOҕuC)})RER >'}=n O( K~]u6׻Ѽܡ@:h Vo{C}{Qh3?ﯩ}o ߥ4Eoޮro_oƷ?k.-Z-iWڧ㣄{C*k'!UT$z{ollY2SL>3*p)l5d롟qSp$$U=ϻ-G[K EØ%&\)rxDQAZ!!"5Bq/lkax %\(Wa VP61v%CrS%PA re L6 =[IT0.޷E hq㰹lo|N|ҤRoi2l:1gx"nέaA8ydTu叀Us"&+۽_R1 iPdpG$eɪvzoQuv֗;;=?g݆EO[;.ٶpnQ$/bə,snbPi롇aN 7UY7q9W1T㕩\e ?k# 1l^Ux5}:LQS: vݑw`tsW d&}VPY=+嬮L5p垵:'T}n7I>Ĝy7i57ijS*UErt:==̤/oec/Zzb\f#sx̵% ߍr)ˆWyr4gfK0C3~5S@Bgk`#TLɲ݆hEK9Ym6bG|x9ɉ҆7֢ ` l8֦U2 κ VxF((Lgl{ΣhISFxI}!W`*'LxgNIu/S)۳/<$8ky<ozӂ|&ZIOt0UBQB_pj&;p-1*":7wu- ;)8l\6iO{ސ?ҝWa͊.x ' wFç~r;aݪgƣW5\)C0:VZk>JO~w,J6q62XO` G³i hbvLs'ACE@Dlt)?gӸegώj}#D b %+QE}QJ@ (C8VJ@ (RM Ąe Y,q2-2(x97sn$y:F3{iT**8ý1Ns%TΥ|C&4p)t+h*6;ղVhzR`S!&|kRr(m5T9sY9 8-^$9t|^D<ԨI5c^4"9J[,9yMg !tk>n\<ކ-ui/^wf1 1GVz7׌ v|ᆼɸ0eL+UƵً \Rlov/EHPGdY*wz)9nxy8Gzb0՞kVm2GMLU&ZC-J@ Lvƒ! GHi6v{M58+g*4Cdm4%zG+|֖8>Q^둫?a X&r(ct;s|2O|Xo]Ti`r+3pݩ 9 u/*i;~h-1{[&׷?raO3d 6~,)^4$dJ4`KnF|uC< ˣ ô(M !wǨ.i|,}*InUn $S:y hF,bG8 9|݈PJo#@DGqT&üVhI0wi9+Ι#8 K;`,1s81<; G;"+v-3 s?Cu?#dyG$0t|z[hp_{Qva%Q_dH!OO((]TruƹKۘeS$w.vW5}3WoO,{%-9gAA( Q2DAH HQ%Ksΰl`6睝Wό^ULMtW>?"ܬRIJ _R+ebi&nk i{~ZZAQ;vHCwq'?1dd?3"PPtVTz;:޾kMK] 6|wwƠA?7 1hxBL)Iݮu{Z^y?*oymc9ӥ ufYdìOo"Y^srᗓ^yyp>0/0c)MWywurE9FRHO_xlJ9%rklɎ+'c|S,\aV{wJض=mHF^ȨɕhsX>I+GfVV>yRǿG zDJ^ "!n(Ks(1~l|(1SJzC@ yܨ,rAW>վEkB>ɶt5qվ%jMV '꟫uE)v׺V%ެsjpW|s $2]- rh`U]!-Vi;>`I0D0cDxJBR$"k XU ]cK<ƒ=T7";j9>JZ 98;oqVU XXś)c5An x꧛ 0(`PZRBg-R|NC)$}5 ҅D3{:z/"+ot:|},d[Cל]xKoT$ePil5D7'x r,B ]%E\,KirNB1A2TAu527w@+^dʊZAfܱKoEIWD܎}3,{Tw668u3ju*C3`/|>fsuANxR +R8kϓ *LժP_bx n@Z1~tüwQD QlM#*ZJ9#XE^b7i}wR#|QtO0R4M!27ԷWb(}.`%!K%ZI$+*v:Ui;\61FA"AdhsEBKWnReXv%jOA<`x3Bf6,=1Րh]zJ'ދA#?5g'h50:'/n:wN9^ֶoY7)f\qfAZ&UBDTOXO*WEoyg]~֔ؔ H)ͧC0hWE%nᎀR(O H{gάicO%I҃tIkAMbm"U:<ƿ˜Ӗ{6^]U:7uҟ r?F1(PGƻ[ !ud<j4EG<$>Ρϯ 6K e6-ev7xx-tm6p b8Š_LUJ(yD*K>KoM M3lUbyE@p ܐ@eFn%L< @E=AӠ@v騑vj(4yH) =+((l Hg%V@H'&JH+!C$E88Si ϧgYֵ)-(m '!,?s(&U[!UOfI.M.W"Œ\ݕx{[xlpī%-$7Йo!D ]KEgY-.W.)к|7ђq_Vlѫ9zLm+W m \q<h7ujr wnj)7U2r6;k_(#q)s)')q= sYO*^F1(`P ܽ,5E#=Nkޟ1BiX5>$ATϳ&h[e-ࢃ)=܄L'ڔQWV{{Qe#'cc6Ua̍}ޜu/_\7!%mtzjQ8/CQ+TfR&E /A'~ Lzk=]\3u1Vl1Ӹ bҞRT5#_Ij.q9J33:{/' J>{q-GNț$yqz S4S©e I׫^&j 64:B|j.Fw[pƚwj/TQE'@Ek \AkHuVvZOv;HZ/x{Z 0(OX 0(`Ptʍ)`%߼*IݽeQC4»`MR&rjǙP=4cBuBicâi'W2͚VSDT@>"PePHn+[~`Υ!KW0e^ wYQ Lf\4*2MijrF.-~OP7c!2H iAJ̲v 0 Vo~FDC$7z :brL6rol1zMkIz>l|y/(mV y*U\UJثO+GH68WgY=ǘjR󩥱:VElVMgp 0N"ÔP} Y_qs*#a!3ӹO#z{((L=%IٟĬ;uxߚ3R,8=7 ǗqJ>&!qEG4tL`bC5E٘ɤl׏oh ѬF1(R .n\b>jT!Q䠌Ҏ(+Q*M1#9WFW!ILbbb9BVX_0u2V^B cPDtEh<0ڧ*lwڤT_c-NE>˨k˦eHB4c mn޲L H+£j෣D+.4C޽U*A!ndJa/x9뚷;SW&̸wk4 xj)`8<8q]#|L]+ݿ/[!1Y{i deyeE v0 5)YRu`;,!u҄os| yY(wE]JR^v1qzǹ}LAb";ݣs\6'vf %d=Qy}2>F>e<$ZeeK:C)[ON[Xvgs;7\Č)mWԬ3߅vDԂ7" O+](7 Ȉ.W(RHtnI+_X,bU !RrG%7;HM7D|zm@C: V*mѭZx {`V\sN%~tPA!JXU$ZSeK!%+ۑ;4H,|ϠJ.!Q*b\s|؛Iz+Ez;]KM?Nk}0@ߒD Pbg">F1(Q@axniu0p-'*vE#]E p,E b+@um ܆Srt5 npv;Y:'e&aZA* 1B7'"EJ]H|'Ao[y-EKc(={Nrhy?_| zms$PW>  #5-" <*~+39Dzh^u0yL644~j$LHKړ:mI41c+UpqWU1y3sW]M]@?lO2A?dp45th"6cRFGNDlt|yWC;v^[&Jd[zESe-fi9θ"2F::?2>;)SEì.z5)Ҩ/oT[C]bZeVc1|$&P3sqiP(hHETq\3N4E! =M02pdØDR*]d<~#8,%\ENŠAO5 'oPoP@"`6{wu3xD)+gA,0P*>Eq!wyg0P9"6!r?iӵv\ܗ'x1`x}]>@uTU@y)K\a?*v(EUqNq`]&'DMA@w2^H*3~ǗN&(`Yq$[r90saW"G+)gc[ҳwCZ_v2U=eol-戱@|Qu] ŠISHa|(^B/F&>>4 *asȊػI_?2S݇ENCnhn_'wUN y8 :;..g57D ZGHqMY ~mAy苸Q }w,'Pj GX;_F3yq|ōt[ !m<ȆaIϑ@r0%W@6gS,y2w" #&3З?2f~Vnsw=$3ͥtI3XcA@ʖ7iF"U wFMJB-'GHv"'ΣE䋉(t/l㐳;B^I2ec i L?G~=F@["Ruzsh8ލbPϥ@˱s;ȯN>E+"=~qb4Jy7B'eQ.$SPzMM)PrFrLn:Di6PB<ĩ1|@kmNtDyN!>Qr@$ b $֝#]%|ɆW V}ĀF( @K|SE=+1( 0( )1<0(`PAS@2w"j<2k,TL(Z`m}B"D Y?cCN]%Os~Mg0ip(h.>kES~I,Wt"Dr:y|8W')&vx( Q"-}Ip7m{6Pw΋̻|Ov\qwfR%) K=<}XF26 HETQ'[=Kjռ^Zy©-"*"6WrS{s'GqC^:Z"/ nb^ya>sҦP5M4)T jhqĂ8\3㐃S(]y cO2Bb-^P"yGz3BJCdڝDfmK-|30#(g]*}9&KeVGFy)JAu\\-"9L~G*+Er oPS@1s@7@ hGM( 89Hp%[p fd4C$ q-1Ϫ D/bD1KvNR^r?=GjǒG_<-)L6y;KΉ\fA'}р^VM<)T'޿1c]dutŷD#:$B{?  ^p5AǚŅq7ʛM Uh܎[p9$^ٌ-~p!i,>NUR[Z@_=7VDl¼5S!Qit q8\˥#|ɥdE`3R6oʛFo•7 6&;zX MR6 K ϭ1C ~ȥ]4TFŅ, AW 1 d{DIιBm9#9YxN7 <0O-7(`PTG`SzJxl7":D-n\/RD  w,x9(#:CTb*|NeчrYY pa%];EzK ͦ \y[t+ GDLk<^(2W+F?%1 J@x$ܝD=X_*M#Kdz\@꺽ڙ3Ks/%>yčM}&!w4pgE98TS~q,kPq\c(I<+Cؿwڇ)l'$Gu3"SJ"^ "fO9O TWtYԧ\pg76[ۙ*zaFB@ [GL1/b{ϥ_~@IDATU$f צo̷|LP`f -dFMҗΚx.>꥓Q ' H$ H̛Rb"%ӹ3zirN.CDH9AK%&雨WE7 G7~hQ^bsQƤIΔpMMZ^@ Cc_pBQӓ~Z{Vz3DD&WYy^OpgW+et̎t3*gL%\b+K*C d%plBV+,aN*r~@+&;Թa#jt';GN˫O}thTK-+&^d+e!4Y)^4R7 Jń+ AW:xV֏iK̮Lh0?1]Γ#bQFS D ?J0&PَAP!9o" =O)mZ k+4qJU"3H1lx:]毑nE40()yh _XHDe 1 [Z!(ef $6Sl 5)Cr6'pJj 5*ո"Qy1pf\ f#x)k;@oL~yG8,&5 yP?i! ?;9r9s|PS/󧌢[M3;8*UqAm`OnbVG j,r:tCh %IW"_~<XHuR+>*AV*&Y4U7zT<ב3]cO)QeWPp3ݑ$KaG`.9q|6ڂJp`Jb@`4C%1L !lbxMaz%*WC%*$E%voFżgw9@Yb=H E{C{Y sx(gBMÛD/K>HMƇHx?5T{PR̛yi%#> l?5]Wf[i0)7'u5Ȼ(5|+}2CA%kZܴV(U"̳ 0q]Tn5?O+;]+A87"-֮QBMgƝ)"c#e@`dwܒ:Z "HM4KnÎ3L`Mwh1c4 xr(`zrjԠA) Ӓu*xR&kP䅙XC硲P!s[Hߗmg|E@H\|ٳq#uR@^Z)XZ}-j{{ppP!qP)I0Ii?|ƥ 57.8HCcNvR1s tL#%˖+ 0D͓]e@Riy3NO%ԉ._uH \CdDE6vdœR ΎAt>h=& "KWHQ1{ZA\##S<cOMz8mR* </2Ŏq8D饡2[Fx"e~f?_2wqb?d IzxR@3FzGo=2چ"g.G.:H` "e?]v ?[T% Bdh6ltW)U?Lފv)f̳$fni F*? i1?v>A1H9z>R>q5y)Mډj_OGvf!ڬ9_<6/)`Ǫ!zad{hxTh:eZ)69G"0ӛ4CDu@ƙR52'b +gQ~FO.qwsO(6R9!w*ŗZW ;y9g}=}yęgn?y}r(֏Z*`(bjac6*Hcx "jAtH΄oOϡ}>5FuRM44̫d3R#(%**<*oty&?G;SWTm)eaVͤ!? 3 ĮlCX!V s} TXPR_d~G@#BI(fhkAV ߗA޼DnM@A#<^BpHm OX԰Dz9%QJ=ڢoT!/)3D| 5b!<}w5P qas:x6=$~$LXp?"FODԈSGQ!g?{`oj͛eե Ҿ])zȥLپɓ*v z='Qfk冈 z3e]ՠ3"s yiKڳH!P C]aH @pʗ\14RNymv&S{x-=Ot/2N`}6C1if{֥}h?%$Q(1װG94Rky'8k(LC oߘ3OFp:[$< 'nI?,9{bP);wIDy#5@{k4]}xC@fݤ[bOҀrUmyyO+Jqdh%j)'9 W+J0& A+JD<dRZȚg5x>H zWCnΉօ ibwn&|UJiJZ[kQ=q;5GcrSIK*dD8pMh+_+D8 Σ]Nߠ%F1:1W@h9U Z))IuLL 7=k*k*;TGa$MJܖ/l?~:@|]S i\,T\1hۧ"/⍐a b3QHZ$&@"<@F!-^vo;:בHk{qqnc?!)~  w Fg6*m77˸fr/zq@ S$E$"hI>2KG|>spN殭6t?]ll_H;9ټX],c׵X/R0߲cst2LLX2~ /#qPXG_PD܀7s:3vzlAϝj[MMm fhhTV5r$$6f!nI -v0S(`qt2MaL/X!yƸYս{8]^rd_6"@ xL)`1ePNJqi g\J4d6ǽ le&`Y TppP MдHK x HhujM DAt"3^9a9 AI:0h!DY1f94$RhՑ w _\l8s]s5iGP`Ȅsa.هCŗ8{w}vFTR@AқV]=*Uţ@qG$Yq( M[N.}A*p %5T].D;J]kii'nأVMD &߽nI~_ʻTi'*{<ǥhE鳣8 c0IEAl@ SĊC L,"&Ȋ )h48vCہ˱õI}X[3j8omkZj4.qB@+=HPn[#s[K]EQ8N%*=$QA@! *¨^޻O]*8,q3QU:RJG43mTbYX>mQ6r|[,i83B_9:ڨCtB*g-_땣}?y5"Lp?IS0!c1fBP&=J[0rmgUZY\@T9ȕPLt;)^VfyJ tIk<!"p4G(\ F47E$- 9QK]]=i8ftwO &1(`PC< +=8$~%*8~ /EA.uRŠO) C 2DNZ"10뜔8̰9:O3nG<^;86+uU*%ɜFc:OCn|{+?86tBy͍w:uG-JZa'!',Mqrf;@q⑇*!dh1n=s8j6P*m~T!(9"J7/ ۷hQU<<G\mK)uu7-,0 jV(u8(҅h%O̅*IUH@[ц!_ͨr?:td!.%+r@z,]m q;:xRx I*aSޱ9mNYWaoooGCvŎ9ŝ!tfih# rvY;C5 b%q ؑ #@aJH$p8x슔>*:%5%ɂ zEcRPͼBsiQЊj YD|KXژ%\oQ`K+c~(/ycGf@R"yh]' } 'ܪJ<"֏"М;w~}WΨc^4@e)c NEy.h"\ډpJf80 R!"KCr\^tW)ѻKrX>4zG>9dYjtG1(`PIY0()f$g{y? bhG ' /BZ4R=GP < ڦ PWp$ \Mdm}-"j&Z-;~Iج}MOBRC! "?T=Ƒv~]x6klotq=ҹ2⩠3_).w792$+ކ4àmla #},P'}^B5@IQ6g P{3{PCARI%0:H&q8H\R!mqI_<B*ZDžBj*!=+~9΢FQqDA? SF%mtAlCT\/֣oFTG`lT˜G%:! :JĄS"[Z"*7OD1(N7qiSSƤJ}Wul,,,{rCq%t w ~/HϲTCR>? _305Q|36W}Zg$jJHtYT:hPo~[L+RKyMyˋqx+}mv@\ר3J58oS2Jy3$4qph`':g-P) 1Kk͠/) (/%T3؇”BC;ldς[DQPŭhtƠA6M2۝8  El Oe:8_̛0 zd B/`N IHt02,sBVC;@ҴCb$KY^8~5{x?qGы#p"RU.$OȶZLK3 炂.d, /=A᛿~dnjejUwWZ@7UͯVT+ t܌fGOׄh[N"w&)H~U^iڝ  $jYo=]b ='"ɒRkyy0Y yPMU s \HlUii8wlm!J|/ufkE]2b6d\tŧ'H|8߼tL=0*&b⠌<5)-i{5ZovCSW0|`/)@kO5̑GvcHrN p{:qƛ5,ZfcyVj̔.- Rj(۴N'9'0\dX "u k͕⡡{䍑q( 0(S8AH 0s KAa)"b0pOOfOV,(Sl1! ?8љ1!MWlaDʻdVVi цi'߫7E2 LwiܨQE'*+\>\Q) f$*c1rDn`sFslT7+uʰqv"0QwΞy 9$߽6Wiq\PJ؜TNbDR\Ao< wzsZ6Lno=dkQx1hYmY 2](sjak+<< OG,K]$"{j*#HA_V 2q\ȻkCR?*'xʥڂP T0Md^FWy\ m@Hynꏹ2ݩ4T]f$JpX#;x_mh֕~x>p$)~)*Jjdc`7Y,IQeeȑ8Xvgzea+k+ͬYs=0|i@ĚR58Nm\(s9Vxz"ˏPz JM kAhu7:I`kڞhfFDyPRv~-ss*yΣpJ(ؙ9Pz9L9}L.ӊRxζO>nkwR +D̮דቼlƠ` ؠB ؉bILx(M_* ivu/I d<cwp uCL:x -Yn8sIp<#l-J̯s$T?$0;(hK͡"ġ@h8bI%'jiīr S)J'N]Vw>OdH;>ijTN⣩o^w#*$W_=5.gȟ.,~=-LiR J٬W>C[ P$?~]3MÁt+nGgqGqvcuTR MkkpղY[c(nLMM/oZ<yu0ܛIZ(T\]i.g>h/ETBZ$%ǂH|<$nb{p&0@RCT&K.K֢-G-GA K5V uYFYW3YqRC-N]Nڻ+?˜"6V=ٗ\ \er(<*Pb%T*կa0(^rYZ`XY7s Du3ODB5U~{Os.Ev38L#:$x[a󩧲( ؞?+Dz1tBdESj=FծBˋ d-1;{_f|::ŧ<ךo66}8^!V/j>YRGkxa~LzjT 2Uʚkt]3"IBNł| jNJT@fXEz11Ǽ,v REI*!eyy+4 885Z[,2}?A1QѰ#s}  }*}Hû8wcP)klұ+` b#f25ĬdSq$(rv-7!S|Ww{ w?{'{'C[rP~;"k i\9[a?]g"HVl8,K>Op [H_< g|"$`(+i9!O C%h ΣJC@Vȟ,,Ak ?H]HYog21Wү!-3uGE\ǙÙTg@ʴb7=C5=Ȋ}\E?>LԈ4R.D{I+|VC*p3S·Y <>;6TZ(-{}Z.Bd:ʄtjMB| qrS}~p} )sJC}qk8AG50)wx\_`~/"C|~e~ ^[wTм(,:cb:}/֑bpb V$~AP1t 9%U)"M`%ԋ&0(Rpxzq 6"X:HRTto67<|Z#D0<zxh!]Z~E Bv W/+Si),!+15Bd ;B1|UF*j oJKlo fQ\"KQԁw)464TAh[8uE IO-3LV~tH!%h}@f{ж b.A gG&{OdK%xT_%b $+PdY;{M COCЏli9ػ 8}_;NM2 "HR*t* ҍtJwC L0}Μ}S}^Qkf֮^^o|J)ľP2E\7D$(> wG{WqHOA)N^[vW6~ VA;mmrp`X\ kC2*[Xs$ۂm`9;:~eٰʎ^K#~a"3| :yX; n_X\RvN;,=T{j I"1ϡw` Ɵ=31h Q\ᾪ6[lUd %U r*I>5_# ?TȤLx!C6t{+XF-P]2[2~ |]xOA©^P2@4JXEhtb Dde4O&;ҝ1)&*wn%Q#/;$wg?PS>GZ'RTW{c*~}ͳ"eHf}g>xĺYO~A/Ep.xUXҟx+j]xcA0#` ϙښڂnT7⺜6_is sg`b->h^ETNƣ#&0WxLPxN`wChheO;yykAˎjxhH26e,[ͱA999Ə(x=K!^84$Va݄K/ԣk1%7FŖXWfP[#p E>KsTj#A=w񸛜Jk^-*.:gi_$HT_සC\礳TJ4t7MQAXTk? aE8V<  =Qɚ!z!pɥt6W N#38cZu/BvR^eZ+ RXa., o:'\o rXdb'9v Jg0N3 5 EK×`pf*c*us9e]KKc'šewqw[{ I?_.O?C:"ӿ^ ^y} ;c\^2s]MVq]kڅ32MαN0\M-J]}y{<ף<4G8r&+N5P b`34jlO$pQȽfT_n/C!#%_ °`v7c5IKɘuu>:~Axc؜ҙf?CG'tK_I9܋=yIE(WH!LJ:YDF.x]C!y2ACl [LSORװ?jPH04e$o7ɻnM<"c+5~;}65xlY(XXI'2/||.n=yCAzk.OXه|<Gk3g,mAADM|Ox/!`M#2 )w^l)s"1OeDN,XgN/X9n\xL/T;_CָIQ4|1piBӗ|uM Fs3P@x]f ]fK-%# MA.ɋ5^Ej?F]{f/ao͵xwu2it ϛ§'-#Mt*&d3J{(8Wꅎ@E@'+##o"SZN?!WB-R rУ.)x" @o<ߣ+ R1w| ZY3MQsQXЇS@M>oՕdA .( 7t8GȋxtHyx-~*C5 "Uvo'5+g-H,ނR8XDyp .h-!}snV;mfF^hwիDg}+?ɻ`4DŽ ݫ_;Oo$G1S, +T)Cee\VV IԀT\wXc>Baǥ=oO 9Fƀ'cCO+~FE>ڃL"WEƾOq@٣\R488[ẗQ[[[)E%M*ȶwcchh kZ[-&n}gD<gUÎq !J`$Ťdf7o [K6NԾ\~2줂?r 6X)Re#kdgcY*z6O״.PAL{|]M~#򾪗Ŷn (t⥥5a M0Ч,ΨԮjXoyY 7Y;HaX\T Mι͟:5Z ?iJP:!>zq! :|C?nuȵZ;@~ty#֦֫5 l^|)V4ck: iHKt NEZa-T oB萊Ue"s)\ <^n{(Bڻ}#ݑŽ7NԔ bKN(^ۨ- $ݼ 0>D=p(h$χfJA~yzZgEo_W::Y/u\G@G@G XT"_@]{~z vވ{i I:1FnlC>L[B?B\F4eygʻl Ur8lO`tXt7N1,*Q[B >Xy/\f.Ǽ kMH"Z<o# s <}h4T][K1xmI{ʥN]cc>`9ͳg:wA(*Y70:R6~Aߵ PK&ݓ/l,l, /))?Y-Pߛ.&s@IDAT51R6m|wkX%`_k hς1Ta~f?bYqA0+K 3sv?+l1>UŎemV#3fd{{ڋRe'3^K"VYc^qINzbABY`H~_=-l+l2kmx6343rJZl/=В5+C&by}SjWeO+.m$ES wA$趶"i"uI(0*f$zKC/;~oR ?se-(y'qU;9m4FR/,pD37 X5<} ?~RGO#plR3> $wCUI;xVzUOu@/L4؀B"BFc#<øK'PngӔѦYhv[٧W:*ߑ*_ImBU%:%!:?(ޢ0]Ŧh= ,{xP|Fkz˅ ΓQσG9#pwQ%ȕj="fp L. 7$b 18_Lg6K:Rw:VKp߹|>A @."oۇI,džl(NO/u:A!`AH#ML^^(iAL jZ$n~F#EdY{xe$ΫZ#\̸fK~ pLL+ϒ۰RBe]F(}}Ltw-/TiO}-'x:g2h ]<|=9F2/Ur)*#3QY>\E&~e&MO+: K:"CD'z\k]"(ŗ5zc,*%/Fa"7z###|i%4,@c8'~U}o %pwTH<L1x%A)v*R1̫q"̬oڭܗoCuS+PQ4ikGS W)GIVb6hlQl0#3 3B<R{e(%ֆZ"2ڇXwwYPĥ'_lrKgOu|p+Ț510K0O&CO *اUc%#or`PHllFKe(Ł8D?vbXGc']̰O;%/gXJI8~RS-ב4bdA\-7ڏ;{=%jb3 54IP\U]Uq0WNWNݕh&`5|_`5  ~K7%1?7F0ayΊ>p"gr6iV[jD&#gBx\COZQ89GtȝE'Ә9k#]ι2Ԁr%yl`j*Qigڋ zćj!x(as/%m#WַeR ?&go{a_Y6 1R RD6\:W=ؓ^7P\ÈN`+I}}!q><Ĥ]a<5IU8<G!(f0@5':9Qq9?'b*w=-8=BY 6\?wͣ 㠣Yi L3S[$`\pR_WhN7,a{@]/tX:+*?VO6 u !Z\ Xu+.5 7,4,ػ]\)TZO[;!p-<^ |BuL&x#ڗ󺳘]|#y^̎ΥqqWۭ u`dE܆>}E$(W ʉSm) ǼAB+0e- o)+|;:(Po ;9O@ua*ݘU via37(΀f)H`Pq*/IW(HoH1?=n'Tx4+%M/oM P(P < \k|"+"h!ԍ '.7IbOO)^;y7l_9)}KG@G@G k#d]| l*XM3~/'y-%;D!r"SachC9C8h_5237cC*8\‘"}"A@>KQJO@k`h/-$LrscA&X\S*ې[: xw:wFh2KێS;ՊJw]8[m2oй;mAG2W?۩P/f 8P]A" 24P B*TkeezJ=\_;%?0068g?_ `ޡQ 1X|ACF_eղ(s &5Af(nRZQkOm ;_.E-=qS?LkoK[S ww|Iy\{ݑZ62ɷf#"4 VN9LaEY_Ԯ\u㍥sVW T@5d\hP>2L3LxD$JM!"͔)J=~xI^,~)$Og^!MdO,qvS^-& 938y R+OYfeΘ1=݂_'A] 1w:q!~pKU>Z)G@v#4Ҁ|!9,*Daґ.w4wya#B-2?' !;Gq ^ [wni܉ZTe! 㟨c59 W{- Aj8ϏS+^Rh7Nlc+Ҁ~"b!P g{wX/o%gA"7=l녎@E@_jfOW\G@G SN<Jo~{_<;J#0bL( X;Z@v / "  f罞l%vM l54K$EB{|u4Y l"l.ᾗ4/]#xO̠kYۭOX6Po8H̑%,W$ 2 uOł~Rǐ"!/cK>*az@kfW #,`|=e D`z`@{Y0lz_ ˬ*,ˈ@EG!{lΙ!!?}=bƜ荹pwyss,'3{> {!P^BkMJ1Bbt1wS8>tuܥ/QDBqvBh%${l赒]iC |/ +.s~Ցy&h#0*xa#R°cῐO&QVJ\Iz謋a]|p?!IWyғ|Ӑ&IakD*Q* m"Elaxf#=1/ Gz#3>P~_BljObSOy<Bh4U2x5جTOz||X4due2{_@9'Qg>)X 3N0 Yx(+L"ΪU.+c<@L } P5ձA9--muj79mފ}!z'l>O_Qx {!S".mTxhL#Y>wC*ija篛)E7N&A܉zh'seuVH>E 3ش=mpN֩-/U fiY>B;w:,&arҰPYlQ$j௅HcT"z| Ȕ`*bLȍ!X10jvE_kT(^ׂ'M3-~[$2TLbl<dŐːېǿT0ľs8 F~2}% RV[Z!طɰfX%Z:VE9cI/q^d3f~Klf$iB!Ǘ1Op[fY! >TlOgEşCRzS#ecmt5Cnl:hb9"Clsâ,jC1=SP r@Ř ̵3`]OA@ow 1[gQ:-'@ VʑO5D^hO3H^w[#H*ԿD=~KQr >ǏBp ryX~ P̧LPg!EZpE<+Hoo\B!Vӣݩq~J,D/P¾ڰ~Wt"aKR swҴm{ \ji"qigiնXfKMћ4$dKD)L6(߅C7p :F6é~l oWZFZvZv7Hpf~!ZP0h-P:_~:"bv6cghO))G@_O[VYVj^ sss9aͬ{/ ڹߣ(HHtααwx 0&roEǖ4`T6`s!"m<[N0i*M9SZ)wa+9~w-I3 [NUQ{*SiCW k6qZQ?]͙T(dEHò7CN?3[VL"D Jby+`FC*X<i6^mXOA~lVDP@,\եCRJjzںrS{$s{ h\؆{IŗjobĊY akG-7^ӡƑCؘ.ҨR#JIkw3u-qׄy Ek -AyS 9X(iӳ"ȉ]\r iܟBiP\"u@bcbDFN\n4G)s 2~Y.@ A d 2QdXO<#'{0bd+Sdb~l\3㳃NA4d[Pl6:{{4σklx'ٰø#٥zcg~j Zw{+gٹc)'y/6׭țI*a5cDD%'1b+Rbc<`EA !wJo#X{Zͻ&NCK`>Ku=i+Gԉ5  )!'E&_G_=Eylv30 Ngf#[hށ뇪֊Xo-aHVސh8DJPC&ԷObvɶ|;ica iB-qAPu21B/?J`z-zx-֡bBi'6]3:ݎܮI$%WdU:Da"`+r`<,K(?&j ȨU >&/EMY^um؏2T6TFiQRѣ,,,۰`ހo=OaO&ޝw]_ ub⵨Ʀ'?z oGoXA>c6^.MG{f2FG"{]cL&.cl ]%Ko7pB-n8D#хΏpv ﳘՈT©S;Q4g˧G^fJ{:S,04.McC:0>He#F9 MkAqtz؞5 4@)oF e)4Kwh>H=|**|d0#gFk M2J{_-Û}^dYt,| Lx˝|77O?̾vW@ 4uYl=gwgp=ۧ6[S ]#~R ϓxW)u`w<  k@Up=h8kayX" I?BzXK"5) 1Q?#wF.!MRY)CrNlta)U 2"Ν:RF;Z R+ϊ"_ԘrQ-``|e)!'[9C(W~.@ ;AGxPT2 L[gP{>ey->@n]ya &WYqWB _>f'̎@օhIapƮ~ K G$KOT3:KfL7b0P Q JB>HA9ꮮ05qr@*sSbw.neu>U?xѱ*s5v}8!_hC0xX焃z2'E?z׾ FV@zR/db̈́x6b=R>.>m;` :,X y/=T&%2!xds=V8/=}aӓnzz (Ehhϥ*C!R#m08:fZyЋrr#fXcuE)O5Y%`+MDȍ$)y}ƗTvE\J_zW~Qo 8/jJc)  Z7 t׸>ͼ'G1LG ISCS y–e*o###dStttt/~F,E"_R]""%9$Z T5laB-)'iQ/vte7K@_t])N" #N~B_NqD?*d2ki ^PޠAq<M E0E֓Ӊe>ÉET(Iy)Jì\nMccDþ 87{,Q\rb y?#76}7 xK e9oh# Byxk ,*`R<,VZDmP\i\;&zy^#GwE#l{iY vjzixW7 '!H&rŽ59b@T6aӏwUD`1$V]0Ijv:ػ(ϥ})I1'1aBx/aY rZcȇq8hm)] v>BCiH,} ۪IΎ+|q~q{gN?]{Rg>ha T };ָorlA=s$$ AD|2M*? r)4bl@3`oQaPs} <<aj%{ۤ~|^:nWSd`(t.|}_d$wˠk,wwA|j'l5+if¬Ç/9'[Vv*m']h sՓMg~g s&*c{ ݒRe^x܌}k߱+.GR:MѺpOm#OB(Wc?Ws!/{ovg&k{|X:#v%-ʺ3bJ}I'OJt1d g4Aw+f2A)yi^þ:\ :HYP`Of][\k\kHPP4C!g(XM;gκBkz{rGlsMyc{B UEy\}qiJB "'&D "_MWe[U ;Βf\q.S끱M]ldK&ud_/\uthh$4Z? D8|t_gX8 'H>S$a+NU唃5qp:PA C ݛ/~R~/"[fy-w Sst1.(y}T"Q~ DE;Esy<,`è9L3ֆ̗\r;9~v*]h{`jH9AN@(u,p040N2/2;Mf&zmSuSu [ǿ_y-yߖDYa_#̳]Bx-|P' R I(̔{6xL e'Iͮhkk4qYdObaX2wᑁv$LU=C4oǜ+#Ne*-ɷ봡 jm_TZ?h0 T T@Ugv6Tq/gyxgx o>z` ` @q*wOZ]db(s =ucs٪7vťSFCG9UaKٕr>#?XAx ƾ: ?P>P{(>V*BR;,BEV9)cuY(*,K;x 1fbv0{2|P`D3꜈ҿ2Sͤ'gIdR$Hg0 rl0= e e1| *2 W8v+˔̧򁼧F!|^ DVHԻ࿨g=|e_7utt4?^y?@@ti6J`ڢR/tx59"KR[V5Mlڽ,!V%3qP}}H" D|Eĺӷ~W,LdWD^e@UaF02a4M$2.d tM_ݰ i`P.bK={/{o8\JHoKod _Lspt{?[pc?ig״:Z<''Y bd̪ {o2n`p{Ks'm} pQe*3Vz쇲Iy^mf{qo@blrMGD2K4>][up-CR|O=Sh9 ­(TF3@ҍ|FXQ_3} k7uu?@OXHP ^$;$\o'\JCy?1 c㛸DP$]/=+cbM.6 cMeɎ~Ag(KS Vۑ6ͣի caݸ؀XIb]?(ila8GNV!(}|3># ݇]~)6##MFK땾R@QjQ1^>{y& :#iC4x}8W薕g%Y.<# ݓ:dz|NoQng"WhOjOȉs[\*B~]>"z:zvOّw2jgغq ? TUZ|'83420eMAQnZ$g1>T/ľga@>o#"xq# = h2;2(75֔5!='33pݗzy=8Sԓ*3ጀʾ"Ca ߂aÏc`oaÓ Q0E>ak Q. Qb`W%r3שܹts56ݗ䴫iFYO6.] A)ڲO4G`7~$-0|*bgޓ2Ꙫv)&*!tmخtu=Ʊ'`ApnLp*. +u_ ;0 *l1ه| CQj9Jcލ6kD!x "8 ȿ3"࿕CIrtrtORQJQ=1ٓPCUݭzm=ΒgSQMW%d5D9尼Kj$sx+'~&I<ͅ,I}#ޤ HeVB@8r=2J_ n[WuٕYp>B|nmrc\߱oqG༟+Fp/MPv>[ڀ)Ҹwǥ5jkxm> a~Q u|;[Y? G_^]W@Ϯ֯:٣'A4*H ڷoW/<&0n- ^!HzV,5J"ݽoNnэvi?߮u'` zEOE?/Gte`EHV2$Qk{Th },D*,-1\$A,F"`lWNaa8~ @II--Y{Y{W^3m Rψ3p(S'!l}R*qr&%AB0^֓i!Ȭһg-ެC͊Q yyKTf4rymg%LYԒCшmlZD_@O$]PO}=t+d#,M٫/a\K}(/5x"I̠UUx]8˘7-#X뚶*xi{2M>S(y&L6'J M|'z"l[5x" 31#æOX%2mb SE`/̓Q\{9dg[ l7bU9}E}iʿ*bl|#߈VȤVo>d4Ϳl)[V 2,E 3KÎBxy1- k_!#Oi'(w|;9q1g{^oWa̦v_U^,-+g/W_R$[M@ŀqZR2w 6X2_0`Sx+,;Tfh%MRE6!8QW! zx^D _cE%C{\XU aтbԁ"1oB\u-կ2f`Đ\=:VbRSe䤂WBoJFM8j{I&VLsP_iAfe(\[M`6EUτ _ DWQ1=ɿYs$p?Y}^J QDŨѪcP6N5NEk7zc54 cW8x ByuD&:S4c_'d(`O&6 c@~( E !V[MW,^?݃CO"rjh?=Q2pnչmJV,94Mhljȧ,2BW ^Btq?>W# oQ7X7|%T###Y:::08$HVwI1_YacEM:ȲSOXXča'/b'}z$kgnhvGY"x؈鉭gEx'Os A'T 9xhSXU6GQ''EoFG "Bk09LR,1g`>b>Ŝ`|KKeHDGFB"|@IDAT:}H垅jL_u(o,B!<L0E!.ǝ' &81T0QNfl!zgMBzhǵ:ϥawZ3s5a/T*f)և/(ؘ~^'`J0O]kKI\yܜ2FcH{'w!̀pHjzbB70-ⴆ-I>{"f7S~M0G6`!Y+ecs")܃Ht SNR,"/ߴ .[aXcޣX'"W`Yr8uߡ@~7qǣTJa\Jpr7RB0'^b|{ړOQzv!jy]`WU1g5琋Q~-ϑ!V136}X* G,A;4v}Ї?}|T;lM#@BB( H X@)" t;"`E E{wIޓggvwK}9;g9g&0#.n(W^ YJ}utSu4F`ROO>HCA:kjvE/{5a%=_j` &7_k4-w{JS'$Nl4K~_bF5)^[0Sȥ$.ih1ގW2ffY4 K$02|e%sl}.(kmGXY{5Պ7#WƾaUaAЖ=WY=ep <üuAnoLe2JPӷor{eˢ=Ӽ!i6}$MY{{Sol oh&ԽYKp#}/! [V5 JxacQaO3o2CPgX;@s/<R/ Pt &_2IѪ"$R gJ*qn24bM[ػgQkpwq\)QUM=`I Sw4)]~!UZ,PBA")خ, \X`ݡ!=iPnW5HKgpUaTɽ:Bu<\+XĚQ#5 ;"c.Ʒ[Ty`uW)0jkKW/QE,lhgSd}55Q4Zx[%z${m3 h{y0˅'(O 7}<# !mA%~>T %|ixpLJnm  z)4LޙB=D:HD@"pJ`bVaj(a()cQ“ah1yo 0:=aA^r̨eMX-21rb$`^d8U:mN:̬RDigM RU+3%˗k.qb1a'J$I$@@Z@" 5"oGU„ĠJ񈩅  U!bCK~J'VMYH/d:#͏i|RtVj.NfnNxUw(*:DSyCݠ@ 쌫''/ 7`fc샋hiXX=n$4k-`W0Qp@/ aôѴAVJMwM-aW E;w ~ A0‚qljÈRWe4Ƙ{04R)ԏ!:$!&-eipոX)JDj $ݖ2MXX)(XJ+H0B3Z<*M> qڜ43\+2eVjQ75旇^&+j1RpyF8[~;(6:0o-XDmRjy<KK6p<ݸܸ5==4oT*魼T>΢ `J&pN_-X?/KDG&ŁaYab,!Ř) ]@>3gW4uq Eʻn(},g"!!IPa|9L`7& jرkcNSCQݒ>bO^;N%ڸ-f+#źQOD&G`o:̻A}H$ r$?#<X}\!q g `(vlPK'0ʻʻI-:WbQO^P`g 5,E/F&迍|%/マ;O+%soso F" wo W0~] 0N'xKegG0? C&!d)Ba4s"g?JoQHLĹTwՠS'mܾqye';?\yyрֶМle"0RVmJ6fe!TƼ8Z'C7[ O 䂉McLv6DR(*"P0sAAW$kx^gmaLG_}O+#~ s$T&.GwAOEzfXƍKRU1LJp ;=!`^}Wwј&_u}AjdzTږ ۦ}!OJ#}!}> ́or;\>[xH?Hi}@?xYPĿ?B,18t1"M x' ^S<^p%0;NzJ" (( w ƅAk1D)TJb\isxSwRM`XP¢V/mIv?rMcr嶶_dALUg+?#鈷=b1JNn Sx%p$H$l9a9$dǒv7ǖ,*n>HT%%eUs('KθmQ*g)jLx'L^m}[ A=s;aoAp0y7w$D !1tLH-Jky71mf,ڦn a!q=cS#<!ߙ儢twG 0?ʏ'{[R'DXϸF# Kև=*  BSɔ |&k+sxcǨYddԸԠBEB\i)̺B3*^)Q<+hi:StTMaE>e-X9o@ʀtWq?<$DVO@U#]Y5;tFPMΞSJ<$wTQ`3&Sg; ,ަ]|YeoI~zʒPFax/MSK*O&5Tnid ]r/zx-5892!1odsx6h+geSW̋c}\]BIļuL7퇇(!N|_?*>DD=LaV!ބbW PC| i2)&ֺqq/\_Ǫd#1Os̏PME}x/ߔ'%|ϘW@E-b}kk0Qk2`2]Pc9M0<詯^”v9L{هέqtR6w mۯ6#Bf?!3dFk I< 1`Z&>BLֳ|ϲ+Do! lKGoF<}]xY[EĹvѻ قcՐ/},|#cl7U^WT LdUe^7ȋ:$|B4 [!z~5[@oDNNcr\G٣1Dg!xsŸ]ɨg)T+P$b=H0M70t07S=x% %ZK(ߍnUG蛖/*g84]6O7|olUg: ǼP jLU]_>p *w`N-X ]c ;L|p QuFLx iGCI6DH"%*rsϊ0"ZB[ U0OJL((uށTew)C쵶l*zIfAWv{=B ۜ?5!)ws&pL,SZfW`8KNfBh>==m@[_ Oc/$$|TkQ:l(0ࡼ/o|{61b'c0^HH{RFʧxe< s9}U݅|O [m+Qjhvm?Q,m}8猇Cf+Y-{9YP#糿rAǎBPYJ'o]{}y<4+ŀEjWd͍̍3=N0!Ioi cUƢ `}ZQXgSO5bXw5b`{Ks̫hQA#ǾA—XGk%Lk a&~J\EJ\_Ʌ zVFTgX3J+G&@3pzw7ٙ+%P<;K7Ԩ}7NR9S2EYǠV+cw$D9 ^:ch 0FK& :(wxJ8}E\ ֩֩S#Hԣ΄:W( t.hĩAB$L9<*0K0"%ptrћ*uh#HQ̉9)~@O::Qãϗ:] Da,tqTb%|if7Q31NBE'tpI$qU_:Z/=41I1OmO9j3l1 ~W#ky׽u`&Xx{#̇G! "oU#AEWXdX^}$|wn"׊>W9̻׭%%0mFeq3}x`#[)S,QHY]>d 8Ow O85}F2D{GJJ!I>bmxCތư+0"DP ٱ' x `6ݐגH5a$H${ _E~_yG,닪$_ +,r9+<߀FTGC 2tFgXеƗM黝{FGܹOve{]Ɩ^2$ޝ;ǻ/ [-iJ,R^'OxBm(ΗF ,o\ 8:˺̡4ƴC!vN˘t$ cfx{זߒFi"Y{.f-|Y"at+Wޒx=WD)JuB9Ɵ.,v=9a@Vj..)c΍]Xu}ך4FĩQGH75!l2HauC2 oy`󛡂ڈm>F8oa>~~{_~sBb<ظıLjB6 m HM4}`%+xn$֝uGKB=|{>ɓD H &EբX23ø58A*aq0scyN0AY,}Dzm}{_Lj~uE^`0BKVx7;A<:݊ v:z _" Hd H$F["︒W}SvN} ON cc/՝g+HxvBÆ2 O#J]rDqx {a}!΢X F&` 6ޥ#\6[+s@L+읶C~_" 8yl/wohÞG22M0fxn/l*ƭz&GlD#Ж;F;FÎi#CII9j{Ä=LUs;oĨ,ԂB /%/N㏒fO|J&fMNJm|(/TE2jg06s ʔ*$mY-:P]p:ĺߏ Wɮ 8_IgEd#grz Tx$b>Pc~. .vC3x׵in?[$/0RAkYs,j)) ֵW!}APB=RNwdcBXkjQb /#J%ƌM#$ Y˳ߴ7eΝʯ>YJ$?5f>je5=s0=883O z8Db0"&HQuTK"JKMKL %\ җKYb+-7)t:10|MgBQ:oN]W"+[m{.G^N" [|20D@"poE`L Ȓ > (gOS Sr${Jf3ץcG7P$S_As- ٩Uq.,{Qgx=-`b'evEG!BzJK%.9{Dx)I" +t.KE (BIMYJ6SA/nc˯  -rs}Am[Vȼyx?<4Dyw6 |*2G: y5 b&V>N:Sx:κuM&Sʪ3OPx^]+NJg:w\Ӎ-!l~(NMSuNviAY5\6N>\`@ rh,>CgP^Vl3";{=Ku!EWQD@'“-{VJOt ݴ"RG%VjH7֊F%UO FwdS>Oӛ&Q9tqc-{`;U/Ӥkkf8Nj%)$~LG ֞?}̞uՓaYCB؎B씓( |^WF$缊:x/ B.Ob-B Ae>b1)yCDO6rx\`W5aa&f 2$H5?|0);,O[ƸWY%ZF^`0gxz$vyGca0OqT駼"gDe@oށGQn a_jk#l/Δbkqfـ $k[WNd'MYJ$|o D!@6<U "T0@od" ? G aFLyM/!CZ&@(d\"+ft0]W? fYe]XNnN5wr/-X@ /Ѽ^Poa__E --` {{f>^&+H1. %?P t, !HcTWʢ# nV*Q{o%LqgCWuIdž2N]Nb7xyG @N@tdlnbAA8&Xc1x=@ܣwtqeD@"`톜`P<+b\<`52PBP*/e~p&<[sgq #6_ELDAQV_raYLhhxz+թ%sdvzF9׃zlq}[az ؖUP3UV.˿Thi9e+?eב,@tG~S%!s. YTE@ygudUK ն3Z0)RY)0BL.$I"!5i O wQĔ k1 e%?"fn(x}w+(V0^$3i/Z>ۃ\[P 33ކB.^AT<1[ɥמOy%Z!Nͭ|B>uHiF0 F_6a'# 5 6cda /[gZgBu+f%6Gٜf1>!ԳE°k$}~-|#]qq~LNsasD8"s=E<a! 1΅W/64҉'l.j_*bΤ8fP%-#xdU9܊ ftIH$B!I" H(V },D(v-b 7ɮ+(e|fZMVƫѓhhߚsFl!S *6ӶwTX {b"XXVwfV H A/OK$}|Kj !  +R)S8빩6QR8<<*-,ZqieocoCd+jdD["9:aA؅z0拰RB}zO=#"t6ԉX,<^Edq4_ro's}v3 IB/8Bmhx-o5%'.v P$8q>+j{"VB%Lv\N*Z2ZQwh@IDAT٫ uOugk᳦" @!RX;6yITGD@" x[ID@"fC&;;}g ^#tAu(uz$@Z6g:\ lAm>6h:;C4HWl̓xl8ɰ1;g7pX@" iRtIQx(GLTt@E0{oB[գQ|/xH+&J*V,bwgρ0iUxuiA˒/RU}N9PF5oȨ؂Qӧ3`LzfOjnGց턢]S-# "pVEq] {w+4!Hˊh!!mgՆܵ"bS1DM|w*VLE(#{!)ľhM菈pS@r%3WI%$ 6w`QlΆ6(c-\~tTޟvײLGfъe~E?s s(|~F\<:VH&Y!YC4=5NIH$ 3B1b1bv4L0.0.@900HS"^qpޓދMHVv#XnDG &Lݛ]'JUft JWERFyZ'v:̭ b/H$yQJ$?GV{l/ R(ӕF5Y(ˋc/\y |TUXP3|J[i BebeiiDf|/6 };';.Hd/&`bUC80+6Ÿոn``elnDiY-P9?oGd$ffO9:: Fk4(xލwu_+(f`bAqG=TqꮐPB![BƱXOGJ%VLx۫83//uvB+tǬM=0ggVP+IWJo+Pb RxWv_b🂦6EK4"d(i1K"ͽ/ϑ"[r.)2 p_ڨ0u*6Zݫ8a&";w@,M}&"g;KY+9cP!p_E #8_ℱ6$j:~qƨ|ߓa%ia4:fWg΢zWZ>Z=BR{clqiŀaS O' T(;w3U8bg|_#]#&5E{?z u Yo~Ss's'C}airu54 FQI_8" d\0Z Fžy/=,%0?U0N<3Hh1͉{X3"q%g>ϭ4=.˳ԎrSdc<mJ:IeeEM"=JSs(cZ(;ܹ.ȻKʚ$@DoT fe%yE΢}_Jǒ E1:@O>c l3&7Ox=6HL4\UP9<蒇I|@h5t3@deXbRI`XD@" 7W*>+jBxe~ ֞dPiL1)hyhPP:ݗ\Ҿ̨E\=sg=QtVctkŧ˥u -۸K|qYXJB)Aks5jǴ|0ϩB+:OB#ȏg7o5^*1cvMY,[@&|::Rl=/C :+:Q[҃@¸(ƹ#2 DDr1Lɘ)3=g(>]Tx)zPM3G&b*ܜ) iQ촄řOSߢ`~E2{(2Hȷ%e,!# JNK5 ~Xg\ ړ ic/c/|/QU`=yO7>c`{ox)I" Hf [B`oCn(x$9|Ba@WW0ڈu!]|?18&R[aNUDˬ_Z5be݊["p/BRAwil#˖H${b%I$#`q!w!y{;-|.d! iwhMƞKVS-,(xw|6[4ʤ6( F<#RE0:2|5Yc1 O` qzK@g-I$ āb#!*ox.CGi[K3uE,P $sg.#v:0 XdiGi] Nν]fafٷȒ6$b)KUBڴ(J)RRJDYI"acw}5_~ssy~VIH'ly}9YNF5>Y2?p3KLD5bi#4(YoSu3ΠPm+[&~@5}GfeTtUy]5'.VNH(ymN,v .aL>+> !I%q/gɷ -XVZPOAdX M)AtþҫtMt|:wQ%Ӿc9jisS]~O> NAFq]7JU, ݩLDx0%E> FT MT1E X7]xC e7%wA⠗O_PKۚ~n`^9aztf*T{ VQtv][Ѥx=2J&hE-| ^j1 dހE.7t 6ߏ-`F pHmE[>b*cό=]==P%|8dQ&rSN@/AH |h}0W|VoXR ĻQEOpO!S.5+CF`~'ȉOH^&Y#? 8hŚq]]$ݚW& Jʝ; W(hi"T!pTs^'wyWŬ&.Wc~<iX+n%kU\-vvEDW!*r“%m~Gqqߏrꉡx^Y$z<>xRޅFy ?/3]XLSvCvsK0,doq p ƈm/-Y`Wkŵf}j"I܁dl33Z ޺b~Cagbb^-ҏWއ"Dn;.E/"<2F` 8 D4Owۭm6X u R33#UF.gi`ЋDۻ| mygWNPz!zxL\Meh&x % C2Va5l #0g̟0Y@=ʉ"X*eAB +q~tįr8=Hڻ;a 8jmm_Ew2-R+Z}E_PR Zo^/W+qHZE8T CE 0@B u2"R1.)ைb,O¥ ~Z -O!=|? /w@tR\(y8a+LԢR$rP:Ff3pV57ƇFTTMpp <ɍ jzG2r֡V;?NPԾ!O,nS&wUo$ts rxƂܹTwʘKlLr;=;K;QIiW۞fo;o#{wLmNN|G#VNɅZqx#ր9NQ/vTqVf+ۯCR7Pte BӼ}^,/ 5)`Jˍ.61L emd2"8aaG#0?]P&Go{lJ.. n[AHcE* 8Ap<M8BD}^K$G2fڡM!pP6p+>', H #0;0o#mլ x ˬE@ylD+g3jb@`Irg<.uQIC“//"H/t!=X" k "I"z eUYmGn#0sjǐesi5 #œD ]bOjRR1yQݳʻ?;DPj.jԴ-E)MQ,#;-uOV_.v   Wpaxv*'":lȽ @nE1]c1yW[\,O~cTh*@߁  O#8tDz~QZFD.ͥ{\X0wEqIj9;֌QrA-y'\I|(o0qHbKevv"]4-p(MuEׇs?"=J'm&RR(sO#EYtx#pFP*v48T*!{io`VP*z8H)`AMxbxN͌ڥdͥsZHϯ!}-STm~)Rz^<=M}}Q(@.I!LE6qcF(`4c,"9T>-]U==p {.s}+q  #Uv7I579 0 Mt%u]ȡf> or7(eC7Jmt<~呖t1ߝ+~׽ճN$-6bwYe;$T_\9ueP#9n_giT DtZ^|ܵ&١9ML͊05vњh|_|m=pOg@Uc#;ç .>̤0 K OwMj5g3i4x׬񔼧y'RwC-gSG\nfB*yL ^c^M1cNQE=z<~/hX,"k2o6 9%_l0#P p}״EUQ`mvc;~jUwd/pۑ ZH 743 cfƦ=TuCō5/b~Y9Fʸ?ȫ^ʭp5rE2p&5'9-"YvuPBOn#3#wdXjRroP/hRz)0)FTBKsZYĽIfȔSqsr/ao%2av <8*ЌJ+4jMw+Li#0@qG1DD="P,zEg?(>wEj[FsFB\\0̎% h(앹 a 5X>Ecy,"Dt>* Tpqi*A¡\8(qV>)ߒp]mInVK7̝D%e-s jPES~ct@ wC;v:w"m%2Q_Wڿg'zR枻VHxB^U w51a5Unh/OJ^^Ux c >}Snp8} "E.JȨn\j\IUnt:T< D%'f (IɆȘZ0A7I<U܃%zw'tR"L8DG؆q4P~z"!HY*ckЃlϐ18E9@~B 鑳eEҐ/n0jlDОp{chr6QT=3>Y0mpKt3-#ڒDZozΥzNO y`|%0xkMj1~-׽-SD)!@o |_cJb؈ޭgYS؆ H#X?߳]AA$}ـ߫D&FEPa;_?1# (iA9}E@Yrt!iA F!8 pS%C$]U9%3)N0M~|:Wh1Y@],3Uuy;deH9 l8( ?@D#/pRm5Z`/2cFCν{W0nGQ^bvGeti,kւҹ_}'iW*},gHz-x/B^@s"''K^8cZi,wn!AD4gY3>`F @$5U" (k?#@MP_:GG?~?2l/9P/ɇ@hMзy$!l% }@:n/n6/L܎^Ch K$ {͆0o^ <'o-OCM^kdHU밿SLܨJ9@*m#hDd"2M^j?u7yL tzRM.s\ϘrfOQynW%DVՑ.R1ӿj.2$CL1Ws7 VF.%r{':H80Ej"џ%e-ˀ{ GIVV67P^Gk`|NCKSۡ.2"o bK[?,5Ԅ}I|D꿟m@*ɗX?[7*}9{NQІ̹3Mǧe@rסPN)|l 4[R8P2\:4|6u O!9wPڹW܋tjwR{q.8J=- i Ch!9WXv[Ns~T<ϑ9È!F+ߖo vjjs' WD!'{vg0F^KC.o*7M BAhOЯK#0qn/"Et֐gȍʇYhThdh$S-bU,#!7.w/.]5eV(ʸ !SPglZ>Jq+JXaoCvM#04pN~xF .bړ_(l+#2x9KP;j[ @-9ܣ=L˃"Qn[B%|Q5YG, "´ HX4l?2p?#/Hl2JX8/S, g0_c1@&7`::.J,UP(;re(Pd h9\6S T$1bUj!oIjBKX%Vko/A#Ud\ 9!#ᄜk3򿢄N<ֆj"jD]lTZokg0'߆U:Pn1J*,CR2%'sfJM㉞*z;UY~e(ZsȎ`#3;B*Ro0ǩ7ՠh]^DEt=rHq_=rqD dߏ<x*̓ M pUDj-ųWmo3#/BS7F`@@mOؗW'P q L革OUCu#"ο?/?AyU u b窃 aFJ* rjD5؃辦^RSvѿVQ~k;"w0#p6 (<3a=J/B*H-l-7`p [w}Qu}||gE y^MF`!@8LU@C,H5R!ݢ߭|+ ,gS'K[Ectq5s5JǴ}A`40V_Z`nl +]nl*⁀G#-{ xch3cFEQ3#;r2XI>ծi5 ^Q,J/2D;J tC-HZƴ:pKrux (2K󄣨t!YH2 좝 22vx-U zs9 AWiE8`F,F  ((DZa VStR%…@SWQ;j k}^I &59*t~!Ï~]ˡqaS_q9t?!I?^j+ҰLڑD;1GcsxyX4\HZF^D#cW؎ߑ:Qukc{Fkk Kt`877t7˛Tܧs,R61#0H~7.7V]OA ׋1mk1 Hٙ#+b-HR.k=IvΟL"o>PW{@ٷE،دui5clGQt7DZT*~J%٪?#9|F8jEڽOU}aG4#ༀ) >jZ^w~hv?5{[Aq M⳧X'>TnPgӟ.({GE>>YO?YE}?F`b@ uVeY3e]HnNQ^Q1=4z( x^r=yhkk,R !b05j0֛"-y< -jxĬ C\, jrt}SuAOWޅKg6nya@5H 7M-26W K5ο uOsBnw"%v!#PZWQθƸow'fth<13bp{Ur\+ȴ@TRfUr7:Pac!`Fǡ.ACidm26}nJYe~?@J(#m ￈+/*=/~mԫ +ybSd6q,ԋ~@lg 1o8 '@d3#p#|1#$cl.UG@9e4UxjGS>N/HWG-C:A(țqemw;xx[^zUMO֓qp^|@!#0 63߬A1oq}_a%]\f'xP-%J*= *z{HE+ڮ>Z?UUASR~*bwh-Z/_ hk48zFM &L* W\f3Qɽ5LL$wFy&eA'`3Oo@IDAT!队r5]=jR!l@! ch)@Cwg6"{GL\PTyWϣl<… ;}Nqp2PVk47F`;s0o#Xě2,0'z3((@]ޑ9<2Ϛޕn>U/})^>1 pgXE|!'#.Dj[@ &a0Zc1/+ l8fQcF8g!i;"%DbbAt]`[fl1T&\^#Qc11cO'?MTbyɆ%b{qQPjNQRB6MQǝd"qH8g e/I|rL3{0HWBׅpy&xSTOCJL@q5j"CH3OO.uwxCGC>YZeWXR)!eE"0#^WA= 4?GFi ϫ'ɢlN׼#y0/٦)zDzso!:Du,xoDK{;_@C@I&t2$4I7ݩ'F`nm~,TA_;NG@'%hAxbK6"V8䍌#03aNéBovYOFz"5: |1b%.)Nw` \\ŋn1Y1YPȮzQf0N`>/.,:"Insa|##D62CfB.Yta8I*k:);n|Eu [c+VQp)Y)"!)! 7z{,\ɗp9wSh/_|#0#P̡ Vk?j?bI\i%] ] 1}Lq(P"Pzc"ГDً?j5PJ9S5Éd)T}]cEK (yWF#;0@JH Ϳ;W(iE H_^-/HS*pQ0ݿo N߃^L%59-~;I41 S:"[q^'1 *J/F`F(. #.@$O'01|2 $Lh%:Zz+R*[sq!2uA׃Zz!tAc1Av>E8P>H /a0;,;e/.{12zH~!DT֏#1u,#5&_d"o9F`3("uE$*UK )ȇ֚u8SDt "%ҍ;^MtAMK/! 螂E> pj ;#N:x_F`1AvQ8T:eEhUF{S &Cy|DwQz590ˉr 7sjáD(_4CU/?&O 22 #_cETu0/0#0 'U2+CBZ"noDcQE}L17 #@4&=Qbį~DZG7%a/0 FYoHf*iL(88vD<ߏG W\*.p1 "cgΆW%P#iDT&$nx"7FE1~[^dҟU<0D=|DT: Xō`F889љ 6mNF%jW$ȝVx,rHDh#hBכף _N(5T&K 4P,z<ߟBP# O$:FgF0F`Dv@%PJ1ޫ*G&^g~bMQjSSEfslG{P]'r]u]%Vh׵uP)N4 @V`AdۆRĞ{.|0#c8)VZ`@5Y +$!1S0<ⱕRla^=1*kwn99PNTT..g\+/A@ԚB)##p dp8RDR[O j !7n4 8xLococ84O|8cǜs>K[2urx4 *l.r1#0UHJe[D&~t!>4.bElց93O )pI?y5}7POoCrF1ZAt8$~XA2U> `8sJF!pj#ZzZ?Z%פ$WARv2G޼Dze.SlDHY V 0ju+^dX#gm@ ADᲰ봍;fF`9""5E=QEEkј>p-u-Eɀq >SMY]Mݥz[-I[iZ!LՕ5%edp)ErɃ vK8Tvpǀ`;Exȟ$2A9fQB-d Gyl(!|#$x.\I/$eS#E }~PC[ RKb95+#0# pYr@{{ <цLk ǃI&ܼ{ fCMX3(sR}pR2e3w!ช.p*b0,9{|#1N1B a!*HV^إfbPuR|Jy`]EI^9}KK6Zj-J]xaa^1 n#0@D>JNvV r'XTQE~OnCqZ+T=TO #>#ǀA4^A?QheWPʇ`N0Ry mJD:Ut5H9$4:A(~n8/dms|erND?!RPcLD-ׇ!PͿfҎ=qut$Xux_+F1!'OǀG} w  ȝ΀b.ӮH8t #0#pv D:;*.=H~L@ w(b{~q} nxw7Fg#*/ӗ--A8͏̏p) dpFT_|k:hE8a$JRaGn|,Wѩ([DH{ D8 +ƉqE"|?ݯE=#e`.tTN~Et3#0giQa6>x rw yy'Z+ua'=py9/hNLpfe[BS(EƃAZK! Ob="Cjٜ#0,9{|#1t8o%u ޙKOZnŢOLPp] i) & -}>ܧἥ-"ʴ4fF`N#4 QsqɯyvF|yo6ZS1FU*^w}]zǀzPͤ$[&/JFNjRiKK]9w% qq|U7ё9)Ds"Xl)[?_r.l~Hw}pO;%<&ʣz|*kjϯЄè9DŽ^d/<]DO(T2E!EbQ+J.}CI.%O$HA?'!:1c1 Ʋqqc}ccW |7F`F߁@)E]Z`>k (uM9z֦: |x䵇w5+Lș}\@;|0(bD-,c;@Lw܌*N]\XmsHZF`0#H)d`Vkfga85Ѕ (YŢP'bn:>Iwۅq*i4((IBH tQ:[#F`33)\i-u@$]wJm%uppop'MVE:H7H傕)Y_iP`h`(J\nnK8n|Z"'||맙>ӇuͺarxWˇ/a=J`ɵyk"QVj\ \8B`f'3^xE*R0bϵ YP#GP8 xJHB=gc<W<qT.Kܶh +GT Z'Sw)'nWb __Xn,!?u:ݗÐ(dp7taS+h)8}ā@,MES,_&^I[- •Ma4D{rPPOz3pqh`pcF8G{ADm:iGZeM;hQ 7PlLBt&ӋWUrHZÈ/qjڜ#0,9{|#1*vGW!+*O5p+bH'#0)缔{aaꜽ%Q5gb^QE!~;B ωKhjV/HZp(0#Gj-NU}%!pǡ1E"Ec{adtu%(evb_6t9x}0Dž 0Rifu:N\,a50o2|"'BC;C!pZ8 '//1A< `P%' rW| tE$jڢ6W<"U"R@%A5oj!XTX@䴊`aTpD9%~# oz w~T~p_Y =H"`ymhn*"xRq'8176 KFܧ=Om!O8[B"׳gqVp<<;솁@?O/#EJL SS4>"0כQfer֯@$ F`F8p +DR^:PPP lw2z]nV9&ClXP1x%`Zx=åQeVj(C|_@@i)DծD3cFE[0lT򣵟,@qyrL QoZX`>84cIZGJ<-+"Pw—NɧgH?DDX|Hdb^#%;q&y$t,L|lj6EDٴpp/(g**ayQb"$iCe7Sq2sf̕)RH:eWo)fβ3;HN d"KRp.md&h@ Ap+ĵZhC4Wt^^<ͣyC6O}l> U#oM8 ڲ6xy@6Wz:} "z.?I/Թv8΄P;I;-Vq+{3MW?ߍHT nZ+bL_ >ZL[~[A@LBP6H>]fDxc{%Q;[SX3 /[&`9^){ H-w'G$ҏ x?*j 8,T2%L5 ů\)/c u3–[9;܃ﶿjy#0#@mnu ϻs04J+=*nYGeN iLp8w^d T)[ҩk"k!e;G,A0;`P&&jr$#"63@DTת ,ڡzlKfB Ƚ ~Z:$n"@]ͩkFk8oH\&2q/eݢ??0#0X/: e1X<#0+ZDH3DԤOBYE 4bC+b=ڎwRۑ(>)EqLp8v3N_IIY<9FD)Q@ D21|d+!!w*,ݠ!Cĩ*n#0#/E`)-(Vk[auu]D!ؘeg&Pѵk6r>[Cp` R( f^ ɈRh.pOSpwDAOAh6g09;/` vR/NW/ӅzҠV$!.t55KĀ7 ȝO {߄]ɫ';Uڰt )k!jX9HLoJT5^f@F`F\@1`_6BdS򍊦/NM99F,e;F`FC`'e)FBf3ҕ"**#!,‡Z+DMY7c0 #<\)|}x:%PW0(Ռ*J3@w4K;P.a%53F`cGP錏OA@^TlZD/8.ǚa2>U ^~͑c!JTb]Ԟ=Y} "%E>qy n#0#0#0#0NF"g)؂Zn/!RPy4%Bx Ƿ PBPs<ۡA ڵ.~i?[,̀ (w^e2G y+=_mdۇ Hפ`/\`oiq?a_Z3 1yAW@vʶS`؇2` X,ˀe2` X,1C?l*\g)5%;:W5g}!~⇺vd2UmM010(+q:z/m@2` X,aPC^ n]HN@"S>NsM}ѭfwlnØJ~6;wS@fSz~M3aΈ;,ˀe2` X,ˀe2` G2lWۀҫ:Lz=,k(Rf}[c Yad jؤұL%2$u~(2`( ;-0! ?DM={J*3M9>хn>5\X%`̡c c^2g%ʑb^үȄQt;$@s`e1̅޼})p1hEGnW}% zH @/*"zP T%EEq%p@ =!oAܜ['׀uW+ XK]_M}6 e|_sX1l=;kܹΩΩ2דi}6oT|.zY5w>ߤ/n;A@7/,ǀ 8n ˀe`/1w=vjwZ^Bj9Ffs?JRuUHotA6edۋvN & MWbs* l 왁dW$U SȚ/UG @s _ìoyOaeu<(}>B5.]KE۫J귁è?ңv=NA$ 50[@Pq9cǀqoW]..Wl:2J M1lnr1_J \  4`-ˀe2` X,ŐqI^j+!Ǣj Z#Gp Ї+&? j#lvg k O3}/5K+.R^ 2x}>S7z2| ^'zF~"|Coн|/@\~Nun~ 3,f@},D^2(@` n>b 2qt)p*tuUQO{z&dʦ?SK f@zSHۖg`7޵ op)EBˀe2ˀe2`{蔣\~ֵƪ:ZQJG⅋ ViyyeW:~{vL7N^'s /қe2߆"s HLGxC#t!N8l > Z04$ۃ7vK8wST5^]vҝԍ@ L@g""].+ W:WIԟO8Q/t HQOӝwWp*^cH£fT_ @P]|xݎ{clC] -Gy{WH*ӑ*>b X,ˀe2P@öc^ F>p$A7`,hfu,,QUX+1cHxy V!oux ЇM SB-F-+xvg b8Lz pޡVea/T \O=|#`=XaPQ {L~Kmʈ|݁z\pa!u6_8 exX?,UׁkR_H&vP+`.{@A8=(@ 8@0D]f` R!P>> Fr|r1dDZd0A0EX,ˀe2`  rxM^.VHx hUNd27j7v8//:@FhzVuF1 )\F{Fs|6E0t0| 2),2_  @.C~\^]tDsKoe7lZOw<63^!f *0SȰq=tDׅyr~o `_~/Gf=[ X,Őp1f{ɖˀea _ _K_ll٫ $:VU] jijǦƘ Wc=$>A"G)F18[,u@}QL5`bTtm'FbF}8;`Ź` P=z#qą c3l.@IzQeoKldp|>z%0II@ <HR_oA2)ST

?#N96| z q\2O`)r)X)V!)"KI8@s'Y[iFBiWNO꯰~ޝ@&+sqWd>Kΐ!sڀͿhgdP OF@Z@&4peWst[PwYEߓbJ=-Cc̃nL5SO.=8!s^rI: ck>emf]@CwNI$}rr0Xs\ dUA-@ 2L !:E 8?@`e2` X,_a@(BE 22{3^&Qg#؏Z_gg ƣW։)n#+uAKd#PO/"3=(/|;zwK?0(A dpz7W{ѷ zP&^h xu@ï^$uXk,#("J<:q;LF./OL*< !hzEM>+<'z+ @4dC)9:O`sp :Kb /wLiQ: F~N1)#@|+b :^agayP3$ˀe2`D52` X?@ F.~e ѵ* MDz/VgŮW%%#n?]mQWoq6}oҌ`\a 1b2o`6 9 wb[= ZͿ=ЭaMK6nnttTgWK@J`UVM5 5V?%=ϩl񷋮+R%sT|xb0siJ_I@2h‘CӓNH$l X,Śpz{ˀeĕ+Ejl)*D $R,e62Ob_y') w6'?翘h^YБH2S +; q%i%  <3EA9sr0hȩ{#˟eD*2܉ @Pv߰##`+u&b<~H3292P_q]Z ܑ<2I}<ɀR,H0dH&7Y!,̀ }^*ЋbDMAd.XԧHBϼ)!0ˀe2` X,5_wȜTDh2^V -8 @suT0}V tGv* aN(ѠǑ)p<<݋}a1xiw.Y%ݐѵk>z}AZAZE܏`%+TbG?pئK_X!,'CO?A.%c_oy+\8Л~9/f pK]/KRC$1ŢFB }"G|fzڼh6ͬ! m|Ne?ۃ W^K+,@e[o/2`מ; K+ 0pq*nus4ܬMc-SZ֬͜덐 `D˥lx-HpF $Ee)Z#-6Cfcflt„̽`~u 1w$K/˾,*@F0]R ` PA{#شX PaV ;F{o𠼙#R L^W}4~"8bG1 w@^i`~sCP0L5ꦺi-1lrnmpa4C4<q ;ˍ`J >b X,ˀe`d A䥪<t@JzP=9s"`Mw! YЇ)ȍ.= S_$%`)ns^%w[#ٵ-0SZ LYr9@/VIЧ_ x"lyσN!K@cEnȸ!ٔMPy 'H6) !% E_(@jgd\z.S>=P{}b. 2Lt".fK+{؝N$o X,\X,'E{뒜Z ]W[qf0dbUVaW/Pr,p ߟ]DzuAvN"B#[/ *dtx>}Y}!b-!Og?]rG@Zl,ӥ*e(mdqm!\ء$S#S-H0 ) y_y,! Jɾ2` [tie2` 7)"\1c.r+QIƼI׸sutTvanե;`8N܏8 bݙ $1XaА1 X0\ExWdDe{PRp~88T6s/LVm"ltBJޜ$=:tEڲ2u)ܮm2.\Ao ؝ :Gf.@p=*s&/I^2 ƕa3b t.SJ@WX,ˀe2`c|c`5X݊LEԐ1D~_}tzQ&-[zq~~A-8h瀅l@{pj-uT]I=A.@~TK}"t-ДzZߣ??TPd+p^ 1ǤN@327wMB.Rig %Df iDZa?g  Aߣr_q 眃20?j{l{yzL(d ￷Vlw%+6' ˀe2Iˀe2`e7^Eƀ(DQɦܐeֻ7q$u";+ijAcU[ԹMJFv8- c4 T)#jq>2egC7p #ZWc]̪֝U]6@YΧ9<0L4 Ƹm9P ΁A|" ?*#+*ZZWLua;mz`\ hԚk{Cgv&8vJ,,d!!@ =-ˀe2` X|dJfYMPy>~XlȈ[iK-YSM6ީx`7OϚFymPh6@vlk8f32зhȀ8汾u`-2D]L@aOOA zsmMn}u''goP̄C~jd&( J"[Lv(c:SW"DIҸ{S/S}naRbRU||<,0.s#؟| WȠ2,2` X,@/.Jv8Ry!z6; pR@okJ= lcǨM 84㬤G/h<Y? FR#eiȠ0϶ћl9piu` ):ЏA䃂_i## ^G0Գ!C<Fo44L@ssCh Ǒ%>y^G-E@_ lh:D ^Gg%O3x)Eeʨ'ԅ|70J">nw%A?KIb X,0 de2` 쁁 { 'a](H8"\7UU]}' ̅]P'#PPzA"+;82@X:2ˆf>3B錬3=Ag@J瀀odnsM=Y@=0P2ރ̕ۊ2E HFkyI 诠:nɾ%^v9ɹedL`@Qq|^pRpJؿ 4ߞR^UD8}N>T&sbz`QdP&c3'a?2GÝo7ޗ,π޶X,3 ?EXIK]ѫ*ϕSZҦUѱ?-K7sU;30q7Lp; ",",qgx#hK2r zTl CI(OkP)F|PAgG'E2pks%0 q0 r`Ĵ7Ÿ:S@1 5{+AG3ަ#Y6 I+# bAPF$HhfHCq/+O@!2 Sȣ uӲ@}2%D!Eߋ,|}POA 7?VE'+V,edv١ȭN2r ,@,2` X,}@0UiU = \ZtJl#}_*M ]:eEW0Aز pW 96 #srr1ج+XW~0?~΋`#= ^c2<åyYXK`7Iqا)).$P"|J N&ig&Q?e~ #k@)(gg` l I _ xNd-vEuSj \Ȩm9s] A`|b2` X,c =RaC6㠌X)@&ug 5Z}7߸tp;zqX.x˹܈ E^r~ǀOOš+ oߊ Xb>$3@ 6&PzvnGp8ĪҖ}@ 2&)Q(if"%3 k[}Gϊ[x/ZUz3^f{T9m+y)i-=PT%qw]KEq i[,ˀ`ۀe2`3~P}ڄ=nCD*6XVms9[%*?tfaRVSO2dZ܇gSLA f mɆ-  j֙C@S @G 6R5YИrxO;p&P BIZ?;NMAZf61}j'kKdݔDV3-Jff10HS1~I|8Ө zVμYӏD5044dN֤3*~L{c86eިԵ+Û_S2DFT'~0G$lL3I!'0*>H*sV f?M0; ܽ$T`wp^[7?ɻynR4HOp* 6lo{Uf|Y% ="[,ˀe2`؍w2p7!.I0JxXI_.]aHdOE+@A`57~L^Y4іNƹoY WU8Al^avC|V{^}ۛ2f'w3sK}'{JLeM+}>B7ӭ/L(z~9/#Zw&z<$@9(~@y::D>%%v1jjZ.2Sƕ5 u &ΜK:Xw<1hU :AdZ $ATKz('52X9UH wlֳ۾&cۂ/}XyQ(?o*ɕ17FN,!u ?aXgk玣9o!9Ч l,Ipds0BBN/ ^ '~s wz:!ފg#rekXݍl9ļ}+vs14繍}m]8; osŒJ:g ٭e vL%8 }he2` X-B%'}6AyHFAZ pk=wmAi6U1U\>|(כ!Z|U,'R$7|y}Gfg$Q8ܳuې⻉ ݁#ު/p*4WaL⤨oEןLUzh9}LW_z)W)E{S+l浳 0kf8_1e\CTV8ㇸ)?叚 ?Z)#qK4_C_궠.g;AM e7eݴu&3K"K הvͨPs爟K;|xsQGd-,Cl<{Hsψdjt՛H/#V lK1+b LHɗ|ie2`( O-ˀe2 HMJCRUaK20l䲁t]СÛUn䚨y"gy#N1I :C|A[Σ2#&rr6["9 AC!x`)J˹.Kqg垕3.W_]@=vi3wr*lxvR_@]FaV8bX7=bi>A.2+js<I/$HOYR/lU2Y^[nXmK8\pfB*ɸ;=-l7|f2dt{gSFOW~J'kib qudP_Iר0B'(m!"3_ AHn b:9gȬqFbWRi ʍ㷄֦+B֌ i~va^#*)xJlIAz繒b}Bݫ_M%u=?G&຿_#?0E9?'HJ$p;RJ9QKt,w1A$d=An;(6}vvO 6MruNmy\L_RsFJ;VzY O7dך$_VWNzyRxouTA|2g9, }$K10Fh% HO,7 / -LSO>"=JpK 94f[-l5ȶ3 ȓ({p_gꕵ2` {ˀe2`oReHQ.Wwb+ 5Ín2ڠ6kHrN~6Ãs8gĘ~٤HN;~307\&* Xˍ-e -pW"+ .uA=5?UЦo}p%z`7x|ܯH̰Hl>tcݞfu=ʸ "a;}XZ~p Qu˴±?Ԅq,U CUԎO^ﴑ]Fҟ+U:d~U+v"+cH,ۿXݴKq1nA+3,c/W1G8x'xز-!;A]KN=,n!Oymm 7Ĝ@6bչn==jlwLG}Ȼ z؄!7MXknլy}v_F2u:809DH8;Ouh_z.*)1{y#oO.(IJeoeK[\JJz@xAl P}ݑ:u}Nw~ X,2ek !!KzP9h%@߈1+,J}6@i=zL¡3ɠ z@w{̀3ted\O fuOcp5XK&8kzs rY#GMsAƩgNY4s )?0iZFj&[ҎNf 3z%f^!;rPs22R}ACkNozk!I' @UΛLM!֤~+C_g>rV!}̠[:ԩ<\c^ gpTn~<swg(65v%L~۠JhCKZ^qEM(5}nsn7ֿ?Z!~(dS 9]8nuj9=Hd"`x 9 ~{๊LL-ņE \l;-%3%37<$(} Xd,e HX̤fN6'^s<̩P_~ڎ]Eo %j)}\e-{Tn2r̰w\VSǰ+-v]ر>֗Xl X,a6[,ˀe` Koa:QҊc@Lh4kO*3NڔtE*'oׅ^QE7!sf,.+ew^qӃ~L@6G=܉x-[pJ+Y]P~ꀃ z rKǭJ˙n,Ch߿^r.C$)[c-Rye~l^_TZSCJ zU'TrP'[ޣl5X]݋lH3y}ݷ$@Wuoݜ/C=[z=zԏW=ymts%\C{TL蹞;U]) 6! L^T-ͩ<UuwvU-xjh~vIϟ2xRudj R5i%^`o~OȮ0D]?/!㄰-@e"キWn !Z\<ўsGK aKrB~\ sF 5)LiЏZ!:fntyK?p^LVSVq&' 0#%9<7kΓ, ۗfcưT9vw h$pJCڗX}&#ͧfk"7%ӖhT+Q+-;PjW\cqJsݙ'/Ze%yM} M^qy&fIM}M]dQ?g^R.U+  CdzC=HBx h8E@uЗg 9MƠGSx0,?̗In_K Zo;jMiY0.쒿vzv-z9}MOlǗԚmX1WܻX2J}$7aqP/3tiC1V}g\Ю -2uy~xL{2C2ɬITZ5ϩƸ" /n0o~ X,=3/>[pȃX@?efHԂd]=BAq(Fokqd(}h[Խ\cUz*GbQ/ECjLQdJ a}3ŕޜcp^vn3hdtT)-(K}J 7GJW3& CI #I+Uo\3g ➪= NVluJ)z˖>_.Ӣu|#sl:On|Ub[YMj^v{N5Ko{dom?lqlwI^sJmښL9&,5Nx'qGW4 3}&1ԇau ;?^ JRNMMq[t)9Nݘ1[<{ 4>4>Hg \6 Ybe2` X=AJUs~H#`36<% nD<^](rQj=W>{KDÅHч!s|c=)၉ys_W/gs?g&zzx KmF_?r7R0դ_GiMYkj,*J=~d̪x z&UXʧ_a gֽb>˷V /S_8f2*>b1(pį~)!4X79[io.,׋ץ>3_P9Y[*gzs?]*zZ2V)>O,DE_ #cXfnPg|"]rea?3W/Jw#9X>wEʦI4Pc{"֖]EhKs96sfopTm  Ӽ?վ #V}]_2kI[?Eo,p6Y_s}C!ơϨsxs;N$O]'ޯJ`_)ńq/q~])щuj{_$?@t[q|6^ Oҝ FttPIۄT-ĥWb 9GXq!#%gJK ٨m8iqS kfc(zTeIrn)~OL]AfVq81<]`dz~+>P%0b /#P[RAQW'+$]TI5?d0TtL4u(l~N4C /O[̯fO|koej˷.Y/:)zltwjZ1hbȌp^癕|sa FuOxm0n,8du9p8#dv ">::t:ˠ.z }P*pmԊ|:=Rp?(B d/iԵGAV*Ou=]QFs&u EO7 }fa_~5,,H u)/[({/oH M4\󈗱 mԻ*(H{|Oi']:n/D RgWx<D'վ}b+Iӿ,Ky/LQ ˸Hȸ# 6}^3cR4$/ւL_ A[dx=8UըBm4u׵,GVՑvjH}i&!s\dicڰ _"#&V}`:d^,ҧK2MJkH]K'r/Ra?[,b-ˀe2pIx2aDf? wT[Sp_"iߤLX%g2I }:-<3E ?sXEUatMmIfq`a/_!~1\` :!mܿ;v 8'Sy.?SX)k>c?D~erĠq\:ULF(SFOn嚣c Fkcثj]嶺OyхԱaaG߱ r`nEȈ!=Lw#>SKȃ<|~0sRW6j rƙkSj32 @IDAT)kjόY2|?y5 Ѥ)c Ol|V--%`%{˨1dګ~~Ԩl^Gv^spNtsfON l:9/Uk}U[R2*Ug\ ֢Fvx>7߄A:{$f/%)KG|p,uGG@kR?K5Jo>RϸO{Tꎠ{?pazγt²g }>Yl/M/=>Ԓܣoлu7W9xj"頻RG{0[q8š/ǟpB81noq3>yRDJ{|<"ϩy"~SfeXE"L:<R7RHO򫈴-ˀe@6Y,v7armG\-jS%1y'Ki6^ǚ.0G-oόZ2bS ?Aڤ} {" 9&;6:7C-ʮ),Zb4)3 +rțE4gƄP&fQ:3"z9f4 XN½=] ):y+VVRf1AyQLt1(N} FЇ23LSߘ(*^FuR^n`(61H;QtT!~~?*|OQK"U$;>W_=s{=aKL?s nxn˾7w x'90 |W<`.eJx.BBY߭F$7?%ȣvKtwfLm  SFVO'q8:%}X6 Χw~\F8̤AĠ"7s[2` X,{uTU͟%G{ASګ C%y}<x0" |ot)g Gʶ)*Ll_RWkšD1^u_tS ?şF7A %􈙁!/coahݶVre -Nl_Go? ı c8/s~3 J:^/x~:q ת4]UosW*lvI|q@Dؿ0P wgYeV˒N~cAVRJL'ŷ[M5+srUĸo_tRsJ-k)ms '`IM7nH3ؼ gHZ;Ł'T=4HxcQ!kq,@CxO3P܄]4aT"A+_{'36f6k6L_{ ûi@j Η= Ї8^t Fjqbr99;l: x;@o$`4HՒ b2b2yód9;H"v|׎ O~6Y,?.pC>v[Bx 0ܗ/i_1}_YreqLb8<71R* G)o|@m4w^ yK8{x&./6gn >Gwzl: ]REiy4ŕVX,#p?ˀe0:|/Gsn֊ƀ #.b1T{^fc8ZGR}| Ὦ_~[8fT1 &3L08{Gu8r*oQ^hoY"% y39仃\ kn4(:cWz" doI8坯&7AQ^Tn>bbǰ?b 7(VRss-%n4ۍbuH~97kgV9/JU=?_5r=BGz|;o5+6(6OZ5f~.Ng֖f;h 'OQ~EpU( 29J,GEVF%&q< <Aޫh20뮠  (Qqe=@wBnO>དྷT"WP %?7Ɵ"u6 UGz<l X,a'Czўb Ѯ ?oAg4򒋒 F{ҷR]N?sn?g+g)iGJ]1v]23J}!?nC?RSX?ToJJu~Tnӿ=f^-#qP-QܔYӽ앲B~AݥӒnuKMBziH{72#^ًJ3^2 qVzU/?9__wᮟ[S#ypY?y8qƙUӧ$5V/o3ɄךY<3Ae޳G z ǁGJ@LbDƬkE7 {+OC3.0RyDau0>x_OcW! =7qQA>,ˀea0R;f X(b4kDJ+44l2|1C]G|¨[;oꏢKP(5mb[b_)rTB@f\H7iF8!sɋ䮅HsLަੈ.y܀£?#@ s*y12d)Ѽej ?6(RNKޜoӿ8:\WuXݵzgU;6ŧ~w0w0.uV190 #9C5b|F»E7>I .vkU,= '%c0oLۚVd695Lhό6?cq=@T<\:s¹Ne_h"Ǜ\p1?2h%c? l?fGCY3 WkC<B$IW~ЙȝzFO5 a|*neRNa>voPo't (kR֤Z(8& ݝ\~(U,% R2ÄWUd X,/ԾUST xnЕvbnܒqtϛ5M08+@g~8x`w%i'CA),BE eQMّlͯk|˪J{_:iv=5pzຫY['jD> u .'g[S43|>_FHEず. n#KVŒ w,,5b')S^ܦC.tUurbV]}쎖7O+z3 %Kǚ_xs$UEE*޿> LS@?ՙF0zՌ~Dʴ5M{`EXꛮ=Ɂ"W4U^ߓl: ͛]랓Kˀu8rスrˀe?3C&K8ge7274v}y-R[辁cPd-_bs3D<["!̅'YMXU GVry!l2)}帗c1%3A=V 93p ]YJ`Z VHL*?XӫuJ5 bo|vu`@7eu(,b0 )? O H T;͓C rP0 P yU2mUnf\j:(7iLohLBdhQJ-yeǟZ#{zqCD JGdOCǤc8P{y-\ K<gyq!\nOpS 6WR #l,:0=&7=.u@&2؂Y,#!VQuC&\T;-^=(A\O?n6[eZ h;(;]2[@6qFb4TZ$RazWkN͛bj2Wqv\մQwh4Yh9x_+̪H?Hɋ#uFda s,?wC8E@DQm= }!35vu9C˪u7(1Nd 8Pzo7eI^a8rA ү6VDcHM݉:pKᗸmLeSe4Dq2nćEd* 2tx)<+k"0Jˀe2p3u`2` \fEDẀ8wF_-_5.&6>1&*::rPfnp~(pa@469l3DPw#/3yL ZWEE>G%?F.w_ ^ﯹ_ןv:& nau0㭺b×T#fa6ΌCb$8 MK8!=C햵KQzB0P8^ >}/BEs;"-ߙYAJ圐Hpޫ%"?5,Z o>{go{u WEi{x˓/co[S36Ne&>Ǣ~~fAJ]*H]2f5_ "+˾/g2 ]bP%4Ih= |µUQN{(|2` X ^N' 1إ Ρ+rr5[؍i& ƋʀG Azr )8>qC>U~[vQmƕ'H(ZX:.okS|$ʌ̼?mRufH;fogyIqc =^>X^서z12.9 ;0Jwz~]sT1ZJjZd_\H>5EkƝ,E91xO *zߜ(wBЎRyۿ[ӌ28z4_$$\YH1dE}@VuLQq;Qt܍T+Ehe2` =,ˀe/p|/Y{MgsûaPIF\ߣmԸ) MVUo$f0*l_q5WKOW/%uȜc2gq R/%8<*kP% @nh 4`+ ֢P.gO}տ2c'uC| D( v+GOרO]c? :i #f'AEd@ 2M&TFRll ]j0PF(kߞ5x֩6-5FkB(fU]S VOٰWZo{t 况yٳrN#S’ ?a@s3b.c/J6G)e^fӀ8U\OfaJv_c=*tddDR5yj[Sw͢>tRxpCMadbO9_Ctn'~' f?X**a&\gflB=o?:o1 ד8Ћ3g㺪3[C}?/@OB SOj&mS~??m/޼$[ MQuPI~iJ{# @]!'~iC HΦπ)IG+gEk X,Qˀe2`K<E|+^2ѦÀ܇߇NX5|L=jGBIUu̴w'o(4]{6$I;\M }^2@XN;cs/w tEhsOg a06 fI3Q@=Ezݜ fiO ĠcCsؗɟ0?y+(Q<R 7׽_5nlK+^׿D~-3(MUWPe_;ko/l ll63lJyWpNeȡRx(U= +pk%!`zcLwr{0ҫhe2` Mļo? 3vC+Eqm8#EbH+*p3Ǔu箁JWLfY k& bߍDc8!-(+{&ߵkVIMapmք\C _ |(CjO>?  }؞?0 Ks(n2.ӹ}gQMX:++Kr^Kz41*Ġ{4FOzXI?_` ~4E?;<%. =.>,;Cǩ2oLljVZ*ydF4)ՐAAUvB&dd@ {_H!"p2`  H&ˀe2`3֮\t0iӁe@8Il3 mbTQMɭTz􄨔u^Bܧf RS!y C/\ ĀͬYE ե,[_.GZkȵkc>a$W\e3w ̮?(BxQUfaoiJ-v<?^WLJD1Sj1ތ7]) 3Y1ڢ gcw Ȍ{KLV_Wy@{yJ41X?o}Ėc'2s/ary8t?-1(t%[DD QNއ C| p΢lɏA'!`Q*D7ǭYJn _*LxEcVV(ۖ-`;2vd x&Fwjz}=9kFVYES$фM6Y, x~]E /׃[hG_Ok_ھd9*~YQfQf7EߠiZִt=8,E'qF*r@`&a&ŲpЩhg3}q4Hұy,ߴz۔j5Yװ*qQvIr'2 }[ҞX|"|F ?0+qAxrQsSd嬴 ptޡq)o:94iQ2wuKdYk?عЏ5UC)fڦ使D]b嬋@g"ĥť_C}l%@^ Z2fm2- HB;BCehݔ!?֯j;da0#.,aR6\BEͷslWZa XXDehe2` `dv4*'a"0QyCTkwm&(~UL}e~:iPBVT9q,2ZQ:\O%jBQZ,BAro3'҅Գ*^ "~f]{A8mw=& 11E0貁k8~=-6^Cef2P.7i>jz&)ų@UED?6 y[:u,@ѬG#-<p F*l zlЋ|.QPKz) u>V78$$( ESԌ{CIYvBaf@< PN{ a@\6 h`JSE =7PHRB vg`.G|Ƽ{Q"{M{?xH'wF(.k z'@?Up=0X!NR/ !G(vh6Y,C_EDB*(X/Mǝ8|z۟ݐ!ݭ3R\4YIJrod{!L5f:{+FMOܪۗ驦O68 ׹)/}H:xt=U݈l;hS] H2N柉@~%+ion>~ZYfiҭ{JKJAJ&xr$S݀b̽1F3 pHoYUħN 1ilX]Ie`=.dRI9b֯8iU?NG)*tJZcs;&sD0f$bd X,€tl X,?3 +:zxd]햃׌afm'\WTƾ3r:70~B}*Yy6D}Կ[Xm`-`3:y=@Yh /e./{:Ԃr蹴ݫ\ԗv{(uAs?9rglIhJuûu!5{&_vRlVP MmC)`dQ4~om`89) f@/KnZ,W[qXْ6Q?,xh665gЗM+tRT‘ׁ/>N8~p5Nϰ_uP:VhÃQ{8N'SȄ$!i/T>]L+Ccg8a`]*&G4z!g)IEne2` .},_3lg_?ߐ^gdAaH|ZBṢz7ZQ#L|}o2Cj̤aPv`$t/7w FuBl"s8\`,s`{㎐$6.삓'l%bN o@!~;х VU:FG83EgwN:`WMZ{O%kjUǡݜv^?Z*YF&/8|D(/\YGpQOM=܍ǜЯTVw&+woSJ-y7;vیz<:%+]W֢տC/+A3?Mp\ ?8Mễ}ZBx'uh&N{zbY7 A39XwF+l X,'ceoq)sCR+v ] .7`/>gO'*\zx L^z' L_0 }]tGL*WaJzYz16_R|P<9?~{H4h߮7][ 蓣/ "b߭QQY ?FJ`71VT$ ?F[2ǚf1uq\ ;P17e%db(;WVT4^?`)V'rxqaFA܉'QPUc/D}sR+zdbB>ǜi|o% JPy<j~I_W=i֝Mv+գ}Vɳzw.76?+GqTkB̐"d>ZrGpy"&e KoP \wMT ^` 4,WBK,lPo <*v><>d X)~gOTN q-P`5TlWs;&옰}S+qhRҤx77UȕCpRd U8>%rUZ P(4o-d9 'CP@XLFPh@ǁW8(%3ıL*~ XTS-f7]J,dRr,Υ~l/3s݅_6p(#)Zs}wФ,7 A58osYF yjMqw1nUe k~F+.vWSzaO]B;qe#!x2Y 8#H[ HIiDy'kXe|nY^/JmZ,U~)uj?@IDATcM_Oq(H#Zn/HnN7W}c:& ߗf30鍃h H;I/ۄ*S/}w 9Zz“8sf_!kj,,Yrj&Pl: xVugEɞ2`  H&ˀe2`3Ϣ{/LNZ,8QtJjP!`?21*z6WdF}>jg\_l>pL8ܸj*R/S=*ۉA~KuưRQI{ <2xN=l.2_Ne K:?8e qm*celfGAy.23g7l(Dl^o@>S#WW{F1uW肉Jm|wڦaJؕ+0$VK=M6Ѧ6r3SPd1 ->*!_Q䉉VFaתKgY>cjޜ)ӣw!қ6Gs_{1c@m-=0zq3]W h?Pg"E.Ƃj ?[rԃ)̇O?V )6Y,jsZ n@2S֞/Qߝsf W$R? p ]N~k > ꃆ%^zqP@&:?ƨwú3ɉp/d:㚵xW`sՏ|C1/0;.4?> ϥ/`J{iv2 12:m$EJ;I>H{2k8$o 2vǥy'GI qY0BbAƐ5 R%~8P`ikI(_wXW \37 )CB!M/jR^)72(񷶖0D86ׯVMu ܿNz il:x "eI8+ X,G< 툿Iˀe0 `CKf~ Uo(H5Vmo6S0Ӈ Koe@Uǩi!Z+Mue;.׷Y_n{2;#oa:ٟUEk*J! 0=~@3E}ǭqC<u5 f9q0?Ca734&yV֢ ?kf{01]7]̔V Y_g Ӓ*_]ZO9Tu7e`,HfnT`J0j9Jum?Cx/j.z𗉳G)u62S^(R}7_ŷwǝй[]PKb3:PfM?b`~Jh~}*zeixEQ2))x3 x6"~2l X*o :ӟ=Ap?,:Cu[xO=ӑUk`u/M=ϣ."zҝEn^C_du GC-8ܚ~k~Ƿz*f^-fwMo#X㬆-3ڰAz J8'wQ;G,eOT{&01T zٍ+RwA@q#3>YQ84-2u d骈1ˋ_~_拜|_~_b.GfgKE7֓bRシ\$.)JvOF璼%y{{;sK/h$Eܒ|my߾R8Oi{?37GD=zw%ů+ WԪ|ܾKφ_@`H%71cDpjx_㞍{6>А C пey9" Pۈ/WW޽[,1)zT[D@'TSkQNes9iIԧtω"lHpx +m}ji{=%= I$ Mˀe20 Mˀe2gP;KQtvF5gB&ӭ|dߧֹQOcЫn|zzGT46WD=$VXkYl{qפ4M;WQ3=IM~!B ̜ɓH+,y31|n>/Q*C}d/2zCg%(RD/ PsCX+ٿx32Pb (|> {TՉ֬_tRu5h՞5EVA _[WOkq!~<u\7_¦*qɀuz䫪VF'n̩OM{U}=k>ŕ ^:hޣFzx)}JDvP8$+g {Г?tG઩L&h%ʛ=R @.3e } S~mlGF}}A?/kQ[L`e2`Qpm̙;N 肢 Pu yH}u.~ =S+C ILJܬ5v銈-35E-y)0o ҋOL_X]ݤuO?yh JwImњtgⰘAb*<Ųa$/!bXAӥ ԙP?Cr>npPMqO}J}Tsd[ @t#8aX5@zxF-GwB=ǂvH{ܖ8~͐z9^#+GDj&a+-O5W+=Jn 丞Lpǻ9<:Gq}v+r󎁉r18ίシP!GO"{?~ٺwRJ2io>+/G R?:^xyq3spAº[9rL)y_[CWj=~t56Yy6^S!wSx'slȀ3c2^ iHqw. '7yߊ: c(=q{{:;YP J'uһS=<+J+^5cb@#^,odE*I7H2` XPd X,OGQ|Z2dP+g5|йG /j7U nAhRfUO"F}|`>.j]?>AM;P OP KS\'@E #` 2O{T_z& l+^InKHٖ9-s/E DQ'`Jt{I(/q/KFݾc++UK`:ҮUmAy f݅r RI(t6?!>nښgB=}ϣљQ*#1istζZvwk?+?=L=>vJglu/_^|7E"'>PΝA ?~~+?+RWg٠& TE)l9-CH hO?OpqY R n~1wnH/Q##{n RҾpzΨg}9%p f`{fc-_gfϯbe:p\=|Gphǿœ"m0y/$30^*"ŢͿE )yofk'JM;w2pOCjyaC-Ъcul pz!wSKht%EP`o:&~O{a\ڧpS-u^/AJ{ fD#$+Ք6Bs̯[Cv"uHؗ׌qO!#UrDw8HAt.:t$r49(5@?$;IM< 7r Ϡ/yI3лe#{DJ"F䓗¾.ws>ҕ"R[;S֥j;Vy=KZRܔV {C震F'K^9N^M~d@uѭpfܙ8"dȦ@U @Wd9@ɤI#pw1^F _*^ҽtW9^8]gNUԡ^N15F0)v1if)gqW#ȩFx-pMR}Rjfg`0äݏԧGuq77&ˀe2pD3`MGo \i0?2MFY _eR yqrT2?g~]n!6:6R 3J}>Gb2co֏%>ܲrh3G]W@!(ĥC 2ɻ{@(X]3" )(Rro8cU  ӌo(<} ,c+X1nmΌۊL[p+3Cc~ZB蜘kvQ@O{"}ZxG]OrL56Y gӅw|nd&Uz*yRN{uT*B8pjm<& VdRYwR_w2gl;o- ׂ@~_pܮI/gvҽR:T &r֎ySGB~0`W1gҌuq.? Fr(X_!8\8_TA&ˀef%' HYkseB'b?ԒnM><3of>ҎKP/ݫzQ_'?0$aar?AAC" h#GL!nY?%ٵ~N}4Z[S=|xJHXzI&|59YNUI]/5) ->c;0Ya8DdW#ηd6AJBork=í7Z8WF~=otbq_ ~u1J=T ,oߧ,! #+!ÙZJHt5^G pUrd9Of#($yf:KfOp #~)5Ww ?Q"C?"Jr;i]E~Teӹ>x 1v/%ybݼH5.vIߋ(GC6{Rf?s{<ÿޓ}81˛mۈ;ýWϷJԍ@Ě$w:+7_96~8E==VP/k +?@)[Q6l T_BUBԗ;MUKdǟ1Q8/stWj~Y꩟ LJ`AD^+wZq|5+SCL4usn˜Z3!"+Kˀu8rスrˀe?3Տ}>r3،EM1M  T&` ۊa vTF1Q }VIEѣc/TGwx_cAw=tSnNl>f^9J&-3ԍU;;[R~I% ` ǀr@`D2`8¨xAY.f x ȋLTYC=ד*@m>z㒕cEXZ:(Fg_%j\&CT#ʱ ia8 Ͷԗ;:bY!KBUi0@o͌p˷: ʫ7`|=i( 9ߡ׿nǥQ d埐PYJYz/Թ2y<'UoB'D V)u)퉬 Ң=,4c[@C]}2,XnM@@<r\h T0A !5FL~3Cy`Fkiz%c{~]\82oWblEaTI/%7hkr3#ԏ.QԷ1qG`)vhU t$UΩO1?Zm+} (Hذ )](**" ¶[&Of. ;d2ߙI99tCZϣSAW_-Tgf|̸bm1s}L= J3uzc~&H{dx{ H3ÿ 6}yx1:qgs.1 o+O)yx/9G';Yrl3d2@'ݷIt?z8VMg|[b-7Vg˪#/b#Ў> Q 9wLTnn1'=)GNN 9Nl;su}{۟}`wKҵd9#^wǼ݌6Gl|9q!&G|if!~-/c 3qU;U.7ʸ_ɸΎ"~<9qネQ.Wm80Pdq^#drkv!B`f09P9P~@q=Љ2v^$T{uz}oGK|;籯EvSD 鯪iX)χBb` H\oMZeYPhYb \tDI\[:Q2% &yL g ,%C=^5^fkQ l<@R~P"(Z38 8}jӿ5Fu:IrBTcqSfÒyrB/KU# ֢ϟ&"1G슨Qcr.T1t |(>KzѭC ҠaFh~zf2, 4v6H3ĭBju{XM^)gVhY3eoE Es#, z]&jj_~Cma@2!fd^R动J*3Z _ʋTʍX-b$;:~Җ^R?jCLނܕhw~KZy^kú#IB(RXɦAT<'P^^w~.)r"EmhލCtdG0)mps@=kr4_y{>N ~yTף^ {+,QEZTKVrrh:yUk7ye7 k >ocO#lՂ& vmzۈbq ~̷?f4bD+4(ky[l!Tyit?٩؍:>9Bznv`*#hmп@>/'y&yG *q?9Lq[JW>hP<XX|eJVyR7䘨އqYyyUBYb@+!1iS+[,U<c;֯BBe1R@54kqs:9ou ikb >yp^;0`0 \g=Àa0{/:A &3Hg[Jld{XeQ<]t )0иgjz^|JvuUSbGݒ/n`uɗH;1Gj}ť*șXjzz#O1|>6F-{;JKIu.v@!%kD68$b&|eaE덧 Z-/? ?spr-q5%$m20`o*H'*n\DNݜ` /tEK_~Č7'Cigsɓd"1U ;Pervn#bG@#nGl: O?)|] Ȱo=Z꒮դǒ*!&dŎ+zU]-*TT}(8B q@^QT&U!RO|_ MQ\G EK"3Z!i2R笣*~zʊwű~nbE/_}mU 쯟:(*ˆW<m N>ƅ!deڍK&cqMu} j}m1\kMdo@ㆽ.ı(vvsyُP뵰C-DY(z~Wm ȋCs(X [: Woq|q{CQSP`(S@I t#g \@GL2 e hC6_ڑ/ lDs_u4hfg"!>0Ҝs~cE+#ȁ`;hǢ9f_bt!kW`(C YtWta;k^/6ǐxk;t!DS_)DF$5}y4fL@ jAdŒ S)@aN8xx~t=DCA+K/a %5Ry3)BG`Jv?DK9G;SsU'0{qc?'@\ &䇽hAK Q#-F ԍIzD=RMG %q: q`m"J%3fq_TwE %YF,,]53<VxWFl:LȚk0  teL2  ?` <Ĕ4S |O|.h*Ngh:;40P੯3T-TuXlq{ԵeFV$v3(T X =,ȪP }"haahʪlԿЫ?[٦{/NhzF=;?, `3xri`'2\՜ J~mIi֪Us=;lzn*_$Àa bb9:l-ў]k(ϝL$Pq"/ڽ)DZl{eeJt3PPY"xz Cj'`8RMv 8Sy Fp UD|"wfc;fvzDp> 0Y A16՚NJ\KoZӾYZ}!<zss=w8`2c9| \#:kri;ݭ.fշ*X o7blaFszUVM[Csnaxl79J$]7:)Oso;֗. շjqjF|~30`o dw8rd _]~!&ܗL[}GS"2i*pq)˭W(S'86SoKzA(Jnp0(Qv-$Àa0`a0`0 vv:/&<{)p~{6n8?gÇK%(iMirJI&Ez.W?uWV=SP,sQP }Eakjv9jYEX-%5Si,wP质i|6i&6Tf6n#ѼgrPlyǞqBdT<D?+00o.5]gK €nm^8Β+Gg#ou4t%۱!'%0 ՛qŭ^cحMOe@; @o&VÚ'ɇ\esȵ<G eC@=CD@]>P=p'Hf!<Xc(dD_00`8 ư Ja 'bOLƇb &:ݏ*ce"ĝ^rgGnk+Fp$%r sjK| .{&?x' {ONݘ[{) U!|Q#sd0 <iVvO'DP{&ՖPJwI^mK3.1b8)%;U{8]G;N.8 Ef\|A^aOHrm"wfѤ`V1k5==g|aj|KDsI+{iauq=Duя!^dk1M)Du\\:T/[͓ .GvMf0 z  0G@#f񠣘A8;("D"O ΞdFj }qIIE8WܒWEIr %2n)XYz6iךyvTH-d^bum(:qzh(ɧSo 8߯v ]GHI@ѫ |%N(ϹaŐ|H>!?ǭ=(DtYln "u.KI+Y;?E-9 OC)ڂ 5H TytmCCmrÀa?S5һ]xӬ-Xuʻvnogo u|ET)^Mkcj  }Q|c0.!Y â hGrƤ`@=eOnAAnW2SS)` .ݧMqkpI&<}攪Xx`GUWŸ=}%saN?&9+Nr+ؔzS5  2πa0`cVdV-!J{ dBNδ!2쎧X̷ubZ`gg7Zu5C\+u"=bh8 vrs# d,{ uz%fesDP}]]{{ 9!8-:|/\#(:V^T?l~YOF dW\1c *Q/>.$cw:uB&„~n9M2 t-v Zb3ak8wH|dYW GJކqH O"+2j 5.#_\{ѱ"OrTCYW gP~uD e[s3ACHUM'Nʿ0c88<8<htj @; yl;yBR&DqN`rÀaW02`(̿ ,ɚ?9ٗp!Pvgw$.DH4lN؊Cr_Sa̩*}(?x Y 1 %x*D/'(Žd5"OPT>%qPy(o.=(4 3<0p hGK$ 0*dXF;>'vW=NMZzKC^}?ʫB71!K<ي~a9c/!1ap`,B-[&a)X 'A?h`&|oM2>8 yłNUOTSs]wjj2 ԾJ=`"T?w_OF&A a ץm8oa0`0 h <ÀaЦ[dHKb6*DES2<%?tF0Ǥ+DAKw:Kk-jg'By"gO8_>vi<[rX(g8»MP|7~+䧛Іr_#;8#p/!Yv)3eV4#6v,m2.4(x#՜(.8e`._Àa1dCp/lB-}%Q\mpW) g]4B\3APx=}8X+3#hyDц_T|ү*S3DmuʨZay.*ّrj;9z F-\X%6r^wAa0+iL P|#104141Kr?r<D什ȝah1O?[kPNoTv_&] \Ue[CԹR\%ky'g޽[YapGJ "/|Ë%cZʲͫٝ[T0eY+3wq1_ۮKL0A,{h{&vvl Q˥rxȉpj4z \˙2n|݄5l֛`:1hJR/ =LV *"e!rQ6Nd~omKTvBTrYDYSw@J}Um ^##MO)L&yUUvfj`0 aW񨌩a0`(F 8_d՗I SmX+P0AT£*הU?g= alЊ"LSZ;G+<G2;W8ߛ^bWxN`iUpv{2;tCeفG+QŪXz.Iŀ~ `L0 !`C  Y*"JbhDn(RW(#*T(YjRWfF<]\jl]#zNA*guP$ XJ8U¹ Yπc:0 1NUU;8l>3P*6{Jac`Ex/k St\ywن)GE<k]G? Q9kӡ )6UުhUN)F*V~oRO=ˤb@x(r(x|:j .qrGA( >/9O{WiU#ԐȇWyԇ7O'jN:#pF|lI̶a0pJ 8K#nX_LB̳=WOJ.f_m6֍X:=>yfnܞ{pY5[ݘ֒PjU9"R pdYMQE,RXy4Z8J^7̤?! XiC=gj\s0p60P/5L傻ؙƂCȍZA?exv|E{ Õ6lb;<\ouC>(w CL䷑ʋdRU_ӭ&! snz(!6[=͵Ir D%2 QCYX/XnT*~%z̎6`)1, C3+]bF 8`x'f`)a#lR*  5U}HTMzbH|dᆳXNnJd_y`,h}(%93iEVdd0  iFvBޏ#NMx_ jK3&Vz@H 7YyuB͍{:; Qr]Ǣ{Ÿ?!41$!t +[#SCǁuz냳0h(rVיp@c+M2 5 tnq"^P)G p#ͣ7e)jzj\@fr]ZO*F[(˝vp]ƴYZg%+5uE~/BTɫZ4ѩm#aY gd_yy=:sb롟]±/Ev6cT{rOur㰺ZM7vU,0 ivddÀag@wiL2  d9Vw"_@dbŧ81_vȴUP&! 3?Tmֈ=Q/敻7eo/|[|$Q4:wN:)'R?~z!漊mk5ٚ{BBM!mOOz|vS0؉. Ʊ6 8ppO'_ P+rBálj\im"T_t(` "d lY}mȍuWn[mk15@H=!kXd0 /^@bU{a0"&Ĩΰz'ouv)Qȝ']o9"!ߍ|{J!ȣ#7 9 ຳ/1`'u^ W]0C:!-/2/2v/Qׁ\\g䟒t^Gozv3{1Gھ:?v}bheNja ~*ůCVoC/<8_0 Bc `ƿl)[ȣ&v-ėC>Bs̽98rw1^%dI#񢤏Ziӑ2z0={#H0)=?z8/hGİ D# L= zSNd: r9/!;j5j^/K*'zZL&>2՟.q v`5µqzJEL% @1`UIÀa0 8Y_Ltw2ke?nfcZŰKTD̖SLvT#Dwx5z~t8nflxY (h%[:,I+-Qfjyu-EPHjskZBY+br~A$}@q6>LD"ezb+fG`ld)zOǙAىm'&dÀa@wL2  d@tjg(v ]!/xWzޓL*F h[D2~A˫Uu/%>F$6KjP'ӼvUs 2}?GP5sʟb 7oi]d7i b@%;k,A3cTϳ=c8q0\+;XdIc\!+97KS|"m#@׭OƫˬGp]w(WkG ) -g\d` 6 l POG@ ֱ֬^'%?+Z!Ñ4H!b$a[4nz$H:طbx8h8`f{njUt l$:%;Q7c ⫢Fab0^zMbphhpUZ0J(f1c7eq?^)J̞[¾pSaȀqv ;2wbftp`~88y]u⫊_TXr~M8`^ETge'y^<2\(: _؎ o1ط#CR0*=d BȤSc O#I=\CjJS r]5T>=SфOS=L˥iuKPQ͊-Ř ƽ+& ԹjX-5Bߴ 򌱟g;UZAUdpʟ y`ja0 ?ScLHъ|j& xrUfhUh +EX;qe)evkSe o JcEP%}z*/_&_ԯ ?w1vfȤa1ؗ`P#4a^pΒES,:1,HOCf%BpZ bI9{R=.'\NɵyOz:9oo?@2ʵqJAHkIr[02C0v"۩D:po&A]qr} FZ9r +\uZ;ZNd8 PAgC_@IIIZ W~ 1/g9rd4w)g֐OtX~Zߓٜw u o\gZ" v> M\/=zm6qe_EC>iBJ?X- 3\,CL1lLO%0.tшξbGƎ}fn7^{&*nl9ëvD\ 5@ݠn ϵ[[,(4U||q|"8huVeTfBn7)1嚔Jjef 8.2:57&5u}!!^"xo/i!%1!n7=BC?u&"YsSQ("{(@X@58rr_Vawbf^;B+ǝsWV["}ؚB,- lꢇmWtx =Ӏ|WB \L9f1m6 ~m]ݵW}\8x Ob0?փ(nK~Ì> zb}N(GnW\0~GP 9܂3212K򹼻p6;Xu| Z=3hee@#bPĠ8ŧ%_L"iGڛxWlMGAn;lk,~e3;A=?hQ)4~o;/{;#;=yu ~=5dԕIm_la0Px ,lvQH;<ȟ6_e^!vfI:_3giGzJ؉;iJ/#lD8^[1f qUoyȗf#n688F%.,nؕ@PPmЃl??Cc@;g)q+.b>缣zͤbQbSɏb"6GT|\:_< ֝֝(rT3D F!WG y`f+2?&(`5@u~SGl cz&w %պ͜/bmU-JOa375>UWӣ]M@KmǩQr=N?ڡ!,20`8VcM9S.fy -<@ndEQ8*uLI@q/Vwwg+ɖŻvLhW9$PE`g^:|D u,7os8 ІG!\D5 `\\F#+v73+[ e 78x< ~LU6 |DO Цkw"eGu 91 }睻m8O.1.GLZ[u BOAQO'_r\J3\\c?;3vfQo7@~\d }GO6?cq a-bOHGq?ï b>"E V^-V߫syLx6xT̮T-BT]qGj[\AٚWj"M PM* J*fs(0`8 30`0 Y[e"O,f4j +z?#U4lX梞Ht}q5G]DUQ:R}VѠUf_39O9y¡Tk9 އ gsvg{#f^ryS>)`` A ҈^B": xh\ jQvaܚh t` EJ}oD[Ms 0џ|=z^2}P//"B5 ΀ЁO4%LomAL= ;iɦSvMbS5 Àa3`0 ǔ:5?>CJ{G9xke@3U\S %@ȗ\و6RQF틝E4-ť:$gxQRL GN b͝3,g7n1%5&j`&11i^)5|z?㘉9(rP.h˒omE\G]|֖ueSd9F܋?bW;"ĪFAe|a / h|~Myg$ÀaWQx3V$n&s\0P} J2=Cv 觤YL_P7K?9|_w wfL9A:-)Pd j@Z+(Nf `+<tmAkwk;rA$k!z'=n {pi:v>D4,Qt/嘽z/˪ ҃oP޾{zg /~j˶sp:p X]5tꅩ#/KB=KyY, J!WM2 `8/kZ:rR}8˛-ƻk:7S>jEM!fnך؜nG#~7LS(2݁z4(+nͻEޘbPF G3yM5f(XCREtvG rE(ճ)@ ~BU+&"K z){ʢ W[i wGPlY`x

    R1Ö<D๋r;*TH_O~Vk-#׀Ol;hf g$g$` ` TƠ>rj&ZQ^T4K)y g4T=ʨ#Ԣݽ x'_e0˳.w':* 藨8횅d鸐ߝCu0@.aԝk̽Qi3zc8"]oM)godUl/W!hsirvx00p63PWqU71 ?_&x`TZld!pBE'z"_zR5Qu^ID1D #6jsEB^hs=T|*PGI%#?c'g`5.W2p ѓ @X,E7xAU~UJxrᑀb9~+=5=˂wDP*V"VPnMȤPNe%ʥrխ<-:?ŗ_p;IA#~.Ȉja0`8@ela0`0 |d.I2[ڟ{``8;?ŐAԠ[P5*r|dqjh_}]*ye*wȗPCQ ZOʜM1?UCEReȝ \SI1F KŲ;cB06LՀ1z@+֟ Nʓ:Y!1#^@+ LaXWv‰3k?@Y~i7D@ǐޮ87̷3b4{}HJkCIq&vOroL·bzGI[)\ oV|x U+w >t-Yץ ޽#&~!i n4n]V;hi:~y]Q^YvmIL#)`N{/ʏxq .q#fP!f]<|hDkb 9Dlc-78t%}(K%"M'm%C1Esqqm\D0J6c s{'$P&QVK5^uяr׈U\xN\q)7 &Rcǵ<ʺGyWR8o}jZ/+`J8 8<&3  g=$Àa0`O$kzia;4" fXw<aefem~n+"b"GG+*A|ߎw=)rܲ-3J||0|2,tfT mA(b*k Tz9oK% ͌bVzu\Z=pQ#q_(xh}<4Pnfp#;3lX$Ό ,Qp;SwiP )ϛ{ ꙏg6:<u}t `8H9q5G__7$b_U:]a^I2!uFƢ/0]dG_H'va\Zz\* ]_^i}~;7L]9?:oxno[Ch?+ޥ{?iGFj.=ì(" to/o/ +#'@.L0"WCPڿle`9 XG BbqpܞKͻ޽ޅ#茼fHt%8eWe,OKrhuD.bTJwqT`{5'kKCPV@r*K!KUg|5bou=(ֆKk|@I E0;c+'j;>?==2P/޹q9s|bv=a*cWȏ_viokMye%Ym=n֎NH I;!m9֟IWoW۴-[#G|y}>!r#HraF{a7iEu.JQ)w^)'5kzucksׂK|4+08O{0Z?Nݳ#9G#`EPIL0 (""*(AEAP s$#6{UڙP]U]m9mu '@G;9s7{=zK2i#GFb8E<+Sp}%Pc˱4|+^&H!{'$MkgvB4`ޞ[x-fۀ:Jvh߁Ɓځ"NP-7⫭,[2g6;?ñ+ⲄX|%uSKIl!\?8"`w: Yhj9p[9&dGy*Jȥ)* Z }8$p;>2M'T2"Ȧbx%8*8TE7 mT8ˠ$Ddsz赓6l+Quc6,.1쑝4S I$Œ4sFvQŢDW/nj.!Vo90ws:QVJ^jg{fw2$zh{>NbZvƃ "Fb7'wr6k* "Zq y.tem䭲N5P80o<(3Kt0to[;n即bee(+QܸG  MEb1"y,(3vqTю:cu[64BtӞ$_rZij&w/{"ČrC+R: G VR^ZYキghx&8q6ǁ:B?5u6uTA%Pr`5T%uW'9 &z_mC埧2؏9`s?s@$V~55(l1|FA;8c)K"VhjMKǐC^ k,E{ 3f%{߽Y?:?c!ۚkphw휑?%fE96K/9O@C68j9/p^Jh?)2.WnqT3QFc'[fXm\?X8xA{xQ"ݐcz``+[ 0ix_ P60[! o_#D0/f;gXex%z :Œ5u~oS7h yRsvQn[kt eJ]'IT=hJ4+~!fv*( KhsCl9`sp`+DՂd5P+ >Bk3v*,ݢE4;+zuSŶ1[PQ<4/Pn%B)έa-(&̭M`ũўVj&h ǝ f,P_w;B.Гw򞖀]b cslA-- \o>β|'R$(ͻ=ι0dNv. :XMPIBTTVwq#E]01njZP8 `y)!XˢMU %ހzK(fe}t'YQM;ؘnZ/y؋J}xSa ,م\b]OKV?rX2sE9;gqZ3 *+'oި~0 .{L;.8>4<ئ6l\8gWLfb 1 [>S$}}#@B>rNMSFܧh}vouuD/+0fN `9{]ɔ/甞8nI6 y̓8<4+:EqRC##ԵPU&!{RB`-!Ri1m+O^ {K87OX=G>ԬMŃYn᷋cHƚӘDΎ}`)%C!3eMl9ps2p]`ś?VGfM\,ȳ+GN:Рb(J'N|JuWWl_B"yTЮUs(ܹV|dgwXa߭>:H/LuB%dUtp G<2w.DQxp+ưV,AqUlC`e{kvH"|럞dfq]&kEaցLp3o]!~lO>bѼ~n!ݘ.&_Z<˚KDΜȭI}_ V8 k꺖WT_/̣^#W7ՏH%+VNZEIg5huȂHSl !݂%UYQU~Q}R<)O]~WCGWƹJΖ}_s\0F1YmQ1<# '̪Y`z!Z$Dmbś˞^v9`śX0[9۵vp)Ls0*` VPW 15X⷗ӫ5-z̖7!trJrC9%ohB,7!?R0ⶠF$4棝#,ų^I ;LXwn (rrbq >5gYP ,>bkk#C`QAfȠqn)_i qxW6?]a byA!lm':viJ8R#ƨ>+_y "Ads\p@nWI#~xehv{(*7,\/X]ow3 kږfӷJ@IDATdOQdqp)D(k6[?e_a S9.d8xa2HA9Ģs~:zs;(GP {jwKkl8pFAՆmml`thC6M?0W%Tې_t~Zz: D XT=BސlҌ~N<ۿ 2bWϝǿvӢG4[K=Y6b˸_|#oX)0fڐt$;K8!2A+Up46~ u xRbb;+/ĂmeaKZRcYoQ 8()aЅ-ʇ9 ̟5!{.&p3(ot1Wqot3]#F,'tW[N;f\ BC&)|-}-dd^] +'8J6ߔ5 ݱۈOŅ* C$#4uh^NSV.yz{Qtntvar.tĐ*j"7,e{5E1uGF< ̥uAw=TJ"]bx~{kT08itqx}tCqO+bq i!D^<D`eᧉ3KΤ\$2| ƻF.垬Røo0 :4VY壝lR@tA"BuHYOl0 l `mt"bGퟍaɎb{Vߊp|As?o8o!ݱ.S)Z}G2Nߤ25Fn VG ,|q[%!}+f5Y;{F ;9p)p@z6D9:C@<5zyu?]%R+kM+կ (dM!G98#(-" +z&*05!_1c&J)5Ys ͮBTXktS|s>8}0Q)jX}uTsWCv9p dzխ# [ c} "g4N?{ G.(UB|+~inDsݮ=Ihp*H7W5_th7y#cS>#pL2hwq^] $3|_WEg׋@FA e^KA|/f=.v?cJ|BWwFGeRJcWyJeFݏSyգKSMR:1)!Dmbś˞Z6l+R '*'ю A!F"R'̱A+w]\EVotLND!^dKƨa9C;(b9"9[rPP:M))5"5[i(^ւ("d+[zz+%g d8@:+"IzOG *]Q(ȩo{ .~AGoΊ'[,/6U\#)Bq;U\sU]P>BTW|yg=|p`KSuIݠ)ЋiH׏~I=2ޗWh?yQvLx#PǕv^#rw4buD>)}Ɂ,93~VfPxZ8 JxyO: pPP-Ak`.F3#qΏʹ ̧<'Ay~mrَ70N6.qXH-T,C?\ss9ycW+# ú1$#~u@=H pOg`ˠWR{OHI%NxeM^?akvp y3 Q*@Ύz:j[8s1jcZTm9弾tbIP/em \"qDtZXC}t/a=M7cjV񊃌{]ߐk #]0ż3JhDhf{e7t{"%<\?Qa5#QE.F9ND]+|d p ` QƄ|y]?čc`j{@8W=>XQq`3 A$7m)[cN֍pcuz\~V/Cbid05Ճk,rgŁT(=tOb'6lzd'6lWdWB,-fZmC٤0r`#jZg)d>g'=V4L)zk)QIx*7 Iȟ q@@/F1>nT] OEkkĵ@b (0P1ƷPl{{)g`;k @hQ8|E . .Rw s=X|'QDFލJR;rn 'N?c'S;9,].ԩr7ЁIu#+< HvT9PRLT=bch]ܠ]cWԇ`v4ɧhL{;q? q/v_Omz)ߧ짾}3=̂K5$L'UZO6:`%.l0.ֈ!? " (2(8ָcQ l:h&4)'I+i;b?q`ۦK#ȫ53A`iK+)k!$ >y 9_'K@NunBtx达Wp9;n@d4 WO;*\'[Ȗz$G2.\'_H\!ԃ3 FI( SVy')XoIN{+&/l'7SN fK>% yVoTo:nW]Z\rۑSqppptqX,K-Q/U\ﲀytrnq35J(xpл_Q1J[k[sOWB8Y҈K|$VqC e L=T= H'MYQcu%z Οz ?ɿه?ɻQ=:Ժ?7K92wf<]B]( cʍ [4S妕R%|Zlih ԃ }bSڅ NQdžwЧFvp``໼ޗ͠h>Gz뵬dJ2d9G"e) eOSϢ|^/AqYynaJƃ!^.t`Hv@;1#`7n-u3aje2HN.{T T+Tl`lV[N޲Xd#9y x]tHq7Cpw>uurgET$B'/PmLCY"l0N(=k㼷aǠG;\t"Y UuJ՛^'6HGvr|/3~r_ Timʉ"ct]3_sh#;/ :~2.4|xX_z۠#8px{d[-꽃zT+F}ِ}% ΆX !z v+ubΣ;>CQ. ׊yG6ÃBr@?7$/؏iiGBA -лpȵjZ.^_H+k~ Rb5zJfZvv~Zq#;fP-JjJ!ʌLv9`s[ty6lg)N% Jb⢃ M&<-3tM TCU5$O E;YXlG^#gŬ' }ij1^7S 9M*GMQSfݴJ,ocWhjllfy# ЉLfVykk(TneiY^< P0x-߹R^./#w 䟣AwaDїԫ8ɼTxA"&\k"yD8B|-mdN{8<7[i1#G-z!8jM ֊٧D?ucG_^`#rZ1/uECق_>'>x"1ljWn&y(zF32;-]":zFE [6+~5;=ؓ(xkK[a4h7bIw4wsRpzaV=ߜa-K~~ D(Àng 1ЎXdś."XHmvVp{9ǹ*߾s+VޕzMinjsgSB_?(BD=>s3ʡ_TSrpÜ'=,hWxql<ЙY:>o9UXPV:ϊkI=.Mfg7(1H 46ڨ6uȐeænkԏ:Ĺ-J[r\-Cr$t3u)zv= ϷJkxC ^R/!opWsWC~0]:xG ɥs-NrM3ՙJ/W]nЧQJȘد#= \_0//l@;Xe5%BFx~qvl8SQ.6l(0XFCԉb8fҠI }x+]tbѱlr"Kǜϫގ9}v8`O\T>DI64l9`ss25V & 4iUu}2Zho6ME2{(7eݱCV^]g%f:(4>@o8Z]\ r>?u _={0_ >D!%'Q.瘻=ݟȁӿ D }`qX0V@$#oyI ܟyPJJ| ><RY{N] >K$B굹_4P/Y13 iy˱7Ytm7ex:tY:=ө)cQ|d/^l$\e%M-ۢX^%T%RXM  Ք ZvWw,*ۜos@1_o~o)׃뛃yNŠ/{k9C]V v`&Ƶ!iKsAmiNm)_%r@=?# lU2<;G^)!'46z +Qj± GI@#aH&Nٸ0^\h!hw76οc-w6:1W+z&o1?8wi[nM$'!lC>أB)ʴƧc#W'0i͎/j; "KnpDtrXǖ,EaO7t;]JzʘB.UcKvYl9g83?kśKҚAPY M.o֑)EQVYwծ(ʾ[nCuVqǏ(znO 5lc.hkZ8 {W{W0'={yd"zN+~O-v*;اg |,Tra%iX$HݏUE]F"Ȫ(Ϯ5E=L>,eC~z$0.bܿ~>@݌Z\qxFq#37y껹~W={joUd9J4'gQslsKSHvAm:JCJy9 Q4Tbq 9Xf!`ɠKḒMmG}? ^?}ۃF;;v?W'QmuءUˑv\\WxK9SFZB.renk%uyŚO0ZP]Kng rK~ 7bq!&!`ߕ63 +UM)O=z&{&ӎsV/G/^}%Ӫ窨 hO>O%zjB}EW} VUZy|Y|Tq;=v08OggLYdsiڛI;z"j VIRသX=NO$:)FW|oWB.gSN`61EzsYO2RZ!)Qx> `ѲgEѲYRx$ሇynIYAVG_Nz!2!?::# `( wD&eMʞs0$ާ(m6jE忥( g P~,^TwXHy`}ةGkÇ+sΠjTj5Lz1zBX_4e^iص\*DUZK;.bjT Wz_=.XcH^h@YL0ty?~[5I 3rduf܂N^soJ?Б>̌D;s|nl&-wA2{v.q>^7Uww#ZHEAi8j"I{9T, vp@t VOQ-#+iϑC O5+p3ZWE(tl@ CQ68Y|L1%nB~DD(ys0U`e::6$^,)dV0"^+ܽ~r~sSfChW<ybߧ{Oѧ0@]-*]2.Tc%O?u uqj,2cGj%Ǐ>zl-jnxw/WK 5n?CGfBmB;!oE>DNj:JN3~%>9͊;9.Kn9ڮ:;<ڈlK"NS_^Ks&ey1_.;]v~/8`x#s#y+C Hǭ`G~uWb@2e$䚴ȴ1ʹ2EWL;CV}h[0:!p=9C״vh'@*4`8ۏ[唝l9pQp3ϰ 900~c189;OpkkJS rm3Ger3j$KxKv渿lf^+_DyfB^2S0D/&2 \-!cchʵ $:zF"GQގ};rE7n_.A@=반dndC/RTh7\rGjӞ7#zkx{{{ӯ W~$3B~5U}Vey.B[\Ml Ň։m|SIxNxR}}j:~[g'N#B&6l99`32t:Kbց ?QBC:t ;]:(0~#EtpS#*Njo,>jXҥOW"὇բO. 24x+@f.p CX`̍(ŀVPPZXCqj` 0 ^1#=fV(Fz'zVحu{;XZyw]"~' -^][l\BTJX4߮oV\T9V@IüjR"oO.2begL\-j˓#k 4"*?Ļ|}P8ңZg1H}WE[5p清ȯx=ZST(ճNv)S8ک<`?Icod/ǖ<cG}ϴ>:%wCNkwZw ^bUpb }Su sv6r>ONT*W\LJB=qJl8 Dy>4?.>>PZ@;V UںOl>lYVl9`-#Iӟ ?U 0NNՎC݇/9 g՜@ <(Kً%68-벅A2:+WNEʓȣ;1ގ>:9 rxSvRCUd\vd91^\1 b@H5z;Ka.uwp+PٻG>RbET\>r̜/bz,oUȁ5_eW@dy]SR.!%rx]v'udA>'ֿʆІV86BTS܏Ԛ+l:EMP@3j6Өy)?Ḥo!FtA^{#q9%gmw-)x) :Y^8TyѶgNI1>i s3N=o'-*]\U|Kju ߀G1F Ŧ4&>h>Rq_k@7{@A=#@/t/=TƸǘ(TBn40U͈!3iz5m1,.u5u/WX52y9`s__qS6l8*L1\fH^/P@/ h4'~TmG+gk1ʴ+7"fT2x(Nd/! (PX&Jj]6W@?@ 0L! %b.BQ/@;p63 0: ٬YDaV[ٯS_yj =.q}n:R@aMڰ-yAaF+jg#*Y+3gE6LYۖ =*qMk (Sn: {voxhۘ 'Qvkd:2^ΰ=Їe_FaxϏh9ZEv=1kVrgŰ(Gmx1Yrh.(QTO 2 $1<'{Y{=(x_^m_י_x纷q}/ѳxϷwQUy]oޘYӠs30 ͟<=q@Ő(F+|YiE A7'foUq{'!dTO xO1"ZVE?#; Q\(ٿ9\6 .0 ;9`s@0yY,^g2.o`<| ,dj8w>7fab<*6ǽ"\kG=GULc'pݜuzkc'n=G+hwX='wswc ޗsG1l2eIȡck%Qm䍴~ s/=?|}UkOjygžvCk\2qN 0lY_z5KN>P-_?~r|/$:`#81gMZ^1xrLC|q8W˗z> m 9)S!`:fԟcQz+@~ '^J}bb-p8'Thdg80Xjo~k\Nh }}?߫L8ѯc-G8s:_ZW"7 sęúrzܜt;]_>tM.(S`HB`5V;i%;n9wI5#Gm>mlIdC*2WРMVvO{N@VPP˛7%K+u`Y`8wqpRtB-”k͐ޣafFjŮo˚TƛH^B] CٻS>E6@{k sU5KIR[ֽV1\;SAzC@w?\=]QXgx:뫫c:>u|wy==|RxdduhG0̇?z7uAӻ®@!z>)9iw?[<%|j5=<DG{o7]| Խ/s| 9~''}#\dK2EfПr?&3!ߓLEnThmL;QYQC!j t`;@IDATJ~3(\0] y-7AafԛQ}#?JΎ`0|~<ePKⴝl9pprx")_Ĩ6F'788x }n.9gj>~ cu~u1'AFq9xOx&-j)9|0' kБp}O^gk<~ӟɟ7st9I+jVʕ]gҹSܨ68#MM*I"ʊo8Gcn +͏z+՚޳ssS 9FQFY=̮¡E?WCKXh6rTr AڪC4o:י`Ը,~hRޗ3'>cg־|sK+x#ޭޭAٝMBE/M6{.̱10-;>Ȫͥ6%U:E0<ŭ~VϪ8 ƽ{=%0+9 %>k~RqwH;CdH &@y-TU:M`^Fu5/(]j:n*U^+ai~ :g~@zzjSe@| (ʀ2kDL"͚rP 8_3N!@2! $ MQStߵeuɾ)Q{=snk-5Xs똸60CaL:w w]-Y6l= cKcK.cP XX."unŹ;|v}?P,㳜\0ԐL~dPCؼ<}y]lxIx|23B5JHv?37in9]>R4=|d{Ózi'm#IJu2q %k6}_JWdW~ɯ]/s$l@6@a!3A3c*2|nm5$ HwrЦ (023z*%X /KϤf^y)߁Gf]_$%%16q~jN5S><wHEDEy=7}]ei-Y.COsMyHD~?h"ϟ (H,-zAdoPl ơCy{ZV>²A`* yϧ d[BdFrʺ.)e|,\2cW[Å"GU0'ɟHҞjoZ+/ޯtt).PxT~W|Z<=b9(ϡ.pG0Ax`@cS|eFo =Կgc{ |G`1~RӘC0 HFݻ=?5m1dKy,qFc/ Nd:^sxa r7dݐ}l [e./߀Kڔe@Pvެ7bPc78fWS܎| 8s)m)o4xߧ9x[237 Ptxʘj Rcy qEz]P@Ih 89ݝk_halLs9 T|J=eN*KNM~IaGq-8d\حZ f/_RJOs3R.)2%P& :JpFN2%ۏ>N6$8H o {%`+,O`2 PPY:_]V9#{Z/{hw* ~ fʀ2 (fBkWeob@ W)N~%R&[ L; La9o,=WrM.KAڽ>nrw'~q PD[0}o( DXK:lx )3J>1&GF2a1 F;wpd) )/*~ Oґi(J)cH/c1 vSX1c̖|WDdK%,V`4C0XY;gd>JdY_ȀoIC9k %GOGr (9}sȧO2Q~V~ Y"'g 6u (ʀ2P l{+9>^}y0+&0ิчTnٜ9med5+6+Nikg ~ @d[QE~zmHh0(E)ſ #TE eu`)sV없qmƵ{?/}tb|g >(3ꅄ3МLX* Rzo(^>qbqțx^mm{I:+Km lLэn8Nv8w\n!gSNBN"@r*/W^?2 fe@P K_&Jbȸ3َOe g]q8E4wmtv: 6U?lo|IU08sb|n'$aHN6/;,`l\\`*0=$DE;Fɐ2 M#`c!E)  Y:Ƴ1(`SY`$D0 Z3kDbUȸ\%&+5eRJ:PM]Wvd @!gK1 eZ޴܋ :uy>yyرkw)ʀ2 u `;&Bp(zYGg(QV@X9Ȫ2<:roG!r pR'c6e`37͖iزGXL5t*Um,Q4Z^M6ի/e^Bq =l;}z5(yر'8c1)?4Fϊ'd 4@xOw7w7u{g<1{f=ie4R^J1֠6nŮޜYwעS V/m+ʀ2 he@P~S il[T&y&ǛV7@"S#ho71ݹ]ef%>b9>ؼj6H9199Ίqg_/B{50 )wFhFtEt7WffO (A[J|204iX,ѿoy>}J镻}< gG1^q:OqH=7{تI[%f `>?2Q|PKy] ύ/+KBKݝЮk' ]D@NXy/36 iTyY >m =9v2X&37ie@PAc@P3Gbid4ݙ4J^`1,'C#D&vffƄ!jիaMz9Kˊ!$m3*,;p7_gmDz{J;vp,1`Z[Va.t81gJhS~ɀ?vn̅)/djJD npAJ G@3g\6uKʁ,~Zz*a_NQ`$/6Z07rr`\.'`P : 8Ρ78)~_2 (?- [|{0 y4 +}{y?sb ?4Eo .F_ܒ=쮲JŶSRxPwiāki&IGjS~W#A_< ُPsijz.{Ogs"6 FBd|? nB!qF'!e78@"ȁqD<0cG^k m!5ߩTh=Blִz"+?yc5o̪wk^XcU 6->>v7aHq @`mLk TA^P/)ʀ2 "{12i_EAw3UY ^ʗI8**!x2eNy6bH7uսI D.roS+&)0 {Pu5'#O"'D\GI?+XMc Ꞑ &?o9Wp̼H&My2 o 92m >nq0ݍ: # P%L&1?v?m*=؅`5zx kr`:W:S}plBdnڔe@Pv?+dgwgZgRϠ|`8 }5+D~ZjO٫9'yN%Ѷ ^@}iݎ0}?dYfY+,ʸPQ tAX?g-]v5O)ReUU}@Ô)#Sey@/Ku9_%j%0yyy%JpVzI%;;y_;jGV_*b9ᶇM8XuoTջ(TòFefIuM]Sd5vkVb{Ѧ le<'wb I e@P%զ (ʀ2D[WTPsdbjReO SXe`wy64Nf=M_k;˞ 9+m^x0Sث&h[2@B y 5d P?h!?Yee$T,Z2XCGod qzZ>ͷ`r |Lk ?a723:Y,g$3)Ϥ{@1<b,|3`|y}?)d{{mf~aK֗^Ƽ)rzx0ۙCDs=&UT?ٕ#`~[cߴS t}4suU.:殳tQNً }]E]ʀFVm)ʀ2 x rjSe@J&ԿQDN}ykCJSRblx:1%))u5 5ѽ‰5n09]a>FۙlIwL&'mi&Ԙ7GJP~hud4ˮ])~_i`?Ύ^r1Jk1J"C 0J |L.w+1|>L:OiFgp+nn\y,=z@Spw9F 0d<ߗ/d$3j'*ڠ:e@@M 槃qɏGncL˘%帔BqR>{r3r|f!Ma6e@Pes2Ue2k[91 GO>)S*#7~=xړϱϡE5DR QlO#%H?VWh|NАYHw@0}v/9/s^Vg!`dqt?#}g>qeI d})d2)<#`z0s rkVfWx|C><<so%%w߯885`L=\sm+;޸mw^^ sխwߡޅ''I?Ц x6Z!Mڔe@P`@t(ʀ2}Xb &o7U%L+W+27M̩CC*TYc 7 z̚KjZwۥ ^1 +0mae{bXrw2f) Sdg LK1FEɎd8/2{#dȪڔc`\{qSJ>0_ =x /)G"JSyҫGŊsIM,!zC(d (d=yp> p\o`%ZMO)kAJ Mq4GH< ]H'LJy >goN  7ypà y?1nxz.4qPPF_> A2 (d@{s d܌lvq8d [[yuR${2raha jBs$#{G^Lb0=e-4|ǂvqH7;S۟` K8Q`|gyë%ԉtl]lvBqǺ=bfL# q˦{d~hcR;YhCNj(s{H2M5䦍I.EPɀT]?2 oDJiH,@i7ݽU'j@c"d/eeG~5מli1NOGsͷa(B%Q礃'{Ls0hs3NɠA.]maƏ* Dg"oZ`5<9L*u)LJe/;. j()m*Y1ܔ; Cz p_.ZV5>r~~OqX_iG;kn•X5= $6@(~0a xoKfx M'~So+?.R4?K'4yϗ ~InSj,~ 0{ ù`.@#J`,]p+[]AqdC y&u0j~o-yC ҿj[ve@Pe`{ s=[hh#Vi[z?Sp2,@/yOFp ⧠oo]EhC/| $N1ge1_^e&>9Y3& VޔzY3sޣ1GCЦ ppMWjU2s 72o0.HP2nU>aOOrg#co寖EA?Am09+2+ڟ*yCn֕od"19bP81M%!s|?bBǃ|~{q׋w .p m_+4KkΕ@//]|OJBDJ9jpDۂ{y!+r<\>{|`xwTA{Ñ37H?>/j(mʀ2 (s~ i "ۀv<.΁΁)8~݂3iP}. X=~1؟  '7=bpՑ5A-l!u;N8Rl!g/ҬoTD$YBM@qiҏGYzP˔kV|7|?B/ Gq>R*:AkŸڔ}Z"8׺עF);Cdmtht(ϕsq빷s5mL[Pͮk}v4;>%j[/ȹڬ;ඃ۪yhZ s>s2?9۔1fH~mz=N`ڤ6e@P) ʀ2 (c[*D岀f`s6y8~m2009aRِV=}DFҤ5ǺCk^k~WyNoZX] 54dEzSH7^jqdF{D{E{a?9LEh! R^_{;66eo`b_P1Ԓ-y\KIԃT3ɼ OĈEqd/p c}ٿ-mG=9%ym/w[ S0.xyCڣ}LD~apg}̮qC8Y{0s!$NW@9p&|BN И߱8%@@C `sj9Yas|2 W;xw``~Lyh\0<W >R[q%@1Kǁ~eU܅'~C_Qe@P*_?pVBN5SeO_sn7V}<%'|sy@٠ )+ Z|u/lL@ uy_][׽~2JU:Nb;sEf’Ӌ08,@= \3}G Ov3&%p>(zE}q{C0N{GzYUO`\`\!X;X;Зa3* O\ c g`]0 s^NCa0YDkH?PS1ޒ>)9ψ?R2due ǩv_/WןE'9N?b0Nf댩zzpY'UmxQ7H^.ΟUeX fYg I1Ѧ AJ-mʀ2 (0Re@Pˀ?b!RMtaQLb Ee 1IhS $ `!oLٝc <mf/jбcm [u̜g5bccSo_hq(߀Ow_SGo<#J{X,ܽsu{ha.&įU5۔f`/knh ⾔;"loۄ9q`)X[j.E._@ m 08.K">} [[88Cܞ N漃 )}򓐗 ́QQHcd~#Am{'ay4hN?p( qo l L ;G?쏔BʐF );}\ hbȚ^eːڔe@P]_oCOIix )o߁8GC9u7?ˬ/ y9nG/X"GF_@1q)Пk;ԊK/4`'[Kpr6QH,hf$3v |#X\#sWHcdA]ހUx]#-ś RѠAr{+,QT`/5!uBRkJC_Im2r8j ?8Ӡ ǓgbPlؔ:xh@u^JD)l; _TYҗ}>l澰465h|9EӸli 3ؼ$ s&6YǖY~/AhM5QNmmpy,킴j)?ُ>uQ q3w$$c+H$VdiSe@MPe`; &.}Zvv[HfG&f lk!uSb 5{{[d>HizAZCs[-w0݊+nzsng:W6Ri%K'_|GIKKjD Q0!bƴxlX[.9Yqj$"+6hS WJ \oОC~bp4N84`$`i  <#D1r6e@Pe23'XxؚANF#yBО`/+uӧy }JEI)  gU`<%٭=gNFIvr)@pv2xx#"r]xr>Жr&>ysFQ`Ӟ~|x7xΕсQ.?<|8MA ~ ,pH e>xOv/"ڔͼc1O;/vth2 ؏^}2$øfqY;uLm@$M~"IhhiN;/lѾwV~̑xy[ܝ/&k\Bڔf;e =[2 (ʀ@HyPe@.R>KXQ$ťtd7q @Mw%P*"v6e`+8mKAB7\:Z֙ti_m@G;§D0GDo l ŁJ9b [Jϩ)zc8 Ó ia&-R[`0{5Q#s̴) \lf~A~$p96x># Y~DfČ[WST/a8#qyȡ39 'A` `=}ÐOD)}b0_ 0{:u1r %#N2 (ʀ2 T^/1-/B"} zdz8es[2l K=G_z emW8Y҈T(ro/- +տ.Jb^3W+L<}CfN+W9G2ooeI'/ydt'sg+uJ.k$q ': zT yHJO!`r,Ά<d+~EjS HءoX̋y;·Q?drd.%9%;w$Mz6X̤~"FNA&|tku46|nGx}@;ҽo癓ߣI}whO.U#Mf䉪MPepXiSe@nrj2GC@K,dM9|i'%-Od4qmg8J'(:_s*Zy96ϋ77btaqb #8gvâ9+[2k2}.k%mR ]4K}_$^}i#Ǔ5.b "Yאy=?i~?o~]2 (ʀ2 clV/"8֥T?' wH HY^f/%,c]9);E.ە`9}HD!O?ǺʼX*Iţ|pǗ0}p#)z*"%P/&h$R>GPe)| ,=Sqs>Ʈڔ@eo)ܠT}}~^e=F74~vl> d{zߝΝL?GT9=+nL Wl.@IDATb{S㮛ccvԂCMu/*$ 3p_ʌ]z+ʀ2P [2 (U2Y8LӀ5 %^r b,]S~f HLc7|.E0].0lMGF!O$~Y+W ^NuWǘ[ޫl-u\{^F,qNpҳ,wgk# ~F%Pe2O (π*hVr<%"2$Oa3]k9鍑$bkbʹrN/iS~ŀ\R/Lɐ6_g7Ι_G;gMkX: \Q Qp^tPtKNN[ZNg3'i;ze@Pe@Pe@r#x_D L|mʀ2e\:yQp~֋)~b`f7Zq`Ӷ?^lb)':d?1 wkTR.7o9v$;?:(rl G8dP8=B&MBʴ)ʀ2 iSe@5 &*ge(C<ġ]\bN1C&ڔ?@" v-O"x‚Z5c{ԻAY; ZF7[M 4CB'g=xwEDҤv6e3kXμCRʢ4ڔe@P`@t(ʀ2}'s{^rR7e\a΢,b Y֦ o;ζS@(ihh!mn51uAی2?D׏L%oGJilRô#dbD {Dӣ2=? .x cd6e@Pe@Pe@Pe@+g5~lO㿬Yf8$} XMsb!@ K$okr๩Bۭ#Z,6fO}6"}AJM[^maI{HJ~i .Rk3`%?INPdʀ2PH8-.D$ Α@z+k>bP@kJ5HvJ龸 FY00p}h;mf^:ڬoũ/%QVʄkdO ߐ kw2v9H w](KFD)y:|E ã9-[VLOQwVe@Pe@Pe@P?@4If==ݥ2_ɑ]T.ۿvS0s8HX^Wϊhv]m7cxӾf4 uLP`jEه36g۫}7ҖLy^:ZY9 @2`g,q.˵˷CЦ (ʀ2@P3W`  zM"¦i\@+lM H5&4d2kqEg]z" G6zaL!ߜmNf+!r]{0i11c.Eټ6aQ|w~@/6ʀ2 (ʀ2 (ʀ2 (ʀ2'F`̕f0}MM,"LC 7 7aW͑y|)P1ۑ-6 =\}P[O:C˹/;d2+􈕐m *i@% e` hyѭʀ2 ġ@,br#KzƖX^Y\34"w*:vAN IؔD|ZV6 w-2W˩N8So۲~Q/27d_kl3!"Hs9Ytj:N!͡X955l,P2%މJM MPe@Pe@Pe@Pv\ `e`̦l|Eыx}9FjbŒ n{}\)gK}Ϙ Z iϢC>ls\簺'T}v71f i|f1A \jSv?ߗG:)ʀ2 b HΞ6e@P_3/$T˃z3A!%5zK][k}sxIz:+#p%hqBm{ 0J V>|k *OI1+3Wq0֞o@2 (ʀ2P9+%|s!9c&5͞ i85uL]`Lcy08&NM0d iB畂{kh@Gia^tσcy0fZO,Пcfc2_c>C_I2 (ʀ2 $g({Kd&r}z^½ץbyĀ[sK Ln6C'ժiLjn1fy2=< ,Rb *G𚟐*qD&KJʀ2 Tz4%@P~P*S~T99ޏtS~: Bud 3~ɱ)7L۩T۫ZY~Mwz}|^|gK¦_QQYc8{:1O+"5gg=b.]@?}lnlLi#KY[0Z[Lڕ_ww,lxnʀ2 (oPnj ధ{6` :B]`{uK;ŝ{{ۯmld].Eַ=,ݜeO-&`Gy9.ϐs%vq;_wZ񾶦0N7s(0ss,B_`ۜېg}+uhgA. \He]5΁:K>m IVZ y]Kb`ȂgczZMڔe@P"yLv>v>`M%e˘^?(~7J?g " fg;&Y[ls_ym,#zs9NNjf!bHd!xMfT8I ,( )6e@Pa@t(ʀ2}biLHg)%%Sb9jg5s& iSvMn0ho;5lAz=$j)Y}2yk]{W㣃k8xN oNq?βnaK&LN1!pD}~]_Ki]~m#ۈ'#¯P (ʀ2  pZx*u;N|?x08> f#J83#ݑ5vjTElՏG>'~2zg"P??=׽ٽCT䇶aoګ?eW,5s\ X]QH`EE(#( o9V^["(j‘FF  ah88zPӡ)HpZjTSMy" (87zZ#iH5zR 8Xݸ9}? #)ʀ2 (BBJKwwf=䡒 'p40%3o3 0N'g<Sدyìvwop=,"5PhO@\xRH2PQ $\Rg;Q>t"KS8KrO[VNOd#-^f_`̓2`p]%_A2 %UJW}!+?Id~;+uJN}sbEB"yȣB? 4PpJEp;y_SzZ :N7YC]B]+%ޗߔR<)4Iiq&JT@i|l>N/?tL4/K )ʀ2 (;~eDsLᇍ)-0]w;}$|y<kp)_ͪ7_gFWukU^ƌig@;Sg;Dqȕ=0@ז'崤\*e@ h@J2 nr,*1 ŘF=CiM9 K vW`-!: Bud [7'~yolN~yv<Mk:;KVD.+|I?o FNS-<NMSkga @2##)I8dqb M 1gdʐc 9yGrmŠ6Pl$KPe22\\A0^yMddG`ΰAĠ^.s)>^^vrdJbM3boܛy)><,$#:Y;2dIe19^;AmO,fI{u4c31ل4=?gG A8]0ç"C)Ld f^[ %*8'(J5}-sIrJπd~) /"2@d| =qOSA yyy˿jNs3탦i]zڔgĩJJ_PˀT^?2 >~Lv H1u6z[>dcbV5 w}9Bb6ebx#- 1+9_yMa4us@6e@PeK.E4w8mK.T@EGP`TiJ)nL=8#f0NmSwϰc/fbB?2xdcQc:ےM)$IH(݂vTQD>A*((H HH l;?_ $wgvwλ3s"kѣFW24hhmwK>2KȆU/)kDZC6hx-De}"yAg JÈR <{0kC*K0N7N]" 2 zX~l 1>j|uOm$( !E ##GdH$RB01oQbxx/550~xgB^ px[8HztƨL,XRJbﺥǻ +KܒΫ"N>'sfD[ gDl p%W=X %PՈ}<$_ kZV" \}:%f=xR̞:C5lvip2XWu 7E2 o3MM/sx3QVHV}*ݞ4[(=Z&Ó s-AFg&su~v ޑޑhϭ7wY$DFG@!tsͯb\| >mlmslsrKtŗHUrybkQ,777J V*" Yy_ޓD.(wQE\_T ɍk`8kza8fr"kTwO%ҝ΂eGǎ0ݕ(or?׏?[|_ph32b'vX'Ԥ$["H$=EΛV$ 1^^c <4ǀr)Rt&˺"B zj!BWc=KTu^ z5Zy _V t! S;4?'f!בst*^cԴ,D@" '^D@" tK} @uNM{ 'I "s ,Od8 rW"00 Q dY!h}Z_7 }lfe9jɽ+B7o/Tp3혚 9<;;X_9l $(M'4(x0BĄ~G#EXV+^^B<_G{@ S|W./ -&og!U@e%!}H{"sms! TGa3+7&1ynD@" 3|88sKrj&0W_ HfK݊9fm.d9,3lxZV ,F>/2QXBK9H C֗*R#y,kʚb~eJYj;<2ߏoVxrqZq" tT eAXt>OF1+p\-񑫬/FO" H=6,@dttTwTpٹڹPWZ{Ro+J N3Եd6FHkHro[6s#,/ D:  } PNZfK'\]DD@(oȋ-H>oֶB]~Jy;%suV% kc_VBierߛhNwWmHL"* hOaUUZ*~PE*<,]FAAd^h<욺n^yF= Фk)5BD@" K" R8B80~6NQwllCTs!#ҖPH [0_|ȽVW੦j"Ʒ AoG /0jǿB,=`F_5B,>:-uoޝw}2fӔ ::ܟmgm;w2$!REATT|oV]+N:2xzR`9j(,H$F265ӈ5 -sF_8N>}#]akjRbU߫v9a?s 'm |oS ,냀ZO'`fI!+D@" S{@" 9J`7 v 7سx0K{X (c*;ln@EP4N r׌:jSCzmwXhQ샴"JU~TF7!Y[v3¡̊_u؛BP(QRPp֘^4Gbzh˺jAWЗYC$DB@i^u1h{`G΂|/xvR ν 3345Nցxp=QWb%Ĭ6/"R܈ծ>~wJ""j>lx5[yܯϻpz{{3qH%P[E Es&+w eWfD`R'h^0.'vb;2!E-ߔH$qoq"gw .rq6v6|Ge0?TDh ;4)9H sXwϑ&%3_B[!Z%{A9K/A2oZm{[f@ŲT."Gd/Od,w)E74d%}g`2T7vெuA5lWFߧ< z\*&nZi[P7us8CE s_šx;]]Adlw@5mPӋe=~ JĘUAt#~Q[ꀺ"Նt$>+>#~P$~s0So_*W]G1_Qxz*1:@Pv`4eBiłՇuujJ4%xQ,\Cuu`d=`={^ (,5-5y=W&؈m]߶K~_" H0rųF:K"a87sxD݇0-N)NA^(O(6_o0`>Ό(IhVbp s{e. |:=/te:J"eY$+DfE{QHn9ԇMgP7Aa0 Or+2a@C.h)Pwҩ0@<w h~x|_|O{lhc݌\/*`-WvJ ;mp5"^P@胤 t- !PW&{n D=CC0 xHO,.BG; ?IFѾH$@"C\+Ca)NeC|9,yrcٙٙcOAZYx=aobo=qk̳eק~~{q aHn^?@qN^ig*|_ETs|zLYz2DA^OqD~YK$A7y}1nVשXW{6xyY\Ķs!'ֻq;`>^un3--"^[|g:RTͻko:m23Ʃ 0u+$ UkrPD@"wDw(yMD *HQk2PJPhQ~qV#W?*K(&OF%+:B .w K {9X6J-loAf/P g*nSg-Yv گ+K&8&#.ǽK*Ĝnz*հ al 3AqO4X|PuDC@`ts[-cӕJE{ k_\跟t(SPV|A@`H6zr?n[mZ>/6??!GP/Jp5S^ss߆dj9 a,|<F,a>摝Po ^Q'sȏü<Ӵ^{cvYq,Q){Ppar6 3 @dW~M1USUy3)SN|wRQL wB D@"p!uei&C:>C1? ?xww59>u+-ZNNjтaՑFajs PRvM+PQnH[00P9MʨU0D@@ka"uuqwG[ nm lPZ 8>1oc?h Z}C2Ӆc,?Srvˬ 柙DTQ0%lH˪Jz3Q`Gx$V/o)uGδ]XJM[ hJi<٩=b} 1vEIw0>k5˾OE}_:7oE^ub9s1ۊsIRSޯyd E+56V2{=Λ (Dy뫈zAkJg!J%9~huZJ$ȶL܎=,ddffFGs*W%H\d aSڂ%Xq)8pkk"CERۻVD'c@8f) hX3֜+DIp]H$@ {Es1? Mc{v y\]~ڋ27-U/|&Xw _0B> L#j??K4Y跣cJkY ($?Wp'#kXuskTD@" H$,@IDAT#߮G :ᨅ*(^_H &KVCto"3;౩|Ҟ٧B^IC̺ke+t]sr/ ybKcq=r#EٕgT ➟_ Nidkk-BM(9/\ְnaUbUYU4 Mh,D {3YO@..G`◊Asu>|z||0*+xю@[@g XjxEOP`F>-{"%YwcRkF+| }gqKUkͰ2e5A噼yU|{ |"P'> Cߒg h2v+Yö lY>6{C Yh)Ĝ@h%_}<]]q?vv1e!0 y |;$؋zi9M!DD@" W#&-!{hӎ7u6mr7sy&-u|O#URH|]?"lS/gFV[Ǫ##sPDžbuC 9D @`h𤘑k%Y$D@ `0H$"T r2wX@(R P ub,F,ba5V)#ᠧD!O_w|vBX8~OŪp̏)葢9W:W(0n]Tc_̋EKУyM$>hW6 !5P~S" 5=}IDyoAUsNvgώp.r.oIqI1 )nNUz\5<Qq@rே-oh073Q~&d1[L"TyEPy̤X ¿JD-T\iLt.藘m gk3Us%]VJytV(t +.t}5(?&K[!ɍBNij-R6&*j8j3M1b?E.KfaXo󷢆yu/+ɼ3C5ӆ18MED&$iii ͑"א947ri&Ø/gǰl5Udp~Þa?,רH s!UJ} ]Y= ,mpuϬybmsfTǷERzTաmYjQøۗ_óσy߭TADp6F&Mb;c+1@7ڰ.A  h *e2I^̓|{VݧH;>[zZz1F#'D>_ZGqxۃH$eU F\w0/ Wy󈐴Io+1_P(w)wOSA d*B}eYc*K\ }*y@ޥ5uK맥VȗG%tZD"EM`CB(b#ʇ mY$D@C@ H 6(P|`A6T%c> TAS13 ڵ>=eB"ppwg`afn> ]xPl{,n Eۄ@ ^"Hn0tu.]o7i&?9}:O&7ᣑb@<| "* 8A|>~*^ڇZ*.4 Ā<Gtt6Ꮽ\>*Kԥ PZ*W {Ns:=(c_o: K[ׇ5H)Rߏ#&nA;{'2<5B F`B<}E]y7Bo#o#/ bζtt@Ĥ>KKD*W|zj=>̻bX{I?ADD" \[)Y |&/֙Ek;>> 39x1b!h]"kQ&a ؽEjFdb=[~.=:!L)͸a'9q GRD 0SKu~ব$,H$ M+|M "x* U3RuA'+cݸ?.̧[Zz<w9byB+;xJV4CD-㻝U"p$O송gxަ,xEaC-q,Dn *Ys0y,?BT:և:ڽ)7RU戈 hULbiWϚ-YudY|" GIj%ʄ!|l|.7XS" CW7b2ub^`i+3TpciĻӿ?2@c C+pC(f^C$'EF9c,,)d1LyD08Ȫz43nVSLXt_J^US)="r/ /; Qߢ̱Y:pG|%c-(>Kg_+CcFDb>)P*B ń<\ )4ry6_%r=Д7ۧԓIUQqmۡC1 i:t5Z'['2G1ޞ LGt uOXE" -AP+Xfy{~6̧1w |ϗj[}~v bMYv8\b|[}Xo$QYO+?_`ӒnfУ|4'btqztW !yܿ}*ff TYܖD@" H$~^ @,!7V^}ŒA ߫ ꕯ@@ߏFB@I6\B9}LJ|'e%69uFQ%Nj6B1~qxB\˪CW$!T]q)@|yn(fOi 73lq؛aoYD6ߓ$'P :^uW!ePUW=0JJ(}K'tswtE} T u^~Vs=wA͋A| \jI.VcU'(܉aJ,UsoSnFPfZfˈ67唛4\u-!x;P~ӽzڷ- N/BK9~3@1*uB_N5T>80/d w0e98Skė[3Bz5 {4"cesOb1I/%}ŌYFԜ4k{s=3YU~l3\q4حoۙ|d@Rk,Doޯ'w :rT:Zi56aa5lXs-՞7ĝ$Aa ƉOZiQ=z0Qq! C9)hrNj1i',T^1 AO\֠B"H$1eE" Hph?P/T  jꔦ 2)/ò"] ZY}E=TjXC< DSm|}?v"΅ C/gW芔 ̱WJ_Acœ'Z{njRQ}"yD:!$L!Q"`!V 'yG?ٻ88b |q#u/*"#cwSCMC7x8ϏuQF\&j~=GG#Ӣ%UmW=tTN7wC"$ԈGÿ:"WqOf_3S_R“׿핯3i@k~~~ZDz#çG1SUM2ͶloRŝ+ֹإ]<ÇAEС Đz}!|STȏ0BMsoڄ;CF#xYK -%B?SW?﮼ rn9Qhu\8q@D@iڢWN+1 'KD?YY,3?d2Dρ ~JщZWvxjsT}^4j< Z7r\Jsemc:71αQn3_]5IphD\LW,_H-۵@/Ԙ"H$.D@" 3வZXhB@lIMX=,\Pvj2,+.D\!0[2eA PʍY<͋zFmݘ]-:oXvY|8=Y8eM"q7\xN p}Ӥ'$H6" <@AHT *>gPTWpuab1􏩎ʎ HGn_/q+P -jWd,g|8wƻE.4&eQbV뎁2hOu4x6W(yejO-ծ _ݧCUN8ǘatt'fx.~_[u wB~_Q$Dc؛_ȏ bFSD0~6YY%kxfxMlF7Ήz>r|iI8+hb~Qz x[8&91 6CVΡi!HZ$Vx^^…feBj>?ӵQJK%.e uBar k< ˄HL8{q|=U.A MeJ$HJ"nHEEDPUҺOκ΢lQ4X]!io|ycv١M0W&:׾KM[5N'fLap kyI7vRmp[ͩv$ i9D@AE" H@RȟD" tӥN .2 aFX>9>d_aPWp^K,[V̻[]Ʀw~WņEOo^AIů͋p"{)c4x@\v_,ѷ~E]FB(f w;衽&(H S 묅=P?bZ($H& BDUTY~ GgGg*=ŋCq_ 0C٫lYBS x(.D_r(Y׍>%cšO(ф\JD@"P>H W̹cc"(kbV!ӫuu|P ^ބDeyUoNQҖ#ӡ&][;?;kTyVl79mT ,$W@`%?j/1dH$I H$T>i#a_O<RC>ƒrTA_#h54vNw7̟{_t.Ofvv̳Ƚ9y>du"jGjA-pY]|+;t %+𰦫[Sbb?(ZxH$&Y KA?~G_ANڻѝ]@ڡP\]@[]SPC!E!@G\1j%sPDu xàJBxvSĝSBmk^䯹sO-7>5BF:J47Ukt:A:wA>ߡF務Vr}&Q81A(P*v7L4d1]*}t\ޟNՋl՞f8"cv|B԰S1DFœx6Rn8B vta(@( h: sF[!"8:Z9Z_55 Z Oװ#G Ң0la6;8w Ti;jY$@yA@OYI*J6O,Fn;_2d6^'54>;h0l_Y"<[|i]'[ٶXW۬3Q{F|HL{h*p*?nXFO)ꁪtGDC"o#h^0OXD@" ; D@" B.ʗ ~rRJ̅sF(aݑ#Vx .B+_D!RWy.!G JZz-yam=}ӮY?oP7ehP=|ۺdY+HtM8`8O&omx('CqAҁܰ./! 4 B8 ^"H)": :R'1;0/TPҺqϺJm2Jfllߌn; W-R f=7X5"./=UQxܡV/ w$n㣦fI9v'Q̈́kz!o[ZO4彅%bIfU}&2ҙNM?Wm4q{kmz;;G.{hI.'XܯёGy}SbA'8Y x]yTЃaX;< ϲl2ۈ0WW`V'![mm%7%mK;h2H jz44@S-BhH$kH9mbivRwWkOت۪c^LM<<_!R#9Ft5ls,ŁFu>CSb՟&.*:/jeVmj[j:RBy  {`dl&uHE#4W贤TeNgR"(D@" ЖD@" g@2L3(Mo :T-IEhY$B,\_QJP>UC6=`ȕ @'V虨ڥ={w+}IPWInm(ox$}Oy8><B"BY˴@& BEtj!xefc~a†PdD13cV|1FA\H@D6*"HVa!y|<:HhR(?(Pk|_=DGF_/j LG!H K SsR^$.7. {- C߄q|$cJkT`\8ORq];W}f{Y7یfe7yָ oCaV_F,#x.D ci| #y?b"t eҁz6x3=#f\x?O+kw_Jʙvjۑ"= ĉ]Sa!&C`h~ߦkʚ#"•yK "}P:t8.gk vWv)0Lev[B1v6v3b>ENq$D@" fTd BI V*[g b[[ JfGz{|5b-Xmñl+*B:t0ɑ'~5OuRGtPGg^- #}4 D>vS.b\ s%4W)]R 0?P .-H$@@"H$?"$U7þQP_xYuV;C"mX@IQG_PT2Bk?ZPS*a`C0פꓡ1!E"Xu?C[EpDs.uu>7k V@Lq& tlӡž`O`u b}xvv4E/!u@ua^0 R߾Z+ND =O͑%NKD)̬5\k6}V^f5c ªwPn@Vl2 5 !%4PWA*2z*i,YR(A JVcF˧E @d31.$aZy(XJ" ,D@"0X3Ag"8JPZY)^[ i& 0xa%ý4"~-pw.51L61БަSԟ4n1M7 &7C6ZSd ]JxysfgwCx=HT|f]cZiz:to7>?uy5X Plx1zHhf A}>XvvyHo`} Y!fM&|^B@M~KD@"o!#2#RAa f ޏk onV_EpQe@]jC]Kw-&/ AÝ;4C|޴4|,nxO{b%/LJgRk5X<|U[Y%o҈-MȰ ?AԹJj;=MԗGf_ 8~ƕ0_IUy ܈OtB^?7 Y~r|X„cw&g/iрA#R3..ТsEhrm~ s=b$Vz^3 ĉ~ˌ !5xaK%q]==~o/;ۡB}ee55\HBt|`,D_D@7A~@Bv**gut`@| \>yV Zj:]:"UǶ^ Lhui"b6}^\.n{R5vtt6oˣ5+%e#LR(KƢoSeAviT;l-UyG$?H1B 9lMmK_`Y|HiZ*bVKf~ 0* E"p] ho`k.'H$I(?lD@"P.MBŎ᫢C?co5s!uVrBA&pmtF7B5*qXP5,̋5#n ÇVQ7dflf:wֲ*3TAt?{|5{ΰ&<-Q nDB PbK7,Xj]-w-{[e sÝkK$]У$AR*e=lz@szz/ P<SԤ wS'0E/> UcetQm>IYRO" ~$F@rBdnPLu!z_?ra {=bt Y4]~m ~BXv ehd@?j 7R(~V*? ]+Wsvs}=nMڳ4br14j|!&0>1"6-"E{? $k:7}ЀO]qF/z3L51vŽ+cù#0z2|hL{uOP*YBpU!Z&k;|=ɞ~n{ˆ{C1/3560%b*юH `H$?"Lv҄]ɾtX) C\yq̳>Dp!N Y<~Yo= fiDjܕ:vuE[`|働C,ޑc}=#[SjϿj,]^4AVK|%Kkg- Z(+||*fE i37ϠiJK8(K'uB\~6: &Mt 37&c=8:x&{NӉic}kZ69/jZ {.+w#΄{M . 7PͿž?T{AAss/1*lDJMrՈTc=*ASL鉍7  Zt٪H T (d#@Lܖ m[a#{rނ5=tXRū?KEt;z'0`G|i;v'7Q"_bp+sdɛ؝2#>X0Ң,Wʴ k։`u Gi!JKG i2Yc{nVۋsF1xLCHY& 6ݒR?Y&7Qi9._ Įw"򅝑RBSGz =ǒ/ԧ7/}l)4?![CQ6"1z[8:>o^9 KNW) w՝Nt7[8/RNm6R8O@(y+g\ը"2WRQ  r10QzTA^YY 1/*i0ϼ^3pqt9Kwx+A:"i('J/~VFq%,^&g}^ó9i3,+P()JR: g &tM»f踹PE_ª,*W77,L>ghM:k"&b] ~@8rj3Z}{:7xl ` ` T `8<?1H pQ`K%b1י< { 1=(6@3/4B@V]0hd@}a^ ?A:k<> D҉1,,ד R10L^0_jo> zvJzO0( ' }ćx S*N俒y ;"[.C qozZv^(q}fܢ UJ}i{`ېx|JpX)ϖg9>껗gqSFYoSc, Ö!{.8k:N8ۧVT+_87o;S};`# ,2٭_W-|ug ՇS rLk2os$)kk2 77Sv}3`!(uՆ.;Ti=}l[higW|5n@\Nx%O)z&C^!h\ؼh*<Ҍ/Shi53mvZ+ԊFo$6`tOF<;^vaX7tF,5UU,8 )_++f)übvX,QxmHI*M&x}+2F~|TH50Zjů ̅[YUsi\X)` XnfCcbU_wE PbQiu7kyϽ\#%l7Iyقs%ii=#^5']I7<LL('l}ut@aFxnbzĉb #+o@H&2\,aW)P9xYfEnieXݸV| 16u_#q~<̤o<@'W-)e)UԏTqVP%R:ѷ,<\jEHD邢W9 &oۤA??Fiнl8ޗO%YlѪ"J=ˑ: Dw{Sҝs΅ƞ5{+Wy' )~*b> MBf~04('j爪}߷뇈jxȖ^XMt5ȳ1%<_҆M֝"۹T I*37(h[h~ѪЏkuw:$F1x. w+BN-z%,{(Ӑ/o">g!߉ƋT}x^ӳzw΢uMb{/o A/~=7C66>°{0vB񝙿Ao#~($%=)2i8Fl-]xܒ--}AioC{>-$-tg1>^E`r0<%aC;Վ"Hh#ɩ~c nj+Ư3"ІxOB30GB~R?Jt) ƨV1]BKnR itUKᅸ?#}i^7x- b!-yxM^~~Wgm92ҋŦw HZdV[Hn973k=̓^"VhT s>SC%SjF1xbGCa\ʡ;αsGx.þ(j Ze$gL" B%8vB%ay\wP竇5X%\ \ҎB{. c !VK&Wގe?S+5#ۘa?Ty9{ݠj˕!XoGAC~6~4:^~_vIk :% o9zo)^2ֳMl䪛F;8`Ǣkz*v-oD 1+Rx+ޑp^\DgVYZ".VyC!4 vu0v3O>!.Bb[7d)1;|Kp 5V@c "kKyYV*UB Dgl*MLl|0"w9r j|K"a| \ Y!^gER=> *$#o)o@@@Got:CĠxKW' ns SH EԟKi0!{jVjED*c;@rܗv}7G,g5+BKӚTۗ,XK6Vr xEZkSWkԆZ:dyi8p: +8wzCd{o`-K<""eӂdֺg.Hc.K=Umёj^:}*I!OOrk C̚#JᦃErP-Cٮl(QQkužܵ! CW'\`jš.%T<a:J#gP@O,,C&7o~ǎ*Pmm|S<Q  O0Th   vȉ 0o ` goCcpÈ EFu6|aخذy=aN`G NZǐ!|+E*\ȷw2Ǽ-Uksv1KԉH ߱\\*<+ ruV ǂqd"bDyd$83סeβ2l(:K5;u(UF7x[Uhԅ=Duz+UP삆ųZ0 #` ThmP,}% KNmuix6P¹k[كq\iBJyQiqȾޓ[oU$Lkk1b|m_~ p{~ԇ 3NWD`-пݚ]NR.y∬PmSI勠ԯʛഩ޳jSZ5o.\蚜ZI-<̤;lwMHDµ+Ǯ% n0 syr l kj8>'oy!u{o^ҔWm>1AgocP {Au.iw){k8/e֐jU>WCz/ҥߖ1L#1IO(s90ۤ]§pѫ`HOљ woޒ8Ս^pVvb~o=00tS0=e|VU14U~U8:<4 ]npbQS"]?d`^K_% 4GQJ*%1ֽJ<3F 0щoD$խN` ;q==2*-JkKB݊}XTE: e*V_ʩZJiW9F7b.mMœl-(wQJo*wpXD˰Hhdg]Yip\!`!ܢ߮_oHxo` ` ` 8#u"%Yl=W(!Ɖk, ۗ9y^4\SmWh"MNO E\^NPG|}w]PS`w^vP |$"H M<,xJmmЯp}-Ҿ,p{l@@A#&8I'@AUZz6s[f@3c'fEgEsY,|T G p"@30c$."ҖfK 8^- %|C1!^)P\F`ҭZgfs;9z<ݍ@/BN^T*yL !`- ŻP3> C(]zYjKjj:bJ5$䮂4{$=ь3!ZHL f JvӪRv?29X^*ýڻ PKh_tDs"5Ja rې_d~ZW%MrJp 4D*t۽<=_9Џ臞*'nrD_xꄱ^GQuBWr|S0UQgCZľߊc gȇU3)Ixlz׮wik 6\bS`{7W[#߯,b9[ZK5 l֐ΛY*Dv4mc"9C@&tpۂ-'`NP <#[|D'>5d ` ` 0^s= TFw^l;29W3^DƻdoF"LM̂J do~0mAQVVQ>>X^%fxCKIK?ZZWyJ)==׊wb:M67p7q™Q4%d}bz~c+TQŒMkP%ü/ێƛGZ`fC [kw][nQ->"%ENQ!* WVM;AZ vg"@L$oB07o ;~j !JW~MPG uDMCr*JY穇uE*XOևe%bǠ B)jNf<|4=4Q⯗uO5וW>҃ bt\(`dbT~3Fl^!'N_V2rPu ?cVLeU೹&5/}EqC)p#B-f|xf A7,&ZjVyu%>ANyazVRޟ9X6O]<lƩ-xD{sx'9RQrYff ߨIٶpju[%~=YƑ5kBfxIbTb~x#-ERq )Qo|CT L0wqC欠Ag!O@Q[M"rR8jx\;h b$O@2/v|#488J;2{_JER{|<~=1㐒/ 02xA^E *\4}[El)^<$|r-b'f /{[yHM{6/H 3Ϡ>ft=O8(oXׇU;ĖQg6Mi`Cׇ;igG^ֽ,A1}5T U8jy ĖBC%V٤33>q Ym2awwv?~AvKy=qs=0 C e1`0Nh]5̔n&gC-BbsA2]@ܱkĠJwBf9'z8"Ҥ;ڦ3Xx=PMtTJ598Nfӯ J}I|R!Gy)Q Qݿ% 7ҋKvQg[<*F4j B ifp=GS0m\5ͳ2DL M/"LE%|0];:-J sfeVj J4n-om0o<;"=}RڼH{M!=%0eE3eaBlڝ6 mEʧʧt sA)JD:Qb ` (Su`_9z'DUTOvO_'v:vɎ͔JJ%x7 {+Q bpxhE8&||%紭gd^yJ9vv;,4ڈ6󣜡!O.+uoӃkA &QylӝTo9F|7⟃A2F7^"!Ejm.#\oxV&c7䶞~ʼ,KײhMYgm O`%륓3Mi]`]X~8Y<ΘRFc?םލM- #< OOo @@? w9-b;spTsO m%PE muƧ/#C1/hBl0@H@1n2]d_l{P9>B \=9LΤ(yv["pX̦Hϴ[4\ #u=0:]5@An *ZcQV<{_zBAqޥk;@F,ښq+J,z'8=tA%So^N-F&F@K(ȡ(#d-Y+ M6ugNԢj˗ZR-<{q&a%zUP U4X~ ndKVď V} _W}EmC[I SKWW(vG"x 38.~??̗{E9?HA\6<9^՛(jO%|ʍ҆ª-x-ep[.jv5*Q YTeGjatL( *~7C@qCjw/U0 d#F:R/q' SP?H|;H4t6+S%PQtuFSx$2?h,CH{0TUSTv]ZvD8ڮ7w+sbG581W)Gɜ}4kRIs3$#crUEX+o!J%eBMnm'R;ɝljv=>p ئ '!ɯʃ8v ~ orb ` ph'>S^W^u( >ӱyM0EH!ъ7U`\p:8pOE?%l,1\Ԅy2nT-6ҳ5%τnYsiqg+T3R  lF]tudcn Ѯ`9 L7*yuς›(-,rq6}'TV­j> r &e򲎐VENM y?c Vp,$rS߄L)RA .FAτs?Gh@@@>!`8' \Z#5F9 fFk3:,Mu$ԲAwrޏ;^ER:1k7`=4Y4!O\bWZx07艸Y<įrԺ_stDY0x6y| R9@740=< JՓS2{]i]j'|? 1ͶT-Xq4!}@48R lOEF_Wz[100x0K@@O;Z͊IXAX  T*ŞTgZ0LpPH m(WwZ! aPi^UA^+}̕k~0Mt[/Q><Μzk1 n=S_qh2amY;>>ǻυQ~U%4 FP:f*x1?Q6M(W~Q}A[\=O={s?ge2Ik9a@TfŠEh =I~|*o1&c sA/!g%g@BZ/Vy%PP ga'kyZ)GZ,r+)p?*!ʿ0|/ʈW!Ub jϙwŀBCDru|=k/xvqc׿m9h Rˈwn nPp!\J0?ZK| ;0 ^Nus<.jy~ZEGWpD[ 0MJ>P!歿E%b%>䭄Zsp)M2>3:Z M&pD8>aa6&VS>WbhH.+bhDT7RljDgjS@gҎ ;_\ OG J!kìP=p8CbzpL-`K`Oa Ug(?E) ۮ8Q;ͮXEiO */lj,ʷd:+cB`G& M m ^PŁZzO6?:f@@@~#`8oD<) !6Wtb%6'ax^E9) P6ƀrL(DnG{R~?a#&"Մ s*Pq^b]h bL~AK%L:[>wJm.jA̶5^ cNx%("7 " ?M5;RsP5% 9KV hKFp(SD< ؊ gm'&X^E*.Ӎ6uL̗ٻ4BÍw&SYwj]?ߠզB1Hdb[_~ޕ_Vc~%Sx (ûzz"wxS .u"QC%˫ΖP{`Qq]T< ouxd "+~q?娤M>>Ƽp:'hn#7|`ϙ)^y>r[}<^f4_~}ƐLk֦wЯ>[D6h=I4/na!eWZ\) 'nJyI\^ ݓZZRVD k r ֘_ڙc#g3q䕋k ֦Fߡ` n|w+<C]`Gp/ 湤5eX0 OpghFyG> pOC"dMQo)L'? dZv-d 88*\ 1W^?GT\%cgL-bNR}\]*DA\isk EdN7eƂ'w0-i+Q#zC 01ݷyt|+R`#5~@SM9d8Ĵ#OWvo@~ۚGo\V41P^KyγPǓ}EB>`.}] r }>ưvZ6Hx1tn2U%J()<\/H 0`}mS?,vة(ފܴ(_'s0L(X$V*z$Q [$h   ^Ӎ7|dmV8\"8 cSe1V🽌w,ۺ|SNnJ qXT4u)ևjKڏ`8^^ny0]=5` +R ,B0OMySsN]iCj**ܟ+x*!r7B;TtINp0|bDu4Vyl?ό!45=H#9⁼6-"p$R]8w}wc LR)gp x9 Y*rYzLV7=*!Uɸ|o ]:F~VDVIvKp4)T , '{>{_I1Pq@@@@_[o†+PF+/"?8C=^:=˪Au^.&/bx4f!'I^yj`XDifV;O j+m0 C=-@W;$7|&#r|mG1ruDjHgv$^bG$g ZoW *҄\ i~x 'PfZG<0`+d0. \6@:vi_f5+u.I5N;b6IF@uAK{{Pkbrޠ0ݓ 3cOX/I9=a^dn)5O6ib/VG Hoާ:vRͦW@˪}Ҽ|!^- 8dAb>q"41P|Ņ1R_}]>әjwjs`,Xꌗ2$ZpibG6%m 3W9v;0o8tXIJ E_qU G @ʢb ÿIwfvP^-<|yAkRPC^Bʣ>t\Q{t}fFHͲ /&.|?[|.@̍ض2> ?O"I(@V8heQyz[\B( JsA`ܼfyKckGڶZmIuց2唇9FhqLP:4D"HM(N=@༾" a4_Du,bBTs֓D Y=W+SeGnS Msx'?xiQ|T~ Z \ E{:rď<pLJ(pU7/"nQk3B3gB$)IǰɨW}AǬa:6 oTWao*Vn."߼XT=Ăyż&3+ ;^ lG#oU.j1~zY*ҽ9dJQ[Ǻ/|J(z8?AmЊp*Hͭ2q, YvHw z!8Fbe2br7S@OK/@ijs$JrW|VjMMi:1X5?Bg d+p1%]N[3R?:Hռl|"򳮙,)c[&Sc7vٷ̸LeSVhIM1Z)VlL߿70Quw^|' ssDa |9@anh;= ʿ(uyw2πqئ

    j7y UBX$`ZHO/="cEށ?A my<$VK6ߦ.r~x E)ARy(C.6uA]zU-t%J!2]R̕s_>RU'B{s/ce=: =ŀJ-a *")-y 5 : _w>K}hˍ+\28ˈ{{Aܿ;7rdCblzi 2w5,pe KaL#P^+a5s8HϟHS;^84#j{j[(+|1dx=τGșf$*y{{! GXOZj-/\ϻA|x:0FJ_/3<Y!b 36H8:O&vdo&&G3; d{pi>4*QqaeU0ƒC$GKϏ A>[}!YX<>59\˛*HѼ幨H\ވ܌C_I!m c%cL)?xja q%R+/ufXaW= BR2^Ejn;|91/a0=eіrSv&L7w@IDAT l0πkWH5hZC\sAqvGrR&60P@Cۗ/aM/Ǘ-Dۑ>*rQEoa`>ND}JPm( /q\\PeB$i+AAP,OH1O g,pgQ|:\f1sTpA< ~ gNy $^\[.tm N!Kbj9zEBD]Y)ُ6KX\ćtQUy=_UF'=ԑwVmTɅX-GֈKl笹6d{xZ@$md񦞬vJ4m*]g{pR"_񢮎mlc"1j;P)?l"{ [F`f}O+ ῱yi  XkW[0+ԼF9 [- v[k"h5ngP**GMcc@4o EA[i/_d5j>33g;t=3)ì>P.k0aۍhMdΕTlo3<1Qɳ3ۃܘY[2/e OnxEu@M/ aFg\)NQEWl3@B +G }JCz*<.rNI>R99PԺw//~UѪ~/*Qњ*Z\)~?΋*Y\z I͵xc=Qf O@aRU=1` kb~ Di3ܧ6.'JgZALMtJ Ӽ7\|>a?\~4r6YzXҩ"3˼QO(XDςX _ֹ[Ѵ]WKڙ>?=$v\rcԗ*.0 S@M]9\hEApǢ auIr^W&G GuGuk=}s;m2eբ4~? B-7G1 ܈ɳPy`6NAtH2]!ϯ+c-ǑxdImJ7[:~]U#ZoH8L&ȟ3ԛɟbɦ%l5QY4]iB*9x7IB ZG#"Tn3)XSpW "G~A"\'5zA700x$}?PЉgS]mAp vTxàpgng\elk31PSJO*<d*x[6P+e;dBÿ%VnG  Ay:Zwg/N օ[Z^tB Q[RA~+l 6aHF6_Kv3H8m} fT0ؼb ##B`apL\wg@[)ti߁JS~.ˋsۉdn܂@vџA# qu5[@<+t-EOLutvS m]Pa n(\B c1ʣV7q͋VX+YzXq <.Nk@x@3߬VH7h;[;#[GG4:fQXKm DO "Gmi>k5f'M@L E|簚 a^ h9Xq}ĀGgw{ ?@=h   {%`` ` |NP82BsM,[xBCx]bQ)B(ԇ"[h-`;Y[ͬ%BlDPyԗ=$ ͍_<blY=>VQQdBDA<$g;vpäP@P(b:Ϡ$~ rծl EguJw?axdY#.dɩtO`yPP}-bڙ5& *bA@ TAT]wГwղBͲr ߟ D6BSTykDqF@EZAQx>( RS)0k9[9d GOBGǏ>Puj\Y%C;5&_*S@เ6%!+  1L~]+WJmTlRyldl b^X{P9|4E!g re8 `=Q,mZ QK<a /( C$~beX*ŕfx{!@Վ 6H\fHbZQ%a7C2`G% dƢG|gp}WR;;ؗtT2IU7|y3Wƹﯽ|"}?IO~!Ŭ('̯ϋDʱgmx(=Wd^r@V$4Q%j[ʞ(*%Q:yNw&o ?F4S:,kUWRQ"ƕpFWײyP{,ȉtԖFQ%D\7)m<ԖX 5J5fCp=^@gC{] gnit7 z"q HQ<|]*Ah   [Ncs70x@QP{L(Ӆڭ&gXY*MC(W*,B`~acÞc"#0hMP@@R}`^ @m^`U9|^6:2bT]V.֟n"s"U4wڨ{>NaaPIr ]e5pH!7j0TīoKQGpZm6_'ΪA-ئvhET-ѳ/iʳe6Fg[G.>aU}9tgbz. Tޫ v+Z0FaBu=Rw;K, IEÕ=,e6X6Y o@t~"MnФwN/ :ǺߏvqZ]py:ft@@@#`bv2Dt(ДՆ.R9NHNzO~8ވ@Oh#视TEkhNx'T !*:ΆU|9l;Z "Q#uTi*-z-9<8~NSv%9Wr[`i+^q ׫+vC$T⿄ YDE*qwMZBUێrz,JPQJ@l*59pUTd}؋12X> >~I:/Iha[L9E!SBaa2Dx%àłx%vJ]r~ܜXkfjʾT*S WpGmA0X1[ɻw0ݫRy[H = ] 2z|Ӓb^ŞjK1%ߙ٩槃W7)w볁劣ƌI4ae3Y"r!uYT%| < NFh#`GZ.-_)O O g{m68̉Dc.uz]$*VoZeVO_d&#(0% rddu6,B1ِIY}e8/v,/ E"Կ :o>1Qk#/{tB(ΐF#iY) KWû218tL1[WOj}1Qy+^[3>\U[_ !E:_䍞A Txx~B吔+R}!UȤ./HQ)9,]IZi)æml< u7Vf@:~Iͮj{h6XPB m Bqî"Տ [QxH羻rQx/_K[100x({&r>@k6JOJ) e؏P|+,PmzKȧ93{>ģ& 6l Iet49RﭵX.F@6YsVh:{]GKFYo>_x]d!xVbK/'x` p@+*-gk|yii(7vEN%93RS3Ϟd0:d\1D3?bJ1xZ&68 sl%YIR@?g P7TS3  =m5Ywl*[`g&@rT.=M(T(Op~ ,r4 hϓ';IMN慬,jkRY >d"+Tsi*'UD*{%K8}X3 Aa90-;ϣ}w7akXJܬr]I|W)|!/*\=Wz=~?&APArQ'#xu̵0o4/vIאHT*"=w 见A+c}>ƎV}z/1MfKeTŴz6H[PwO@ -̨`f⬾/z?Uވ,o:y=^tC72UQҋt~&SLyAz=|)~6fNx i#xy= ʱ~1A燜tߋ?/)tb?EVNckv% xββ0H/^^D/,-%l!zǺ Ur=#Z23b$W}eBIiGԼSq]߷wH+by i+M)_86 t:r\U^@"*e/ߢA7L_4fU$\)g+t%8fD, Ä%>3>J׉Ř  \dB[H4 7("`UVAVS,RǎPC~!TU= ӖTi%Ñd Bž7&{Ð!E% "$gpUGaဦPBZ@VQD4^ÍKP++4F1000   =TۡuJzdgoo,XF1L]P7e"~S}AnAf~CFoqP^xg[wZ) 2;×[zY26/o<^WBꋍ﫦re'F3 G '(2lapz C*P4ZÝ:BƻP^C =Sfn|U /Hb]q܀θ,֩%ghǼͭ7c~.`JmLDh+3.P޽ν 旂C1 6[xEYZ'X6 Tn`x(Gb:zܪm4鎵eTٝBc~vŅ80~:O8\8NVQ?~ґ +S#BN~{> </`m MT7MNGE9KBvG7(, )!t±?ūdd,rq_ ;*,UdfCd;|Zϧ#k8BzB:3/b ` Ԥ52/h84UDDsz#}_r?Ul/rC!qQ U}r)X2FW|R)D l&%k%YA .Nq,fX9SAu zAȯ}).џ_ po! "o@@@E VBP}g6["u9VC!$ V> fB:]i!M%y# gxd }s6%gQg-ڇX>ExJ<>oOGU~Z?G+P <>ɇ-\ (GF6 (Ǟ6~5uJ1}yiꝒtbΛqaj2ܞMY76PJ@ 6^C)_iO3ww(.)w(ȕjPEYAF/az35bh%}Jt[G80}:A 7TDxۻ9.evK(编%]]]]qQ< PٯK~ϣ_x>:׷qCBпkGk_px_pUb6E}Pu)Ri;\%;8ʶBBex8N~)Hvk˴DmFYH(ݢA0PgPMRH'l/O$o! 7G($[MBH*UjJǕǦTY9ey;k)~ wH" YD4>DF?3B#E'tMt6bPgHļ< ̰:@3MNQ jCm׆RHRIcZZSbY>Z;uEcO1VX?ڑ(/cݡ%9Y.G|6#E wGi$ѷ~Ɛl-E_8="f(;}@@@@*׀#Gx6TGJ4Px`@Vn }+U`%iր $pw#!(0GwCa+<3)ƶ*ӛhMa̺k*,M[˾v({UVJTaɾ[h3kp`) gj͆UmZ0>CP@QEgfrWK(O`ί+<ͺHV]"N/ݝHS2IK57Cïb,Wb8 8<`i9rXv{\.9qZĆ{CCoApdjƚ#ɯY]j" :[&   EY=z'+mg/pIND yy <| E7BUOsK;[$me5is$o3H%bjRPc0`bY u#>2=UjىlM;o=A/ؠ췐1dvt6rI, Z$˟+>I:Oy1]Ţ OG=>b,qv& #b8O ,$fJE5 ;;"+cÿwy ןI[V sfpYGB–a6vySyyP{Ck̶R4e}d{ځ].z42`;r| flfSsj+n!y 3E#|7E@*8-OFc.+{o(h_6G|5\dAyw;Y>n|*_Vg  S#_&:ˑ3}E-60v8Oqf{&@o g/_s gqyswpwud9sdQr(NRR\Oƺz &*Yx%W֊? t9=1ws˻mWO\\9~(tuU[Ң L#agg51VR29^Jo@EB(@:7^i)-lZbyM4 J+Q  ;G h+BtrȟE3j>|IbO莩|Y}I| /6L>=1 9o)BC62T2EҶsҔi)k;oY{Y'V]AM/?{"T 刺 Į٦!2iX>V {/ܿEt9ԁ* ՙ*+z%O **{)rxe8Bװtt]g6׳r>ܦ7T=[CQImU˱1yN9!ݱ55cB H=2>b)8:@?On  : OgXEuQj){٨v >\C\[F67Ay3RՖcφ!썣!7@E@z:4dAR8*8$f:O)R^S nV%+8B0}Ik44dh)ʜGڨ9t^Ma|}Vk8no|RQh,E-Љի.N'yh   { c 7{s&~E+bY,N~FѭT$E`| 0rrpzF9aX[ 7?v _rCڐxYM( ENNC "mVʠPP +^TRj(#<1rސ"kɍv\gS >P + rNd#|( .P@z Y!V?G+%$!yUscX_.=_۪\'ĭm[~D)ղϤ<_Ub&ÿ(S,LF@W?gG*B!/TR(R$G$TjV OAA$LWa` @ 7z M_*y[ ^֦>\rY^fqo^EE*@EnVMԚa~Un-JWB˅n Ɔ, ^^ t|XZ]KCm#fy!CGG6\x<woxT!u.zGxfяa}RuuCb"Ne'E^+QFPXy d/I6@[h*\ ӿ߃:N թ*X.*կTܠ99g8g@8(gYós].\Y #hꑟr/# RaL@u`C&¾S dbeK((ѭƧt=N6+Ӯ@B~V "!y~Vy|-4s:ɖ5MA.>9\@Dh nD%B uҗl./GfGq6UXG-"ȉx&7܅Ω~S"_N{wQE<7m ` W8})[*9_C0ۧ@- 17 BeoC{"|&^4D[a}SӧOCЫI0Nz 'TT/7?C4b+D&ap{+ I-Rg9'<%ܰI N }})>wPۮmWZTbEa/6@$빥@Ʃ(:"Y >QnZnM0tw?r.mz ӒƵ9MzR2'4 c2_L*rx>]5$T'?#UB$'$,P^ƋKcWq |1cܚW+Hs:I]YkPV΄y%+U2H|U+yi7+s_꺶E, nYB^+VU 8$&3ea0 "ĀwM˭gQ,`rOlERŤh#>I=&TXobV1ߺ[0s < 8 >bV/xIZd/$=$+2˄;k#Hx`Bpj/;ݒo4~К/q\W*])/(ȰQWhs6 53#DYFw? Tؿ\F@?M=QrHֆ[]GW|kvgI{wmr۞daI4סwE?iz[]%O::cP@@@@"oroNϠXZ%[\g!A:F?qĖ3:(*ɳX~2üV,o;y崹G&E,s9WmPi<4 z>xǽF-P !(}|(F10kd3f/_|k`0j\=A (~|Ƅ>P/6˳O/rۛS(WYrI(֞aCT> |A'zPʓ` YAQI٣||ne~kյFZ#ojZ@xZ Y]j,5 (㉙ v0dFy c0 CC;Оi!_w;g3 0;;:(ו^e8XyVϭX}&"4=q?vTSՅhq*CӿtVy2a DbMRFT|eR|<ֺw Hj31XQ#|-8鿰h@PȂaLKы~i]f{P9XgIs1P_1$\@ wa%֤h4tvrukkrWrxQk9LS(>G0fM͞ ۧB1{"q3n a\XȂi 8yy1ږ,r̶3*r+uG7a ;~%[mm9T} %pHoaeCp,_x1Y{fӵ3˺hHq=nD=gg%R"*rgu3d7}3qo! S*c Um 6f2o{ct۩+fch3)_u(,ڒ6/J4ɽZK˰R7Vg'Cjr xE=֋i%"4}z_Ah*B#+W>\}_0~/[@@@1G0w|-5B{K!>o U(<[͚P]" q4C,m:=Ԋ5I4պX%:ûھb5S+ A{nb61~0=f?#cлVy647G`&'֑e6gl^:Z8)R?OMDz]iOeRwϑM^,7/M^(,0CD7ME(`*McgW7ZwSwkwkJ2-ihS( sV(oS)~[V࠻0߳4]Oa;z+-i.Ԧkӡ0.Fp Hs+R%܁nj~VaaRΆhtO AdAEJ .mje9Jj& "wqO]ތmeB;%3R%RK9Be. A3__A3e6Eз&B߫m6j㐍{CyJW=WST:6M h6u] a@o\,vʓS0#4+&J5ofo ~_:XU) zAG`X>R|t|ϙ?XtǮ)t,--x؅[,}KD͆4*Q<c΄|d1h#N~9MSjݵzZ=Zy,{L)쯗98\A#ʪ05 ,*t.B&3y}MKj Ey9PF_OGNXd4iڸnڴ^ ۨSIe.ëAh +zxPHM$ ݙ[cg #GbnT_aTD|0D@^Gt{wZ ;@wUgZ\&\;${FZGemmYR%8`)$<iLgb]:*N͚PqQK*RDRo> (v `՜ݘS^*򼣯<6~i` ` "';"g\YDX}.6dD4)+<) .(URi]L)g#+zmCe-$\gVϮ>[ Y o @@> {P]h'XOy;KRCxv ԡ7LbG\YZLBq޻a5O^wd0>5_j>;$M: ҡ`r ^V yذjB@;oHϡ7qcqg^%%) I`:wvoq7yٕBƯrθ"jn /[u㟦S# nX̓DI6Zkm|.eceivt3=`I8P |J/_t_O@!ݣG͜ȕ}I kt-:`1~ͫWa @!AH$:$& ʆ#TE-_}HFq!hZb}ŬU ^_iT&ayZ%[]kǁցћ7ZKV3&jDޤhe̊ܖtA9 qrpv< Lۗ+8gV6_BscP@<'X0üV/;,@~+yi}{C"æ[oG*)7Sp0C0wp}dwc$ўykEgTWJ=_\i } &(p> n Y|d  Pj-MKCDVV0 >q}v+ g ƹwy\:X68}X?)Ցz1&`գJF/Tk^5BV)01Yw%Py"$"F g~K 5k}$ R)z*{ z,^9JPV@hy4Īզh[: Anȋ*p*;ۗcL:\' QC ^& ^o=Q !{{9GZD-!dkh_KOO|?Oq4 h -B%Vd%\'a}?d3ntgO~FJCG_tHEQ@gK7]MEU<[TE-y"pv@ A\tcF$Wj@_obsϋ;/Z_{ ҿ(W^c;h>EɤYa*]ᓠh0B]qshzg,{ɱגAa4bkb8򖿽ojA­bSܧնfk.kQKoVb=-ڄn |q!ր:6GzD+ON`PAܤm&RsvZ'%{Λ.*1&6P N#_^u)4Uy㗢(:=ȬUw`|k p D5Eţ8 cHq^D[pxZP"Hݴ9pJ==q"m c|i'{/돕7>ALUe V ,Kʢ]߅.o@O>Ӣ4f|ZLEz>՝{mU. :8Co@{͟a" ^q]evwј hP=@Y`A8,"G3Xs{ ܌ԒrqEjQF5z64Q *b8-0_Fi[)I!A=tA8㎀.G*=P?I;y[A'wf0:]4hy5MVM- 8vg|hkԇE!E8w82fo3Q    ؒ@@@@"' `a QD([p|v~Nsti)^,f1ޠ0 kiV +R,Po ` h pNCV]rCn=\!q~k҈ZϤÈY< n++e͓O3t0Ϡ߲5b,%bA13Q‾{,wth+IYf}\~:ߑ933gu,aRse~E>J? :B~ Jb+ Wf 3`PΩ4r*=R:cAoCoAtyVg&pu>*$v;ut$* w{8쩢@bÜ%}Vؘ^ZwLzxs?M!duτ!rj K90⯳0uzB{}=p" |*9>uz )ZfqIq^TV(+ysPm!zuuXk*e2X~eJA'JvwTH8fr@*(ZPcg0 \E3@{u8}xD'='QĹ$' Ϲ7,͑i]7w P^mCC:0?಻`շkS~gqqqQOƢmb؁n3L2fnEo^ayy]wkOm * ?<-.VPz#`=r=úmL z!&BMd8hb6'wEklGu6da"3O\D@" *@8ޥWW}Qc׏S4u|p"Pd A_"߫pG`z 1y8)׏5ZTR/l6H- :iS]p+~d*}j8\ (x8/|{^rʺ)ǼzCvP;i()͠$FVC)) 3kkq]gqdm3L?fd0}a:(DPBLke'0G`!p49qd}s_zog&Np1m}W.p4GXauɑo$dgG MγNʼn6S }2`%nF7Ȳ ^@`*?}Xn!   f03O}E).DdKeYO6݃gM̋NF :TKo!y]شC1Lߘ>M{OO[!( _Xun9DFwʋ`=4tb 'W" hݾJ)$-dH$o>__lo+ߔHnmtx?0d!W?ۂfje?0|^vUƵ'#mz#=H_ S$U?7詼٩0@67a\tA<vPX1]I1n.0^b_"x LJ:2'X7vZ;V?s~ ֡43Gah,Q;ZiTr?S\EzZݦns(5 2HmQ[ O* @u s@9 A4W%½9R4‡w"Lىx F'2ja{S: Fm#VȐqz7TM@FgX<QmWWL'G-nze/2}uR@@CtQZaEb{qTLkc{ZS4ٿvЃ;fZ/mTl::TvI1TSvizof~v]y0VxNp/0%Y~ڇX->`dg!?8NLtP\VJ9Xj6˟ـSq60&\q-JLùX6QaǴϞ;i{JQP۱X= GYg1jc[nuzW6\:~lʳ46QҖ]U?6vyqu9OfPJ6>$aG}SC+1+BzP~C^W/y3ѧqUuk۴].AIrrB)a (ydzt,X]Q:*]BS]< J-%QvVVO:S}}|HTﳕB|eH{95v 4;Cc"q3DOpt^z2 c 2uww7}0~KwxA4,۹[0*CL ҥkhwњxCہ ^6%d""V }f{c^ץo`٫z$!s݉$_D국"QnUL9AdT#y pN z˿;ﮕ2gWlp~ MףJ%7?_+aUX9pE[4qrR D@"p#B LcC#„ }=)H($0px3tVܫ|H`2_-vdU UU~lPM)a*.,[aBZ5=LO YQ7M yM y9*9[06h l"}ͅꗐ#I$ΙALpȚLL L WLL`h1D"oMK<gN{NpM"GX+Ȇ ~>F0̚2QөШkqito颍 M \ z(4nO5dV[k;Gjx4}[;8:Oȱᔜ8-{ d?·bBqbϰ1hbM7@Oh9sCt+ eR3Jt2w;Oii4C+0xШfTzX5~fN1Kc 2 < 6f#[mX@o8QYq,lZ͙h}ZH{҇iHf=:|}z`! [@6D@"`yyVQEG~GIHOJ7R" :nM[*H+|z~ap^Y+H$=IE>Mϧ3Ԃd+QtƊƧP 3S cOXw^=u j~ںZTp8NTf,0Z fx=3)W_Vo Xv*N^&ka]Oa8vmsv(~]d1>KcЉNWY+f֏> ^GmROb?8=? <' *09PG& ^c`A 1wW&gc| NH'@T񾉡C2/nqlxݭpё3+i0_YΦkIyMZOA)mz5uC"(0.+@޺l  v\at(XmBf>pT:|G6DA d1$EkïѺQh9AV.^~=d _ \}J A@¶l)O5rS3)Zfڙ*} cBʟֿJYoId=Zc#A?hH:[XbM׻yN覤)(cHJRpS'+Jw:ёIo|`2fA/uux5r%FC>ֳG4~4 ٗŸWlMKщzpzx" Vtx'y <:glޖ\ѷCޏT|sԅDNob,A ͣeV~v M*L:N:/fArw&v#paCv" V18=ݟb [nbE%@\7?[{6v>2 d p20֬ k W|%~ӿ]|QC;?bMA=,׍v릁5T\[1 U_ k8h -Lh1XRPm- Mc-!dcY {?Ls6#lYS&d;:߿#ULdHn83]L8cx?>^Lی;ԏk _>2UX|b |0M顰+ejESvvl]2+ ~xۆU8)ՅkX cp,B/9G-K>y%>Gm34d3M" O| oNkD@"p+# [ymHJr7&HdDMraϦ )|*5udz]#ck5&aQ2Jҭ?kM﷾ֲ&:d^xgIUkfJ6dOU3J-r>1ᾷFgKIѨ\? 뿍Wջe5W ѧً6S]rļTr.AҚ%K[ s~^GO;g B:.B_ )L"wE, JUYFQ!):}dݾzO v"S#eLg~GܸķJ;#$=DKu;O<x׊`Bw_LQ$7~WߓCD@"p! n].7X" ˢGD/{DGC?Lxtg`׉pJx>mD-<<٥Aj6>z{ٯ J5CޅOٟ^TUsqY]ۋ\pQYՏb=y2q*n:sPSءh۫.hi?xM-̲S+ ķӎ=F[+X[[!mv9#wWbt3g;}pC'b}Зov;4X }#0HN|DNdv ^&(Tދb,4ЗJ[S TEUON #㲓mO3]Cu|~U_k2.>?%8p L(_x: u2%\hs2jۛu7}qˊ!PUbXeLց@-ע`p{I/X3N>2p_\e@bj~(~bm[|@*yX൩̵FoCc(50!IM" Z?2ޕwLBC"  a/9J$p=MeY" \S/l^'CN@{aa@djha`ec;'*\TrZt[~bhv'jMUL)5"(I7B:25&xIw}ֽ*iG¾>{Q;yi;;"\wh{O_5Hk[rS:ZЅGceYVӘKG*;U(ٓ0 aM" (  QS}8OQauR},w1e S@c5tЫrJ\E@(DQYnA;Z23o[>v VU;%Ov4v6F]62jS}i™cȿ$`I-‡p^ 8 >n\ y vw*+D`XzW73K񀝁mgɑֿD͏WHH4:10$ kR~uI_h\`i.%vu…lDz!>3pxڻkbrDFC@pn="#(r'x6FD@" "Q_6TTٯ./RG9¨66Z;CgC@6|xx<=%d#0CxL(T~PW+ tL P4rZƢ6BsQ !*mhb;l1M]S46Ef>8At\`4oi&_UOx3'ZR }_Wz͉D@"ps#kdwsz$;QI$[pK~@.(lc=R>K$Qq e:G_ ̥jK4rwY >̶4=V%G_*LuɅv9=*,J>SbjXM[PW>f"#ϸV0@~/c}c 13ۏYȦt "3-c ~bR)l  3fdy5쎣-~Ox2IoaC>-k@&?]"2$nm_|HP_äoXT5U}VMwP.wTv8ѧn‹N[ڰP>BBnz-Z!Eh/=Hm k$VTe?V%9~q%s({M+Rs{5\@pLqpN%ZܫŝB?YaVpR xx<(YBlWNCko2U|LKZ =빠o`eo30q($/77ԓq ,{>Y v@ ʔADACl׋<q#*~4vUU3\ Z~۝Nk_ oII]Ro#8VǕ?3 ƑY$ ,J\+JNF" OoAi2qJ$7>?601"2s껪NL}wHMFj |:L[` 索cӞԉ-pdcnuS Ecz>2n֍ ۼSO|(]tow@#kQm-afej3#!sڦR|V74cSdI|.lRAc&օ &t7V8CI\gh⨑Bٟ I 4}0|]%, I$@@@" 6^?L.y&&Hn^IWPy\:vA )6NEeZpi`hZ(Ԥ-_KAUh[Jy:6ڹ6:sQ^>]uy>^I:l+x3+W_|pE~j_T r W?c#B$dٳQնdyT2Fdłܘ? ]bk!pÁ0 }m4 9ܙcXx˭![Da+a#iK=T' km8Ĵ[:V+G.*VT>N95QT) 婘xL L l+:8_^TwhvJjTh>=vhnj7_fDFWs=I`ϮR.cy:XZjd[`TxuWK; ;-E9|;(nOx/ѐx Mw>{$%HyLLw 1l5:sf?98Rh~Z# y7@L&"5WAUd,%AJQxc .?Yro/\}4sx!>9ENѭΏ|*ΤU Հmt@f3f@dPT=&VXH42Pz秊FVݜR xvc#?xNeK 2-s}bBKGYP&ܤ^ý>V̻]nӖH$2OR.H" g!y+[#H~ atJe(@${i |:VenH!~[?1d %м'tks=b]Fgyl~cM-fE8L{d!q="稝0e,LOL.ފd)1T>$ e{pUe(~}qU:kF5qqܸEnfo?%LW޺`|⫽mC/ȩxٜзd^*f^m t[Ɵdž9nU]Z]8Q!tA@?*A;NG!?E# |yogͲK8ۛ. X*^IQXՠE'*PmzZ+ڒ7yy*r ؓ fˢ&[:Bz#@)D)% Ԡ6  nj[bM" "k=#ϦFMs[&H 2%&rl92NrH Hn-|FBO_+ n\A6d:pw] `DK%q"55T+=A) $3*~swrR ]~ r(PZ9f7J,ɫ5/!hȫ#jNa˼qD!g`M)2r BX{.&c.={Q6;=Y@Q90 4L@u(JtgR4" X Ȅ3U|{_I^"+ӎ0p vзp8a Pԙ(Ôb8#>"F  y!f}"u$* =7#G-7ȰWy~ >ɧB2GI0qk3z}*LUg^2nw}c)/,ǠN 3rs# kb+C \ G8eHT d)+pSRe]2ZҐk~4V|6Dj"D32DK %JTяòoeel)kG4a5UGrMrBnsHU ̵*9 .,DJZE接PW835-}q I{}̞x3 =mx^bgl<IQ=ACVEAiIзS$> f >f~r]^}j(VdC*z[a7B;s)^cέ4~|Q[ϚCd:D\FE[E p ,x?;UċA}|.fl8wE_ ׋6heH߇7z!/77e'ҮgS_? sDt M !e23x }n^(0Lc64* X׏V:3Ug~xC6D@"Agm/|H)Hnud~HKv7>I}D@"F@V9"?^*>F]Snp?+{ug |>O{--PޒfE6=6ZkDRZfޑӧ=rs]~=3EGr_l#EC үifgi'0m ֑h5r0ĀA0Z0Rc~L*Tw!/82݁yX}GH^ f"_TȣlHTHp;F@mve-n\+XyV2 [Q s~0gle1j>NTм 5p @<05͘+dDUHq%#.JZSkX6 C`T "V|R~m:pD\(t-r0fANcwJg )Zv4.E8I;dβI$T"pb0ye%5Xo)ͨ1f6KjB^ 3>Of.WAbF>߰!# 9q4?G?6w8T-*Ba6t)m|r-+/POP.F|!ՖIӊ%c}bjd5[lӌLjF=Ũ0C.52PS|!(&ٕ](#D|$b%%k<!wD$8Q;@ǵ[_dоЧX8t/A_"3!2 ݁!V#X) yD-R@[`oo}ze4(Gb, dxATPVT\qQiFi1RUO@C/I&?> +-Ujv=bhCC+,G#Dkvjsp&(#Z0B?sߔOD\rċ[yXDD@ܚ]nD@"\4s<N$DPu$EqQP1ZR2mrm yn\E8gشʯRQƎ5boJtzWh{\= -ٙ>]nwn=Qu37>];I tD]`-Z2h>9֕\Z܁00-Co₣݈בe3 (U]bÛb|X\gim"2nl 0K$-co1a]N p짨yj XZ1 "hIQb1Sg*y\CApʌ?X>FP->Trm޳qP:an]1u%u<490En^TdComIϦQ鯽΁4o!ٛwc%?;h+C:Q|QѶ 31( wY*6G4bGVw.X`B4# @!x oDYܭ,C̥#SKc!4Mƛc--?Q Y~H7&T:2bK?ҝ/:u*sq]Z,}I ~mձWSFmqQb`@VǜL]Y?0yjkKցQ`sq?,_Ȭw( tB*9S5gz'A7d]j3>CD0NԻ(N@(i !"0=Fiо!wz+м^ˎ,zWi ~U*Z^&pm4QdLa}-坘A0bv8vxezϺoKg7u!eD7꿌NCL>%/W)9G|2L (K؟sg'A;㧲I$[__zQEY" HQODDNhS=eH$FgR0xL*]FJ?W֯Q 8BfiiMJB L[X] ~m{BLapWdRža]k֥'N\sc k;8v>>␦lūe/@{pcS`iǒE})ޒO!u5w֢`CZ7d֕V}2d7a.{Gn55Ͳ ϐ7SJ}L0)fXy2>:>fI~o-p[W\r%ATz*3tmBAvr(TuF.2c/4Qô 4d r\'!,/ =-zt{io X\1l>9=)`y,̦m$[6R@vn6:J*zu<ZEŪ}<+xZ~;)I *xDEO_݅y)בB9/R+u09\%09v@2lF1VcHVn͸W eFpl_r;}%̬*`%l s~+p;rfcMffkA\[>(c.T'y`'5m{yǨ$Bz6~o[S2 Ma(S"ԒW7Ӽ 7Qb2 c.tӘ }qfX,2`-[}wrFDE (Ӿ{#&Hn\~}qg*g&HbNݱ|gu5W{d'a&qLm4H,H$:ípU+yBw5M P-0V s) ~4(x F-ENKF15Fk,E<<06Aȝ~BN|9>CY-a[¿y&ki_,QrX,\POpROAPl*2Ndҟg kϢ0|S6^jk=4;-~fPRC]i֦̾7?oF/tq:h;^5,?Ͽ;O^.=V+|`b"SGRcT8Pp:p#D Jؿ rHwOw"{anCO'?So oOA.Xt r~i8q|LGTSa[*mROB1kYFKdwᦴbYrp3"kMeyzF;/܌.W <,(f<cÓ8l~?_A3~so`yoK$ǀ+ ]B”Z S0F˝u?̻~0.TlZhj&@O֊tAh 7 Vjhdɜ#;YV 0;opTc1Zs52r nϑWF,]u09yɻLLR7a@D;\F=+-F"Pў].*Qnpg׍; 8λ|=Xo???\83q~,!dkcʡ3x3,=$fI~851 nQ0VV :1ƴWo~Ԁ*'ZEd~׎-n&R.7g̾Ku?ira/ d{Y)oe*uC ?u}-퍿@ 6w(p mrʗDSɹG_]O yF`^F4P-9;[bDGK4O2]/jW!1g@h+\= Êqu>IH~c?q&j:܊H_0" 4<\$fF[{5Z=,ZERiU FM`PuٹP Rt-?VG0 g7 a? 9UyZN.H!un srcȵ9s+{EC}yg]m;VZjsy c)rv)Xa5ui8c+C3dggY;E U5E9wNYgs8oƯT: ߛ1BPO'%ۥ ^ar*WA;ɮ NT߮ lhc5@]xuoN,MX8Q(,]\m "'-.-ޢgKc> 2hH}[1),*bS~O~z{QK'\ x a)Bg_9:ZߠD+W6-Nr&t bBSC*+0b*g.$@$@~J_cVE;GWOssTx/ @1@1uHFDC3~͇ @5hUeX6aptԸę=WF9B>7klo`]1t'g |8=yYY2:īx1nd>Fxp')HS!^*w}rhˤLێ2kǛic3.s-c?z=s. mp\H# 4.woi0oQ[\{lݎ_G[@%9AEp}Qm͜[r?P(@o3-?`ҋtfMe=Q TGrAŹ{@pE$Px!,sϞ o99|% Xmbyo,H4 L+쒸@ȸTH9Hу ;{=yigIdepw8o}Xrx!.1l(+ ® ihY΅<2Ph7P?m N,66'u/ oĎ6Uce\G M(! [Eo;ʏ *H?qQr4r&y p}mmeukꢆu]kv|B~a~V*  Td9Cz(V,ȕ9a^,W<F{@`w/o fuBĞ\٪A%4~w|DM *Zܒ;/[Y XjG-Tn_[5rO$ʎ+[EΗuc [``N;?0_r$@5@ur +B.\HH.B$@$# {FK+B$@E vǮPuH7bOu=훼6q*oT>0A F2Ad^L6ZW~|-=eUvok7'䰡Gri ' 's~ZDXj2:qzt~ui\nj(s?.Ưi;ӃJL&< s-~Ik7_B0r0Frik':ըh׵;A$@k@l-P &5 X! !Xeng$@$@@lm5A4P4h#q Rz7VDAjLV/gbo H`-pBnZpMA/14Ż*L^9!T>hhh02"@T #d=N]*#`J&h7VzAje8A'-@$l @RևzFw!{D$@G PynǞ{&(0 ( 1}sGf;< @(@dkzvl`]] }Ӟ·UxdNӰ0U'#k&:fܖۢiGU2Zu{p,ջ-(0\ހufclUeve#H$@@oibJzTd<;T^jW|*)E Xy#<j\HKoj e|,b::`o|j{ +}l#!}MXG!FC|*E֑R8 rcHH`țmX.hyb{# %@i;Hz %r p=E ;N$P bSgY6gPdk8/Ny4 {@InHȸ?1ip#PRM\O&x@},f-40V`|V\bi;yShxxUV{B1$@@s7/k%\Qzo:PSC*4U:VZeo!~{9 $W5&q!b P/eTaFDNqJˬ7UWXRx_jYr}kV^nDJ@}$ ?B +T#tY ZEt3$@@pBO=oF @h9']oZhW!YR[z@?swn!? ܞ Ⅾ׵s;q.L֛ %r,;1$ ww2j7HZ W7*tk×Gʌkms;HSdAwoS&;0"%D.dl '6N@7S2 m({UwvzIp\&mF#它q`lkﷆ=#Yv{K8cHȻ`֒^$@$ Tv?Β{  (f̣ll_^#Wzܫu z0GA) .̏1j02c5ff\s .8!cQr].B$@s?_نTޔL{51@V=t)Ю[ i6W&AG\HY}  .ݲR31fř[Z1[GI\ Yq/.FHbMs1  /ܳ$@@p|7.K$@?A ̺ ̘&[)qVH`K6MSy0/urpu&* \̊ |Pjd.ӻ-Qp CL_"FNBvs -ã0~Bw}")o X z{SIz{p2*ubˎ(Hq$@s?:!&_)jE}UVClĆ=Qr E|!# +U @\$ɟ`Kh$ڇv-M eev~;[W63wj9$jC?`CIctxrP&H+3ڔ%~ +gI~@.@6rAO$@$#!!l#dSB5 7oj Tz*Q A&aleǵnIxؖR^ky TH(A$@G@ue)F< <>hR:+TH%3 /\՘7oԕ 3lVommtTNSdb l, T|VN Ǟ{&(0k>K$@F23f5w$*@pE$@[hpBƎe<5r`y+hte+6CH&9Nh(^׺I}`Ыm}j 3e0j2[\C';\ )^z9 @uCZX z$SsOI]PV&o&nravi TGOl1ܯsZ6F0_BpdϚ2/oE/zq<'4hO7jygH@^fP]Ĺ_ %=ul8 @5WP{ $PM9n|)v#6&x ҁ.=u'}?Rϑ2>*_cnK77lr5P8F md2?S{ *oU+̶ 2GQ5H@Ef s?~o~X>ȴ KVA#`!{Y/Pp!.ƔJ|d#eߛtARU/՗^/!6asQbcd].5EbI( H#aT(ʯ;M$Sh`)*|H%V@kP + "&gG$c0E6 RF p2XI{0n.e-1Nv~'e͂ N{5q#\WJe"P(}E XZt^ODz?ǖ$&.Ჲyo sۯu @3 <~ T oBޙ>1 deotVtp\,g>,u]^G# ~!@fHH`ϐ Qgm\P g}$ia-.4kj4k{i}i\i7+짣VNw0B@ f/.*O@p|Wl[gM !o':;!Υf Pl_(_P'K?R*`剑2'yh0qfo @m&ϲ[ƹNS6}H7Ȼ`rc ãN26lHW3Wf6ZG|Hߙ&!2 %JL9N!)+s"%\8+t$i:<ݦ|]^(CA7b,"n 1[+Ch4κx˗U! )#3,թ:2 WjRW&Í 1_vZy%ʙ |nm m!֍Gk!1`[IH9\QP6$@EAEqI A .~L~H@ 0̉ԿI@IDAT^GJ` u@j0l]"CuLpꓷ.2Zփ߇!5 )10kdvlnOTDYCxwlV. ~7lHΏWHHz DT|n- 3͉,]Upf1n^Fq$PxqCu[y<3+lq+dh ?cl0_FaznW݋Sl> @X@bS %=9 &+ 9w\HHXI/B<]_ >5y0!{x ̔m`tL ')r3X7o'ZF2v|bjL;\&b$.N9@Y.H  ?N9D2YO0;e~oxM^[ZBB Jxs"} B]&òBm޷l̐S0YYqA;YG] Cc$lFUts\y!.$@$P%P= XM@r7$@@0,!jݩfH~@MB;R @6Q=0YǪfyD߮Qtw}ai8/e?nop| qմì^1v!o/col<])v+[`;(Zb8 @M / r8&MpdvCMu7]4s:%k¹dj.( ([J3Sm,X9*_N( ^J)ȇ :^-J\8 (|8{5(S .յ_H ب#L-$@$cx(d9\}ӦELM o'鯏{Le$KTi1iB?&R[`^U}'T@b ϓ2rm1Ne.d }ݐa<W)p7n aphBV]!WkO9XMlHv!O\H~@4)fۊyW^jgWJ]+JdPBP0% \rR- P?"?O lyLvK\k6jcH  lH$? uX _Eq6c Z&@Up3ܒ]uP RQe8iu/a~4Ɍ_wJ֭4 ՆYIVxxO2n#`.922ğ:!o Jk@TV_l׾ ߆M\﵇Pn">F_&7jyp %zgϠPcuOm/d:z&H+Gɲ| Qp!f1!> @D uaq_GGn#1jVPaɹDd,y7B%yzlo9M4švR/P^HS[&&@;gl Z"@ZÒ x9r F@ ;9H>p7>R餇$"ɻUxwa&m ('/I1w @Nݕȶ/DC&-gmge<﫤y.&f߀ Eݥ!B^C%U~oh /wtv}A/ (AEzACWD %P7;0 g~K3o'+Fd seOAi.o8P\GnNf~][?.~HVJtvoTX= Z@$ $@B .pln,P-S j!SQ6ñmpvOޖOL5wR~[7Ar.*Y_ji.wJEB@FtCU6iމ򞼚.E:%_u6KHt<3Wb7I @c蜬D_Ųݬ[eY!\ZzT\we**H¿8J0:~:ԗIv7rhť6^in+7IF;wIOi=xT?X;}QIH{g& Z? W>ܾs*O -*x8PFI9ZbND:D9 s~yHVX] '@nBvH y%% 8wK$D~AL6x:k_'{t2TK \p:/\% GIGfE2W7{} Bd>ʇV:YڏvHH 45ocmq5[$7q^Ad ^׽QC#$*բ:nN…H`uh_,(߄@`<5l`Wˇ+ rzEY 64pG\WHb/Ζ4 C$[`],` Bے j է#XGI@+ 0yh}Y78n:4}Wy[AP0؃v2\HV7F˽[!#|+c#fl.|u0X> %P$ ~ 6̻Ud^KNI *J&܌[HCA(cͶG#F . P%껲47L;wO$Jy\?fC/޵C69ǿ"w0@m?$P r5jQCH` `Ð w `("!Ή<4 &jB:A_>|1*ӃUo=Ŧ[Fu.r2v8O:BeIiv /1[ հbk< Ffz J /~geat,2N4G@TH @/m1J4Ev,]^fM+*gۦzuZ.wRJ1I  >' K ϟTX7 &w,$@$z ${H~Xu.;*s[]=mtd*T_w-u r{^[G%\FH?7 nJ@  _0j_`(_=<4|Rh,ˆ(Ӝ%?$@a`2IސQɊdM7IJj*REiy]::B n?!-pwa>f v2E^N ٥2qUXQEi2CsQmlj'!WbVyH -n6` |P|N$@ wH~@mf~zsJ$@k@l=\6= זU'{pߑ<;Y5z8!$_c+48Gf5 J6H5H.zֵRyW6w)+Wxa.$@$P+-_1zT_ [֗_.i6W֯6L?ZXG$v "bn+g^$ nZh;JUd4ONz }Rv;{ZC{;,ee"YIvȳc+@> o!Bے S`@1} WXbs!e $mho#ML^#U'{a:1T?12y*asq7 5Ee!rf!+C<`/$TlbFZkm< H]v\L6Iu*4VracF|dWȕDk<& Q.KngȴGe^~۹r?].Σ1I7f9vþ PB5 (,4bkIX!w̭DK 6Ϛ0%`m ôt#Sol~Ϋ/m 쎬*Pa `;W(|p5jtKuzgOXP ϲ'r<2`͞!H`p$܄m$]E*omLbO:,h9p!@ig\Y,iG%Nu#e32B`6~m+v%6BVϵrl!~gkfnϖQ+%#-%œ@m T?|V5wǪ <  fa$ 'Saѡ0Aq! &P˙Y=uyP^Qp}R;%[=tRv'K4 Y @u5W>+H#yyZiLo23vӋv<$}m02$!9uɸ #`v=Zۣl4 4מsɞ ^9)0`H~@ n+ȮqFmyml D޹2DMu.F$NqH` Py! tnxLW3$tִ{j+4@ ( ]0@oijJ"Gz$zɗ]eSAw(7z:u03juD~?)^) .DžDb <ҍév|Dn8E2)r'Q3B"SKB$@@^w%rBΔ PKO,E$ ( _$.+Hm"cRYv`uRG:|h$wf^2TFAa/4$&5C sQ"Gv|eIoɗzvxwٯp!<߀fˣ $. Dm|n 3P,8ϖ$>-0/@ gaÅH`Rp/ʮ&mw(% :DzU];G== K,ca5"yD(xyXz? "w\]~HH )NM-$@5@=jhiIIm#^r~[" gt$ּ3 J18t eq0u%~MclQw2p}qw$1R\-QJI3L%ewGU"˕ޖBC E(p!X20zr*N J䔪>W.?)/w';mwdw)0N d H?JX\vF^ j#jC 8|v/ bfY𝶦֗uKtӡsR˼e>̷EI6x LΓϿH~ J]&PZT]›e=U|uA)WnbI2$@:Mdeyv} T0]zg:ڥ% Gấ&r^?Hx4l0y00c&[)ZgK?hze},/r̂@n` w>5ol @M ʕ\1&%HFȿ`ֈF$@$P%rKM 'M O o+I8+|v1Ecd:k!`*ed'C~q%B{YV<X\?R2CA,G]inpN .I;q 0ck.$@$@?$Pa/U ./ j;8?:ɜscgÓK#s:Eևcq4?g$vD% h%J\>Ӄ[ 9,-Tt[Xg33(ose24ħY`Kj&d_GM>$ &>< ?`- <u50 nz0Xƺ֕(m.]uPzWʗw$7.!!9odts5) eN|xVOK-{kUʷ@6[(ml2W5~n-7' Fep)ukb[rf0NW;;(m(3u MGiֹ5Wl 3I :c<0{Bhந pWU+u[ž@D /@X  4( L$Pb1"L/z2@$c)$gQ# mp7E<!} ûL+w3T+$@k, 6Ż(Yޔ;?Sd7,+cH7eC:\}HH~@`gifI"gPYnnQV&^EApiOYVqu%R? ,uΕ!͖KMmFe)S?zMAs[ToyHʖ-$BwK1 IQ9@}#_ %E7H@\ 5ǃ%Ć0_9sCRQrcHWx;Jy&}W_Mm^9Ize3\ L坹љBi ͐|ۅuexӿ.,%aHw~Ó @hqzT&&2ή,$Ad! JeK x6U e3IHDwJGZnFBpm(p,Z1ٕO{ZG?՞gp| zJ w5'D0+n@@?Mr3_ Ȼ` @@p|nڨ TU6EmuY֓:0uWO{H$g~w-H?&VhԿ3V{~|D$PS w|]b" }($ϡV犠Vqt O +(JW`G3qa[DUWuvвcl86:HC=Fד'e\9 \@ $q>*;­*nU tˏ̼hfA;T fҫ^  +PK9w@BEB ?/E$ _$܀H,`@q}[!F&4e,`zJYg `кdM+iy9+l#UH#lirL@M'ɷyIӮywepck!R>esؓI:v5#LU $ஙnv+5{mhIy5P`srnhvYM$k4Ɲb^5ߑksme;/oec? 2Vl:A@?rDjM܆H0 YnX0O+[M$PPTO @ O*Ԇ>%)dz0,p8~@jgfHy[_%a ?8r;9q.$@By cJpFu O :9XUkSm'_3BnP.I$P Ab̸r%pIs^6/}CƆ=n[WlW5fl\Hj>V-q#!`vrO@bLTcerA][G].O1Upnjg I \ ,{s$@MRC$@@eT.{n ȁ@KLPn$PK%ɓq:-LIvslR,܂f5(Q$P`f;Fe]'d|MJa2!-% l. <.2f߸reqm$K3φO&Βu7POPz B•B$Px` \>%\tp{كerRR>^E)1cݶ?[L$KMsd _"I@h:Ύ /Kon{8M@l2l r(kk}dZthL9LNuzȁȖ[fRWdeę( _v@^:udi{a< {2W@L@TJ#:#$@${ |` sc8Iv,LW=:0(;ƾkeM4ANpaݧ  h{: pESwٟf4yZk xMKZʵtvk. @m Z7vG),~6t}  A"A$P %N:g g}"#"箟l_OJup+]/JR7zCd>_'? Yg`\Z$#ߗnNnPi|9|jɍa{X t>KCO_ skqԣh#<{6H @Nς˝R^ Wֲr_*]>W$js8:fj(rN?MPTɹQ"@32.yVt[Z}`[!d6A#u2eJ׹MyW"g@aȷ $@@$b8`\P+N/;AybSP|+,(Yml|zH.o(_:{KI){_5.r,##}$k$- T#&.=lgx}e^fXr,N7 -Q߻dH'"si,Qʩ+fjjs!(<"@+ez:*u)2ߗ-l\9!3W$_Hױ6$.#$ qCEWO*?.$@@ oڨvkn+ΰ$@$PPto B&+ĞڨPgm'|9W<nuG+̓>2?z:PE\P9dQ? "'ZɗXW6׊ZT{'v,xb_f (7:H=40<|Pqmq2Sz+/KwR  猳$cQSgrcFvSnReU/ƺ3mzFyeˠ9K1,?>_!Yq5l Q5zpHj0;5l /pR)O.COUwyɟtlSxpEg(z1 8Aܿ t%񮷫? 5g t"#`* { @!p0" +Q>L>],&Ypѹ|4܌MqB$P{4@p¥?L,vM^v4*ܡ&+gLq{ϕQS;`Oj+xgHH`o%I@\`Daˉg?k9Xf'Ѓ6)Dxe?/^2X.ߩ Sx(&5 ΜYx+i Kp,7PI]pCԠu{O噡j Hj(Om*xC7[fdޱJ X=ãbo=@B'0[ ]cH~#H . ȞDF'XBZZ6ZU?f*VgޠmU*$Pχ*ڲC)ܜH`ȿնk4 $@@pF A VY1I`uo}5rSF':dx9NkW+m! C1?mu!XQ̾lnp=h+~coK4]SׅFkw/  ׉׃wm(^&O#K2uÿ!ҳݟ)$TφS\D.$@@WrElY}zoemteo;ZZi'Cs$oB) w -;ž:|{L.!Ş.$@$p:Hr?$@@pJ17Amgb0m[릭VH!=67@ѧk#Bg&0{wr|ɐ"b!Q2Dߕzm Y3k]2P=ve| ^{~ <.G(<(;ԗuÛʇ#TpUY-tl݀hu5_l %<;K[~׉¾vLv Gi6~]3E0Wf9Zojt`w^vGE?zFyX}h׶MTX}' '?l> @N`jCj$°W0xhBMpn:$ݩG3y'2Lg E+8dgDG, *K0[@_eVS^B_Y8p}B$@$fd:Pֵ;>K%J_>(S/c˦A{SyCOΞrun.$Pٱ] a7[ 5 |!W}k-s%垪[#Nxl"4@MJ?ǷH@ڲέPmc B#B;cl/ " :< \G>uuok UK K,dLj_&;H]7\%L;4D_Þې@p5](FݥVZt="X>@菃cqd!(+ͅHHFhksZ4JhiyR?e{#No*;L%%Bp{A]+ԋ={ @-#x'",AP x68Ś6:92gGɜ=2Mw*6[YrPA!F1Na.gMkZ8l$ 5A (DqQ\'fbgf#^fLwE6.:0[*{mͼd_#I-Qq b!n"9/_v~DONv;KU,^&&) AByI@$@5 7(#Roc ebnuf}J.;fHoi %P*Ԕv@u2qGB*B6xh eJl~;I.A8Nc :ŸRg)ƌ sF"4j>M 'z/,>$(n (ޓ :j^Zɣ dS>9flU nO(j48Ԝ d_; x+ʭ?kݭ5Abaa\;Uvb!X"Hwlj35{@g?ήμk=k-g/<*%h/(kG$@$cϋ}wGBXuD2 6-:.#<P?:۱@$@@ - Xy211Ւ'ԓuHoJPkNZƨv&Xh[+*r!1Nz:} @.0sl3 TLK;A&TO ,Ad0ef0b̀{jv7g+tm^k'ȗm ^5^Q?;4:YG !`:=t~R7 6 ow}c )$L]% I$@9O t:B!)T9~=n=eAT}\6лP;xSL+].&ÅH,n@IDATp $SςE6-a,1V0$oފ^my/iWlͥ090K='5E K;֮+k4C$(S TL+7@zH: 40"3d[m4 ďu6dWĹ2ջKZ[־r&ZƄm6fO 7 @M'bcYmP9;O[g"G[a2m-NfL)13ͬ6̬Rc @HgF[4VsLp鏘 ݃)ʾ&(/󤼻! #Pjcyz]eOvmb#bK?vЭtg|l]NpcK]M0^w ,@3}:aҘ,k1snz-~59L`J庵ъT$m˸./.$!%З>Vd'\H [pG U! hc׉3nC$HdKH^o4M$K=윈c_8qv?!7N&9&&(A*i+RW]sܪ,Y_w.kEt360HF$'r$@K Gt{/Z~P[t*:A|0t`o 0 "0,W{F+K@'D7zƌ&H'=~ҋ˗x/ʅ'8/ ^e2cT!cwIH  N{ _Q|*^ .zٜrLH.EGbB$@"hhXC<5z%&^{6bΉbR;ZwҲH&=S{%FҼH PP']'K@IGkS# ,@Ƥ jq-R)Jz:?v{*xwbE$@=fd &B$@FP TaFٰ&(]C1[`L H)=3 @H; *}#W!Hx|AKlfqRϼCgI?.xoUE˿$ޫj]mGUVĵQϢ;XfGPf7hYƪ TzIGR{E+K -Hȁ6yS_3iK>]`eZR&`Fu^|wUi %N$x5kk:{F$@+GŵI @&.Q'V@&2(eE.Tv)Tx 2XY],k(XbۄK`WQܔHsElV&"ZߜLG}}svH?ڸ$&- G.$@$@M Vۨ=i{Y~9p%rÅb%-jM_ Xl_L@j.?y^OrcO&Qum֡͞sewN {94$@$!@@_IH`i 'G?O^z5~"X@D2JGNg4Mx]3{T1Nw="p ¨4^2]`@$@ bdJ0 `-;kVa(_G~E$@JʪoϵtxQS|7X\r>r19Oɑ8 eθLi$dW: /I(̃w~g'kd}W\mҥȫeޱǞd[=(X=,fD= N9;D$U # #pcg3!yw١5J dFi/lc҆2"L p窦:3pLr-Pc^bָ9Bfok @pVyܮR{.o @}eLҊL_  lg{aw+,L_ԸfoA ]N7g\A*.(!vĦ9mgcٌ:X?^~[&(Y=qm:V$aD,H &7zhŧJ$@NB L+lI0 )G=4aB-vՒ8ۚQAfXs8?ƶwA.Y-p/j"#5h(̫&U%#4økJZeL=גϖIAoL8{1Q V:# %6CBj9nT!cffX"r Ƀ`Whϫ ->fH1][dbw8me|^G`5 *Pfb.$@i4 P+HM Zo~>-z`ټmhHxVvY2զ^_l,Gp\Sn8BNӹ^:bQTM.0? Ͱ4~*R7t8Ti3Lp&aۿ\5ehcr8*(JXrK  W#E'~`^zKlkϞ\*,'zī07 X1q)FjOD,I :P-*α$mhK0MMA9R6-$ί{of=h|0C$@JU%H@&Q)3WZ4)7i+wp6x6|mMUњ$[73L_q6 dY*0H}3;(^w a|iVǛIJ3HHRvCnuT$ +>%-Es\o2v.te2"XqCRp$2W`˘~K>T|-҆8pqdLGHwMph*FXa0wPftͩfGHVKۓ +H@g@Q{T ǩLTI9<{ ,+˛~Tvt{XfRln u\di},J] Z2 ^R䬵R) ٰg$@K?b9~<;E~Zz~ֿL{OWXV{lVI,@Uꙸz[ʽ@M!-x;j5l k3 TQ K^Ί^]$Pꤢke85J\:V$3>܎eeko1bN13f'k|֓ŝ@A#R;e2d ,j%lH8L|ؿf&B$@$@K}QaϻL:؞_ p9~9WǹR$`,a%#== 5P {>mkn|f],#@1&k/=W8?N[z[z}We3I6mۿpM_S篹M K@IwKvz Xsh_s,' " L}Z{yfoG c2L6KE{&̜;Y_=1,݌Xu0 >q,4'XU;7y2PT|o>-ww'=s`E)CUHH i!{XI!pb.Ї=?(twfފ]-nK$@bI@fXv6L!?Ov mjE'Kf&ՙ236q<";h`޴ݒ:%$ӈwo 2dJ$Ph/KHC W _ Y꿮C{F+Wܣ?ɋfꎮ쿖IܜӍ`7H+R㱣E;͕/{M\m8= lsQ A$@$P%Fo=h6.8ئh>h\(:y' awF L:Hy Y7V$ AK}Âo:LPޕqn.%0܈+pUor Tfa25<)]$ Q$@$PPPNB$PҭѻMQdcH`Mp#3feh#㥝lJ߻3dw\l30x5)g >g@aH;C׿hS-~ps, ,6SRqa@9ޓ p&ob.E'C瀞;awf0Ýmm nҲ_ղݢ?  $.xrTBWZig|\ :_G3>z1)'pV3+xxF5@@۪'EmM# J#! Dm z N"2%)s';s߇<|Jν=cչ8MFw`oFϬޠk1%91hW! $ HfIrndM3eIp-a1 ܪ[YyhxƅHHV@XC;L近9&`1ޒX{0WLze2a63L6ڭι 3U=ܫWce;:x\//z4@3LMNMI_,SIfu}! !@$@L NQg)^}kJa;o}/%xwf<߹T:2hh@8ע:@7$@k@e8H{`2rGp/֡2گPh |JFnwG$@$YȑhQwXs+$JFO#ʒ7V*H2X%4L'[^^ #ű= WXtgAO/-93+f7gV}彦Mnx= >B4sdc)XutFyU'v[}՟? 6 $@'pzKZt7/$ʢ,Gd.ⅪƸP*ߴc1mh`KΞ 6Hp,Ff9iՙ2ܗ6gXEfWǣh\HHH`uljg& K7`{(M7-l}\=9L(AVܖH&vػ.Zr쫃__l[;yk1ίk-3Jg`=!28Fp)p!"eҌdkIo&ia-`GD c2&Ⱥ6 X@`D *e'wD9{2-1cA 2P1 &sXtѲL)OF8/=N]`9b#K$@$PԷ;Ou&Ĭ%I킑nČ/ F o`hQ;ˡUfwZ|nъjZw #6?/Q*,3_ "#Is?έTVy=usy6( 9E:ؘe.f-ɻ#o;%@o $ VW'( {WF=Q0"P/rϷX1d/(ECĥH:/휃c2pz.L|\`MIsu>qccQ%Гt) z;fXNXfmu/Uhjf*  #eClvĔy.ek`=h64Yήo13Q/ꤟe+Ir Ej*'JZWUmnrw]gh]9/&9y1L#г"̥  '(T#W ~Sx0PUޓ%^HE\K5Q3VSaIj6 di\et <1` JBYc"pQSHH` cF?FKMV |JM6::] G8iC ;'?"6?K66Rc[2y5Go΍^3|% %@@zvHodJ<^O֧ouL I|p_TfʆrP|?K u)m)ÖVᴶ v5e`1Lnʩu|Zyx(0,#]KiْOzoޏ^+~m 5v$@$6 `1#> aNr_{H6ԋqt3*[f6hlő4mm"(<i;@9+&&],[V%F[kppTܖupR6P[nE+( rt4@,wEg򨍖"y5l  <& @.5\8{sB38qa+K?@~v_PtU8t<]l,߳a.4@L!X|BCc-s 73 N31P%\15Y"˅HH@{^dw[0Z@,hg;a~zCÖ+^rlgV6 d9,' D)@%ilB <Q꿭Mo6uU -8Ya0묄@_-I( rQ˫fȾ~n^P3V @!@~9l @"I}Q5oVj&[S2N*R¦9$V@^V)v{9zp1hNELDH!ibcRRG6:MV oP_M9KL%bjEFls:M$@$gOv]lw1]#Kū/#ˎ!ZȿdCyb= ʯFYib1%x_10R9Z~~>^nϣ @%@@=7l %&5j3£gdA "d ޕϤ vKs&`oDžR\.gc4v3?V2(_Ij j'onI8MOERti忀gloLllQL\HHH`mhn3"{ #0"y~Dۘc9ل?ˍr|-3evm*H "Dq[K>TmѡIo1`v<\X+JowYGVYhWQs AA6M& j%%(Vr d Zr{S4w?^޲TpIkn?sϖa[^ۢLL^rHH`-D%UdHꘃ?,0Iv;3:6͙…HH&#)g&מ*-:1#6ſN Mt:}sfaw4ZmQS6E$4 UQ/U OY/F7*Ѧ ZkbmMMtKP !JG5ű <X/?U+,WUQs A4IcI ,ޙ>^+GAH @ԔZ-hxg -/%a뎋8J>Ld\bZۄZ$sDc6a~&Xwr.:3097?a'b8՜(ia@$iL @<2 @a8ez<9Un/ď JN2@̕a~uKPk EOYqi*W'FT?@MpCP)giCn0lm ’'B{C:y֘Qͳ~;$@$(Xm @Hf3Y`q-o9$64<--CN+C=q{ˎؤ0_8Iʞ(0$@$OJ8}99ZO N*d#`Ш@ $ GXf(p CK ɛEam"-G@)ۛe\HHROE}|\ 7!x\K Q6oiy)g6ۑ}u}ސeHH`uP:- @>`eN>w}2N:QӫMM%./ p?ڽx;D% ۮf=6HF'K,1rPy ”, .x2_0βb&l Y v_TUOX%G&Ÿ/>?ׄik+ص#6R' vaF@$Pmh7U!c QcI@V} :"ՎPf0œ\.llz~2^a/&~r9:,eݦL>'aFS'0Y6:b:os=JYd! (takA | ,LsOEE⁠V6(hXRO}-#.t? @M H%p,Y~ful⍠އu:]*N6qS/u,?tW0q+*O+S&muvo[scl? ii @pԱALaZ#f˂.iߺH_1I?G죳y6{Ha]csHH` A4b~`EQ*aɒn&nW$@$@$ 4l6 >1$8Pٍze~v žjۤP̅HjI Kex-8DK1O_]Q~fx2[^qƢ mKF jةf\lMzi/J$@$&HH`3<6t٫[XIio(h Ҟh-mo8Vގ#3Lָ֢Sl5翇HVv?$@$P  %ZǴ=O`ݟo=XPX$}HWĦ 0Fk9ؿX? ƗLD):ɭXM:kResum ]'1LiA3$;/y`pCXv<dyPBQgc`%Jf=l9 RWyzs=yݭ0omWdc9}4 {I$&SRFg4k‘Ak+9tI:Wί8 mDw܌z).Ha6V\s>%9~Ig]39.ܳC @&@@>=l :$%'[ms@&2?U6q͕_צE r46-8A~up,)c[Y [dpl1ԗC$@9@ 3nKon9Ce `.apE)G4eIH .FZak!:b̏T}cc[J7#Jv4eG @ $(ELwٲzw2|= \|er`|x.hhA'꛸r/ظhCnI5@ߧ[i.$@$@K`)@$@7$2XC{zƦamdl90y/sMeg3\q6=4 }K$P*E4ʹl#kaA'|92,xے&eO' $&?HH`ȑ\.~AylFp{mLl#Ko7VmlI{r_ }W5W&XlIXBmV9f*L']+jy"\3-d+=6`nJ:k~ZPN' j @@5@.I@٨W](IMX<jC $:L`)@XW~bf-h8u-Qimb?}pdKm f,J2@Gg  7I%_fe\bzEK/a"Gg[ cIHH`ژ3l޷2c`(oLԄɔ+l$@$P H4r_F ,'tik_\;Y#dHrJ w0M-JfG gixk@Cm5ml (ԨƐ ^ڶMΧ5+t'%)E%:Sˆu!;Yu]b>h3͎&m" #RLx 쥏7G[:Qv j/*u,1+Ɨk T#?akAN=u;b/tDodYA KnQ\S/E$|]%dIJq{|!W9~oWPIĿqN&jjY*m+Ad]YKdzSu X& _ k_zy%p#t}UG.'tPypޑu&_ {V3gIH #c#c ~vN `줯OQ S\\HHH ?oN6X_{u[C*}QFzKepcQ9<!V ؊5L BY1 UzGpVFe}G^x򂠟|6n[Zf[FL\vI6_;b\HH"@R8H %ף_(QL@kr٣61M;5*I+s7NapMh/Ɓ6-Eg,X #'~Y$g¸m21lh'@V/b6*5jO)T] 4^O>O|(.ŇN9N; NmLEJq! \%dJ(zf5ˎAKp*z\||/6xQːXecb[`\ݑҭuHr9w` D KEk4ˎRb#c]7eB5LWG2̾Ghtk{ @/ X,x9|'I_OQG+8ZGɇɫdGcoKXWdny6= t '*voi:1 >byP[HscbmOB @!&esdd|`Vx)vJ}=_d>. ga^.$@$#Yd]"I|WcLO\~]Za>A}܋,ObeJF& WŪTatۑ @ N);D$Y0L@f^_X" v)N|j˥,9\^Iq G7̱bS^;H$P\vI8ϛoa(c'B$@$@D`c\dA&7>_t$M\^t)Fe8yLz&v/ f9G@!]*+  tj2le"+ G+??P\/xQfUA,XTI rY:: HH`2h%^ LLM:ȤoNLK>6y'˘\U&֟F[VFѬ {ys#$@A 4(&X KX5F:ט.mp!?D$@$@G*̙?$ao]wAbu nM^Ydl]\7`H"eLGo^Q2f%^]6~)M/Y6 6N:fIgȔ "X36=}/ސ `r$@I ;Q7)g"g}F0J zovj y5~{9ʞw`cVZKF̔?kFPH@`R-[$; ,d&hmƻxdli==[u 8Ɔ!  PEZeC%f>,y_%Eگ Yrt:SM`^(0@H dJxQ[oQyqB=oiRnk`#!^&sk~! @j$@yM KVu s)`qjB 4e i$fi-bS~z} WKй1v{ )wVSþ D2洸E6"N6N-M:y fHRo Gf &J  (t;WezM uMoc +3S;RwPŦv 3$ O$P028v(IjBX<[x}ՑwL2A MΖA²HʹH>]<g)H EH  d E _vqOWVS׷`Q|aL^|P{+{NsrqS?LbFs-5@IDAT/WA$|3Qu /7Se'`3ʯ7LVDcaTcF8cI$@$ZX<^Qr6D=^a7OtG, >Vj-:ټe,DX2| Oel,&.Dmo!{6h7yzž*2A?`h!cgO0z85f&ska$  @ @*$@I +Q*HL:{Z=M"l%vsn 2,v{>/rՎ8 piϷibD| > 0U"Čhr#^СhcRP)ě鱳hUmHHHlh2暪crl֙\T^ .)/8{[pl*u'89N@bIH%řLq+X&t!?W9S1869z3 .~x+ PGiJs5~p.wm' @@uP>I@vQ(ȵӥjI⚚T;#$8aWj. C7܆-}u#q)=Kʙ2\c @up1ńRkgThz~tJ/9$ñSh:I$@$3Yuc F%˂kL?^۹:OߐrտB@%q$@@@bfQ &1*ŷ&ddQ[tc /Xh m\p@ K3cC @NȸErl, ãc±y5A 3%kn|ZM_=v.H_*q 7hm̐Vff 0sZx-d_k LMݮU Ŝl.VkL̓FF:-[",HHH`ވ USsbo_LǴ{6yts~q! B%T?cD}0'?⋒mt>,ӛe|rc^RvKHH / N1;u#e,OOРbW}?0OU.,J c̅evrl# MM< @.O@M?WUNhy ==p4O̗+.5mqñiJ(PEQU3G$ Z^5Z@_N^7c[MrS1?_<" @NF?Bsx`ph<.h]`v r|tN-r+?H]GZr24NlF7y3qJ> `h*֛jޗI_usK$@kبF^f+Y'K']_flmW|orT:HH@8S - Ç(N*V_][,v< @*WM$Póf"(6LZ6= 'XU\( 1{-wwo9ro_f4kh&0nK2 _p1[yDG`7x1㟇A5H$IHH` Զj;{T+/04iqN{sY=mz\dn5Hũk @!hhd߬25Rη,fo\{5|[Fx-5 py*8=M A}ʴ2 &K!p}5f6" uGuǞG&g.k@&YeY?%Wr4ctkbWpKs`?<`K-V6)-[H8E$@K@̬5U 1_> k}c냧boDVhh-'  uK 2IHp^to(:u[.[8cAmbvGniyvwB$@$4Lit$J4-ӗ1_%!|X[ /km<89aN-(WwweRUp=*SYWL.ԗkx$@L c jtB3s7GyS:sinsQn5gOW$(xŖaŵ5F9N >`L}߭x.˅HHH:DBf=N(*NU4t/FC pT֝dќUǹ>Ir@ZXZfKJټf^cI~;H7.Oz{=HU4',z#]i, fLIFY+IH PP i߬3qU Da6erPMK]m>rKu*q'8_ UUhDSWH3V܎H c.0%)3Mv ބ%rf    G`74֟MpH$+ '-k7K#=0ٜ*tC}BY4kLH$@F S mOr(:.8^yu=thR"Gpnz <@YF\P3[/j֠EYKO$@$@  "^-\Q)j25 },gNTc>पf *ĂTlEE1DM41Fc4Ėh-{kXA/e̼w=w3f={_7Y޼wJ^baƗ*C#?.PcJ] G!@s`N2Sc qN卤ܢM~ TIB 0zj#IZLi'yS k/ٲ~ :O}k@Q 9Q+JLJ?ʚ_Gd'7+ c:6ow;3znҮPbE`pbKI;lj `y 0G.1>X iLIRKܲa_#nwad|bS%g頗hWc6+SM  07NNZ\'mF"ЗeM.YCF~[yShߖfsB@VCZ4?TޟM*M?}c|޲gvK]?u џ7Gcg@`1b!@`9_"Yj~2GZICtκ?/ 5!ҹKwr[ҽ nwr?!)ɯtnfkeZhtO-9  8 Mk게.*2|ms}Xvg6;ʕrN!N!;ɭ][BnfhSX痆tvc]gC@>hs%o㲃u7\Mק%\//7]Qwg\ݲМUwY"S (犾_KˆcqG!G06" s#J8jbi _+BfUYZ+JkeK3 uKW,Jn89]3?]dh%2>*ӒFNN{tֆW3I:eCm ot9ۯSZhB 3   @hq~4$?K ~VI߬ #A SZNVY'=!o}:*uN*̦~ ]wNy{[ RY2Nqf`vA+7s/rR8v܁!6яsZ$DJh§O ?䖔4vr׷. KO'wrRf5&mϿ2ϒg(D@`^ $׿Q5]tfҗ.?0>'4w_I+SS>;y~%z @ڏ:TP$H FPyG}~_CrR=WɎ&}^sZ, s'J kIȟ9|p!ڜx|=}q~wNzXʡN zXE2/ӱ3) R֍o q!_ޗ5 -@#l NN<ۡfˎ~fY$ه0_m"븟4)\"A-'\--rS_WP˴P0wD/PО)io&?BN <CoNr,|¹2lgy/?"t-gEss=@` t{ksiGrӫtcZ{J]Ò+s嶺f;#0?Rn4ݵ @y1mFÇ!MkqM!@_3 ^q[lD91R?krNGJŽZT&;uJ#ݖ/-['k^Rd4y^z{A֑Ӵ©N2/Q̔u3Q.`7mܕh?t|T@@F`9`lZelTVʶu?oiRm ͅ"B'P1{ :f" Uʷ1yt/tFedt͝גdMM X3%:v[Oo[ׅ8&_"a,   7),w:N= 4g]~׸4\^]3)W:ş!.7[ӻb:Khp-" @퍚'몍uLq?#(i:r _G,_zU$$@@^8)riךz?5;HnìEBKzχ]|F  ߤ@A$mҜ erKlLdBk~RwڣtKMY@yn.q6=a9E363)7nn)/_O(6?]ѭ¤KVҾ5zeB1)Dm 4J6"~Y58 n3_bBh ~34+uÓߺM'&rK]{JdkGvN IEDE=Sho+׃,NNE^bq$CbyYƸepљ#'G4O‚ @͞Ǹ#\&>мYzmNú#Vn/S{bUEw[P_#ic#T-#򀿧iuF}~yB'Xm:-e uy48:`5՟  ,Bk$@$FGÞ/o#!tcCfh6BAVuKIn)9PgZOV=t5el~2V[oRZ_! yGwܡ%F+RVȫB!Nx@}'ec)#U{"uX0fՆA1?ܮOw@[܏P~p:iYnvqiu?}R*!d.j5K^޾k>;i~&!b , E} h_ Z'ď^Ѿ]Mj;;Zߢ=˾h;e<_|&IeyAgV3}*m U+ @Hڗ3tt<)/$7J/7cA@E>ҧ?r{|pGfHlg;w;՟ߗd+,.JO@ x C72IKK3C%~SY~Jd⯳7tvQ;kNwyK^~&ԑ0@ } \?cׯCg!=܆챐Yg]&[r=묥^4k7}uoK6s#%5\rvUvsW׹A*+IfeP ȴ>LB6ުvY&oH'#:'!Z?U&齝 @KwL}tĠU$e4g-odo 髾p6_[sJ/.T!UT)߫FF;;:)ײS꾗4DEh/=D r E x Ƽ¬BzU!m߿wb P-@j  'ٜS@/Nc-Wjf~/V֟tGtje}Z=_h:YCr7qz?AՁLe!g~ 0;Mn)oZD?ލ.^ƹ?L]wF]'  ,>y~._BMR_:4Iyv;.XLr;B F/aOtr,  N %ĢͺY__>;LZ^;*,MOwȿe;2RδJ7!OY0s3nH@| @837rTZI dE!>Ǟ?:$X ԖOs+#{ɽjC~v=dsQUDu!xyy @`^ :z\&?i_GHiAi_|/fis.@[|toK.%~$|Sܕ+&d ­qY;xm PVدC:fZ4O?weۧxge[JV=o׿-:^R{@B 8Tp--2?Qx|?[>v'ewh >Xo}ý=~wKs ,}ֆ$Wݪ2ǿS-OkwJK{ᗲVȱ_\U Bs h 8VryZ~|cY/Gg|Rڧ?vgq rN u$o0@\->t߶)^3, h  h ֪w7L_Q0Zݜa Zչҟ×_wۿep{}yGOq7tȆrCh!Ӿgɂ ];7h_Ktw_E{r|Eԩdɇ}:KXX)׉ ߄@>C0#Hݍw/ԍ6__EO֗eZA,M\ D|a~GdMSoЮ>'[3w{'li3?M-kq -#ȰgKm.C6 Cl^)D~"̩ T@`8~:thaڐe!bCt+uVUV׊%˽n]wt -%ʞ򱮏|[vdE>Te+š M4;*;(y:L |"-n{TGv B1KRy!@hy~2[yÏ0;KZZgjOe]I\lRnbuQj ] zϛ}ŏuL4{ϟ!46ג f֗;e݃ţ)~jIaPjm0/JnSZ+bu{0@$F;@ j@n8~q!][#;,(z6Bֹj!LtKnIVԲyaMR;^ɏu~5Li_Щ:c>]A^Ƌ  Z_/%ܯ'md_?žDIOɂ %Oarџ\<^=Z- k:PX]NOAO%0ٶ F ܛE%ĥ^s#U~\Y|){Ο*/G,$h:|]Z~&ɷ{gA-]+RÒ!&cCA6q!4规O@9 pNU >V ]մtBsowh-Z.Uԯ!ӵ,+knIA.IS ;T6C|m3/jLg?@ $_֑_^œwOu!r~.OІ6b;}/\ ,X[y͏tԠޒe]ϒdd~R}i*w6G|9}ƘIc W}(/Gegu[vH/Gg@6V^Z-Sx3FgZ8݂}/: ϵ6@K [j|{@`4͔r_Fju._B@|Jw[5"@G!\HrOY?噙!g?~ ]Z@k9_Db:`Ύ CCClzwQH>K~rfef'wjKtL/v/^m.rcKZJqwGe+9w Xztx0   -ww_N엍AO~{3ݱ~wd,।4qĚr  0b?khYD5 VUjh.dsr, [ T:_&v:6tE ѭo&>uge[ucN5zԫ*F qxK=VHOn߻k.`$ ̆ f]@9CRM!!xf'BtBL.B-BqeT/z;P+3|U 9_~(P{ZS#{^tӡR*"@SIyLҡynl*/ d^}E7@^m,\5 |[Kw)2EUhXlN5*wL+JQ#ձ ,ܱEey7ǯ%oʓM?K]tDgS}W9~3wG:яֆ۸ujZhe>2›O~k!y$v Bd6%@X?v5 ̅ C@&`#TIlطdcljӿ qD>4kuKeN/e3ma19" u+?K>ZKV=-/&I>|:7W/-|ɇ~ ,yE~^_ ]Ƹs)NBgG˻Rcdm--),okG@&wuw4 4:_vqE҆/5äO\je9Xg<xa@`6BcxN G(WHNtv%7];RrJ9p' qGzoL H!3d {,}xHO['Do/[ Wv' ` {.?󵍫>~>8Olo܃nlb9s0k =GΒ\~@[6.*ǻe}Tg:X`p+ciP\ ($2Mnθf2) $.҉_R՘DSY@@]`%83 Kd 'ߛu&gmM >Q_g@ajLӾ3.IDATG&͇&*ͯZ6ʧMv)Ogl\s:.Fj6!N{j`a+ؼUb=c9j\MDK8\a _'` f.lֹ^gHvVzg HAa{m<پQٲDz>ўJaA󓄡שjp`k   @AFzZ(Gd<_8\*'{7k\"O?jaȘMr  . y}_*+WY.L^t'>os+:xtV]-Ҋ:*QT;wE!|@ uN$>NiH_ %0ݬ(kOku/]NP3@W:s%Wi'N_xW&4=RwxUֹn ?KFe,-g< 7+0(M8$?N:2ŋjT\WQ.rGF $[$x #{MŦVydmMt9mk|OP!uc:HbL|7@#@̫ s* H 'BwB|zFhoNg:@Gy/y0INghڻm0^׃ :3r,?]ky)LΒe!% (S- 'Xޭ+bs^τxoBJ!N^_Y5@X @yQ@m3Xwz!R JyA@X<G>< rvJ&<.Z:eԞ)-u%[n'MXF}niqʺ}]#O`:!{,]A}~]6Ai5e,N:䐵֞-& ,`^@-^Gax/bj>!x-3 C{?V-du(Qnl#yC'ϟEߝxm@;8_^+N^Yk=3n(oީ^5fLw?u+ҿ2wtDŽ%o 0G<^4#!6Zǖ !!Db QFh'%`#nb ۟ qjOYE6R:-{tY`ې8TetG@oBi_'݃~x=9C&IS=疐gAɲ4&> Ή _#NCԤMV2BK6?Y:.Q'6 ƲaR t zl4 Ul6m'ga qoB|Fd#N?3b ]B '"@fWL>n~pvz_[ q]kZv k QHfbN3P,}EpVX*R%?YT>O*$Itԫ)ٍi ,,7G(.\*ʧewʛdCkqg''ґ|ˁ->`aY ɻG`ȧ&˗N!h&,#I]Xu۫sqv`clk7W=;i'!"\H?Clh q!NZ3Sy>S7l)}բͷ*-=5@Dh}^W u⸍a(k~鵰~UC7cl~|4,6XJu=;Wcz}ufw}~c^?_?uܥ_e39!.ܞٷj/HIbE  $9}F_WJك1۵~]CVTԿ<[:WIv_!2(e7^>x6V,۞qcdžmUvRn|_گdO\_}޸>Ưk=?Ԑ~}_rwX+'l|EۿXo Z V(@,`#V*m0N4z6l۔+b!!v9H ۓ,ZF,ni$VayζE˘$-m dݰmg-m件>Ɲmn~Yc!măbawXmA2^IvϿo85lI,NZ\~̤q{ u'2]Yob%/qZXewQM s":]J3$ocZ =6OH=Bns5gcY9{0Jdr;ߝO_, dV>rvk-Ͷ&}l*s_/F+JoA!K[WtɞIb-cS#K6,6XlhY,[[roO;))V6~XH,ġV^5Ðh/zۈ_ @v*`_(,@Epq05mX#-Z=u}!U-Uk{a}Rr,R! ,gqk&b`K!ni˸՜fi;O͹Nv9Xz{x=5W,>`뭡D/m#^'^G_mdCmv[[5sQ Kҝe(uΰ,i2C:Ҷ_,]e<[iame޿zmuhG|1]j9Xt1?kcCXgǿRUuL߻U%U~+`*|U?hϕc.-!&KWF[?*ioQ{ՇeZOSғ-Ot\[{VУ%:h+;nNz-jj?M <`CS˧`AD]&{RrnM#uKg'Lc&TcuKM _#Њ}뇸ctqjweRcֱPyï/p'JWW3=7r\^%>wuszLsy|N_Ү+^o_\sxycqǛ161 K[9:|}wu:Η1FqpJYl/:cc|1Dk?9==Ŀߟ?)*1һ[<[yQMGvˏ[z;,bh,魖/1`|[CKҗ[!-mdwxge9c_Xڢk^YqYl_vKq>Wv7^E3[oa[ <9La1?}Km "b(?m}>MH;+pm7y a}-{Y\.ֆ]m`Gz-ڿ ~wb\m#,h ҃BoY FuKl_h+K?h}VKl v BJK_n/xk]cmI|vL.-zjVi9x KHe/;̎@GVmAj͝Yt GIOVղ~ZC-  P)MSr8<ĩ-tX5v\*Ea*|oNiƢ,2:wis6%=K|Gͭ\<~-\ޚ϶Ξ;,~▶=6Y\Qw%>m2[\b' Œfn}.d[,=,D2{߱h:CX^ǟ!',]nݎU* b\c]g|WZh1[8D?ҟYb17Y>Ć&ގo-<.nb|lZ2cX-y+񵶿;,%-vhBZzU-hy+Ya!]O qol@ڗ@j@滀5Mk~ @W;P [[_~ۯ*lw߳e%l;!M, 7z@Q{reu+XұIvVP!Vp! 6ZGϑ NZ{ϴVZ:łX4ڶ8b,0uذo]oYX,`1x=k->ҏX|⃶ߖ⽶Ke[oQbm͟!,gVGj1k6h*:D.itǥ(imb' _!P+WKq}.t\sp\v;{|ArlZi/L?e#G.ˏъ9@kՈ^' }G}w åYnf5#;ܕX|7=v;/_)'}\/G s߷eߞ][~;[\E{.wYzS|}KkUls ^bVa\;U@..MasX d,8b|f$3)lUh&.vޟ3"  1eCy!b,(֢ )c,pc:ƶuc1V_w\cyb[7<GhXK<.ۊscbKLb:ƸmCq16NmXt[zv6l. b:Vo/qtQRx &?9 ۋ}u4 )7Ln*(Oʈd㬇RGDW" [[ѼQ֟0.RqYK,]Ҵ /+CudP믂=@`q(iO~}oMn;_IENDB`ic11PNG  IHDR #ꦷsRGBDeXIfMM*i  bbIDAThYy\UsΝ\1@0@ gAP3,q@E眰Rs$SԜL+LMsCh*68kj怢 81<:+->s{ߵiM[ϴ//_"9O? (=ɀkn` UP$GNܳ) 'O-UghroZ[gDLڴYn-sտV_p]nM3#qڞUiU\gxV1oօl3?} ,%^Iy+l]L=U:StɝYzhB}kfqIxU~s~sn0߅82_uuLGKi D<..v qd[ɍoJx‹o浞 ְ};M{Om>b={ͨsXO 1{rD9Ja;7Y\&O0=QNJ}HhXkU%?cuNr}Haj )QiZ-!!iKُ=b:kfݣn+6jn `9fmJ' {zE.xLD}w"b&y _Op`99AqV9t\uEV\'ҽaRpJҀfPk4[Sv zmm,vr&fAH=1"ϙ&b>-6Hdv/Hqb )`N ڷQm[dL f|s1O=[5㕊=Wx-v*9ȇ p@ryu 0^j5kfBQi1k̓Y![*ji,Ok$wd5"K vu"%QB38Kr2~eHTˢyΫ R.Υ{hd / Y.)e: n걶aʢD7nȭ#+ۅM$wB+6C4C} Ep (/2E' |& \l:MHzU7,a`>EHM+65 EXp1&xp"La6~>=a1c(b)6%dY =E]|*S (*qڳX[;E? ZP!?\ӧd.m! 74x06A^+G4ElW _Ɛ!|\1X*wrEzҵw>U</ }||oFydH]"+]`ƗjmR7{>v oYY>k^*oQq#V-v9 o<; bͧBZ^G镍GQjhJaRb D3٭-[ pqEr`O_AjkhC*_x^nˇ =V&`>kINÏi Y4,$x.&d[zM3Ei}W3gZi>U'+Wz0 sXϙH<5!CĘKI۸ z}%+Aګ.:ҷ8b2H&CM9ߥDjK|Hz3u-p.CW!B> .TwKВ5I7Xk(,ҫ iuGijwm7\ l!GZDۯY7!x\%9\S8*2a~.Zg#$N\~'ŷp.'|2:礝\J k(՟p^/xS~#q Wi!kT%@X*.y Rx^Er>R %I7U'rka.N魺m:ϘICn_ ԜeOGmA|M8!' s"m)~wlgYK dsx+ohiog|$w2I տ= TWqG-&!m4 -ـgu_Z4/7Y^R)j4 bYUjӪԕ!7`KW\a3wIaf/]|oG{['ޠ?nFz[2 E(sE{CO# 9gVzQbrJ^[lv34\gq|ۉ>jbȡՠ`#tj"hLR'luFH9p |@fiwdqwy7>Mx7 kEͼ&'?j`{x[L𙣛w1ہj}"(/*a< TOf*ũ=R=ItԐ%<q1҅{+TTy%קKX5=OI5(ᐍD=*YmNݩԄJ ҊV e3Y}\S̥v˓:IGE,ȟ^~ӟq,yR,8]RV fItq2=H~}*>yen3dCe:+2@ O% G- l8ͽ]!(ua(Upgwe?+zѱgJoOE{*ȥQ 2yJ]EUNN/9* ȸ޾ȴ=9Myj!zσ̟~ߏ'enttA^ˇi'D&bplist00 X$versionY$archiverT$topX$objects_NSKeyedArchiver Troot U$null WNS.keysZNS.objectsV$classTname_assetcatalog-referenceTicon  !"Z$classnameX$classes\NSDictionary!#XNSObject$)27ILQS[ahp{$riseup-vpn-0.24.5+ds1/providers/bitmask/assets/icon.ico000066400000000000000000000102761461742244100230050ustar00rootroot00000000000000  ( @ ||Ԁԁԁԁԁفހހހ܀΀ˀˀЏ֦֥֥֥֤ӝӝʐԁωCӂԁԁԁԁׁހހހ܀΀ˀˀˀҘ֦֥֥֥ק۵N͋ʐƔʏΉԂԁԁԁՁ܀ހހ܀΀ˀˀͅՠ֥֥֥֦۵ôʑʑʐʐΉԂԁԁԁ؁ހހ܀΀ˀˀА֥֥֥֦۵żʑʑʐʐʐΉԂԁԁց݀ހ܀΀ˀ̂ԝ֥֥֦۵żʑʑʐʐʐʐΉՃ׃Ձڀހ܀΀΋֤ااܵżˑˑːʐʐˑʐݷy̭izقހ܀΀ˀԙϠļ뺘㲛ᅰƒˑċuT93*-*%VK2ȫhނށρЉDUD(+(+2/Wugպмکاک߭涗jP'%$011334++,72'Nqry[090***333212&&%Mi]弜ککڨݪ|v)&&223000+,,...001(('64(44('(&0/0/..,**0//333%''f漜ککڨ֤UDA+,-***:1/_LHM><+)(111122112222(++7MKGif2DB)))/-.5JH缜ڨڨݩ2,+*++L<=Ôީ<0.&''444333*)*%42|Ccc***(-,}ܟܟߡ|+((%%%_FMuxXa=13***333444444333+++-;;R}rOz~#$$'((nܞܞߠ|*'(222*))(&'(()000221**)&&'&'())(210111)))&()())211'((oܞܞݟÌ5,.122444444221))(-(5THtjieuGc(5<(''210444444333(/0ܞܞ۝ڛrQf##$*+*'''2)2[IuxoFn)7=&''+))$##@foژڛٖŭٕ͌]fHbXz|rR@jxNxؔؔؓέؓٔۀɓؔؔؓέؓؓؓǑؔؔؓέؓؓǑؔؔؓέؓǑؓדϢǑؓȑ:񣱏󭛙ﭚﭚﭙ𭓨D??riseup-vpn-0.24.5+ds1/providers/bitmask/assets/icon.png000066400000000000000000000476351461742244100230300ustar00rootroot00000000000000PNG  IHDRN0*OdIDATx|MCD{ogW.ݭVJ.QVbd!ؒPĦP[Z{>{rϽ{<?*ɽy}^RИyn/jt=lQa \ _,QB.&nGМĊ_hg@BA2 @7u^%:fߵE/[8V (zC{B<ŵt96NXCĭI؍)y)J ¯!E! I-i=ٳ]o-z]Ȳ s:dy\?c SC\9-]yB#MCI=u MdY#=r6]h 0 'YM!(%* A8E>DO.֠5vؕǦeYXLLO"죬R.N΀1~gxZ]Qi'#X>ˈ=/$dc qNh g`cӂs*(YKhyyJ @Cr h g`cBm21tW̡;%ߤANvͼ2W"b4*(0c,+明s`.R߅y=!04NXF&˱~0!S륕 A9"QLLzQ_]J` A7 )ū !0 eagb~v֌˸6!T*0>D,,B?]F`Ih+.t\ -r>-ͼ 0redbb8d`:6 Y92*$tgGԅ>OCX̼ 0uy٥Jg ؓ+Sbg`IBur 0!J! yiVHyA`@c3!0o\!(pXt 0dbc#ޞ1V[6ĵ)Nɼ 0aq ea8eʼN8C^а8D@bBvy$̑1/a˙%Ĵ[̡Q=U!gy9k:X曝,ksJ$!W%| {^Ζt"Ll;v,kP`,X6_J gHqt9/ @`8켐.ٽ!gyA`C&hgte. l~)J oKu>Ҙvme`whs{JyA`@L̈ˉ",lfXvxCNf[ 'g@`塧 }s9/ X`FqSMÕΫ:fB&@]NE쥕\q 0dbGL(˸2S*Z?2/ @`Dg; 1hGUd^vJ[lS"V8fyК 0`@r T'r1qXBi0"m ;Glr"w? K,J 21sdX5g_7i㐿uJamĸ~dd`oyA`Su&*RZ742/ @`(wvĘK+mA7yA`P&ˉKtW̡.U*"]+yA`{*N0KbU%ߡCÆL&,Pajd^4mѕ&b 1KGLK li{u렞,8-Pe*}ZrV7ˇ./ @`䰳3Wq^DLwˉ'#6Bbj*P 0fbzh;ri5Jr 0db/ =Y:^G{( @`Nh>]%]D`hh AMKL-XRex!0Hbiؕ_Z"2/ @`p٥q\duHa) v\ b lx 0CKLU'_vd=CO" ;-TI3*yag)%2/ @`Lv$.({z?:!2/ @`̙Xv2_u]yA`CdmՆӕ)o#LuLLW8˻csmJqH"މĸ>f12cNRJ=d^9➘31\vݡ/zxY͙صtY6L:m +Q 0ANr3p5-+[`CO6BLXj31G_v"% 2/ @` Z{'fGG=%RJ]d^ 0J՗-aKs#na")Mb":a[8  `& ;K-!qqV @3ΧqN~mQ ߢU3ejR╨LrbT.QꔯG-jE>i?JKж=6gb'UQ"-親2/)?{i.4mKԩM]zYEj\UOU*VԬQYzjԵ]%!mE7M F`5(÷R'# SqA#ɍܹ]oaQvzП~YF;#Yؠ9K!6򂪊7lu Z73u3zeeVџ͕˅z{f9s}d/œ;J'hJTȐwMx=}n.>9kPV_SiNEgO,}l~6 9ޱ:͌>o߀\kSZ߉E; xQ-aV8 ~D5&OwOHK* zҏeA(%ˉgՑ]b8m lj 6,X,hߊngM3oB>ht`P]f%Bd}vuGOFPЛ N)hWiY`h𳪐WZcc=װ Vų.|ZtvE D'ݘDtsXf-DaᠬV϶0"̑;?5ތF|FCvPjALψNXz}9S`mA\*GnN$/ٖ[/TΏF hEWwi"d[.!.S@`@ie#yaJk?yEw,V Q\O*%R6hiZAT]evZrRq6K޹ -W-LJoԠ~pLu6DȶZ҂f37F}/i/cUᅫ+')R+F%J%Kߟ (@Annn6pdђ!:.Q{--ˆKNԣ% e~~K ERg5= $/O~=7Ԥ^iJ[==<hFfd[R#9 2[s YM"0A^>^><YP*U5kRAE:uZjTLq``2rE% o_l;_gb{Qؒ'ԔyqaƦ9]û)>/ɟ?(+R5^z?u֥gyʗ//ʍ'Wf|lיDÉNYZp2ge+cPLֲ0vb[}c<+u~ع5U˄A\Y1wi_j”L%#2{[v"0S\Jqِ+ 6d/Ȭ)eRr "+C}[}Di'9cz3qE{m5xa_QxxWY5I+vV3=x(#~҂6/52JC.P`^[i >J[+̷sIE0E3%/Ҏv˸6U?VM* ⢢e:HIW)JIӝ&L%/ hE`> y$9&,Efm > V/AZÃ' "[`'-+ GT4[;{}gpo* y/j5rAl tH @`6:W:32ZWv/+@amG>='K ,) Vί;[ƸDqyZ}+ h- hZK߷ 0{@.Ze&>|m]WS+:=$^ٌKc&)#Q\Z"T;mDiISI_ ,.n{ZZ*dtҒIr#S|ꒃ܀LˋJa GLPH` d`IWh a`:8;Y3 ;ަG3GB\$%&ݽ  l#Ca~4Õ:Y>|<*uiVψYtbȹB6Qز6->ufYO:U.SH]d.KKRʕұ}!0`\%D젺<'9p!v>GsHWmX\@WOSC6 =mέM1ߦZ*%^^uF gW%3(ذ3|n^pF( &܁ۗoN+ 󡳭 l~؟#Pv4{ćTZqrqqJ#>mJ6_.1sH$*ʨGnK[3d?:qu&;]Z3✜7МBrVUR!w0)kpg+_J'k%\ʫy%32n={"KVG( -?b燥 72vzXynFθ 49vzn^c GP L0d/2nem`٧ϾLZDM%6-!6H릐q%mCp O7n<jo">i+[=6؜{y$/Gݏeq[-___L^шf>LZK2[9ȇv V-fU'*xY(U/K=K} l-gelC;{S޻q\7 K#h9-svZg7ԭmcQU(7r81˟1Ο<l`on'sb<Թ4K?UU.6\viFܦu_DiM5[x{/,xOB"bK##!0` Jg2*l~{:v0eeVoE˻ s!c=NFgY[SVRi?rwmRVR2=.eve0 ʞ!cqт3T> VP!Q=[j֤7֥ٮIjߴؼ1}ڢ?ߐ>xՠ&[Z֬L+gJ YK8c@IECR۴nHQN5 afyً71`ا=_komڃ3.`q/1*Y. laa1ٽ ^=24Y5=mqfɇl"  ,i~zkRсhŚOv8#dϚ+~2%*p ǗsVW-Ѽk^1xI?+\c=  W`%2>'mÇYZ|;cyY>=>XGg"O*JθYlJfi]qDzA˃,S> W {פ׫@`@-u MxuKƷF`Έxّ4Mwޏ h6{;r3 X6}$a5v ڔ[ְ QhKR~u S`oIKEds7JZ 71+G  ax7K!0-xhf"E 0B|@`@jVmlV`R&W(^2\-?c9~!u,<= ,12UgZRNP a*3P<.7.r.eOroDB9gEŇyƝPyc)3=og+VL|8 rs߯qʞ6ut2U,[NC;x)Ky?c,s6\Da31b{5eU7b -U9+1pmeWVrW grsp&U6,9T7?XTxE>ux&2.n>˲dL`…~e ?_ȟ!G<[n{8 K`fgf"ਁˌBpx[ۙVj<9w$}wKȤ5 L`1VQ*0d8e5vX7 8FںXK'Hx 84vz@`@oʖ0񇗯gvVFyR)k^mҹrU!`h,%->Y #sN$YK-Qߞ=̱tt\Ս t(3=\e.{b˞sS`~"'0>VlMcͺ<=&2ڧ@#ѐ^өSTrCrw9#c)sB [BGq)u q>ZA1ckԠl lwO 0?͊I+7lyə%{_ -ʶټ41dui35YxY&Γ٧g<[q榪Qint{%VJY)sM+[nYmFaПx0]]z!nIx`TUbM=e.C#&@ŋZd\*$..1wU4>#D/(.,866l[,͢7̗c\'h '0gh&[e̙ ;)đv,.Σ^" 87!2 4x2-WA}*,sq@JM91[do4?*%eGWL Yȃ3Q,+o'%K4r,M #/+=;{p-*U.F]鱚)xCr/})Ylq2vy=!0*_EŊW>(}pUl8UO!MI (pBS%yzy˾+jId\wɽhԣ[rًqי q0K˫H"VYft зbg*1' JiHs_@_Ҫ8x?/aaUyZ(笋j9E7k^Hlűa[0ժ-}6 -8SW8]&P8nRg<#4-1q7d틱{Y`A3/%hY\Qg+^ڣP'Gs  GX-ݲ*rZJt&!sjF:whi 0$Au|+dڕס/Br:G&-UzIؘ)_~!3Ӝ6}7?%ZW!䓷KJo;8_4i_M+d}isIy/: c ˔.y֞TYӳԺ>a:}%S:[\g*swz3gז&yW߽J;Tɒazz9.f.ڰǾ)n,Ϟ}޶ R`oSɶRE*UDQZ&*W&C&:i+B"VgԼlFN9#;E"*s9c)uH;Tt!WS6mOyqlm_?&?pdCZ2Wz,^~3Z8nNE0Uܲ:m{"%Eaimވthn44#נy9v ^zc!0`LNj $gQr'G6Ҙrv35TLU373 )^' \sV>hL3~v!GS48-ըYZ xK|(_VZ{9 -<җVNURkx L6_;pPN;q]=Ҵɉx=z 1ȸ8cjB7 bb'tчn_ΛKܯa0bd5"Ϡ9kM.,[{{} Orx4Wժ!tLBQΠRlK\͝:t#0SjIaq*T(#$3b9"Cq0Vp/љ q:9Dr,.~m9[= 9[,x"OդpsN4-0KOބ2r=gwj=,Z?%tW.N4/0S)B%;^~RZHU8S;/1rLTlԤEtT 0EbaC/,y %_\{RrsKus:,Yʏ yA`@""f+=Sia&ܿOܴLJpEbaW/Q+Fɧ`%wK>TcS\O妁m @`JǀYTЯ׏`vL3[/qdQmԄ} j7~2uJ}w_7O-RzoPz.T՗x*l#= KeZJ-6)A r7ò*<[si*WDPۨwAx ?t7N)OƎMJir$zRBV\,Z3/sR9ʕ%+ً!0+MI!yYm_X囏jݚZK=7o²T`Ġm_gPݩLڔۊ B9eEL^H]誔៪J\ХkL9j꿳\\.WnW7+[9}x5 8prq31j Ukw" Y'0T̓mtE:zz, 0GE>Ƿ`E?bizUf6]05'}l|i(1`jQdU?G1O`rNKVt=_0&9Fq O5i̦Ԧw8yxy<)->w<[u_uE?Oe)&^BN:-Zp1UTqQBq$5Lg.Nfq,nBnQ;b$Osx(,/κu~b7SI+(`m %-09aμ*T|(d(] !+; LF]rƭL?DEUqkfl̝JrZVmUZ?.[y=!?i_Ad$ORsEwPʵsLLOx>ei&晇};ד ؈k,lcqL3 Fe5A3T)Zy+61=Gye33(ߩt$ @`fge[{"ܰJ\vǬ<,"3> w|k}GQ俳n('/;c-|B`iĂPjig1Sn-R2!vYپ Y^6q t&ie'Rs0suV7y].rw/IId//ξ^V8Bw~J`'WC<,:/)jӽ^9UL݊8uNfAGBڱzg[K#7 ;ˋckyXEK;7hi)3–KySף8xSKq YؔsKl_, &w^#ȹFk6K4FSE.8}aY*II)f1]mH+ĎȷPQ -,%~yhX:>|Ete%V!*/0ݿQK-RyB}1~8s)?^"a]5_阂pĽ(zy1ۊpĶ\O ~XW5w7[46X~8\W|e cε4uI <~Aeu}1jzE ˕sh9|ry{VAd;d,/1+qQ 6K+kz:M|Y}1SYNя+R>#e^bv]yyQ`BD]L1fyXgk秺JU^!X,k5BkF:T\J%ȶr7QKH٪3/%_>t%2,Z& aءxٵβXb1[M'EQ.q2O`X,UK9oќMaϼrZ^uv㴌 E`,ghܚK2aoQ)TZ=Y%:sc3AKjrq=.XP&㘾7 +dq@8kI;V6ũT#3>,;S&HkX/E&_S]%i@-2 `\NRJY#55^Z˒+#W#/; #lrYY~TNe9md{i:235c ;y}iMd+ȶ>*R| .G} 3JkHZOGO>fc<6\V4}8K;JxKрg^me_ذ-*x*̤ѿQכK.o}{*>`ϕr1z L3z#A\^NY!0`r쯌ǚʶ#tewd*5Sj6S<%K>fūץNLu8~r8Y"_`bRdjc{W,%J(za&O?f\UFU):il+z X)k/F%_ו|Tbd#,@ߑwI.ep^^bƱK6 #]F|n_h./8bKGX7U]"}vM|oGqe$d .B͛W̸gg<^Wr /YI#sWAv\^\{$n} )WERe YDW鼃16eaNN:ּOct';**1[]ަq ¬Z<}ׯ-1p҂Pt~u7 *Q6yey{RKpU(`aNw昰wt6oq+*\➊rUp~פ:2k5p˅GolLjѾ)[Ez[ d}yޥNǨ]+iƁYvtȢJ+ <ԨYM(vA ;2҂f-;E=n Z-ZTd9QHB!.;rƕyȻ@!_4~(X*W娾*+Y!Վj–X4hGuo.X yz{WY.^E2drzĞ#5|o,m:l ,o8GOcRщnP hz_5p,?l2uYB_N_+О}U 0eXֈ?HQQ 1'}%u؅::ҙf #h͑i 0dd;PоND`v8\brbDpry]^⥕+/' ,0e.f&H 2/K^48Be^vLl&21 @`ȼr{Cga'^`L,kFcH`e/D=1 @`ȼ.drp9PRT&6_ 0ٯ+V2oy9q,cѶ.A`qX8x933N]:Kb!1 @`]6|qL7OSː!0)yiP^⥕ /0.tt,8L [>\yD`CSds`9  ]::3r" 0K̾5_Lfb$/Η%1{h6  A`3@ƓV^W fa31vfK,yL`CR7$ A2/뼳\`j^`-$ 4/7u^#,lƁ_5/1#vKm*_2A]f& ,T/{^#w:2Ή^ 6(޸.yT`AiyX#m:wR^b% O LrrL 0.ʊ7T.08ml] 3:l 3]:bq1Ǹ=u=^N< ,BC= #tj]s5kyqNy\`ퟯ;e21 V`,Wp"fu)A` uWי}^yi@`CS7^viy&6Sm 0`8,SS∺׬DY,L %ȼTPk.9K3P%f_[^XB4/s&C,(ˋ7Z:^`v4L쨶21 ^`FWFkꗗ.-Ďj_}_`].x3En&k}oxNkF`Cw}1Gv{bj 0KÆj\`-4L% L6:oh%ҠfAby)_:yilT1@Zt#0#K}uqp{,1.?  ˆw.H<fNhb[{ h^`μP'޻Ȑ{$ 0C1.6 3Ţ2G ,(u#oh21 @`ȼl˾VqK31'W'B`@s A敩umK 2p1Gvy.jqqݽYأpVu"4#0ye{xSҁBvifC`rN&M,]P Ld.zN Xȼ/qҴ._ye'1 @` 6 ,(3sL?zJb9'U 6B~{xG:K9ˉPP*/Uq]ґF\b'C`@UCeAž:(H {BZf$ĎT%]wyIo֥XFVK^™eT`|͊/tv&U˂K+^:SqD΂CnV^ӏt(i9Ud&PJ`Sq eh;T&h lǝ`!ڔy킘,/! !0ZK3LA @6Dt{^(ް: K՗q٥=1%L&,NAD7煾ؓrs8:FvllPE2/Hx} $!P!SbK.n:1M:q0:l!rIĎɖءu'xa4V.#ލT^# /7!\54D( f[-AC^v,KC Yه.혉'LhQXI3WNoDdm n1(Eb ; 1wөm;&fvCec_y@`A)Qamv|:Uff&caܘ]`e{p٥-زK 3fbm]EW)z{hP e6v^v,1S먄3b!6vyDDp%L e{b'_ {]u!:)P:  cU(5Kyz񱙭1tN-ax}XFLޟYJ?4FWޮn €R[qYex(̈́3cfUˆՉ /I!'=4\GSPRoa$'57ЬWQmTPY}w#,M/ qC{B riseup-vpn-0.24.5+ds1/providers/bitmask/assets/installer-logo.png000066400000000000000000000052551461742244100250230ustar00rootroot00000000000000PNG  IHDR22? cHRMz&u0`:pQ<bKGDtIME'> IDAThk\e{ΙsٙnoւТ-FԀ%+~Qh$L Ab@A\BFʥ4m}יٝ9}0nwgR$y{{$icXRCt[Hض>L)7s]Țd׽h+u#bLh"ac ["P3 fy [GĢ:-QT䡝#ƆD Yh>QD Tť*թQ膶')3^ s۸Тd֠j<3(6Țj_u+ i\o 0nj $,VS2A3Ӧ 70+Qț;kOCIY Fb1\\53B9 3FU_+ɉ ~8Y5o&0*HsAh X0H3&W4dm:9@,DDPʢh1huMSO5x*'V(PdA bszB?rS> Aft}Ò8h ꮂ!mqTH7I[6tX?^7QdW]9n^ړw0*y9tHCW|y{WN$ ၝzتJ*P zwd;tuJo=s{ o\U=˰u@h* ~l{y?BR -=Zy%?^ a"BT%m!$1ƀ@~@V^p+eW|q7(%+G?qb$&ӚCDspX Zf%c}:LWc⢓&\r9***OOނ q/d2Yzzcp'Ny +.́gAS(T*e18%uÐ~< ,˒3uÌj<öwp`@ZFU*ȏhKp<ZRR)Dq&ZRL'%3$RiD)zPkLID OghhͿ O='N ug,($s7?篻eK;,ů줥5~PDj yLV@,ִsĻfŅkHf~l9mŽ?ޖ!NOY.W8y_ry=Kv-‡yq~8sq!Dpgʠ!tҒR>JϿd;b:JqlXR8۶pb1%K=~9xH:& #<_%bCd ;#e%E+֞l6KX`Cwt>~hޞ.'1ǡwr=O ql8vtKtvv""E>_Ѝše΋]Dr T*\#ΐL*Di9e2yAeYtvvE!B-ۍmcjun 7F5\Ⱥ7?01RxO$qxWɓSrlwzt{}') mOX5vŬfD61Si,0,ݹܔI` 4W|zlG{s'(}'{zg`ъ6nW)>DKDII`[M[( L Ða2}/+r/Xe@k~ev6,R |e;L6ũQI;ƷceM*!Z;mm3Jm2H(~o}a+X~ 6l[CA4 G!İĪyWԫK wN+)%l4Pr*c`i@EgptDl뮗U$v(]"0:2X~\{Ү$3nn`#Pjl2PbLk 1c4ƚTRHeRZSUMklw5*Nh}&V\4Phlb"FPA& fw4h3Ъ *kfV;\ _ ̼@BXaS"P'朎L'| !"f cZ`f{mbKPIHDKkh7}&ိ(7׼j_q`c5x c{,hGQ рB9SJ-8HvmÎ Sh8M8pqWc)0͏.Fi|cIp9Ǒh]Jؼ9룠U|-%tEXtdate:create2024-03-05T16:31:06+00:00(%tEXtdate:modify2024-03-05T16:31:06+00:00u_(tEXtdate:timestamp2024-03-06T14:29:39+00:00djIENDB`riseup-vpn-0.24.5+ds1/providers/bitmask/bitmask-ca.crt000066400000000000000000000010321461742244100225720ustar00rootroot00000000000000-----BEGIN CERTIFICATE----- MIIBYTCCAQigAwIBAgIBATAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxMRUFQIFJv b3QgQ0EwHhcNMjQwMjIxMTEzMTUwWhcNMjkwMjIxMTEzNjUwWjAXMRUwEwYDVQQD EwxMRUFQIFJvb3QgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARKTm8AKkqK aMI7dEarRRGEOPa3i49YE4bGNHxO97h14urXOROJWjnwHJdJ3dJk16oR0HKohXR7 jSxyukoonJkgo0UwQzAOBgNVHQ8BAf8EBAMCAqQwEgYDVR0TAQH/BAgwBgEB/wIB ATAdBgNVHQ4EFgQUMVywfKRY9Ec3n98PVIEu7kyWKHwwCgYIKoZIzj0EAwIDRwAw RAIgeSMNJ51+EvNJzqsISauhOTbFxiUnnmV2z/+dxYeCPzUCIEMXM/X2ekzHEz6V l7zSfosiYvtQQL3ML3sLnVMmxdmd -----END CERTIFICATE----- riseup-vpn-0.24.5+ds1/providers/bitmask/vendor.qrc000066400000000000000000000001661461742244100220600ustar00rootroot00000000000000 assets/icon.svg riseup-vpn-0.24.5+ds1/providers/calyx/000077500000000000000000000000001461742244100175375ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/providers/calyx/assets/000077500000000000000000000000001461742244100210415ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/providers/calyx/assets/icon.bmp000066400000000000000000012773121461742244100225060ustar00rootroot00000000000000BM~|,, @~ BGRs[DbeJ0!cJ ) qU 4(C4L:T?\HN bM<"fU  %'vN <.C3YDYCbJ4  !jPF@ * $+cE5C3_If   `H  &2 kOQ7*.7?*m ,dP<3= "pT[?0'fz????=$+ +f-u?????: @1UeM5  "2??????5 \F+U ,! Yj8???????0}"pUiG7JX!fy=????????*l'b'`Jh6@!fy!fy  ??????????!Vg;,+ժ$uW# $!fy!fy!fy ???????????ER[E7)`q!fy!fyas&-???????????>2<!rXtQ>Ra!fy!fy!fyZk4>????????????< &+j0 lSP @K!fy!fy!fy!fySbBO?????????????9:-9Ǝ +c ! *1!fy!fy!fy!fy!fyKYP`??????????????5 ZEA1 cv!fy!fy!fy!fy!fyDQ$^p???????????????/{!qV]F Yi!fy!fy!fy!fy!fy!fy=H*m????????????????)k'h;nT: IW!fy!fy!fy!fy!fy!fy!fy6@/{????????????????? Sc5)3$m -"4>!fy!fy!fy!fy!fy!fy!fy!fy.75??????????????????CPK8 $!ex!fy!fy!fy!fy!fy!fy!fy!fy '.:??????????????????>-6#uWbKp ^p!fy!fy!fy!fy!fy!fy!fy!fy!fy &????????????????????< # * ;ɘ4#qU$Ra!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy????????????????????? Td<ʚ6ɔ8*?J!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy #?????????????????????!Ue<ʚ<ʚU@ (0!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy ,4?????????????????????!Wh <ʚ<ʚ=əvnRQ  bu!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy:E?????????????????????"Yj<ə<ʚ<ʚ>ʘ>(^ "Yi!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy btHV?????????????????????#[l:”<ʚ<ʚ<ʚ=̙B3IV!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fyZk!Vf?????????????????????$]o7<ʚ<ʚ<ʚ<˚UcK3=!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fySc&dw?????????????????????$_q4<ʚ<ʚ<ʚ<ʚ=ʛ v[8  !ex!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fyLZ,r?????????????????????%`s2<ʚ<ʚ<ʚ<ʚ<ʚ;˚I9q -# ^p!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fyDQ1?????????????????????&bu/y<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ@Ǘ L:Q`!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy=I7?????????????????????&dw,r<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ+ժ2R  !fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy6@˜1=ʚe<ʚ<ʚ<ʚ<ʚ*k3=!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy#[m??????????????????????,rN<<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ7Ȓ=Ș*<ʚ<ʚ<ʚ<ʚ<ʚ(e7A!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy bt)j??????????????????????-tF5<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚIے<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ%~`:E!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy[l.x??????????????????????-v=.<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=ɚm<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ#w[>I!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fyTc4??????????????????????.x4(<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ>ʚ:=əK<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ!pUAM!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fyLZ9??????????????????????/z +!<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʙ@̙@ț=ʛ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚiPER!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fyER>??????????????????????/{ "<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=ɚ;ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚbKHV!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy>I ???????????????????????0}<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;ʚy<ə<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚLZ!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy6A  ???????????????????????1 <ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;˛E;ɛ=<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚT@O^!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy/8)1???????????????????????1<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;Ν<Ö<ɚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚM;Sb!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy (/7B???????????????????????2;Ș<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ@<˚<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚF5Vf!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy !'ES???????????????????????3"rW<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=ʚ<ʚj<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ?0Zk!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy Sc???????????????????????4G6:”<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=əP;ʚ+<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ7* '.Vf!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy&bu?????????????????????3$]o-6 %4<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<˚>ɛ!@<˚<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ0% #JX!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fyZk +p?????????????????7&bv7A  +o<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=ʚIے<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ9,5Vf!fy!fy!fy!fy!fy!fy!fyXh?K &- 0~?????????????7&bvʞ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ2  !fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy`r %;????????74779;;;;761,s(g{P_8C & 2<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ɚ>Ǜ)@<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ3'P^!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy dw )1?K??????????????????????????<,tER  (g<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʙ3̙ <˛<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ'c %!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fyas #+q??????????????????????????????<#\nWB;Ɨ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʛ=ʚ?<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ9Sc!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy\m/89?????????????????????????????????>&bv2&7<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;ɛc<Ö<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚWB #*!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fyUe %at?????????????????????????????????????;N]/y<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=̙2;ɚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ1Vf!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fyP_ 1????????????????????????????????????????6.7${^<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=ɚD̙<ʚo<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ə1% (/!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fyKY)09???????????????????????????????????????????,sQ>;Ŗ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=ʚ>̙-<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ%}_Yi!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fyBNKY>?????????????????????????????????????????????<AN (5<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;˛pFѢ <ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ8 ,4!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy:D$]o?????????????????????85??????????????????????????.x ,r<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<̙<;ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚR?[l!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy8B*m?????????????????????=&-=???????????????????????????<CP lR<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=Ξ<əU<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ0{08!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy8B .w??????????????????????>K.7??????????????????????????????.wF69<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʛU<˞"<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ș ,"^p!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy7A4??????????????????????%at#[l???????????????????????????????9-6 $4<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;ʙ}@=ʛ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ$x\4=!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy5? 3??????????????????????7 3?????????????????????????????????"Yk )j<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ:șF<˚<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ8  `r!fy!fy!fy!fy!fy!fy!fy!fy!fyER+o???????????????????????9D>??????????????????????????????????0}^H<ș<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ9Ɨ;șA<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚN<8B!fy!fy!fy!fy!fy!fy!fy!fy!fySc=I???????????????????????5%-????????????????????????????????????9(0;-8<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ3̙=Ξ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ0z bu!fy!fy!fy!fy!fy!fy!fy!fy bu 9???????????????????????N]ER?????????????????????????????????????>>K1<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;ə<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;Ș ';Ɨ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<˞"<ț3<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ7 @L!fy!fy!fy!fy!fy!fy dw=H >J?????????????????????????'/JX????????????????????????????????????????? Rb3':Ė<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ9Ǝ @Օ <ʙ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚJ8!ex!fy!fy!fy!fy!fy!fy!fy!fyFS0}?????????????????????????1:?????????????????????????????????????????? 7<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=˚;ʙ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ.vDQ!fy!fy!fy!fy!fy!fy!fy!fy!fy %, >?????????????????????????GU&bu?????????????????????????????????????????IX7<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ɛ^<ɛ^<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;ǘ %!fy!fy!fy!fy!fy!fy!fy!fy!fy]n6A??????????????????????????'dx1????????????????????????????????????????(h|7<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;ʚ+9͜$<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ!oUHU!fy!fy!fy!fy!fy!fy!fy!fy\n09$]o??????????????????????????6'ey???????????????????????????????????????-t7<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;ĝ 3̙<ɚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ6 !fy!fy!fy!fy!fy!exO^ )1 0|??????????????????????;5/{)j#\n #"Yk3J2<'/ !  *3$^p=??????????????17<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;ɚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚE5LZ!fy!fy!fy!fy!fy!fy!fy!fy`r-6;??????????????????/{ #* %;?????????????57<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;˙g<ʘH<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ-t  !fy!fy!fy!fy!fy!fy!fy!fy!fy!fyGT ??????????????????6 '.,4 & :E?????????????97<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ț37ț<ʛ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;Ŗ P^!fy!fy!fy!fy!fy!fy!fy!fy!fy!fyWg ?????????????????; IW7?????4"Yj ")9????????????97<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ɚ6ɔ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ jQ %!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy!fy dw  7;=?????????????>-6 '.KYKYKYKYKYKYKYKYKY,4IX*l9????7"Xi !()k????????????87<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;ʚy<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ5    ! "( "( (/ )0  $ #*,42<7ABNFTM[!Vf6ARa!fy!fy!fy!fy!fy!fy!fy!fy!fy !((h}/{541*n"Yk:E  !ES.x>???52????????????77<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;ʚtR  '        !fy!fy!fy!fy!fy!fy!fy!fy!fyTd%_r?????????9(g{9D Qa:???????????????67<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;ɛ=#.7!fy!fy!fy!fy!fy!fy!fy!fy!fy;F3????????????>.yGU 'fy??????????????57<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʛ=̙O]!fy!fy!fy!fy!fy!fy!fy!fy!fy !' >????????????????3 Rb &5@>????????????2>/C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C37*sL " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "*2096A????????????????????????????????QU?oY^58)+qw:=$+?????<.xKY    2<M[*n7???????????????????????????qw z +<M^o* IM-/ ADio.x?????????/{2<0:Rb,t:?????????????????????;y +<Mf0AE$&"$Y^ =I7.x&bvM[7A !'  !'L[-v<ʚ<ʚ;Ŗ$y\M\!fy!fy!fy!ex0|????????????? !???????????????5@=??????????>5*lM['.GU.x>??????#[m +-|N   SW ,!<ʚ<ʚ<ʚ<ʚ9 kR :E!ex!fy!fy!fy!fyBO)1?????????????5???????????????9D????????????????=;G ?K-t>???JX ADADADADQUQUQUQUQU]bafafafafioqwqwqwqw ".103@CADPTQU`eafqwqw9< <ʚ:ĕ*kJ8  <ș<ʚ<ʚ<ʚ<ʚ;Ɨas!fy!fy!fy!fy!fy!fy.y????????????? Rb #*???????????????>J?????????????????@M 7A(h}<9D v=ʛ<ʚ<ʚ<ʚ<ʚ:”(g<.4<ʚ<ʚ<ʚ<ʚ5 !fy!fy!fy!fy!fy!fyFS #?????????????? ! #*3=???????????????BN ")?????????????????7B3=ʘ><ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ8&a<.)h<ʚ<ʚ<ʚ<ʚ0{ !fy!fy!fy!fy!fy!fy)i~?????????????5@KCP???????????????FT09?????????????????.71???6'ey4>69q<Ö<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ7#uY0$dL<ʚ<ʚ<ʚ<ʚ*m!fy!fy!fy!fy!fyHV>????????????? ScL[ Rb???????????????JX=I?????????????????%,7??????=,r3=^H,q,q0{0{0{44488cK"$ ;ɚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ5"rW/$@1<ʚ<ʚ<ʚ<ʚ%|^!fy!fy!fy!fy!fy  Te?????????????? "09N\&dw???????????????HVKZ????????????????? !=?????????9"Wi5<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ.w~~k=ɚm<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ5"rW/$<ʚ<ʚ<ʚ<ʚiP  !fy!fy!fy!fy!fy9?????????????5N]O].y???????????????DQ"Yj????????????????? ?????????????,t09 '<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ7,. :˜,<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ2dL 9<ʚ<ʚ<ʚVB %!fy!fy!fy!fy\m9D?????????????? Sc !exP_7????????????????K'fz????????????????? #???????????????4 "  #=.(e<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;Ɨ0%Y^fFѢ <˚<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ș<ʚ<ʚ<ʚC3 dw!fy!fy!fyLZ0|?????????????? " %,!fyP_>???????????????:E-v?????????????????.7????????????????8CR?<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚZDqw<˚<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ1%Wg!fy!fy????????????????0|*o????????????????8CWB<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ9 ch\@=ʛ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ3C3"Yk????????????5Ra!fy!fyJW!Vg???????????????? ?????????????????*m3????????????????8CWB<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚJ8+-14ADIMQU`eflqw~x~<ʛ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ/x/$9D9?????????? Td!fy!fy!fyGT,r???????????????? &?????????????????%_rGTP_^o!fy!fy!fy!fy!fy!fy!fy!fy #)$]o????????????????=I)j????????????????? #+o?????????????????8CWB<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ:Ė60{(g"rW^HJ86)K=̙2<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ2;- (/ cv!fy!fy!fy!fy!fy!fy!fy!fy bt6???????????????= 1????????????????? 7?????????????????8CWB<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ82,q&a lRQ><. (FѢ <ʙ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ+odLO<<. (\m!fy!fy!fy!fy!fy!fy!fy5? !'????????????????$^p9????????????????:??????????????????8CWB<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ93-s&b kRVB?0 ,!F<˚<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ&a P^!fy!fy!fy!fy!fyP^"Wi???????????????<?????????????????.xDQ??????????????????8CWB<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ81} %Sf;ʚV<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ)h?K!fy!fy!fyZk 7???????????????AN ?????????????????"Xi,s??????????????????8CWB<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʛU+F_.:̙#<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ-s  )0 dwXi ")???????????????(g{.75?0:?????????????????'.#[m1>??????? ScUe!fy!fy %-v???????????????70~??????????????5#[m*2dL<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=ʛ3̙:ŗ<ʛ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ80$*2Qa.w?????=3&bu9D/$*k<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<˚<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ:ĖA2 #8B!fy!fy!fy!fy>??????????????&bv &'. !' <.0{<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ɚQ<ɚw<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ6,q$y\WB6) "!fy!fy!fy!fy!fy ??????????????2 Q>3<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<˞";ɘ4<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ6,r#w[VA5( ,5KY dw!fy)0?????????????7hO & fN8<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ9Ǝ @Օ <ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ8/y%}_]G<.  (/9D????????????9 !pU<ʚ<ə)j (#uY:”<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʛ=ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;Ŗ(h;-%,"Wi"Wi"Wi"Wi"Wi"Wi"Wi"Wi"Wi"Wi"Wi"Wi L:<ʚ<ʚ<ʚ<ʚ<ə*kS?Q>M;C3C39+6)3' (3''d;ǘ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<˚]<ʛa<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ6 lR -":Ė<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=Ș*9͜$<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ0{Q> 6<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʙ;ĝ Iے;ʙ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ8#vZ ," 0|<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ɚ<ʛ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<˛f;˚I<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ț37ț<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ɚ9Ɯ<ʛ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʙ<ə{<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʙs:ʚ0<ʚ<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<˚<ʚ=̙2;ʚ+=əK;ə_<ʙs<ɚw;˙g<əU:ʚ0+ժ@ʕ<˞"<˞"@̙+ժ3̙ =̙<˞"<˞";ĝ D̙<˞"<˞"<˞"<˞"<˞"<˞"<˞"<˞"<˞"<˞"<˞"<˞"D̙<Ö<˞"<˞"<˞"<˞"9Ɨ;Ν<˞"<˞"<˞"<˞"<˞"@Օ @ʕ<˞"<˞"<˞"<˞"<˞"7ȒIے=ʚ`<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʙx>ɛ!<ʛ<ʚ<ʚ<ʚ<ɚ=ʚ9Ɯ>ʚ:<ʚ<ʚ<ʚ<ʚ<ʚ<ʛa<ʚj<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=ʙi<ə<ʚ<ʚ<ʚ<ʚ=ʚ<əU<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ3̙<ɘ/<ʚ<ʚ<ʚ<ʚ<ʚ<ʙ:ŗ@Օ ;ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<˚=̙2<ʛ<ʚ<ʚ<ʚ<ɚ<ʚ<ʚ@<ɘ/<ʚ<ʚ<ɚ<ʚ<ʚ<ʚ<ʛa=əK<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;˛J<ə<ʚ<ʚ<ʚ<ʚ=ʚ;ə<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<Ö<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ:ʚ5>ʘ><ʙ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ9Ɯ<ʛ<ʚ<ʚ<ɚ<ʚ<ʚ<ʚ;ɚh;ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʛa=ʙ<ʚ<ʚ<ʚ;ə<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʛ<ʚ<ʚ<ʚ;ɚ<ə<ʚ<ʚ<ʚ<ʚ=ʚU<ʚ<ʚ<ɚ<ʚ<ʚ<ʚ<˚]<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=əd;˙l<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ɚ=ʛ;ʙ};ɚ;ɚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=Ș*=ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ɚ3̙:ɘ9<ʚ<ʚ<ʚ<ʚ<ʚ<˚<ʚ=ɚG<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʙ<ʚ<ʚ<ʚ<ʚ<ʚ<ə<ʚ<ʚ<ʚ<ʚ=ʚ9Ɯ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;ʚ+=ʚ~<ʚ<ʚ<ʚ<ʚ<ʚ=˚=ʙi<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʙ=ədFѢ =ț.<˚<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=̙2=əP<ʚ<ʚ<ʚ<ʚ<ʚ<ʛa<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<Ö<ʚ<ʚ<ʚ<ʚ<ʚ<˚=ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ə<ʚ<ʚ<ʚ<ʚ=ʚ:ʚ0<ʚ<ʚ<ʚ<ʚ<ʚ<ʚD̙=ʘC<ʚ<ʚ<ʚ<ʚ<ʚ<ʚIے;ɛ=<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ3̙<Ö;˚<ʚ<ʚ<ʚ<ɘ/<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ@=ț.<ʚ<ʚ<ʚ<ʚ<ʚ<ʛ<ʚ<ʚ<ʚ<ʚ<ʚ<˚=˛u<ʙ<ʙ<ʙ<ʙ=ʚ<ə<ʚ<ʚ<ʚ<ʚ=ʚ<˚]<ʚ<ʚ<ʙ<ɚ<ʚ;ɚ<̙<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ9ƗIے<˚<ʚ<ʚ<ʚ<ʚ<ʚ=ʛ\;˚N<ʙ>̙-<ɛY<ʚ<ʚ<ʚ<ʚ<ʚ=ʚ`<Ö<Ö<Ö<Ö<Ö<Ö<Ö<Ö<Ö=ʙ<ʚ<ʚ<ʚ<ʚ<ʚ7ț<ʚ<ʚ<ʚ<ʚ<ʚ<˚<ə<ʚ<ʚ<ʚ<ʚ=ʚ=˚<ʚ<ʚ<ʚ<ʚ<ʚ;ʚt@<ʛ<ʚ<ʚ<ʚ<ʚ<ʚ>ʘ>;ɚh<ʚ<ʚ<ʚ<ʚ<ʚ=ʚ~UU<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʛ<ʚ<ʚ<ʚ<ʚ<ʚ<˚<ə<ʚ<ʚ<ʚ<ʚ=ʚ+ժ=ʛ<ʚ<ʚ<ʚ<ʚ<ʚ<˛@<˚<ʚ<ʚ<ʚ<ʚ<ʚ<ʚj<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ+ժ;ɛc<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ>ʞ<ʚ<ʚ<ʚ<ʚ<ʚ<˚<ə<ʚ<ʚ<ʚ<ʚ=ʚ;Ν<ʛ<ʚ<ʚ<ʚ<ʚ<ʚ<ʙs<ʚ<ʚ<ʚ<ʚ<ʚ;ʚ9Ɨ<ʚ<ʚ<ʚ<ʚ<ʚ=əv+ժ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;ʛ<ʚ<ʚ<ʚ<ʚ<ʚ<˚<ə<ʚ<ʚ<ʚ<ʚ=ʚ;ɛ=<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʛ@=ʚ?<ʚ<ʚ<ʚ<ʚ<ʚ:˜,;˙l<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ9͜$<ʚ<ʚ<ʚ<ʚ<ʚ<˚@<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ:̙#<ʙn<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<̙=ʛ\<ʚ<ʚ<ʚ<ʚ<ʚ;ĝ @<ʚ<ʚ<ʚ<ʚ<ʚ<ʛ3̙;ʚ<ʚ<ʚ<ʚ<ʚ=ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<˚;ɚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<˚FѢ ;ʙ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;șA<ɛ^<ʚ<ʚ<ʚ<ʚ<ʚ@Օ <ɚw<ʚ<ʚ<ʚ<ʚ<ʚ;Ν<ʛa<ʚ<ʚ<ʚ<ʚ<ʚ:˜,<ʚ<ʚ<ʚ<ʚ<ʚ<˚=˚X<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ɚ;ɘ4<ʚ<ʚ<ʙ<ʚ<ʚ<ʚ<ʛ=ʚ?<ʚ<ʚ<ʚ<ʚ<ʚ=Ș*@Օ <ʚ<ʚ<ʚ<ʚ<ʚ<˚U<ʙ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<˚>̙-<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=˙qD̙<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<˛;Ν<ʚ<ʚ<ʚ<ʚ<ʚ<ʙs<ə<ʚ<ʚ<ʚ<ʚ<ʚ<Ö;ʛW<ʚ<ʚ<ʚ<ʚ<ʚ:ʚ5<ʚ<ʚ<ʚ<ʚ<ʚ<˚@ϟ=ɚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<˛@<ʙ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ɚQ;ʛ<ʚ<ʚ<ʚ<ʚ<ʙ+ժ9Ɯ<ț3<ț3<ț3<ț39̙(9Ɯ<ʚ<ʚ<ʚ<ʚ<ʚ;ʙ}<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<˚<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʘM=̙<ʛ<ʚ<ʚ<ʚ<ʚ<ʚ>ʞ=ʚ~<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=Ș*<ʛa<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ɛY<ʚ<ʚ<ʚ<ʚ<ɚ;ə<ʚ<ʚ<ʚ<ʚ=ʛ=˚X<ʚ<ʚ<ʚ<ʚ<ʚ;ɛ=<ʚ<ʚ<ʚ<ʚ<ʚ<˚=ʚ~<ʚ<ʚ<ʚ<ʚ<ʚ;ə=ʚ?<ʚ<ʚ<ʚ<ʚ<ʚ;ʙ9Ǝ <ɚL<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ:ʚ5<ʚ<ʚ<ʚ<ʚ<ʚ<ʚD̙@<˚<ʚ<ʚ<ʚ<ʚ<ʚ;˙l<ɛY<ʚ<ʚ<ʚ<ʚ<ɚ@ʕ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<˚;˛E<ʚ<ʚ<ʚ<ʚ<ʚ<˚U=əv<ʚ<ʚ<ʚ<ʚ<ʚ<˚9͜$<ʚ<ʚ<ʚ<ʚ<ʚ<˚>ɛ!<˛k<ʚ<ʚ<ʚ<ʚ<ʚ<ʚU>̙-<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ɚ9Ɯ3̙<ʛ<ʚ<ʚ<ʙ<ʚ<ʚ<ʙ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ:șF<ʚ<ʚ<ʚ<ʚ<ʚ<˚@Ǘ =ʛ<ʚ<ʚ<ʚ<ʚ<ʛ=̙;ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<˛fFѢ <ʙ<ʚ<ʚ<ʚ<ʚ<ʚ;˛J<˚<ʚ<ʚ<ʚ<ʚ<ʚ;ʚ=əK<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ɚ=˚>ɛBFѢ Iے<̙<<ʚ|=ɚ<ʚ<ʚ<ʚ<ʚ<ʚ<˚<̙<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʛ<ʚ<ʚ<ʚ<ʚ<ʚ<˚:ŗ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ>ʚ:D̙<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;șA@Օ ;ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=ʛFѢ <ʙ<ʚ<ʚ<ʚ<ʚ<ʚ=˚X@:șF<ʚ<ʚ<ʚ<ʚ<ʚ<ɚ<ʚ<ʚ<ʚ<ʚ;ʙ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=ʛ<˞"<ɚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ɚQ>ʘ><ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<˚<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʙn>̙-<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ɚ<ʚ<ʚ;˝'<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=əv;Ν<ʙ<ʚ<ʚ;ə<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;ʚ;ț8>Ș%<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ>ʘ><ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=˚<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʛ;ʚ[<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;ʚ@̙=˚S<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=əv=ɚG<˚<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ə{@Օ <ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<əZ>ʘ><ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=˜6<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;ɚ+ժ=˙q<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ;ʚ;˝'<ʚj<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=əv<˞"=ɚm<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ<ʚ=˚<ʚ<̙̙-<˚<˚<˚<˚=˚U>˜1<˚<˚<˚<˚<ɚ<˚>˜1=ʚ<˚<˚=ʛ;ʙ=˚S:ʚ0<ʛ<ʚ<˚<˚<ɚ=ʙ<˚<˚<ʚ;ɚ;˛pFѢ ;ʚ+;ə;ʚ<˚<˚<˚<ɛ^@7ț=Ș*<ɚ&9Ɯriseup-vpn-0.24.5+ds1/providers/calyx/assets/icon.icns000066400000000000000000001262011461742244100226510ustar00rootroot00000000000000icnsic13iPNG  IHDR\rfhIDATx} E5w&r@AuQz(Ca[WB\WH aA]y<#3yGg0 <`@y3<8gyq# F<#3yGg0 <`@y3<8gyq# F<#3yGg0 <`@y3<8gyq# F<#3yGg0 <`@y3<8gyq# F<#3yGg0 <`@y9@I<x"<Z|9~"xDa`,"Z3w ˞jG5Qm5y1N.[:σt?,}Ր۷CϽIjT˧=P_!<ޏ } 2kgu1er$lB!fh愼MPzoj&|ܯS¦IP(~?*W~Yәo%)B bozu#ޠeXqs-j_MKpL_s+J:i9ǎ.1 $C%䉥Zv2UkfSȘR)$뮟s/2{2Qs{7/U^/*,Y,&QR#.9-hYifOiQṗ0–"4% Zݳu7W!]GhlQ!B:!,) ]*^rüHt- (x)q( ܶrì/^Oj.:~l!ʰ٢6kI.;NaHc0J AU?JPFj󼿖qmL?1xYL@Bt@@!,d}y\3#Ew=;eЪm 3k D)lṆf{~̢nզ?^fQ1;uXsRRD:': v:}BaPR6 TJgg)u)iTv-6؝Nz HP5,l=?mߨ`ϑdDž QsFB:ulٻNKmn#'vBAE_[N dK)(!ZбNB3'%7@bIkq?VၗXsI 0$M䡸~󷾛ܟ?%jBɭdE늭nXt&^~տ M?Eš&U:"~(BŜDSm{ l7*ZfQ!p9$+poZW$)hŽ9njg6["|P17ͷyxޟ9%lj1:BpY6hN%~oG qF`1s*vv>븰FWZ6SDy(>uݜj [qS@e7g EHA$q}Lr#a3fi EP-@ Brkh_5Gb'QFDЫ@Юe]K D_l= [+-FZEJ IuFB,ZHB,J/#wW!a׺)*y(sGoScYBo^':s߀uQ[! 'h¹n {mF #z <@BДMsϪ=T#]r-bWO$GCK%DE\~6o <`{ |˷ c]7'MGa:%e[?gì7Bpﺩe B/}[_VdNOymZTRf+ 9rҜ֘T@IB0J)wQpV]fNd[>R"c!<|sd8j ܿtU`rBxQdSB. x]$ds%32r]*0B0#BC^'ߵl" s5o"S JWV3o}7麲Ų +,}v ;\/kp"CF\~7]iK8]n{ e (圱'(#%U-&_\:M0lz]MKB!#(c^/z@p~{dž$16fӰ 9Oz j^YQ"Zhmd-^a>n)%)ƅrübԐHd׿xsR_&d2q9Z k3F֜d0FYTT67{߸iF# =z]pl&sA;Jt z'/;%3/(U}jFc{$ T݂QjY릟$WM{CRD)+ҳ)%˭3ay" u3+ VfBaF̊X$Z`!Z-Y4ZdY̢ҋ[/iU⎞n{Ò`?l^cq{ZR%R/d*)n9Y"=bb/|БNPMFI `;5Ԡ!Ί9􌒬c1\EOF9Mt{t{[Rq-{Kƽ-&UR N  K8wzS ]E2tlFoκ^Jzhd)W[X1y$2ΥY~ 80fLJ"V}꾊:y)$2$R$fO%]a"3ÈSsi_E^mbEtrZ%Wlܱx-'{Wm} aXcŚIhv/[c뾊i$'W2H;߹0~"OҰSPl jvq[kW$EZm<(kٚ#ZȐrD$]lty'RIWo@T2uI5{0:BPPA)l'~R݊goIBDb֜T{BHfbü_%2E}r ;$y+_wE`[P N{3gª٫ܣ 2"}霍?*a? cgХn_y+Lts;M W#F79eq.wy7]s̾+VF$o"1fyw$jgO*@qtRI ➬d̍/% @f^~XCIBu޿e͒˷3XG҉H)b60cefW$w=Vn^ 3IRIqb3ID~H>*KAlڟ?]if.oΞh{(%HU[G!"`j*">)@(A gyxNv:.Qtaz>ϕ2cWHiƤ (⾙lq )Z!t`ڑOL6 > r3Ͽ$²RJNzZE+q"* "!fѐeSx@*%Xa8CJr & h ! HQ'yUSKgns=VIx'"sO մcЂ+63U?- [@ mb=#ja|heX"SDH WXځW%~ܾL^V8Ji)#b#>f%o8ut$e%^7=fl5fEK-N7y;zA NuIevYaHˢy;Qy~A3* #B|`J3*TԜ.0 TXĈKR*)J;~!>#v&QB RBco<P`mP)%Ի j =[a%} DJ"MKh"$ng!: U%${m}G۞n"97(tQ*Ais |Eߗ#59(h]euWuܵqʠVa~֊ .D# !lK wdN*ؽ? .e(nܻz[AUѧFU}?pB*ݞ"G P5>U''mzkJ"`(lƾ-:DXx6]'M !y&-Lx{Ϥ˾Jp賷DKʬije wS>m !9 Z`vnjgkFڝxcg5fM NM[:obJyC̢sHiz~1WRq}*yU %?Y{$ǫ:ٛDsuΉyQ ڍP⦟NyGs#6ƌ}=Av.Kgg`;cǬsnkofSv>%KV_q}s8 :{EP-"ܬazzWOGFݶ{Jl\^PsyJJvYNu+~٢SV17Z@ 0 dfjZV$I'>zVܗ=qTOaߛ-=qIXa+ ƝUdgJvlb{LWT+Kp Шϳ?Ղ`0qv) 둨Mׯu3Cz=1+LT~v1lRbXYHMzį+ƛ\MH- k'Qy )TH@^-O„1ŘQ46{7f Hbc9%'<0F;vI# CocZqάݓDCY`Ugl#-i(.j(&*s wfONwF@<fvz}.8zUwʊ sn#5as:і%"6?Q]/7hjT1Q ~%I̞Z+@z}8Ǫ[ߛ畣3EH?}NPǶ>v@L_fQTҫFꏏ]Xރ6 !XxoaC67LźM%E!mha@+t;\ԧ}w36VmE+3Q[p`|#58Ն1AmƜc`ޗKwSIivK~q}H;j΅lD|OPurLXD !EBuRibasܧ_BYP/puJmQ *}.ea,gDC*qC3ĕJ{I\d4]2Zߩ_քYkGRH"=A8>x]mma̸-M/Kik@=[40tPl8&+溶џ!N,k]?t'_ԯPo[)P@aV CkPqZ@[µ^pCaF-/2TZd#3W ƕ D4jTeHfO)QAZOXF>\e$BםO"P?JRa;ڣJv@OgͨB΂ӝ;8'}#w^S M߸ )Ǩ75 |Z*@;,'?\R…nP{퐿*53ځ岷cScb?rH.쏡]7~L 9>_-}-94[s}սd QNL`dɢ.3ygSRaL]d<>OmtڮF̘\Uu+ 5SlhG=R?0˲5'8g_.ܫLx(P`ő}Oo-8nm}L(`Sїבoq`W- Qzog\3E_CA5))pAˍU,1ota֜RR)mK.;aaŸUgu]2ϦƨJ4 o(D/h™ui̙Hu D:H-]) ESZMu7֥T"tRȷ5LqL_Q `C_:[ibR-"<> { f5(;j[5Ҩ:Mںkqҫ]m9es#=@Ix/5]5n(/#7%YfXCs_nģǞ7ZWvXaȊ}kOBo3<9JQ\`WCص&JhO LP=~E GS~nP??L`Oipj$`u]R< r Yͼ9^Zٸ9jߤA ikplN+]. gz=D`TlݰjҐu!xր33Ċ,x+kz Ja 3}+TzzcGw֒%!a4Q Je `䐘6Xvsb*#zB[-u}- cz<_tơɻC+Md(o&u@})O6U@LRRqʍ#g !7- C\hS^jšՇoU[0Ş1t@h(fM)DXT`!dpLz:ٽ?G@X^-& we:#!n"uBa!fz K5L&ۇ,s/`ʴ 3m;NHm "a 6l !W@4XO\ *{݂j/[D,++G+` OPeE{R0=ۧglKˊ% GOp8w7*E]&A{&u#v_8gU4|u)m=8:K?_ہS+z 2 (*6H}T\3oa1aP-=czX{98V߹#Ä_'ӊakUlEB- Icȑ }xwQ~tѱãmt2|o ECtA[F 1=đ4 !GtE`AJB8RӖ( ՒLR TRh&|g[H&[~~m ݨC3Wol=5-W[ \q -7+Rp͆ ' E1LW'b'3į^"pEGIlm$Ky&%9"X(P;XŅF$^Zl_lĢ|מC)$8lJ)G)n Q3.BtACGwÌ02עܞ-۵=iȸIX6EIR 3ž\Wh)`_1rn?^|̚@ӆH H߸B"v/ MEFj`96i7>񶦉m6g=ӓHߘZkɤ7$1>_jYmxum-ѺrIy8>8tkf}U-5ڈq7<;Qhfd(݆  ]Q, j 3+V|}'!Ċ9Nv]-).j5#f&dxMB`S3J2-8-ZԻt_ w~~.7v7UG"Ӿؾ/8g'Wb;uz'nNxk[#"1<0dcB|rZe'wu픲w&LnH(̷=K`:-,Xs{72\`LL[1ßMun槪ںztR/0jLzE Vl>uHQp/TvjPlC̀M,Մ%LѦN^UiYym@>"[SfZѨզm(DgbZDuHk(顪&AGomF2ѹn" Վ^`u%S2c '::П \v)0gY//o ^ OtP(ťuz3.ԩWq4=rf8Jk xkk6>Q_jԅ7KqYYGFu^?9FdE40l`S5p̚_tw$1rHԜW HRkw}/Bf3VgsC$)@g t0oӾFzKR왂dWxBGD UxfC^}Tr޷ֶi4LuQQu74Eי?Xb`"s,c4`i5$V|f`fq2|eI'Nw@*Ǚ\_垿ccߵ"m&d(z(.[r :uRPj;?()f:?-0L>zf6RSi븕C 0DfG b2Rpurr N?WIo= } R MP߿$x#ơ޲_Rpzɴ3ij0ql_4g ^|߽k{:2Z(w3yI{ 6}|@+𥚥Eu͋h٦M>i c6.3P[e7?Youy0cR ƕ5mB^EKck+1kjr@{tbjЧ]S;^TA;AR&8ɯOzmt#8N`8e)}2ei^MsJuIpΘ"]D J(Վ]pݻ9)Cܡp "g/A>#И1aOG+[P{>Ā\";`}[@tf&XP0.oJ\z1ˁiӀ#uD)źßWǖsX{n)&UEp"IfP*}X`ƹW\ rR`~65ku(>V]֞VzQ 7J̵#6o3+W2~r5 s bjSDPUJlxy1x/lC:~<ՌZUI aBMSc~ae8%dKn]1T-)uF!r57 Lx'c!3*?}{1 ځ}g;|.uȄY 3i\ӗcM7iCpǟ,AU fX5O0Csg;$d觀 V=8 ,S뫰h^SC]N|Mrl jf݂aȅ}xN %Duu͒K{yiZo:(C %\X/I; wR ,sl:=Ή&@t"> TDv(#:rf~ζ_lWAN2` ҉M[pKewO1i$) a΅&V|d`@1IIaIK@ mU.^<p*cEHE1K[;72"HcGQePf?>U[a| E, c^( *2EN2i7ؐ:f8x*KڤLrj]y()DO1 t=G=(2,j\Y?m+"s=wQ /ni0z0t0JW\JYkYT#! #KuyCYRhb &+7i"~+/Ku}VN?DmCΣӘ12mabf .XWBaU 8 <9 mʷu8ؿ(-rfX\rAb*ן;fО10HvDoدw imrkdƟ{%qu/ok{5JMO{o?ƳlgWW/m{.YPgoLmq׶׷pXjXs iֿ75%lyJ5cQz.?݅#zvؿ Ǧ0wzc+ 'W4CN>I>u%A7=@MEd9{=4 ߂x-, ~7!t]BҐ&U6/ ۪\S$" z:J]cl1ۯ&4O)fCGSm;_m=㷖k]D4#i  D0X3ynh ; TTΤJ`n^/W\@߲-( |2z+}BO22?y7OO5ٛ9U_0CSN >E6—PckEc>k}- l5 G .@٘@oIEZY:+ ,yv5ʸ +eӠgyH*so~vHNaFոh1ȟקj'5=Ipod"9٫(p%ٿ >NM,!`Fc\l~%A}]NtqCjX63Ύ!LuJL3dzuI2OFQ9am$ 퉞Vם 2`]fˆCeS+7?mPh 0L!WN; !3q%{p"ʪ^92~0Vgn3d`D\_0e/]]j%[UĩxEH8!dsR+$N+ ]}p9P^II6$8x<8bZ8X ܐ~T,2xۉAǂ24;S}fu:{X^-W>έ mEGF>=ڈfBEȶ Q4 G*;fZqr0Xc@ BvD ;ߍcRl!MfR-zﰹwg vϚRzw`|`B1nY]2 ҉89ma]AT7~OK 'sRd^fՐyF!,"!YE'MBij ?R>|(7̒۵I(;wPVlew ]4 J3xݖL "+_9żlNň)ֿ\u۪΁C$ *@~ B;1B9W4T|B p9sY{dqә]1SOhM'diu ]Y';Okhו9]k:Į ,ۂG9 ]\0!Aef7s-%OkЉx{]<~vP*=BNHp'n{naX1 fZV]ڬϷPGSu0sx{ -6ރֽ97o\3GSxc hIp] تMI& 9 uS 1:Ⱜ8kTRmעHr-*E+aPsD|S"!Tx2 纯Px?0i M^9}*RF&h] (1uA]>Wul{YgC*ŵ Rۣф+15hWd~'=HsW&yETO:=#PRҫ$)⯮Mj? cG`Ē h)} Zg~aFq֯Bxwedۛ+*fn[xRBtjO%D2HMhq[]x$SdյsLے41+\gc7FȏRo<ދڴT҈AiMVE82_YK&sTl0C!afxs_G@T7Z2[UBYzll6(AY(`yeH:OoŖכ2"]{Z0sr\I: idIz7;7߸l̝Vdq"BstNBVɰ3-(r vmkV@%g3-MyLnCXwNO]qӅ;Z<륔uuR@XJ#$V2jFu\Ƅ)0+f2WZ7rPF30u;^7,x| ?t/lz_uHJe I ر!wB 13cn 83fx5 fiG`ku:D/mI0`L޷TUwl& &:MM⌒ȦDsdt$b$F441.QDҬ *("[UU{{Wznn}_[]rsֶZlr3:BV<<2epեD+Et3¹DA&pc 8sw/O$~Fw<^,aG,PF`)!iXKbCǒс&xwg?c>Y3K dg[\1,QdHt pجK8meqz2.lLo< v(TbwEYj`9E0h@ moY}ā &!׉f K˜a%ٯص vu{5Xҙ?lo9plYEhk 7qJƏD(*&fV(/d+` +*@7}3>Inq9_ ovl|6ޯPey-_1¨5 gNhda@>XIc p+aoꖭ=A k+5q# $v{%HK%l.] @1oXyl+͜6AxVX!(φ) ɔ!"` guWÔ N}ҡ)xCG8dZh#*^R<K)uz6XTN jmwy F_6#,@ղ0|Rlu0oY|ỵ>Hyi{ 4PXi9@0%zV>s0\6?68e9Qݞ| MVblp2SrZ d+ T0xA1+a'V$7.*Tc6#RUT4n4',~3w+X~4sn-6Rf眵PT:B`3,#JCʜ6`-9 ̬>b uBEwfx'TL*UaCVLv?!rUD9疢q9nXx?P2n鼍[6% `axH -8jD_k]C*kHɉg)IÝ4nglƝ]K &6CKĭ7qNt]|{ںߛ) ͑Hw=Lh w,y8%OAet@{pׯ4y*$tgWU :UqӂitZэP q5ugF0yLbh:k1JG 8WjSi;Ed@9CGEUTv71ӋE7~`FVlCf*uTpsgj!%35&z'Pб|7Qҩs#_&,q+$%RHU /*Ugg\zݯ?nL7֑-h[`NM a禝-̲~w)%XzXU 0cyNĩq]Y2St26b-btBN oIF:Fpxr1Qx 7 Pfk`;b]o0$O~0XȺ#lPg~t<58\tl@nH=}tEOٞsmn36unHv- U$rgVs-\g89mеl17 ?ӟ'9g qz+ZJIoƠK`^%qcSWnCaq5f޵k^/>FuEvO-G+On$Ň #`ٸ,zS߉B,5f2Erci,;&+ \~jN߼[j,rN˺y?`".@_vC[&z S&2sݻ)*kdX^ÝyC9>٩,g_ۢV,f1O Ea\HÅUqrwAt$=DëbM擑Ka6plO=s=3[BӘJ#Dꎥl9U~5$A"_x^SFc N$ y([ǙyP) Ue úg k_|z$={4#mՎ"co t C ]^,8yNB @ktj@:W,zx[fޘ6HzӮ*nʶW/ jYUcQ0t +.kLaIAL@2E(rʑO݈n*~~pi%w5Ӷ)nTa nΎ?GO`ILrƇw7b V9qZvw݈S @A2āGV)U{m}fxmc v[8As@C CdgcpKa1=t?SƄa:(߻!]ȕ+Xۋj@ɓNl~'x.xkM>m_?IŬD q =pRo9 Ő.ܹ,cnO&8c0zc ur<omj)ZssJ=D:Rәk2_JĚj' eZ+C?=fJOnn|u]544*"?@Nr5x a Kt9a~_6gk < 蝠+Uˇy7ř<&߾g̙'uŵ,=^pL(:Vt?H r@9p7n勇/26RKg>ʭH'47 @,nt*4f ~j/N:|&J㗅^yW~g ]OT S {m `/Y%R 1ӝ< ihGOx[yy9[( tߐ6.+L6FF +4vqu| 1 cig&`87ʊ=tQ͂~1iz7t7!sN굌` Xꮫ-s) Mn.@B:A#*Z?KZ"HT'*y~ kDHdI!L uGn?SaAcpH ?yh4Mpu̧][rc(ׇ!;ԍ8vJ4sanZhZzNJ yam᪤OԒKտoCЗX &[/>!bqK>z٫dN< Kfm|spσÞ :B59s>@@r )짚ޞ6#)k9;ɲ<_D = 6o΀ l7BΧ_>wSNnuH&own0y?-uPt@ZYh?oSG‰KA=5/u{M,?A+GM?=5 1 :ر'EZj`"mޣ%$V>Axꅏ" dkz;&>̿oGE7v%0-/F3}&0e4‹kÃ۫ `=5K~{= ] @ ?ۏVxW^OO4U)ش>ӹ} 0Aq_ ylxd&A_ՉӋ{v'/St%Ϝ1p^FhNJ00f LyO#ܽ}0TCL7DGl9~~ ^tKQC#uO^ 9nd{|* o+8} Z,NCzzNok9*`>ة둇H} 1E#C\6+mSʼ{(1h' ڗ~mKJkVV E舸s!c'Wpg@ 劀heo>_U}=3OrEw1&?JDׁzo##9Ɵ^m1!ow0O Ȼ-VdΉ-Vqrii?c<?S> NSyVz7%8i?N<=|At#V`nA#Zo SƇsVg' sǣG}A= #   A0$`H"D! C@  A0$`H"D! C@  A0$`H"D! C@  A0$`H"D! C@  A0$`H"D! C@  A0$`H"D! C@  A0$`H"D! C@  AH IIENDB`ic07,#PNG  IHDR>a+IDATx}սimo,@PCۅ` K^4MLyh""ƒR%ϘgQ򏊚X%*"e RDl[nssff.*-3s}ιiӔ@48) >NiqJS}@48) >NiqJS}tA>%%~;aibzgѭ?}O3􊎧O9O}^&>?d$K3Ay1P;ߟB{*Xoᔊ޴u_3 2^?jgm-0sAH,za;&@Qbgp?4q}ܟpMa(ZnyJK+}×ߐ[|1Xoس \2/&`싍c4obߖ]h|Iь=M Yrj I]Dٿjm?D3`7lKg6V4J/ʩ½Jo)]i&X{su|>l՚GK/t,m\k[,c\{kfZ~PjK9p9=װ=%<Ȃ9洇w׮(AJ =P>me밫AL֝\ublVsby;qK*yX-_Z̟k޽۞G˪-w!S|+T!z,b~i݊ElxĎ[u)~M.+=G]fq;YyzNG6Z~`r޼(iVU2\yZ)[[f_SXqt*>)T`b4D"U;xB:[:w\1n@"|#Bj-hʩee9w.s=vpieGwԎD:Jjl7% ~ z[HAUN?ϟf[\3-vs2n-]W[n'n~kT3n>UW^rxPq*N>oČWx/O  8ugQ)&WWM[;({ڢSwX֔DU RiyԸ9 S~?9˗U|nr(땓hv[15+*}+pud=l ?u:ܳ~JFrho1[xV`6Tt0x&tIˇuЭ s8G!䑬<}P}0w%yP=]V5b-I+iZe)m\f[r.:n.U3`ƆX+@%!c2B͔_JUegYodhO65+Iڷ.93DҊ Ey%jbG8Z6~krI꿏v"pZF1'$x_U鹪||:g<D8Xh ]cGL\ٝ=,e'c¶~P}sO 3_֔X`ZOs{=¸pBUTڒH$~&rjIfoYͪ]0mݽޣ*K eڭ|k +~Gfv~{.h]11^'lڈXm F-'ꙩm XQtp(Pm1J`J|a>B8M nɦ STj~dJmf&4&lF|jS頌qNݽ^ ҄i$!\<&REgfZ 2Xǫ|&FcVW"$XQ Ag{K jiHD?~(sc0]1[+P=. Q;)|vˮ/#M<89J_% FSJ`(ؒA9P^` ΏEl$Syq#it>Ҏ|^[Q6krM, Sоk,ޅ$&ޕ#HpŒ3z+Xiq(& 9ƖyjB) Dċ-xcpEƿGHpJ OƭY K+&2XeNR :Jڌs8=icwUt+qLB hc&]Q}[::30U-0J6DmM 쏺}1l #jNmd;-"5qM։2 |~UhM$/6Hϳꥧ]Wzϯln3&8YK_HE"j0 I|Eþ`y!KPg a:v@(>} d(8@{u{?<1bb|kΚPDԖ2_#?SUmL+{z{i ʧ&<W'px̗ #z%lvP)&B8b=99s/“/71CCmAlƑf\Ͱ,:%?& |RK4&@uqy<%_*D0K3[)i͈2yCw7"nwbМs23l8!Zpm&UTO;=4fcPc qV@QLM[Sø#Ppgsae"J&s[ƭaw迢R}ߋ=l: n2R*W^! \&~ O]tn"LgSZT,Ɖ+g %mX~WM\}Τ|̟;Lg潵=Eތ*1 ÂR0.PY6mI$M&?fw:Blcp]ӕ|1y OvP@ | c ŹAJ~ixJՆ  \|zW5cH(%+W 6Ot25W%gf3g;5 @`@uc䂹>78nyyMNFej}p,piu 8 L?2Cw1$2#(9NjY[A"JWcqg21nD&iY-L>K-Sː{m=ՀE+9}dql77QGmp{珤hI:?R` a~+^A ` jIāx‘PUÜfS'ŃVX n8WEջ-xe]=ZJlǖٙm|X p3!b^.Cȑ10C( p<ūrK޸t$s={1oRh(P<6nT:v6>WrT +s2c^xe`"q {4S `hg 0j$пs O$A'X`[ʀCٟƎۈJ@, ,uu|~j\83#t T5jdgNx[wF$sY(5伂P\at;%O:CK\u[9E7lGρJ"$>l{rA1Pw5@g])8FQ]Ȳ V"y"m:B) "nrnD3hV3)M?u㣆1eBdPQ|5XO1nDir`>\r^d6Gc)mSOt<{$g)=ЙAcf:P2U",ĕVx;EXA]ݜ*ϹLtt?'GDg];b@n;Vr獵]?!%#jKSPߔ)Rr5U 2B*L9~ߠD}! !~I A.憨Na ɂSEKM]r7.rMS`7Ͽur,@A0.jGΝjo띲/]#jXFf` ?xa644^8dHa2I$71{kr2H׈E^ < Dk)#]#2  (, 3q*7+!P~C]vE$y@,0y[ޔe3_ #1юSR7hP?*.as6>c=řlx wj8n s3(,ݧ-U ׸x0q.8$@ʚVO5;h-VNQ^>U/7ZZ-i9H$&*6df#bɩ^i3S"<|rR#A9%c3)gΔÔ򷚥h(w7È!VT0!$K)2 Km~gw{$UN)3~wՌY )Mn3509"wpLTj9$ö`Ǟv$M.IYR'Ia$h~s8|if[U'cZw{ 7n=cNmB,a;ehčm~BS5f^h܀OI}BFUm.HE&ggbf_N+Λ'|Nv>~zU m5%.g6[]D/^-hW$#rs3QeUm*'N͢xgW0-JJ ҷnS-{tf 7niDc gː!,T˒k 9+(kma,aȹǝO?/ ܐ1/[S}O/73dkLQXoE?;DIRkJ*Ǭ;}!EZTp*c6 J@ roo1ePh&]6k^I V9Ǘx#٦::% eW8KƏ Ɉ@0Wei;<ʷx9?qtxUũ {09^?(mw4s(V(*lMWeFNpfnYS̏p@ |GWAm1Bm>"2a\{aOpLT'jQ 0 [kT:scMTqo6/UGY^|`(h:M0PN(Q̘y%o  0CyLXw-y~=k*@m[NPJ g]nur9 l=jcOu 7c5ce.@O0쫍@]Tz~[Q!+= e|(\X()$TT +9~C'Ox|q #(;;zZ&# s;b=~m\%Է01֤ohNHO3t* rVk^P0dl?}LLPF!29T5ntbS8Y2"o~j,H0a[lS39ٙ60Wk BUX_3soZW-wH?JTy?)Qa9J2a"rOkz@'m;^ZՠLpNdiro':tokVw=t\H̖ [M7% D@ө\i3g#nsޢz V7.sj̄}r9Mj2o%$C;I!&"Zp 9Lθ84^$%zҗsJ%U?/j=/Ә$sMU59 H{e1_L$?@W0>?7=}Ach!޾iOSߥ@48) >NiqJS}@48) >NiqJS}@48) >NiqJS}@48) >N?j8hjIENDB`ic12PNG  IHDR@@iqIDATxz xUޞ=$YBL@a7-ݴwVֶPzD ׮(3:2ڈ f }{z/t$D&={V=so%===A-5~[[պS:Ͼ]y uNʢ9~ڭECS_[ ])62puŸWQlU]%?vU]n vǸDa{B\S9ރY:6r ϔŁͽ+n2:v|Vވ`X"@9RdsSM$'ȐEvkLDKD4x4̿Hl tq:m6g]Ed͐^,p]g1V-8|mqy^LgZ(}~rp vptx497MS z蕪nx}*lΑA y{fٰ`e SE/T}Ed %@ mk`3I@%QLφcB5pHB_RR(|unXTpH˟7L~ -asc^9@&~\;&=NXS@A\)wc3C)l,"YXteƳAnp qyynOLfL2K~4|t!σg!Mn$YA@n kXA9F Mׯ@X.25Lx[5=bC綛 ~;Ep' .Cz4r!Bp@;_@A q6S(݌(Cz$GO\dcy_}P5dٺnۏdf[zSX] HɯZY}hG]ocI{n7)<bk\ QFq_o $YĎoQ3]w8߬Z-LOVΟP z#5~ n”S-[vhEw<1VQ3&0Xdj*m,^y7_.OOHӑJQ62Jy|eKp_egvA;dΧNJ%. GkCxz<7??HIS(]I-AG G=8a~. MT}׹fKʶqO#.Ca+HP!.x` DHc|۳EcHPB}{\X-ƖWSV E0uιDF셙)pz [NiVuG$ѻ z| 3?bad*b( !kU(Zj4~Щ 0Be)J1e6f~(n|W56S>}{wI(tι@6@ZQsIsJƜII຺[WS_tBE^rg^-eD-]vSǫܢ7Mj!-4/+/snr >'DE۰Hǿ&%RUmX 6StC,] Vx u顮LU*+|YUu,ܐɐq[}*dMm7T4S3S '*MckծoLwXTWrFkluQמʟɎ.uL^i)Ic,MM˜=&,VtZ2$ \զEXqyÒ \#Q*g'81"LCp3DM+Ov'c<a-h+%˭6)q (*#KZ 0ʶÐ9FtW U,Y%@ سDCAo tIcS{dIK<&ܖ..lҲ\R9ǟ޽nǛ/U&U8FW?>]ĝV D$ !<.ig8ac93UvuDssLuG&\ƒa{~~~Cϟ<`A2x"E'_塊% ~C0mG813`(0N ♗=h;姁 !=- CG ^#0oyu!N+rr@뉥WO+EY4:1v;K}!ty?f`rw\x\`o.7?vL-fxxI!AU#RŶ]nDbX C x9A0uxCax)Z\瓧~iިQ3u[Y}]Vkq|0 TV>5+τůz7%jΒ΁Mͽ +wM3hR4r!8:MYpݪ:gMl|329 ?u.@ܛvaM`ev* V8V9wLo rk ilGGON3/߯- SߙO/,i/+zKf&-?g-f<_d #?ςZYIA~dĤmvIVP4&Ioٓڎ>-qfh1?f09IENDB`riseup-vpn-0.24.5+ds1/providers/calyx/assets/icon.ico000066400000000000000000000436151461742244100224760ustar00rootroot00000000000000 wGPNG  IHDR,,y}u IDATxw\TW?ϙЋbSTh$] =dwMnʦl6FI~~7%vE{~ 3s0}xޯ!{g99B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!$`X க+583Bddfs݊[].BNI(.Y$\fPb.1',_ٿu0.k}GrQ0ơ!@XcuP2Aivh_ qf gLEnZotmPSnFl/[cfp^dب [s۝O~q$q cƢ3dE&[LKy"'FTޖxIPd1Ax,+@G̶ GᦷKWtRhpK98p~c/Û/tVdG'cJqNڒ H+:=*cP=`C^hf̤Y߃b{ VRsv5[3玷 `98}6)Dn t!e1~E~q lrtU~IU t kֹM.:8.{pF@&Q>(dLxIk.gy A\8ޮ[}#T8L0w%-E1A_-b'v'9 c0}Rٶ_?DjnMc想[նamnZ nX=+ 8r ؞^b$8+@A/r L[U47^`)# iVo_] 6\KfmAq{Õv9lNzz{aZ}VL+䟬\2#"0?xlVpWNƦ_:>/079.zMK=O%\c6+.g`6 §g'>s0&h>X1`LئV8kJ2/yLgxS$X| r|EߗQx+i y;UI. €ENim0I?ikR0:XF֭[fZ/~Xs }[.Vr 7O#3ie25>S,jw8wdfL@j/.7=OyN,c.@x-7C;mqƞKxcog]z{v"#5J/{pp f~ EN_aߊivE^~(GbHv$ָc f~Dn5_`ڜ xnZn[ Kq`.a2|?lG⬟ZBȿsVoJ9pUt(fJ`ۯ̙p+iuq % &cޞZ'Z3AQ2L`_cY_$ryX$5TZ97M) 68/gؑ_"׭ٖ̀tLno"`5wK9-w;0)$Ex^w ƽHvgf[xzÌS:Epo4z6k9֭[&yVb`$׺B4 _ZG[; jAt5َ/\8e}4\yhͤGlo_#Gr g֌?Mq9gc]i6Ž .W*7Ϸ%LPtkeq6:8{YLL^G{ +FO{ ֶEwf/ ֔@,xEg&ٚkfO/Bc>td ޞ=w(82v5<ٙ9 8~ +Ra_w_$)A \x^dT18Q'e9Y?k|TL7ω n~; g?pyMmDPհ!@'$.QC=~.x `hZ#39oπ%5!>;36o;TbsM@OX`Qg/yPL֭[&)~WnzGI+x\-;4`6 n%.ci酹 ̲ACʷݹك@g-Q&_?1Mܦd"Wl뱯[a ܤ/Tm,(Y`$sF91i- md^ABE`bk_^F7P۵ssҊR۲1ZL+lF*/}hnG>}`m˜ȹl cxp4:7OaP02EKśe[}V(\\k*j+Ӣ(%Ź#SzLodŨհ`=[33]6TQΖv=_=un9 !d@ V~G$d@0r[,]*A`'s.!K/[> ӽ2 XrB,8UnZ?]&`d oP2q̷fZ,ș߆."d 3(!}ǀ Tم;]1A9*%tYVok"drCʸpݓr%9c|'#tP >¶kf!xܯ z80@'; gƁw]րՠ*ԜBDUS ^]_pGP,/[ȱE_U&B F"{kKY}k%NW>'Z94`FpluXjz33`е#!H]42yпfg&KZ+peis]JfBU';PUEߊ&龩P9Ƥbϡâ9Xyـٍjw#dpTמF!צ JRc ȼ4!jb _ ږ*cujxހ>e N'*@Sss8gD( EJ2 kKa6[j_'D'\|z!1\϶QbD,Xo =m&n2}"`@G@/h5dju8сʓ(?֎GF l7bA:d |r[?|w=WQiȸp0ο1lP nO+Z(3CT=,+X&:ݾL0rh(*:`4Y[7;Su\ΰl(//x#N_/3 Q!2\JA@{ u>G 27`FqUnFjAԋW2J=Vo8۵e!2Li0(LPۇPU5 .Z1)K&iT}Bf3GUCܫ,=/yxUfLFX̚aP*샣(TekŮM[hs -li桘VsVP K weZ^{ʏĔs:T$!Y#88w>+אּBd$ l*ɏ8Zq1/q 2?6 Wi:%ޕVt`۞Ǟ͒5KV`iW6Z l 8AwCvWo_`n jux}*L÷1yl$Ǫ I}ƀ1zX8 vC8fr-&k/DbH08x>wq0L޽#<6KEImY'siΪ1̋(n tA'x1pl t9ԡ6=vɜ*ZcemFsn IQZl?@ȩr Xݺ;sq"XvA2sև igWɀ :Ӈw4>!7.MĭW$#&RiunöZ/cj,;-67Bmʫ=τOSaHofhu4@9'@}2`@^ t9azڻ߼r9’A#!n:يZʒ,]xm{quD2gaa4 uOdK*q: $TE}6`@nz:0rӖoj! ݝrpi"''@٩9VkYp ՝{:V,^3B<`EG W=}U˗|V vϤ5HQޭwd0`\M6V4Ro@s͝y•jR=%ǫ534~) s\7_W?&z`d&%IXw=7f4V[^z4Tk@C챖zc!>qԶ~E=~l_=z|3U㩊W{Mb\w%%mJi VWkf\ k?-Ek>u:VLa9mףVv&4Z>,uv|/~Bߖ8fwW5(کT;<DG*PQ*F qK XvAeU*eȚ ė߯aXS 2ܲ#m}2` ښMh@u:4Ta6EHpo]EWK3@3~O9 zѕWC"Cb )j̚ :RQ;4z`hɀUA~OV+Msm_34uՄ:PW@:`TIozZV Xa2={}@?7Yi A3Z :ahi7M\qH`S=, OwwR:؊%ٖe;7~Hhf{c%jgDIF0` SJ^zŏrӣ(;#y9 %Og;ZXr]EUR%كpx$~cF cχ]F6xTx>&2\d6s4zrv &@&]Y~.x~eAP r >@!2ξ8XۮL 4oO*dwy6Kgp%0հz~7y,a:`@Bz>*OveӲv!G԰*]~ |6 ufzFY.t$xY;N*w<}NPS%W;cKgO`n37^nOi+6gxz/şى.4"㬃ekeZ8:`iʫuDVEg1QFiĻMؼ>'Έ/)ךQ~{ =] M@`&~7` e4ҁ'9"`@NzKOXUN1avÒƪ+Lfo~tbceZZ*>/PftzK&i\6ز~GX{m.2V\dS ػx53G~aV4/YnSӻ 4c}J~-%('jX15*k<_R.Mqkˬj:0j}fzmg6G-ŒJ&AJ5_ywS~I=φu ~˄FtX#Cq-CӢzǻU}Ǥsc|"e,;y7 Sw:ZMSЀ?Fg+RÊa%jSB8XZ˧yMlN=wO gOK\`@S|EO;M.n@M:SŞC(U}齓gM{{( J`͒$߳T;7mZS<qNlmktkxкepp߹3+ 2VJb(F ;=7^k:~߯O#T#GmGOIP2C[R z']}90?X yc<`eRIV m[vî v#|Pil< c8gb0 0sFlf IDATbpl٦vl?ЈI'/Hl< Xa}ϑPҦ kFeg-xc+K/Rvx#S*- "P;+,x:_sb0g6j%-M\5I,9X$;kF ֌ *|Ah̚it8wz{E[kќxҳ?6SajNF/԰ugE+5+#urюVISD_LzC1hv7iij~?:{W{~nN:PE) &>2P`5X65(|`vZ֣du5ZS&VgOH+͉ðW(ل&~&>Ԍ]COYhѺXjX::us5qJce8rA W$ū9#30}B@` 6ɣ1ݗgw7wX7ocA𜿞?,,C/p 0re+,,tJj|vj{onUW;<!:BƀӣZֻkmЖnDĜ@1zTPQCi`oMVZ3Zڍhi3Ո]_ުM D"szf9\lt%JʷE~hl1.T*Yҋ^CZq3#[9e(`n7w[rdϊ9~(?{|h4oF<>sd[*]AIkJW#ur &`֤D{[Vف.<㗖_+;LeY\=aY3+V⻿i0 @}oz/װ&RTPkK,и3VX(0'X4]  َu]AmFwlH^CM3(UkH"D*1aT$Ə Q0*3?N2xw4\LYKxδHXXV +`tta\,p%]` * ļBK 8x`s?iL$Vaw\3ck5OjQ@Rr'5 ɡ?2FEx+8ܺIF=헢@&evZ,9`,Ptפ]8zwŖWWl?rj],W9|  zC /4i ȟ3厯?po8b"B՛QQũ -=D!:BH#PbPbCt_`FsFD >V(%cUSaDR4ViƘeU'JWx9lgGOru9079XkXT}opCtVg @Pӎ֥ˁ6X:;{(eR`  Ũl(>T#5XF-lch2U2P-J5>ʺ*- G):BeVi4MX Ÿ4R @^Ž, ?k#R6lοܒܓRpPȠT0( 9 PR)90<ɹ~P FAɑ$UG[n.1{!fm1qpdSkxuj0vZ lu E;QUut sh\=ĭ XD0RkUK-pY04Xr}g8/Tida ) :3sf7AA'>d>W:َfz]JX>VSـm{mom훋 e%Ɉ`%ga=`R )Xi :B俧=0g7TkvBH`TJ PeP2@15ZbcNjYA!T@!T:DR0B2T2i8Zچ ֹͭ&Tz386a9{l*iHS!:*ՙQӠGUGNЉVv0̜Yq91ڪyyZ3&v-@:?Q$ @X^WV086An,fDW_g Ǿ#c#BS*Dpy)f3Gք}9;`g#VVl33Ua`5B2QQtx3T =n Q3{p9gfRI^PZ)'6I\ס3Edzw M&bhB|J^F5 z=܌qM2Xosx{g9 wxհ6 k~YE~}%9s1Մ=sC5rE+1(&F!}u _Od!'x)= #1Koqi'|VHO0PF2Í*Edό[;R&WY⮶~b2s50T_0~=aR/p_(G$=Pgr>n11O|n0c) W.Cg[2$;hQ7*&~=fxޔX{+:(`P `xɓ{\uHKew3N4BpVǾ/Ư%u͡P,m<\)p3xjvKc 桸剒=ԘMRwjE]u!|1a<>D-&L[ΛL Ltq<[bB 191{Z[1nd zy==ߞƳoBd09r2 '93 Zp՝sEY8 X> Wl,5\2.mmDc}SuGZ5 KTCݯ`i{=ҧ&hE) цf|X_)_5tLj FOuyr1I/(`k/Yr1,sƅj7tr뮡C,˳K s.h3`}tiR<|vo <>zP 8uо΀D]*7C˶Z O ȡ)jcω§K[Йڿb!3\q,(Wv9Po\]$ hٽ~6Wpl? >a<"F{^IOa2,͙Uܺ(`o7^7b6R%Cx{6wW0il8*~UR)& Na_U֌W?b|LJ"+1PnZ:oJ/ݹGwO^y+-kvڙ>!;g#yW=^z(j̻b}h4JW_9iӺE5_~YaxW0bB8 7`^w/Ĉd v͞aZLX6j-~ƞ!2h\"2W8;%'3eO? ,e2!hk6ZEMDcR48V=ڮ5DG(1~keC[ ~~ Ͼue@L : Ź4:.gKR7[N=$ sn|phb d;9DoÌBU}gOc9 X~k|r-ϙ#2ֽ3n=xհ5e榄c!2Dƅ`ڴfLZr ƄC3ZPXaC4h7kb}Yu?UCp5Iqa%}9EO[^}l6E H/%a0ٌJN&#F Ed{{ FCkioEuٳpYΌr< w*T;oHv{'g2ү+i`&axx0b]}lC2vGs-mF4pZ3U8].C?L^9ژ Kϙ7!@+Hd_?q籟~?~Pnw|0d "{m-jk0WCzSQ{;69L9ԬX9ά)' EoP "Yr\}Ì'ځzE⢕5T#'\ 4qRJNW*Vi:=؎Mm<14w8.m[sFnF[ߠT]q1ܔ"/rP, 3&](`dnݖħ(`!;QB}X4 9Cn߀>]nH V}.5JA k]nF?}0 ;g%<`)LtT_L"$t/N0  >5|9Jg7+2UadLvx\(p(eng'2 4"OÒKjwH۴e"Gm&c0RdR s\̰6'] X}؊b4>,@btp5L{ D>2~uңNd9ڸ̼) *o֞~pAmlZ)$U K];Æ!O$P&-4*ԪsHn?XSa}3TI~Ͼdu6>,A.6Nw1,&IDAT$oԂJ% Xg|7b+D-GW;7mɓE۰r1v[Y>Ԋ=["Il!?_հ"}X=:7E<1 j9'͉=7vʮzT9T*૴.2JؙPf[ސ__9~lE N19>Zskf5 یw[֌ S#"\{3]oϒ~;e_8xs _ot.TIh6szq/xYq!ܙQkOF XHFMh=~wT*{֫CF Mы>g.(,JaW*ш$JNR0!-}C{IHFkS3&v3I-5xR1 *~ -O*Zɧܾ9w(` PkWh{qubK{OnV})scܛح~_d\8xع PUg9JՙKPUgWàd}ynqoi oQ~ 1Mf/~T3qԾ a5])(` pOwnlԝ#;Kp(`~+u Z~-i3$~ #Z5=7xڜ~a|&m"AEJxd;_RVղnso( aIae 9 D/ b} Jf#TE{eh,XǯXfBXj钹O,IiHaS-mS~f̏\tn (Syq/Plz Ǚjt!#4ƴ ̦M$(`Qe%ԈWDְcU9.O-e $qFv̵!KjjXp;$Ͼ,῟z?Bzʺ<xo_f%nkgW9{ qjXġ/}뺚bՇ'$K1\AHB|[GWtΈpLI^~E@~ B䖡r F t\|C[)"qSN3`.FM22rfaC!-!rB!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!k$IENDB`riseup-vpn-0.24.5+ds1/providers/calyx/assets/icon.png000066400000000000000000000436431461742244100225110ustar00rootroot00000000000000PNG  IHDR,,y}ubKGD pHYs B(xFIDATxw\TW?ϙ:((;EFMbҳM6}הlfcĘ71lz1 K, Ju=?3L_/;wΝ)9 B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!aR[+7W$it7,sK].BHNq(.2$\fP ".'._EcyS޵=N(y3kl A#2"unh/(E0gFqdsR?~s3n 0h;>sNzxEY28,༂ɰIi?8-a<^~o<;R'y۳.gXe=\.<8lU0kL*qlr4 .=3G̾ GᦷVI]N[|4 l81o{Qa˗O:htN~_Gg`ꭧa1Loh{`mqƅwyEwx1(m6=ɬݕ(`;p\yʙ$ʹͶ^獷 `98}6!Dnnc첦wݽ<(?l;rYW'\Po1 c&0(P_G62WgȘ(5D1e^.u{ 8A׹'~uQ=]zǼ)C0wp`#`J.{8c8Az{ŌONrB>`XVoo% nAg9myGf2p .1`GvZAeu&(3@]\!uĬ*'W~0 IۼEuw,dXS.% 7J<:8?Lfz`Wٟc`f3ocd9UR<+AYW71)ăտe7,֡xo )9iqyD֭߇w R?DUr6|_ܕbQ\N)OWJ `LЭcc_`LԪVbMqEݏo+ٜ1XAVn!Sٝr n$m!7e _u~*ɝ6$Cp)&=)uyl*ut, agݺe6?+yEY`~vjAsrN8k k3">$Õ XI:Go%7 ( nz1VĂX֚YR?N-` =Wu.c/ݭ&˝R?GMSL0hn*xYGL}M0t4 :D6<=-z{?{{˜ƘᵜrL{Br7]N*ʼt!G_ܭ:ި|EN_؊ivEnOMR'A1$vWFjk<ɋф w\~?X `/p_W475'mK/V2Vd2Zj x?O3cͧ.3Sw}q˝, K.o.[0p Uwg4@dI'I=&ufljrv%A_cvj&J2M1<^uWP,ppye eX3o/"..;įrS6c=p_nj+RIbb?yx[IEcau)ݍ`xc޹cfaycLK/Q?I;F jmsfā 3Ε>,pfZ8sehsE;k9gY[Iњ l>+,"/n8{| V-G~hMfv47eq53 ݍn\+XwZ`qN |ud܋NѼaR? .kwe$up=QƁ@)ԴJr#(=-/}5YRXn3ZQC߆N ̲OaܘV2:ڱLP x ?)ʺ;v+X0utW,<4f6 /çdٖ/sx?֙lUˀ"/y~WN\^=#3 T+egrSv8ڛ 5緶g.3`oo?`k!?uM;Mlz˰>Ȕ'sg=,pn>I\5yř7Gǂ—s:m&W1;aZAXj˜Y4A'hjX^c4WoZC]gͶyřWp 9~^#kfo?[^Qejx 3gqf~fto??phAy`+;;ggG\s cS)ص ^oKTBASꔛjuqq*Ɓ5zCyEE8 G4Q`l8xV7C[ϓW$)A \x^dP)(}o=Ks2u8~l׋2'F38Niޙ!(;nl}]R?auM-|ClN8D  ) = )5ilIyS | A͓&.ܙe+9XO~lr8`1S5XQd8ɺuB_#ERI+<٩pgB@,3mfsbPí0|e,5' Gҭ4tUޮ|۫AȽCpdz1s rR 7p?*A*9iG'6XԺR-xq٘ԂKrSw ̖ޮh4-P{[nzPm8٩H<}cbi-\{ܝU p\E#OW΍Y;h[De#a8\!zƄߢB~eYW!f)55,6RɹܑY"3ޱ(Ruӛj5l2 &!FHd搡*ҮjwS7KҧE +ht@XZ2q- .Xz{9Ar ^N4ieA9MZ @0J2q-gK-hd^oCd2U,:T rR e?.!c?{vN!&(GtT54g1Rko1l- .rI&g8$ &N~kgf;,]pܷHV^ &QC{5_-68pDaR' eƁw.@XcĶoQE%OBUS ^MX. XWеfǾ:~Y[!=L-e/8])Kqlhؗ_[Cn-,Cf:Tˇ e A.-ݙ,-ÔmΑ,ՌOD8qBrIbâ9qXy޻Ɉك*w#$p\֞FaϦ JTc Iȸ4!jc촂_Ͻ)2 P(?َSTqRʒv4ָ7;2LsFh1f jd /-b}M7qʫݨor,LpiN2v\G}05&EaDR( h2 8UюZP#v( 1fZ.y(e?T`x1'o+kYobƈ8c=DG(1ȎsF; OJ;*,n, C~+i?8S?6 Wi:]vl[u{i X㗍*t?` nȞK̕,LWُʒLT<|9X8;F`p 20cBF C:QRs 3t% G\p%]i㼫ac`ZS}2`4qpMxOǍKpIPڜ۸KoJ;yFME P*3cU,} :}` N-QBO,MrRC 6B+3\| ,!*B/0mWTxPdc還oׄmkTgΓ1q YCX5l*Iӑ&8-J]^glu`x_r_W#0:ôrpi'Cѩ96kYp ٕ{6V,3B<`E{U>}ÞU˗|V =)u3i ΨCw 'uYׂ#h5_- $ūpxTwIq*dΌ/ jpåü.F-͗%771(ڷI c֖uíc=[cYPeh2ƈ# g5י:πiжzG*%_sMbp\{LHlQ-(!\)lA~Z6}`+j>%B5r-aSUg@E ^9XcXkLp,G}>`@nJ홏!hvTC_=/Z!)^õ3"*ByR0j[Dz .R)CX|/~eSzi`5:-ildFSx-ӣ9(bD |-uA ^+ΜπK.' 2| ϣ+2:D8Ԙ5)*u"úSOop'PZǵv#MܚZjExO?֢` j6d[M3\ h̯YSy= A9Z|Ԝq a~`̝ZD+>hAS u?݆*Gu5GXi͜MƖ632f}=~T€;DwW4@{""٩eȁG.Zk'qloG;U`p c0wF,,۟=_&`'x/m)`EE(U@m/WT7Ѧ TFM ǕĺWYEB0@DFZ-RQcZJqm(Vsje]9O j$y`;.`@Y⩤P˹|eS:|)P㵌w_; ]Y6ƀZ 6GOiCXOALd?b+#x>SjfIE%H+}S 6D8"BCADì߫U`t]VYMD8 @~+= SO3kM;2e{!L֏q?duCf9+ڧ4zX(}K~n^yLQJfktQ&a8~mEE*-XdEtۣ(=s\ڧ3]M)(e`9R`aI \0 ~1#B }]F>xW>&"Ldp4rVJ+/M:yg;M- /3odR!"ֱ0XۮL ֩41Q]Xf(k`ra! Dǧfat 5}9NG[9q2 u7I]~@} zl"blk Æqe 6#`Q]%e{ HNbPcOX5zn,#R~P*}5姟9i8t؉1{w ~nC r;Wq+şt 9ҮVGl ^žYx]fpT6׹>԰d:wQ#Kpc/Usv?{(;yfvӀqyHIY~`E޳€ }5ۥXCFDm02Lm27x˴pmU!Db>,Ոwxز>'Έ/)mYPvgz\ ,ބ5L}`AF$$; dο ]Aˋ?NT >,gXu/^QYxT'ZYtч지Xͭ&k4?_5n_:{'<} ="bxm}_GPq#wy0+*17m p{zvnE58\$F ҧFTyW狟+på^m }Mxi;F uL檿?XΒC9"g&/زέmuFthûh #zi{=wK8<7q , wg4U4&bN{{ZcEjX15,Zd-PQck^]ojp~FϹp`F4:Wcs tj֙*nB:oݕE{$tˁY|<` ^9L,2no ؽa*'1!` gL&F a}-DŽm/mÎ Hy̱׀%u +g#xiH֝>VtOw<" yh1΁7v?:_P_uB5U'PSv^+r.` n/f ,J 4a[ Ag鱓("Xr>38MAU1B;̙Q5)!pH|s׺o}Wkќx糒ߋ6ScjN?԰ FuwE)9+S#erѮVIRlEG9^LCݾ1h"MMnNP[> `X뜨V׵AEˮ/a&-_U5K`ќX Ki0: Qh}{7axkګo2.`(@^g pXij8t 'Ș>!@h1>1\kg޽c1f<[o؟ ݡ@|O/9:auֿ,4&3GUR4ܪ5/+0v"*\ƀӣZֻky}ОfBd5 WQ^GIykwhߦ̈́V3[Lڔ\0iL2"sV<`.Q)PXa=;kZhK&..Y̚Zwxz'j=mT;NapdDcPl@cx=N6 7mQSo@yzҊv62}ސCʤ(̜i"Vyީ}=ź葁}+.>2Dη?tFPgZ(^$Һ =ƌ_|U}#kV4}A]NOLvlC/w9gpIj ^OMqjLFh̚0V k@&̲.׍^w(uި'}5Z5\i5ֿ\ˮ.]bLÝBt`|v& :*d?n]s;4 ex7oϠpw]F$:B "0~TƏ DŽQ.}\oMv$^XC JJ.GǮ7kXW`z4`1`c$uXkM2gΤ /Ljd/f?wT0\20T!2( :D!L8_R&^^Vd=#+%lPr%9QmoAssHhl~dpj+IBRZau|` kR[gzkQ9TC2Hhjk8]BfD{CZ4 ztoidI'!5`f kK\ksfX Е) kǟ@C?M߷uw\oF׼&wjP&f'Uo~KIװ6sЋUAAoU6 gx糈p'KؑLX {v|I$,ɥ&O W9y(T0yLx%hI;.yAƬovYx:zR a;)cuSgj9|5;^]f9a}XՊRwjE{Κm#װtz NW  X ǡ-91*oj׿u֯ 3tǤ.H~;̘-uwUhr$S.;rͭ{@7 &GK<_[ՂAXRú-D=$3Rd\8 U BB B j CBiDE(P]g(`sIQ`jmw>j~dύ1-.6fZ=wa:=҄/H9#TԸsbU^}@XaMD%pd[kxmjm76Y b}ꐿta sh\5ī= X{0RkMpY04Xsp9^B㓵z sg7QQ/>lr~8| ͎|fV}5`zlW/7KUJ$ ΗP@Xu|A'O{ `>Ϙ2E?R 320ˠ3eR)c8k*Z3Lk]AAV Dɠ(A!@X~WZ18&^n,qz͈$ ՝GGF$jSU@"sͼ3 GΌ9;6cg"6]8'Ρ,d8wvQA%q4 L+}ΙEW/()[J\׮?&bhB|JEUHvhђVj0jX>r#̢ t_s̓p`k#tNtYsڀG[p]mNixCgfLB3~jF} F6XzcyF ŅH8 B5rL-mm[hl6Ʉf#hnfw0%cUJ |o?07p?o8QQnN;(X;a]+!aTqcmg2$ū…Ydغj[r(a HvW?8ns:D2K }W#{N@-8*7rc3jY[1|k1tѶ;zޫ2T+G}GzoY=lK"ëM:`~6_yGfam>PP9C&gN;~j8| ǡ9&r |;6xYM1< h9v 9i^n8O\GP]8=L@87hpkq#VKұ85.]z@n{+;}nBGL*pzGB.޽Xhߜc|j_R+E[Ѷy)OtUZ͊&\ý&R?GFϬC _d v6"W jܸ4W.sy[GDuh5a7|S9yW 92 +5;` ;e_rW' y3j䈍RbPtƍ ET~#QN FcpO~o)&zN#1;䕃S NH,` \`Ç.e2PFX-"kfu|wf¨9|jK۟ SѷLK9K<}f~  Ðqv vBp8-Q`+KώvRŁVh_oӛߛ'uo\Sqʝ] /r0'oͭ\`ͱ Kqm=9AGJZat w=҄;ډ=.y(}yӁn-fչ);n5.`W̺~Ԧ0o^A-fB&8A!˘͜Ģ =-ƫI72_R QAoO97[&:TǂL \u眭{$}Vm%9^ % ïPTUk6M>g%TWh4 ؼiSCU`˞z KJ8Zdē UCDŽ`T]h XSpɊa7g 6. _T9Y,`H7:ĺ<3֠3XCaƍ GRkpTp d?oߏc_X66D$~ (`.a#6ݛG AS9v`W1K%dhm29~^ ZʡJ/7Ub8(v8^*29ߏd'3 ;EH@-wOfJyi(a A1z{ WCi]=8~)AX馐3OFC Qo xqP|xx8/&.YLV/KrGlf/QdRbfZ#& ZoR 1Jvʺ}_=t)fF+Mg?sb|LJ41C9ĩ>0ë+|޼s;ݎCƇyWJtjvO3Nb l] u̻b}h4JOS/u٥E5, /hWٰ`le 1! ;댘0:݋EE(1"I%g+kذF .ƽ 0RVo{OaN"Í%+!c\Zt"8S Xxi`-ÿ)p Ak':'-?P$kpTw6MgՈ Wb(϶ f) ϯ>]u=nťq3p I^́\[U^ "$ f@8َgn R3#4no(ˍ5cwy:[,ШC2֖63,GS ͭ&4qJ38]mC7L^>9Z K˞O ; XA"8*p72Gb0 F&ismT'PSoBmM.4 Tj=vhMueʁfqgMi>m(BV+ Iv{֬(U'Ǥk0&9 .H=׍vymi V=;}I?+ XA('M05jX&76I(_w~a9l3QX8>DV2q;8N{}叵Vhh;,.ҿЇ!~C+HݝUo`qzg5,wF4`%8a)Bd^'++l β/(`|;*Xkd֍Zc;f~WY7\EZ36 ;ﺬVO +åsOfЇ ~G+ȭdչ.5,{7<2)gKÏ,gߔ=`'CȞq |@EMe9*o5,r-+;rP#r@jt_~ߜװ| X&ٵ)5 ( X}>:A{(!؎w}X4 9CN-+4 8 X}c5z/Jx?yXdǻQBjXr^Asvְ &j tr$.7`x |(`A9ikݏrvopeO8tWy15’^CR(pvn @Q:pͻVPҫ(`Q(cZ&P:i*T9<̰6;݀: X}؊"4>,NkϙHVWVW?G h2ܔ=_L X}uFEF켿jXM@rkXLnMz8`#d^eh3)I=((@opkY^Nj!(`O-%q[폟ԣe5<KG(: XHُͣ} {yz>,5zEqIP~[uĜ4~C ޞ%0~]s60$hPgBɶyWy~Cђ2 w5z}_gM@հa1~Bzg.tx?ΛawtgY2 XԤE2Gimz9s]8; v_nNͩݰ|ǁ$AV?f_2:MPq~R I\cfYlynJ~E@ @~O}>OW:כ VZξ9wm7'AV?q]Ųs{xt/u/neW9i/IP1>iN̹1CT:{kf5 ZM:tl,rWݛ^y{ )}5ǛZj{IbMBŏ}-O~Kl ||$HP@R/X4jJxcزkz!h&E3\sQh¡>'zH*u:=O~~ 78`BjT[̗##A맶d,wJO[g%ǣU+/xt&J X.{|Xt_lZΚnP#C?\ĿB?3(` P30R?^^m['ezNIY;{ L"vBztqcOjZbF8~8!2,&7xpԟ >8΋=7&qNC _ܕqA.}ņW} /K|Iυ' Xx%qXi;ig؊K\-sq6/Ws c0 xpJ8s(,q2Fh4Vۖ4+v$7&. Q;]i¥'gJ]>B1`ou K].B5>%:V-R_ԇE|6jZ̼8yĄS5 .!/N.u9!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!Bk%tEXtdate:create2019-11-21T18:41:25+01:00,u_%tEXtdate:modify2019-11-21T18:41:25+01:00](zIENDB`riseup-vpn-0.24.5+ds1/providers/calyx/assets/icon.svg000066400000000000000000047172501461742244100225320ustar00rootroot00000000000000 riseup-vpn-0.24.5+ds1/providers/calyx/calyx-ca.crt000066400000000000000000000036071461742244100217600ustar00rootroot00000000000000-----BEGIN CERTIFICATE----- MIIFYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQ0FADBEMQ4wDAYDVQQKDAVjYWx5 eDEaMBgGA1UECwwRaHR0cHM6Ly9jYWx5eC5uZXQxFjAUBgNVBAMMDWNhbHl4IFJv b3QgQ0EwHhcNMTMwNzAyMDAwMDAwWhcNMjMwNzAyMDAwMDAwWjBEMQ4wDAYDVQQK DAVjYWx5eDEaMBgGA1UECwwRaHR0cHM6Ly9jYWx5eC5uZXQxFjAUBgNVBAMMDWNh bHl4IFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDupdnx Bgat537XOqrZOulE/RvjoXB1S07sy9/MMtksXFoQuWJZRCSTp1Jaqg3H/e9o1nct LQO91+izfJe07TUyajFl7CfllYgMeyKTYcT85dFwNX4pcIHZr8UpmO0MpGBoR4W1 8cPa3vxAG0CsyUmrASJVyhRouk4qazRosM5RwBxTdMzCK7L3SwqPQoxlY9YmRJlD XYZlK5VMJd0dj9XxhMeFs5n43R0bsDENryrExSbuxoNfnUoQg3wffKk+Z0gW7YgW ivPsbObqOgXUuBEU0xr9xMNBpU33ffLIsccrHq1EKp8zGfCOcww6v7+zEadUkVLo 6j/rRhYYgRw9lijZG1rMuV/mTGnUqbjHsdoz5mzkFFWeTSqo44lvhveUyCcwRNmi 2sjS77l0fCTzfreufffFoOEcRVMRfsnJdu/xPeARoXILEx8nQ421mSn6spOZlDQr Tt0T0BAWt+VNc+m0IGSW3SwS7r5MUyQ/M5GrbQBGi5W2SzPriKZ79YTOwPVmXKLZ vJoEuKRDkEPJLBAhcD5oSQljOm/Wp/hjmRH4HnI1y4XMshWlDsyRDB1Au5yrsfwN noFVSskEcbXlZfNgml4lktLBqz+qwsw+voq6Ak7ROKbc0ii5s8+iNMbAtIK7GcFF kuKKIyRmmGlDim/SDhlNdWo7Ah4Akde7zfWufwIDAQABo2AwXjAdBgNVHQ4EFgQU AY8+K4ZupAQ+L9ttFJG3vaLBq5gwDgYDVR0PAQH/BAQDAgIEMAwGA1UdEwQFMAMB Af8wHwYDVR0jBBgwFoAUAY8+K4ZupAQ+L9ttFJG3vaLBq5gwDQYJKoZIhvcNAQEN BQADggIBAOpXi5o3g/2o2rPa53iG7Zgcy8RpePGgZk6xknGYWeLamEqSh+XWQZ2w 2kQP54bf8HfPj3ugJBWsVtYAs/ltJwzeBfYDrwEJd1N8tw2IRuGlQOWiTAVVLBj4 Zs+dikSuMoA399f/7BlUIEpVLUiV/emTtbkjFnDeKEV9zql6ypR0BtR8Knf8ALvL YfMsWLvTe4rXeypzxIaE2pn8ttcXLYAX0ml2MofTi5xcDhMn1vznKIvs82xhncQx I1MJMWqPHNHgJUJpA+y1IFh5LPbpag9PKQ0yQ9sM+/dyGumF2jElsMw71flh/Txr 2dEv8+FNV1pPK26XJZBK24rNWFs30eAFfH9EQCwVla174I4PDoWqsIR7vtQMObDt Bq34R3TjjJJIt2sCSlYLooWwiK7Q+d/SgYqA+MSDmmwhzm86ToK6cwbCsvuw1AxR X6VIs4U8wOotgljzX/CSpKqlxcqZjhnAuelZ1+KiN8RHKPj7AzSLYOv/YwTjLTIq EOxquoNR58uDa5pBG22a7xWbSaKosn/mEl8SrUr6klzzc8Vh09IMoxrw74uLdAg2 1jnrhm7qg91Ttb0aXiqbV+Kg/qQzojdewnnoBFnv4jaQ3y8zDCfMhsBtWlWz4Knb Zqga1WyRm3Gj1j6IV0oOincYMrw5YA7bgXpwop/Lo/mmliMA14ps -----END CERTIFICATE----- riseup-vpn-0.24.5+ds1/providers/demolib/000077500000000000000000000000001461742244100200325ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/providers/demolib/demolib-ca.crt000066400000000000000000000007621461742244100225450ustar00rootroot00000000000000-----BEGIN CERTIFICATE----- MIIBQzCB6aADAgECAgEBMAoGCCqGSM49BAMCMBcxFTATBgNVBAMTDExFQVAgUm9v dCBDQTAeFw0yMDA4MDYxOTA3NDRaFw0yNTA4MDYxOTEyNDRaMBcxFTATBgNVBAMT DExFQVAgUm9vdCBDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABIG5POr4cAdK kTavKpSJr8nW1V7HLpr27qKaShpk1TUy5ipaAlusmavGLxKsPE+i3AMlvf/f6ch3 1MjAtIf5rYujJjAkMA4GA1UdDwEB/wQEAwICpDASBgNVHRMBAf8ECDAGAQH/AgEB MAoGCCqGSM49BAMCA0kAMEYCIQDXj280LNZbSbi0Y2WvtQrJBUw4wdm8qAeOeuH7 6XiLEwIhAPBRsmst/ujcChsG2t6LpG+p8s4rfIfh8YLo/4qrcc5p -----END CERTIFICATE----- riseup-vpn-0.24.5+ds1/providers/floatdemo/000077500000000000000000000000001461742244100203715ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/providers/floatdemo/assets000077700000000000000000000000001461742244100245602../riseup/assetsustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/providers/floatdemo/floatdemo-ca.crt000066400000000000000000000007611461742244100234420ustar00rootroot00000000000000-----BEGIN CERTIFICATE----- MIIBQjCB6aADAgECAgEBMAoGCCqGSM49BAMCMBcxFTATBgNVBAMTDExFQVAgUm9v dCBDQTAeFw0yMTA0MDYxODIzMzVaFw0yNjA0MDYxODI4MzVaMBcxFTATBgNVBAMT DExFQVAgUm9vdCBDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLiY2PRd7sct /d0qy0EHjP+MLA+bUOV2RjMErxZrQfok9bMAFFLza9dg0LTbsdLjved1f7ezraa1 yTYD3i2NncWjJjAkMA4GA1UdDwEB/wQEAwICpDASBgNVHRMBAf8ECDAGAQH/AgEB MAoGCCqGSM49BAMCA0gAMEUCIEq2RG2egV566bOFzAL68qoOTVA3+58YYssn+Jrg adPSAiEAkYbYV5JLlA54lXy6XlZEmCCcVb7u/Domsk9smMQzWq4= -----END CERTIFICATE----- riseup-vpn-0.24.5+ds1/providers/riseup/000077500000000000000000000000001461742244100177265ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/providers/riseup/assets/000077500000000000000000000000001461742244100212305ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/providers/riseup/assets/icon.icns000066400000000000000000051373711461742244100230570ustar00rootroot00000000000000icnsic09o?PNG  IHDRsRGB@IDATx]U^{n˽t v+v6(`ؘOD10EQDE=g ,ޯ>YgfvDl X,ˀe2` X,ˀe2` X,ˀe2` X,ˀe2` X,ˀe2` X,ˀe2` X,ˀe2` X,ˀe2` X,ˀe2` X,ˀe/a@%G X,?{M5mCiO9er;pʆi-ˀe2`Xp6zX,ˀe@`vjzx X,_ʀutۃY,?pvb~P_1[?ˀe2` lbYlRˀe2` X~fղ6a z՘zy(= .4"ꇤR@ eL?>Jۉ9]CTox;HQu3~6(_` X,߉;]-[Wˀe210L ̸ߕ ̿ߕ&Z8:0?Wu&@Jkj$/RT ]RgL~ BjJ<_tfjĉ3T'R%❨J-OP =)SRi].KԷ8H?X % #JA"6G rʽnH8pC۴ˀe2` خ}+2` sU=Σ]=Y /Ra _jHbv uz ԁj,sFKW C3B;T [sEWGΔGE2[dȫ"8P!m P$I|&/L|Y#9Vn[e@Q_Jː1_y e!bbQʘBxq6h6zO;`-e2` O]-2` o1p櫯ސ3~6$vC6]Ao:Bwaow" o0j | ʷaz-FCnJBJ0dxGD(mՎȅ|<ۚ;%ҵNMz'|L{X/GJG`鞁HS1Ƭ+LӴDJލ@aw `rQ.0&f #*OrYEři҆~Du9;0p<^>O_,rŗչǃ[E᧑".3r: iAkaQXΜtH2@zw1S]t{ޱ7E9ُH0GxW{q06q @Pl,b Lcz1X?AޕeqAϘY+> HE<:GqGÐ(k2?ZF\6`f:p;<_pAg^9:O_\ ZهǂB76:$ v&ؖˀef ˀe23@#iݰn7P+[gR'*)¶ך^0Pp5}3W59`gݳ`|"8#ezPrAN鸨|:zn}I`B5[\1P. x/cO%Y»Pp/` X,W2`  ˞K?4nu¼Ff% Nf'⩽qNxReVy&t3F<FA! ̀ 0)G !jcI~C Dн/Րy9zK0:4:H[y,ڹX:4Jk^T{U Ib}Vlp5hǦZ\ ]%FN!:[ X- tu@CRc7kx/!ƹ4ho!!&ȏA^,. ֲ;+QL @ &<~H@w 7$Q={x\_qZ< |2-G0"/8OEB`Hp(MG w/bPFKA{k ~y&<B}V1IтzEzgBK8gdx_K} h *Igfq]3ՐS? M \#Eiܿ ʙ J&Oaz$+2].Ș'}8R[cށxDk/#fID^ č2j ˀe2O` O8 {ˀe`#d`]:CsSS;ӍPE~(ѭq%:}#M([)0ʦ]5,hUq. 9ߤSfc,R'|ݛd yBpobbG;vl*3 6I%=hg ϖsvu);F?XfFG;n=rA-JEƥu8("\mKi TY^Ci,20Ey/Cy!n(yo&9L`7Yy,ChrC:teCNt~H@Ev?@ uAv4S׹{@^,^quvR.KsEhTQ/o xR>EK|aq"y =kZi^?&&^^w1"sA'8iaP 2e'@Gqi_^EW. .^zϤ* /=IxG+OSpv+$y@-%0$|M,:pg隼YZ~ LƯ^'漛Eռ}WLpw j7e3pwDB1Aw lepZwZfySG+Mz㪻):[O}M ˀe2d?,ߝ#x/iӸoDء~mgTt 2#ER p1pr`ϩwg F qfLvR=5tXKm ml9٪501%{`TvrTMߪ6A=ɔ.2/V~}D\E=VϽ21g9ԳW!*w|S'Eg,ӣ` rF8^zEʁaa. x;˖ h괖46YMegph @aFUIsg  D5NSR@8@G.!l$Og*' \(1: \(eՀC},ŜLƘYF dU\G TY=Jq5m&Q瀨/z= $ 4uC z*q0 T* 0d`7ʶI#iE%L`:$^mK&uZNWzY'[T&yK:Al%D?`Z$'A>$|D9eQ| 0Cu[CF1C& ߥW`#zGSq܏uwU~`pgO}kV. Lcѓ}C> *s4m!r0h; >oǬn;T9X| oX9Z>g` 1ifD_*+q8qMWwS"kxIr#de2` oe2`3Җ5)RL-F1]}Vʅ"^tl> -/\^{paؠCcK\h&[. i3sa;m=^?.v.@#f6axp,&_(05;RLO)te,oJ'pDa_a¦P Y0xf5 7mt6 bT7Q[@|LΡZ-r>V)/LYU>u^&V|y9 ]2- e~x?r-z1@ 1 ht2!Oۨv#Wϡ`ihƊQ#9TV rq>@}Ƭ}A-7LbvcPs;Яz u:-i$'i4k~Y1&>u٥fNX%#3?/s*"TȼDK d$KL%Ѣmؓr)H.T9X- L>qwdY|v=o?Q+tNhȘd0u9p$2u7wW/!]ew3!辔Uco,0*g0;w-8Q%!QoG2 vRf'o[ڥ^ىsr]O .^77B?.6āo8-pu3ͻ<_fn,ˀeO`:RmFl^? wI4M^=%wmz,j`I4/v~5"8r }Za4W]sn@ dp aH!#lA}k#([>۩}"SydX t3eVCh Up Wa9Kd8YcOHyfK]4-I( $hr BkcrYef!X\,y^5-p1z:J*?J/H9XeaJ`DI܇XK=j`hJ7RzS,d<71m$diZRd=K5K< ytNxz(1 "Y(R'J*|˳b:Iɐ;I@L}%sx saG?2zVhr@G !1*n/Jr,w"_A&OѢ^`gxWh)K67ipU5a(gkDž+1](ﹹP'L >V;K|`P?$ˀe2` :` ‰T@s&TwM$G~X&L3BsBTAP!4TqJ7~cvC~DS:EiJdvߘ^8b$>C>ٝ]ڝ7.Gb_U.|ZmSH9%+ `pzIțJ^[)v.Fʁ͢S!FKY䇥}ELOB!g$ϕ^=t0SWH(M$s:R#gC"'́O/s7 q0&!2JХ:L7Ds-֠^sELUq|,k)g´݁184֙.QvM!O.6wi/粄#-En L\G.7r`г6[eq}^p$ tkbr>Gv_q~pEW|aҐ-mn\Z{'5s8Av{} {"d#~EЖ|r/>p>)L"eqadԶwy֔qE  P̓)`ˀe23 ˀefI/ؐcܲ>-6$Ϧ:Pϼr+>FEtm@8~7(uPݡF|ƖOtAfp!(4`sY0Z1yW4H?EE=Bj;þ5~Ҧ~[稇`8 =g`K}:%Q &w 3ej=5/Jd7Qco+2@Q?RΊ@F EN6mZCQiҰ &sMCP`V.MNu`p gPKfC%U,132lu,2-M_(D|)0VAAgz201E%,ǖm_7LYn>do,z SB"OBdGgE= 3-A:Ƶ!{W@XdEoπ 26<?Z OŔ~!ʀ|N!JC&ރhxmr`24?4l@ޯ58An 두=5 $}9x^Wx0 a?<<4pXBH?rf0%_f{;ZXa` Ql ySH~ HVgcYV5;1gBEzCuղqVKv,vo.v `אfz2"u5%N4Z4CG8|KvUS-Y>%1z+SyP=5-6"V3DGF}p}<p \Epd5KOW\ >;`&m>sSL_;H3Sz8nGɯɑ|` X X?Ӳ Xkt ?z.ZXn=stO'4m#8h~j6B' C2oh+6cQx . ԃWe\u;X)i}hE'ÓBY6^?{aT7L(9v-^ϐ ?I01 L5Y/jcbEZz]?^ak_7M>#2}ny|45ý~X?1At7;e8$k[qW"mcs[!;T1G>?6:FLEECZayF ׏rf.L_Lr%> dXl$27а焖D1n*+M> {5x{W8#p ,@}WYDڽNmq{<aDKn[^R1TC>COv`G:sW#acuf yZvķ, p+YCCs^$s"o?Kut;X M\susЋ`H/ c#T? gߑc奂8~XN=Zp⿐iy$ik S l)M+E*AJ愞GOdBhȏ㊆0t=9,#kޕ¬>rX0Qo!0p6 O'eޘ<=heM!BjdlQg~|p/g/؟1@ G,2_*`Ǜ??w%!c+HC)6?^ )U!rz8u 2O;dS羮r~V2  xQÇ4{?p>X3I /ahGY<ɋDz 0$qR\0)p^P.[q/P `9[8T]bNA"iRҿn,7UsdT2[|sUr;)IýDNIh7^$eqw]QK n_.R{eoicEݒ$s8_&g*'u?59w{3|]r8RɍؐWH_ @A _ˀe@z^,?ӷj-gQoOoegkw ]!P~`*'>;ˈ4}ቔK}GX!r;5;ϰDí݃ Pt||g凟;fS߹PFK(g*.dRN. EGCARn)YT0([ʤ8mi~ l&{H ~1R ̓Pf66m L#?J ڦgQgG˥*5V"]h WM9 6Srq]e:?uil'ObVt%D |'0Xv0Ppi ; 1w``}_ @IwC/+t֏_w|~yA}r|Ӕ^|?ks8Voع|),A@ _:t?Mi,wk<=6ZH&\s!rJE`FSt7EHMD#@,b LR %ARIaR rtKN- lo.LOhI"~ϑuxxnm-} j/=QXy?~Dj> p,{Y p>]] ll-*ś7GpYXq"rqW~5f9p K9ԩ7WoO K*;^f&j㒍oE;(ƃ{fX/ܱ]<_ g=h/;,FR,@aϪCLl=J 7qʚӯxGH0L/?#PƲY&M >J%YBӤT:C8z@ACVu!XFȗK TZ*{Iu"p::^Ϋ-zX<gy?}k;Ra/C.ZCi;ߨYeدR4<xXMPSQmOqELwU9䳥0wpW36p<̕aQ\ ˾琏ݭ!K{ pB[KE=,`SAqg60GSh7cs$XjEi[A $ C[!]%aBXԾœo@o #,jvVnwA >"_O O}yY|ϗ{7R{mLKi.(: cyM!h{ws'*߃~r4J>n잹f_+0Obx NY"2V/ 1@_Bj2좇 5ht5" %h,p&{-OSURb:dE4> թ<;zR̽]? |u· G#.X<e=rϰOVD,P,/3{~ԙz;M>(5yͣT9ȇ~O'vn?*l+[ugɹ4Rr}oރ)=&9 ¶WdvN[w3`}Z l!oC l< Rjj(4|aPa_ v˟<dA+L_Gl'`?HӋG#bV7gW=)7$/om?(Gbh709al9.aPnirf䤌lhq|>{'Tfn (A3; syF$7"gz@a'Kݓ.5iHB9 'yϒ;3c2#/]@85B,n 48iBqkFM;p;;P5X(ϟI=p ޺l>E=}%e,@h㮞e2_dj6QQa:߫T|0ڃTѢp_Vb/שq"/_vbĶwd\KOX`ke9gW H7^qwRS|&))FKz<_4dP!3 `J.Or:QG@~TP7 EC2tّ=rl؄0d},o\+!s{G|xl!Κ1& cy}L9Ġ? ~a ?`> Q;ω"axi'ȁ|f?=~ zO: ļ9I>nRHd 0W(wX"-1zŽs1`'5[  5]8_5rBzz}Bjyybe2`hUƍzb1pE]{r ߓ.H#E"P=w3T.%Lw0s>AgT.flQCԣF~E&ъj _IXt5mX6aWsn(97]*!P YXֲoejjB ;eI*雩6!)rQout&9@GNDՙ9cy[JMvo-+sxlRs·>Rsv*%,n(Xl1bkUd{Ӓ?\ IAXParT;ˁA]w{`vg AqS65X\n,@grS l> c=]POsPJ*SK[1Nwf\QpLvbY\ȕX h/W+1IwI$ i P-\Y- V;8 jz#r0 5U|) LHN[)TlV}U R챀o1R3-/εGOj28W1v Aʴc-Bg.0FbVBx8%x:wߜƉ'lq,,x)0BS?ٲ2` l XF~l,kҲ~kh7ޟ OWJ`:ʥӓ>0oB{̘-c,* ܫPaGca9ܹVNQAY(y?|[&T FoZ4١$ք*ڹr\!4I,/˘1̢ݡ긂 Te T(dF92? YB{C^FgH3ķȎeKL!*)ir`F^f/o 5q˫8#GHo3,4ĩט-SqM%孍 'p, ~`i2O`~L>pR ' `r/O* ҧx|t Ļ~@U+rr&1U{B̥@qĞP#ghrG"=gf UM8>BX̱`\*+>kx-V#X)ԯ U]}RzϐzZxktThϗ\0ssn:ΗSK9V/=iau#}_'XMAI]1\K29/5K;&aaG3U8=6Yg4vߝ x6$Mk X~ʀu+Yf Ꮦne  ˙oL"ߐ圮UXڤ鄞{u QqA}) N-a>ER koUoXwԘthǹ/ m" D}T(gi-g7}޳ FPQ ^ E· h_.z2+r*8uph ?ZsOX/G˓.-UXt4\1ՐPR^.E,vTg?}QG#SyǩQGi)# qe2g`ީQe_o";AFMql>»yB[ ~cff{HLw AFq '`Fy!`s0q=sԝUV0s%oWF ̕"Ț"tT|.cx ߳eF-cdQ 8^uɔW3t4!=3QBy;}2.CJ隞Bfҏ:)e<>wCgwXINXi e8-Z,--Nf9Y 3*0Lss=xwn[N22 ͥSwC,CZmGK &q:zTݓ)s_@eq.+ !;K7 TD.|* _ y,Z<|1'+4`sza);dEg_$ʙ&y[A~V}b(ՃP(P{c"?]l9ETwd9D=`๼` ڮ8PQSMCZ.0YC?`}P]~J2`3c~c 4M)Y<<[~|=WNW7R : Gy\W9ili',mDˁ[eU*mgq'xjhŪ/| E;n.֐o빿JT}`7y 9p/ eh㝠:*yZky'f[-2s,?ظIF~q8BP>}| .D8[0C 6e2̀uo_{ =6RNC@ ?IUS14O䢣_dvT[ /zC5-4Bvm@IDATyT,f_$[J7S-*9-\5]*2 2--%d6xE0af7̻F6݌1YAr`!򼋑ch>[jK!W鹗cfP`Ɖ-s^I`-DPDL DQaM8!Ѫ ө nu0Vo{cJ_m ֋ԯu~?K 6X,  _ce_F/\#A5S!L(^/kCS`9GjB"!:zAeYx0_rRQ ̊bZ X -:\-h0+)?Mb$+󥰲쯭拮tAJ)wE>W]Byonj1DߙM;.y?1پK̠K8=1׾'c^nAtzG;f F:}&4ߩP`&4;e} +@(v_OŶR|4O1( T$޻]3& ,yf<(l(tV- i!lߞ=̺1|}(ШHfLx#hmO fd p$G@ g$4 LJ0%9I0櫐h@-QaEWCcUΕS /WzMGeu% sw  W  p(Ƞ~αzLS+e4C*W}C}J2 _+f·<ЛwM_y/ۍp,ߣIė,0\ +ӆߵl Uޘ>P0LӪ ᷖgLߦb)׳i w/Rsf*C РkQPt>EeGGFc;sUAUR(~L /Ȣr/P y%4e7O=|1gw6^1{3Ck іrИ1F>=WRz9bvەhbX>le9 e2ڍe2`b`;'|b{oj:76~` xnנ6 p}ˏvξ1kqV': ]x"0+y|l Hr^s{ӘqEG^έ2S73Lm*k;CDbu|^8_J蠨L+#p\ӽÖXna &:&O,zEv^tl݃f9(I)x ^U]H-TSQ*T}d׆THy@,4ps6rpG'LEK%uWƤ bГPns`jB" '2{Cտ-3X6pbEo4ϩ% 9;X3ٖJ 9X,_{?Kil3٣&wҎ~[Ξ;Fv4H#,z0a)i|ĩ{M))wm X&y+Vo9.3vc[m5S9-Pװprߩ= pjhMvI{ٺѥcg^6nkLk^ug ]|ȓ*B4hH0 Yu#>p)}2cUoD$|3PP. 6X,w~2EkYU沬)f<̪.@ !zHgwWs0 żz8ʲ:c 9v~?FVXL;K0&R7w`=kl!ѫb7"R/BmroO\Ӭ)rknv>AYYzN1Z4X|Crsa.|\Y}f}7Qv6݁Ehil@N |Bƚ.SpvTvTɿC1e՜g`S5y] &"dˀe2?@53xUnb=C>^D'} gOo2[~dtHX Dkxt/bg(HE`8:`B#k09ut5ò߽pzaj݅F+Cm/\-]r{tȑ._:~j";z7R ʰ[TFz4GT3@L'tO!=F{ń#AOUQ0-k@~#Ȧ|_3zK$'~2b7=^ ߕ^9[zJN*=s:$z]W3:[6?#PNw tf9M+~8DwP'@Դ"Gi7ЛDG?tX[k'3o{k +Dp3ꇆ#tlv(n5%d(gϞ}iqsԴ|*,X>K&RKwH8YC|'tE& ;/&%P/qżFaӀ;ͭpj̏[L{l X,g`ޏ~ |y7ݰw![TM&r&q7i&^"x?n4Cf,~8fN5k*w&UyX/)>%?9C^r NP }R"ESbn}-]Mq|#?#L`|zҟ}W[ O2k2n_EhN*$N\E~;-(r;9#1@Ll X XٺoD ˎ}:?'11 n r~H|7nHeղŧԜYJKrC)tL+oYZ@-#^Ԡ̕ آQV'#ݛ/h 8٭Fi⯐Aȯ7F#~\]>S)SSyRͽ-_aGgG'"=}.Qe IAW̊2$, >A?<>Æ(~ X,N!]eaθb_`o}F7\"pHb|!zE|@0#.GVEFFの, +s%?DZY4HU HQU9@"N^\9kYWY\YQs ^uM2c"jLdwםt1k#+>i2x.lyW1pu7$X*_~d2`8Z ܻ)s 4>Hq%l| ;ɞs^Cy;|aƺfb>0L;[i΍H|s~CiOΊhx`uU/a8gpst[ : x)"̒IнdMyk`k)nXl"h)g LnA䉼xC$QFy2FKWYNj[WL!rr܆ EvU`]hoc0.\0d1L1 Az21k9m2` X gKӓ_ӣPmcny* ;!nO`sMK`%PK^J); LӁ^-k|D9U8RUtJR X}.V$sUp Ot2m gw1XWtyxt|~@Қ0X.'N:ť{CuGVm]iiU{函 w>8/=㰯?fS %^YD,6߾ {'E_=3{9swTTTL,"&P3OAQ0b<1g%3"*T䁈s@.MoLsS|VwOlMwUuuu!|+].OTvKxG:" &c8wstM9EbSgq&G4I=paTJIPDzD1 &mKVwwdvHJf߉J*/EߤѸ@=YS4dW5(?Λ\G*s0A9٨_ "ME|2choAh ڷ^>?Oi`2a7g?Gvy|QMFt@|~4S|cz^;|kD @ @Jfoʹ7ltkj n4@(EHֶxC K11cb$oajO?rcwq}`jP2I䆥<#֓Z)VA@$vہCOPǨ!̫z#Zϑ'xg`Ou{_tX('^.m,P,Fyz}K.Qџ`}}K}|L놗#;L#z'ğNᑉo|d8h$WH pR>/zV́\sX@;]c|wJxl~|Fr=~&N`'܅[?p{U(;pLN!h0?~{4 _NߒGAx2Zӗc`=X+ "V V M6ͿRy}о,Q*aJԈCOճn&x9-K}wckP_Lc8ׁݺ(xiUTI Us+Bŋ5,aá-l鏜$3ivBFlh֟t4S] ȚP @_(ࣷ% Z|?SwSq& >>z1w{x't6{ ^9F}!mL0z1:>kLx0 S)f~6g ե=W)isPπ/]KM<~jF4`v0p5_ DX[Pi!&|P9jU&ճ6.Jr`>4bjBm:񮩟M1D?ŤȉC'i/\1 $H @ @ ?CW"x+ऄ78]ʟބrG:=Iv;ۃ_CvIEE)Cg>/RPBeR*.g=-|jj|""5EMjY?hMmsAj~f/sE2W~./Ck|~aGI/A7= |gP9A5/ (@ L/}.n&OWh [wJ5tx=7|Akq;x"ㅱ/eSp<H`Z+^!)~B opur'dO3:~iA VQZl`6/n$z._C5L0%}FٛoV @hB/ (@ @ 0Ak hf+S&L}cWbcqcv7q,ax?$|AUԱNbVW Q vTS ӐC PbӁUTUʑ khu#Zu {5Re?ر7r!E9װ2@q)z]ΨR?2νQ4`ĴGdX"8AAHx^9 ;i^{<ꢟ% l$"$j=czaNݲn,&a+c.ppD@Qn=lcbE|ԺPDzY arɑ (,q<ゆӲbF`UuT:m,|85ypjhW:'Oz?H LaJ9̑Qޙ8yq+(OHTdxƠJK}_=Ɔ=ư54nܞڸޔH @ @, y'g1y<76VC˯G2?imcCg[ږsmDK JQf|Քu ЦHbТ؃@Bu=1ʮހUG5EʞcqZ}KiV (w#XЋVgvWsW't0bw%nS5/8}ܣTN>^ЧHa4op[d-Z2͔AQdzH^8 GV. f $`0S6<~<]c·wS5 OصǧTa^? HZ q!:rj϶w?T~:/5\_?:iW:Ugfl >М sM#Vq `=7؇|Xa8@8@xB>z|ȪD}$gAvYNZZ:pҦ ҦuZ.@ @ $`%I&ҡ+d Dk/s+rp ‡e t9r@S8>;pCl^CORMj>,T)3)z;0Y8KΘNѧ喾]<kԟsKۀ] ,D/ t㎷nN 5r{%\4oގ YuA;4x /Ioo)pIHJH@ۢus!KR{'s0nJ ،_=AnzgODŽgBdn,nf ^)tt5+ gQva_KP0u(Ϫo ^?~cĝl(8 EL"]Ђ5"j!|3Qc3{`g2{ye?*%2@Ny3Al $H)9#O%\='f܆k+" r8Omye62)9 9NGRV+PF6")`[*k<^+Gz_X dG^4TUEtg8ec][8↥i^ߎN*J_V4?1/o0yK%<H VKJ[}apA ?V|כ6cww{sO<Ț}C&i꒱;MgS1Uu+b`)7G?~yql/<7 $H @ 6 )M7ؖ9 V;>`Vg_GGxqǩ8BwvP!k2˪k]p'ʭ\ETl0N \HfȥYvЦ-,UCJNjC V $Bg6АYd %p&ٽcݽg1s}z'Wv<H $' 6J`k ԯh+3O(DO9f?U N 2A?pOz_ RY'Ɨgcݓ0#c15fT PWM?o@ $H %͓^9<֛Ӧ# ز9.*p8rHդ#MJR&,  ,ʺ|*Mz^`WRr,p Pvz`&u RG7O8'X!Mf B$Ǣ~HqۮӏGL=}S͠(w\r FGiӖK<−_ j $8 h&J6D oB̄0'?5%O|:J s sSB(xי u{8]P Rj'ҡbϾbO<W@wpl{R [C[~k$H @ }>KƸ5RK\ yB+= /Ёkˎ<`=%cIy39e2IYgcM (3 cl-xuJAǤ_'ޱTߍ\#c}nt]̢@M\$szX G`%\G˓{w{ouVoeLfbקq:ϼCٓ0"qV]anq5&<*ɜ ty,vjϼ ^p ޫn+}E"j*ir &&sF?R{=^HE Wyz7%VxL̂&>O* 17W $H @ ?Sf#<>R{,p_> y_wځQk(b=?,uQȹ#ܾ:g̢|^NE*{8C^>Φƪ\dz][qkE.o>/g3pϡhE>y[)/!v`0yS@P lT01E>i@72P7A_2R1ZTF9f ΡcaQ?ђ|C.v&@TO=p6PmP|Zi@;6LݘLGYmW31ԥR9w?*͸/!6鯢9m_G/,MڛoŗrPc@7K`IH @ @oH?Ɛ]V^؇W[(Y~@o+|ЭR^,SbV@SҚ/}o-u/Ek؁=^H-8R@.&|Lz>BxEHu.۾,Q3Ogѝ nR4^3g饌HVf}QKo@  '4},w Z=ß>P{ʀ~3؍^uP@RN* Ԟ% _4Yѷlܗvg:>YEVlLJ>.S㚣^TjBIکBa(`Yd`&zPed?V;Z,༄vSG@zWՈ:GNS';~ )6s$^9='ph K!B9OJd lEu_eX/~APH`@78y_LdKvXc;2]iVݥoYD}" EbۏR,c' hL47;cOEAd٧f;KުVL@Yom%6Uݲ^K7?E+\žpϻTky"M"O b)oi?_6u[zGPH @ @ o%}w^qx]q upG Cʚ+웁[V4ERt6YTeÐ90ԱPceF9S(+tf:iM`ʨEޔTi#hx-LkG7G_~O7ݍz=CQpunNJ={([s#? $8~Ɇ3=W̯z/͜*ky`wjS)g,o;t]:1QP3+CS{٩n pFڤǘAǏwV."9U䜊})Qjtr=Z5A4I1[@e_JuMAgY)w#2ʀx+$.rcJ!vr`'x $H @ @d X>{Ѣ%o?YZ0Aّ1xp$9'B/ p 0w6奼ų-{9T ڭ ,#9}.nw<;쳗 [ i{/ohlS8bmXXQ0q [PxFmsJIf`I +^<@ۈ6Cl s ȯxT=?[ٯK ^oA\>F[)]0R}:& RkKa*U t B'ԡlؗQf.,GIfپ>JZs F(2yCץ^=:Ooa=<]_2!j38 >¼T:L5p08oޔ7T 1mo\$H @ @ =k2\Nsޘ T!ވ ,ho-ʶ a&"+#H` 'ㄯc0Z1 A? `-o)!;ۭtsԨq{]֞G79~ c]YkW^M􍸮͹:'7h>GmhEصVƖ!&pL44MOw|Wn[~(n7plY@A6 dn$S0lgF[F Hv?qh\;lSl`l1DuJ'FP?@9B'FG(ݐf?Cy?^ʯ?K\t, 7.L+ZcWМ;O-8e3;̴GQ;m]nű P;IGWðY{Aq{{=F@ $H _& _ m\CW,Y:.g}83Ml&mΧ9@;GߦJM_OP^:S4rjj.43h~ utޣb{iZmOu$ wSN}?^]m|Bk3 ;-G7,r4rχ#f)Ǩ%M{k mTƀFo/mT&׿?6y@\_!׎ ;?2).dyq0y RٗˏnPhIuvp/Ch578Mw 0L߬Mf+mSMV |fv78-&Wp) TLqD0 `(Af>x/dWyB`yx7N/ $H @ mJߘC ]1Cy*B&KfLکxS:XMEr`},NP` R5m);Fup aEbpb0{Ru%g;jUzکt2dv; Ճ86ǎ@-n9>_cb-=v}YD3?|`؄ l0ܶyw] x#~q l3Y-(Ov ›bHWeFw ³05_~ԥ|Lߜvx?zcw`cKv-1p[.]u9́6;Jsx`Բ˩(^L(i27ziHL%oW~Ҿ؆}poB=s ɓym" $I#H @ %`Aиa|3ID UOa?\Ք ,WRIÖ4I৴d /J&{ oFk.Z5/LBOl(LDMχC`QK/GEtWQ̻0ԑeڃQDMH`Ҁ $J`?m63'vּ9, YTd@\T00uޅ4G.UOHx[X}7;;,.=JF*T)np$MX5DWׁڅa4 P(Z]ƎfRZ.E!/i Ne :vf_* Ȳ.&3q{F D`3P <|R}cy?ʹ0r\n{>#@ `F&S-q\i=K\vХ4kg`VoY+jMY&42s ^ZKvV3ALSN(''G~ֽŒTŵTcr'E_m I>uS5NA>:GcaH_Jk|ֺ=tlmoH 9*u~'g_tÞ͍~A{t@o7~gזb-ٱN 6!*x=E50p*CEz0BEɧ`|919ڽlIӒR@G_Mu ՔYSV[6a87kTG{5Cj% ܁:XӀWepWϡ-+( mx>9o7Q7o c%`F 並%L62"dQɡQ9(]JR!qQgӧ}u+tm^ʪ1ǿy>\oFEs7%x%dQd#c`GX# 4MPR< 2q-}Jߢ=31_Le{ֵAM{r_䌼7ѓ;Ko{5~M-~dPH ._7>ȳbDa}ͥ.0Aa&`{!-^9ļNhXʏC/Ĩ|˩*r#hN9< P>7 aRUjڣޡ>Qr TUR#FMLL_}lvoS=4M;z;(cp] @ a k&O/TyЅ^; ~TP:0&d "Q?l Tߚu2%1>hOq~wC;2֒=#Z!bgV7 L]9]y 8fΠ|1%8 C1?/X Qb*b׳l M%`ԒMɎ4tL-UgNt8#L1c Z6S= C:Y>^ P> 7[xN c)73vnP)ꞴO @EoZTĪPt=yzp0G [^^xp8d,p2[JEOu͞l-25>w&L†(HYMƍ@mP:^ #$=h|wfެ#g}ӣ 5XHuԏdP]}%p2}[o30YM>L mغP=R-qHW1DMDaX; EVRKu&v2ݗwRDk9~$DHA|8GDJ-ScK6ǔ~?>ńn/o@LsDD|sMw7wl]%զDF4:m?C$H`yV~inϔ{ [QO[5Z ABUi(&GdSa(Eے_)f"Wg"J5OfmJ[ {)}5Mě5ؕ+Ap+~4<$Xn7?GkNf f5|op#N=9 S ^ 0_gozQ"=:7lr>]r@;EڋT#$Fu@]̫\xHuC k9EO 5k1 [~ ,R+J`uU9\ "{ԕyϦ1i Mx_`Hyfs'h#5aߌ3dBL7߻AqOoJ2=C C$`36ς1@c7KqZ as[ e_^JʷY1/ r[ch1x/!Xa5Czm>q|DA}t0۸my0s[,@6[e~u9iNJ#tG>Thw;]'5~Ir*5aVxc7{;lTPQfe ;ig}Gx5;TtDU'zG-u-?jY^*ݭq( z if& x.p5LBt"pFܬFd1Z<㟙x yS :3kMPH`TܛY N Xc.K&PaMl d s.8͕r=ޅ~TR"T&3 ЎO7QЭe'wS2~QjO&_17xb3P ݤYH#Kàv&V  |4 jzao1F]-bP:FꭤP#W>.u'm|߿}8O+p jz'650R<2 H{(cbw,<w68@"h_7~HI<+OeY^H}3Ʃcqa ˀ۰"3o2A>7[ AbMHTm)j TML\g^>L$A iCIK _:ɭ o *3O^u;$]eIt>%AvJ<#důxTE:}gZ,G0cG;+DxEԒyY+ʕJfA_ʗIPVy}om+nQvX^$>P iQXP0R0ߒQZsRI;?`C. *)H=;.vx\ / ?Dzft] ゥJ~W^ Q3}>*3S:Cu' S ',rR)koTuNܬ`溇^"O~^$ϩ;^oNg^"s}'`Ն#›湒|1ߙ %Aؑf8։Fv@^ tHR@᝶Jڀ@ n w5c2/џ1|Ì+T+]4F U<*P5 Owc0z&e3,3r-1А<V~saY{X2&X_ ^'!~qro ``ȼpdy <%$sq0Ko\$9_aˠ^" T%]5S_  4ް䯘/SR$b>=ܿFo'1F/VK7#MS =>S,xh^Z &K`U R7 GF[+}G2?7Iy9#_ fL?eҏt0I nd"<_'% $03yr^#j(=0FV z,nI^ u5gKx>}R|^EP}6ͩL˚%EoՔxx(fM̷%)`2#-w5 {a R[y"7juq*S~ݚe79UOπMތh`; ptV5m*dh\xJUESbPg xH5*N1 ™`fS^z[gdTʓY4x"0n*=u'P7M-uu2G#ނt`KSGWMSev;GEnq~i!!v31Fd -LTCJ%cx<|*GW wJ3*,ԭV ɛ 7u&>y|n[2+I~O.G)٠; ;YDl^,G`~b,ɽЌz\<+Gս_4H׉Z%AA#ip6,3P$qď ,uZF;Y>PQu@h&%T:ery<ʋXJZ Ln!Yϫ܌뮧O2 2uQJ>_P;*/VLJٵʆ<,J<'LH yǖa\FuFaȂH҉'흏RktV iJ=VuJ0Np_`Zd$hsoG_W%o-hյ?FI,266Yb$*{夗K^ҴZXǺwP ?Ah tWH`Ե3w=˩'p+{^Tkhx"uQj[wҐ*1گ#UuCC'j` [>V@Z*9]h< v~ޤ7&{kOh4 (aؽ%5^ެo8L@h "?W&BƬvQX>#r꯮ftLNɝ{ƪOjA uP[.1j8ujKO֮\巻b|%xTqub&(\ q *o ~Er/J+'ڻ“FUH~xϧoo0 lJ oXMgP?1A[/а8HpVhO)*j'9vaۧd Ji?1R?}w\%#S̻繻ƒD6ɛDk{/&;k[e@/ݥ\.FwLr7"\b;C/BuUínκ=9DVg+cY»~u``KryG_l/~Ѿ̑;kZh:$~$yǥ|ih&f8վ0#AsD_- Y t$:|& @69HRc9ڴ1]Ѡ dAId=x)#Ɋ:'Z1WV~,V5\5:*YܙLnif1̰W<Й6e 8yʌz 5MRG;c>J5ev[$.UNTp/rpcSq|U~Vg69\σ5.6 }ohV(Jh7vjӍǬ_cNcl8Nb(|_~! )S3FU71b_+ѤRܸ2.wua^@FC¸o)WOx+tU0߲PG<*+U')|Z&8oEbc);[3JXRӸŒOJ `zY-sm};?Qd=:u4M:9cFgՌvI^F GS[$@'Gr}rH|xh{ߏ|Ċ%>Vp ܟ.p2O$RdU̐TZ0o'. 2uoR];OAk7F9/z5*, _2)gJ<[ g5r`v*f?;tn<ßΧ\o%uT/#Qlݸed-!Rh( @ _LF?'n@q[z2nTV B UT#n_k2 x#h&]܉Y6e龣OKJ>߹pg0eT(q]@4 ?MLǭ,Bu`^ $Ԁ,~+GC r)J7gݳFp=0U.*X1}i0>DQ>K^6@``=x5{ ngV̀b!nP @0fT&ȚE^U73_;'cZߊᵧ^Z^FV߾~cb0s}0{ǎbXi+\_J{Qt h~I-Aށ =}00MB8[ɇ4v1~#!0Бʻ>>:p2WTkfU-T}Ȉc' b2j)\LO$H1@:_]BJ#T:C3Rj~tDu4"߶8pEޖ Oqyz.cLLC"-0F*#j)섃y0P{AJܴ1CYA(F|e^=3H=^d g5;"/PƬ758bn2٩<ޞ~lX 9;sR` H) 3/M{{L\˼{cQĔ5ΡΙ!fQ9GMM5&.@~YތobДsy6<_[ϴΕ '`$K6,=xB4 "RTMfPi `  W@+=p8_l57w;9g/'EU@X ??נmHV{.ߎ:PX#_a4*IT+/hCh*x ?^5@ %h0x5fedo̞oLgx {y+,jP( _XjgM>Tky'(>vy&,織̇>LV< Q{";2o]ڇ&! ɷc33[;ӣ= bk9SI%ivHGmY)r54(=joQ%r3}@'8AOm vw[bqx!W^Z!qd8"`ԷËRc\ܛq3 >)NYXm<4*ļ.`D|0VLMelݑ%@ ?\ތ FmxxX#ǝXMUG쵈c -OG6E܁:Qc^n'dZ=߲ҺV2ΦSYPiwc4\ȝ /6%@?ϠmJj1(ֹJCv +oUUH-LlI;pNx:wLmlOI f0'Y:ECye&.5  [g],O9V={" }K=}[/lچckʹC+[=|* jҚ[' (y$+z@݅'?ˆmK N9G] ־$[{ԞuSBoɻ yQEO~cɈ  f<Ֆz$_-[ٲ;1o`vG^$Aߐޡ>Rr;c}DvJ1xwz#ҏg>eu]ޘ낔va7K̇ڦ^RY@c8w=Á~`5b~ҳ!x $IX(#;28D-#X0.Y-CvC1 i- $}v sJrӺ=FpZTWsP?NJ4_oMS$KSaA+.0Z }1/SG9aaV>UX5jJmV>[~O@z&ԑ1Å˅[@ (@ .cVsE9<8h[~թzF6}1VuŕO3V_HVXvUX?RZ1!q?#M f $=O1Q+rrK͘<4.++F1dD9qyM^hÈbc0*N"FJc=j*Yw#͸׹g9!;KʽZ0rcYKW{[wN=Mjb ߭b^{p7Fg|{rFpIdS/;1S];A*;H3W3oUʧ(qAJlw ~N[!++,Bc ;,9[NB}5Z2P ?AO6Z^-h֚@3Iz Q7֟ؼ&SXũֲ v{'EzfX2͂bs̘*3 =ÙŜ&s:3*(㲻3;S}Š'{UMPjROCR(e2JmJ~qO#F?y,/1@ 5íV̈́T3G> P7|M۫naY5A`Bw\O"^/"o^FY󹶍&L9W"&!%=I']Ŷb0eUk>Kx!mFUiDT4 +uFAx c'sbdΌn806b)(Ζo(/3 80˦z<.:;a\_gৎqlD?] +e{@rxu.arbT?B'Bw\`3N䨚x{DSR `VNtdkk/X<`EͷݵV;5ԨB}&?Lc&)NrW G=/^p7[\r)bCŸp=] o˫DrcVV^I6z,zh%$1@l`^@c(:\o"ӗ*1Wڦf:>lcU82J &;||M!NhHf>CX}ZgΧQ/l \8fvInXg!_ئPFzMjC35b@mZ5|46;'%1TbhCegi>ɑ!oUSߌt*x *nxMyE,{5a2_Nw^6M&Łen?s=  $;+:7ԶImD߱8r8P ,1=w 3Rut8dXvaY ݵ$LŊ#RN|;'(c^m"rmђTO 0+g>fՆ51@nWԢU}rS?3EAw29AtO; ll-=3R`J9TFRڦyWj'T i^X(AЅh&CNJ$D,OxdQ!1ʀ)7Qsp!^-2?W/@8xژPCDLw_Xέ;9֞> m(57\Vaq99e:x)ni @ק7kwE#sќIx~ds5Q/G?.5DiMY{7,jb9_m8rLE!(Eo%}pðv?GwuC.$[yoƎM~ _PZnjߕbSqI.ӆz:&翐ŠPL)= \-FK3 4wťTXV$yvP|t M~e+y w~jzYA obC+|ҾH4}K6>_f91R<2uMjԧRJc` 1'_OQwxjGbKr}>)u}f Qf'Nٝf & / %*SC26zϣU_EbYٿ6X#;1;HA\؆ IJq7uĦ)8cR3K LZqa٣%,x’*8֒J|KnKzg8hr]cSҋw<;<[Ş@0@f~٫Xl12(C7cf  2?qU`F!)&OD"oGD$ OzYSkFM߅Y}'}0ߧaBO*>!ԅzDVZ>ګZHњhk^rSyʹ(64101,ӗ8dtҧ.[v.p_\>01UՀW-0yq(T%9YbCB9ęC'(CWZ3ԄF 3 03`甏 0U~R:J&:E35F&T ,DrxO&ޖ|Tf< -~;&kLG@7Nnr- bϨ?0YlHX]{%J/yى&MY҆ҭ}T[[s@]/NMnhkRŶr?运;x&w$}b}JQ#P, dP%*7 }j_Q3arRo|XP'''tލoM/"Yϩ%Ktpjo$SDȜo 03`㖏 0/1`#_EEژ"fr7qzDô;`e*g6[!Ҙ<}f<j\s\D:C/IUk배h7Zh ^@ao5O2WԶm9ہl<99:$`8;g;pSc&~uNj-)-h|rL?'=I޴D`E*ܧ ?U"W"S&uVzO"̤Cb! U3%uհ_°?P=He%7̍f0\*PF((PJ:tH9J + = }KXR٦ aSRyu$Wqvډ"c Yd;KX܇_$lsiWL# !6ȘIϭHиve_k%wO̎&rBTd<Utq,Ӟ;%=of`@|3 0̀eRv5SOWPcmԭ~΅5I50ړg}I\d 02҇AȦ'H7G]VpYͺhy#jV^ղ羖OWv0B8~ U|J#d>Bum2Ug df-`ܙ1& ;|Żަqɋ$MJ9SnܗiۓPd*)2&K4_ˀ_g ՗L-Oo#"K @$003 0+vaMt̥[s,@4C${0w9|;CAr3ѯ'|Ϙvl5B$rbt:&SE@I"B./ˬD]Cd63 0c8ۢgU )^Q6VOH\7D:V[({#I_oO?0rݙZy45P]|̠55H6]lzԱRXkz-hbmt&!8;tp8^ Pw>HX.q,|4/㯦#L~Szjr<%*pB;|MJl+ݮ 1/b1.!Mvb_JzXtADž*OrBx %z> M }0[$S <`R6vRX 03 \'v`Uc 75W&4Y'[ 5M5#ZS|#F־EX?vHם9VbK~$>% Nwo' >a<2l!D t[M?_+܏=瞍"v4@sHN>TShsP/RԟX$?Ւ4a%a<zjH $DYO&Lx09t a4}] 6ǀ{;w#sĺ;!JǙQK`&RQz](B _>o[ӣiQ̚y 03 O ߒ`Z=M *#Z"qq p/ @]H_&ώ?av a݃ru~/pJ9/-5,.o<,oQߊ:D'ξN0v~[V9@IDATrTxKjT~%j́/ĤmF䕥[&:N@rlm:`g`"#SpOO#>>&y?Ǿ6ε$ˍ$5'HkW'(Au /OS6EcAt2?5k{Of`f91i0@gD`{=֠n#:BI1GEN>ۇ䮛\X*af _7adᑄz GORmHkdt25htHuP`ްohh Py7~Kc5Dmmhqٗۖ0Zx$" KJWދKm{aGVw\ѱ#eNu{ҧ7E/^Dr| O '9J RP eU};)0ℨ^Iz^^2Stc*\[`fh ?-ęfhV 4 bA-"|Wi"H>w 2"30,D2ntK1p6S&IśTZ>c<߇_<h?dojzeAܟrs8 qv]G8:_;I_zg淽;[{'}WC }eY'D%ݪْ:bw㟘Mr#ߚ.IԙbpC5ph+G+?VdcBMxb|Dhз=3 0@+g/`Pb:NB Y&Ҿ [;Hv&ƺ|7! ˤg^l+0E;Ps@l"LwÀY1Xmn ϝ9`+323 0vڏ/`RQuW^!0GZ/v)S= BDHU}%CD߿Cۢʻ5ɽ^/j6r^L.oc ʀ蛭􊚝aϾ2Z03_kOJg G?IVS7!򟾮%K#:ྫྷlyM+/\8Jʪ!9Jk"E-gBq)*(0@˳)S\3uUj%7Xe`a:` !,23 : 8Υ230WiTt&nKx;ax'q_$(! 3oT;~6Y\EF!2`L\;צą/'OT$$9c)2RJU>Gry[VkQs$_ UYKINW ab'S[:oƦʎ+ X''D5n7k~XC {Ff`f`e3Vُ/`V 0`Q5 )!(% LMPqt:ބ1o%}'OLԬaش@c\5|KW/{90c*R%hԚm'V ؅[V;* q?_{]?&Փй'#ҵBvB5OL5@`c{}lG003 0v^yf`( l=X"/Wk~ 8I9Xrz {>uq!RZc*R:Yh|C\ "Xd8w>JFE*Vv%KnayAm>XPaCm0?񗒎$P~ N$sZj|%L*ZT^92b7Q 0'"ԛFG023 0;'x'f`@0rgo%_ ^Kp7ˣ1 {; Adl.'Y ,[!h8h 4:e$96E~t}xoR%_*yd ˟>U܇/wY_Jg$9!b#c+y2~`g]ܙ,6F\ڑ ~f`f`3`fѭfX0LIU-_(`Hj@8_>qFޟ/ p0 2 ,cc FCk3`'omM]u!u^]˾^qG\ޗ7UZbD$dž$ņ,wu(8;,K VtzJ r-gk 03 0g+S>"3 "H0WU0_uo&r)ś tVETu/laXCXfH,u+[vb.Gdp% H,sź$uy$WG²Q$0տ'z18<"j{5P0EE|P2‹5]Ae2Ul v 3 03 <x 㖏 0UlL|6ó߿+b-Xa_B!~/BP|_-}UfEk}\>Jd8 b7>16u2a$Ɠ\vXKwt@JvIUѕILU3HVatIKL]R=G6DqH̔Fÿ`f`VX9Qfu3ИdJzR"UZ죖uBju0ԇ۵>O0t IEXdB1]`Mev|Cg2I'lxd,@6OT"AIitj[%TqT0PҟPT" e~=dX[5Y1h#Y^Rva3 03 "Xc0€5.j1]H K>(~up9D^B6 a\ 7>aPf)y:IQ??Zi*e52LWt du_vk(#+ҟSKa;q ,vW":^$i#`A䀞qof`fH13'2`#oX HP(:aCj70 9pG4d 5IV+T]WĻ$sk Txp3_(30H|2/QSqڥ~Ir0N,g, lu\QMf`fh @==>3f`6u9!_tn)vjOw!Q> SD[XҀ9ŵ{,@P5]}Az@y%Wh;;%@lq8_}ڡ|2Dф:=li:ai3fh~ ģTJ MZQ*kEag?>R- G\Ivq =>9[aoyZ0Mh-Sl  c ܏Kp?,Ŷn aټꞄ%7UnI8[B/qP>95b 配{{&f`fh @|z3ЬHd~jȯ&ׇ\QjoB+ 8 79q4xkՅ3!w`Y@6>Bp8P|%^fbO,?À2&,ـ0+0_: OU3I_yHepLŻ%ǓM(c3՗)CM@fIFx 03 0͐x3<'>%f`+)iSnS/HU(pdB+MV@սs /p!,ޓC$p[ u0 w~Ć 7'yud5m7țU trjAwO!99k’+7nPU ܩVT2d $z?#0>]fX .h@wd(&9X!0:P@ } gG-ܚw%,>" nvMalUxqL٨A3ZbSq] aԅWq_ַA~mi>aO\W҅0VPo28b&5E-PEs!`f`Z.r?;>sfX ؈cQ3QѲk]"rG9o>M $g fվDrf0aڣ |1B+¬fXgp]„LNTQi O䠿X ~ UkGBh5b 03 0h"_3 0l$=EJ;G}VVg(L N $SrufϘ?0sΟTȬwy\M:]vmY:"lu`ڗZ.+aɏK ^)!sI0PEE+Vۑ^ "́߉~JM73 03r`@̙f`3`#iQۢ QU_!&0胸7\23ugfM0Daz°W&GXsfX.@^%"tNasbE$c夏!$ݝ0/d } 8kb[x 03 0-vϐ`V6_&᠕fn6ahӤWVgァ3^HΗ#lp! Ʌ30̼nE85o)eo8%{^W _}"wCz)pMqBcBT>y,ƑU./(X?Լaf`;Z' 0 6幭D~QE q^ wq_ yn}DZsN"9f]{z0#d G}i&RAJM 9Te ..Ŏ>!ƉCC뻸 )Q 3 03 r?`̲j1dE<7~tw,?0Ne~y8 ޤ ~ Fˬ {s7̀e`^ DHmRDJeq*A=0 NSE؈@n$v&T u35/k23 0@e3ZG 0P_)1_n!޻J9nj\h =Zޡ}I_|9^!nЛQ S]݋ DmA'2bQhd@Ez BwESO+@Bp-PKb`(y 03 0vϔ`wK.`8n8<a~dE gf-͙T׋P-Ӭ@&͘^JM,2B_ *>"n] EOS(N)+چr]bkB8] 73 0@kebƀ1|ڈ.mqp 8`C`~F߫̿;4@;IV!_/mUY&#] vu~Nb))0 r?XKl f@ 3 03 ^@lʘf0d:2y^ Mpœm)nn,7;rf?B{~GƒCf6þNV X&j q> t"/J(.aX\CVu-3 1h7(!Ŏ) #3 03 3Ā5-ڃTɝP&oE0|%7rE( akpY\PZdLaǻ{6^X6o=>PfR#/%cf`V8 `1P=b/W/ =2H.t͸CIa9&K]nK',{,^fGS4SP_b|1ܺU&yÄ9:X}D'Nl:JHB#|j0 badf`Z$"?6>if HE{(˾'`IFFqa»rKWaHvE,\Ex &IfrwDVH&LS\pP>(h 9.~C .a$f 'dv aP| k0jO yH'.,\Iz|)n,o` ='CT`Q4;5mj@@ 3 03 \x @̙f3`#֠"(9D_ 䘨ױeHfrBKB}PKBuȿBe!P<%$3+&xA~Tz9Ź] a7;g0Nq~8T\-76(8s:?x 03 0-vO`g 6DǪӀs\kdR}YB݇Ѝ=&pZkdo\(BIBuO؉P|+&y 1)K.>.Ƒ޻,o/AxZ?J@(/ZE?b8S ldzȼaf`Oha.3 .bTmq*1̽(YfMTSZMW#IFfqKosCZ& o TlBm!"׼a~-5b*?Erg=]Dz?t%+@~I.ܰ6yngqO`[(Բ Oۈ FyQ)@t`f`Zhy13 j颓\ + $:gHhp߇ H>sO>XKrI ћ↨l3:0ĀUa3VQ ~vQ~=Օs%)QP2?Ʌ;e*e#8)$"=Lle;J8tD*173 03`@ f`1%8XWBsDROanu82\c 0sps<?͇A L>J@;Q'f\ o1` l'T+KN`|^Nw!jW>Zhd%w Btq ߊR9h"' })0:3 f`fh @|z3P8]֬u_! lNABwgEDF;I TtDS h,3K2` _3{;~%$֮0؂BQ${n# 7J EZe0oH'' E7iFVX/f`fy31a^bc:\Wl7Ȉj50t$ 5.2п!r0T8ҋ$eFnYoUeR̼h4ۨЃ0_n =k S%_;A;ρT輕__mQ 9=Ovaf`@3 0+(@ >FR&2kA_b\𙇹a<@}Xظ15(ڴevU] "߻. ǞNH(I=MޡbaYm*^Ar/B98U,$"PTP_ߪh5 ;Evj`f`<8ߙ`xRQs(ymN"Pyí̑ ^ pM&MPa@Zz7b7_=\S7&.+s>Iu9p j8d|Bu o'TCFjHZ Kb1PCzFvoUT#bFu,/f`f`1-`@w'0E}4H.Hk )S۴F'K/YGs/3k(` !onٹg/Ar *H讕ПR<0|/8Pg @d2Ecҋz@j =4s[C4f,>*څ`f`V><`s 0́cX@et"hIaƐbA_P1S0C39_u0Uy3iZG8ܗӓ_|/0G!RnɉSƑ5ULrrJ$&$#r^%Y] `hkĄuL3ș/ 3 0;hfd^;PCM 6 n`kS7j,B_ff`8oŀ9a P! trNK3 A VHnY/L?J&J1?|S b&@sf֡~3X'ClT`zr Dߠ8C73 0g~3rht eYcE!Um?t:0S/F0+[m?!R8r*J&oaa$g;ͻ.;u5…MCMgHf拹pBD?fOqnBSG(_qi sA#^$܈$~բZe[* v Pk73 03`o`@hX@H ?. bу>0)ќ'̍X X(^gҨpq\|.=_[ k~&a3Q/>ɹz" _/"TO 1p9P+v}U2*$2 D@ިEEU123 0`3RHRjgf@R'$%+)vw~ Ї{Ǔ^@g!ʠ 3"EMIW@>wR}C@?9L)eR<-}&;94~ NKcp *Pk@l(8 RĀ Q04`f sG`ǀ6= U-?ElON65j/;R_I7IV3Q1h+scV63m*=ҩ('4Orpw?AE&@p>|%uNq5WW8Fq:uN5$4Rc2qÔyp^!P9ӕ8#'PS uX`f`~v1fɀ5dщWFp}rc F ï?d_?_ؙ*(&^4;f` EK":ͩFSL/qZWT mShKN'("T?ogjaxPL8Dҗ\Cٕ(.:'J#z0v\P [5r^#x@ԝ@Gu<ڷ1cP`f`~;~ kf3XrqZVk׎x\ؙ:V]H!}ҤPO^hƋ"EfdeNhfU݄nE-fJӄ#g}B(+8{#Qn/Q3 Y*M rC`D-hQD?of`f`9 `9q73 (raqf=E)E}o' y ppS i"Vn5g{Wʼ߽ Ob ehu$Tz7] o`pAVUdw"-b 8 lG 7 p!al`82 1dȞʩ_̀|ѩ7j9g123 0<Xo&hU 8Q ob&sR499rm:'܁0*Cov'./!8,w 0t*j?l╤ H/%`#d:S iMfSC`p0y~Cq@| r}Vx {y*#C(+*n L]a+ c&d!j ۉ=j4ptEGe!aؠ#of`;Z' Ģ |;O0h! !G0LfDͲlG W_ ?+GrxRЗP|" 3<1mL"b{ <7B{).+#E{ ;HW]Z q/U%Tۇ o 濬*<7-* 9_4eH6p a *=j[eoRI'ex 43E bY0Xh 6B=,(uo$ٕ (G$环CX198݋ȴ gpɧ$8)$r2V :>QJJN|"_Ej E5Blğ] 73 0vϘh] 6ricw}7>]'?C*ŏS7@se:~dd0~=lTL꿪!2lDw|yikһz' gjdfYpp(u]KU@rb$B21rXg[r-Y%րV58_?rrfuȨ`fh %z|ǀ5=6u`Q% s}C=!ˍl> =gO!}f_MGJ! ŗQjm@,f%2` U4\-FwQ 6XP;DT:G:p ȭ:va%ےA_<>KW_чԬfaEBV yYvPԪ$2ztWc%wbѡK/Y KdJ8Q!;mfu,6u303 0-h ?3j1`VDh "eBy\pNЃSEߒyLyo:axd fu?%Y?^"K(Y`ZI_ޔ]f Q} ӃLBofUGEĽ84}!w 18LA9 iM93饔HE5CQvz:kf`fE2I3&"i#s hQ Wf}po""ŵ`(GSý5f;x|"L$s8:__ =?'"C߶mY>,7s* Ճj ?LY/Rp{&ǐ|@snT8p)pYP#Q$~ΉEt#GAc~ݵ2O~n*ȡP$u)x񷣬`eFf%3`_Mɽ_}yo+zNjO-|ÿd!)9>x/pC&Kd䝺$oX>yVgƀ/_. %j=vq T9=*'nG1lߢ]Taf` h63 hl,vf\Ũ(YBA@10WNW.;;T\vO3DXȼ:we=%II#2H6Y`:l7E;`,~L3Ϸ}ϡn )n$'ʡ΄^yGo}dygR2,Ho36~/έɤBF8Oz_`EQqR=U Ѵ;鍽~+323 0+{`Ā1m#jvNm茣m% ,HU"a5Xv㑾٘Khv@z]PՄ(B_f_E))Q+Ƣ`y 01`HCke/z~MD^Xi xx/6~5aW3^(n.G촏K(fY/kB̈́ſef aˑtK:Hb4Rc1gꗓl>k1X#g*8ĬbF̃>.jq,6 3 03>d>"3 0k#LT 6r6_V4zKwzפ~7 A+Gte.i|F/=zAPe@XlTiGe@X +]|[7O0MOW[qgE$۵CY. 9JVVwK]ҿ˿g ;ѿ1hFp оUH9{ȓsiJ$MtJPV@}S'l-e7@xUhX:k[E ۿƱW6s0wi``zQ3=k"[Dg 0Y:FEG/ч[\x^^_x?= ( cv(Ɗ/%hvE-muAGr0ZG`9K^tzq_QXJЭ[?܏v>zX,ȲIU̕]ē)9?OV"F .dMDI I aD:k (J0Jδd r*5lv uq2ъ8QHI2P P Vʀ2(\jW6ҋrfMZGGAY936`zޔ9NUI\iō).y( ~~+> ǣ݋ 䓍Aڬn趂7l<|u`do ŸBx#g2Y2 j:R~ Qˍ_0U<|k%mG]kiCek>v6ʿ_oWĀ~EVhu+QiG+q^L ge6{uY8m̹X0w~A {o^q >?QDe@Xn Sз.m>DXY,ha(GOȹCfn%zz[YVUBC<偄l̠q\cfs`Vt}FdoA+e@1 Ll0I ,Oݴe_`U8(^7Ul:Т 5^2 ,‡W%a9ʎ$fo#.Wf4su33Gnl'~?)W`:Q+gpLQ=kEa7DpdQ^v9Â8B0xdg7|r6+/ĀOʨZ?>gW: oq5*bs?8GG NK$xcf/ IOwDˬ4c_&u9^;D7Sj (nob}(ϓ/~EJϽEl`l[ľokw<6ԉouB(˚X֌e "+9b3L9[?$Y"QsIKthosoWYm :ߺUKpQUD uW_\'y:bޚWkw\l7+MT^9R(srV0! <,k7Iw# Unfs-Vt`{lEp(֢ (-?ww= Iͱ' M&6?: g-F_F vE(!^[/ݲX\]/yͯ2\e Fea+"u=d~9}Ɠm9(Db`/xNnwbY/E()iY0JFEU8w?xK~`VK}nlw$Y+e@P@(~_Pyi dƎX~~6]&vppe8"0z_q/$6AJ([1HH p{*qo׫^ߤrRb&/Lm UKѕh'ĸ)M/ů3.8Z)@IԹ$z1&\g G ӗ \hKo9N^nγfmcH5ZeπW--r+c: ,v4@X޼ YJo50]Cs$UȆcT\n ɡZ)`'ؠZ;'κ1Fy; mQ&=GM_wYf#yW"Oʀ2+gǚ?NNŮc:y6aB`_6 NJnE~*}:{v `tl_@} H;p20.|oe.ӵ]IƹyT+(L72m&eD ?43cXFЛ{tOveڼɍYno=2Dg|_Aù&BТ 5֖tQw#+tST)٧,2)emOlDڢ/اpi6 4S~VBPWo(cZǮ t+wC:MgrU챲8{},YGPV ~+~7~u!vv9t /,<_(+ys;Khhg z3nmlGB0tJPJZЖbvLzY&} /P`:DBN<# x>Ŭ_v޿^\SXyCTkP4m/,Jߋ :yxb&A3n` aۜ= r#+f \Nv([es:@p;UM s(]ʀ22s'Y{i"n,I5s+5'T| >m760v5a_(~ma{=f}u5\d3/ɈeI ge`29!-RvRm~Hol?BE9/΄0UCY=l.X[h"v'El/{$Zʈﯨ &Ee]cVq扶>cO@X1` Yl@;E}ˏk?>-ʀ2[g0xLġM?N( ~nƓ!g*WG+Pe+Lt`>[q М\H;N[IA~'KM,'i (ˉQ\Zu=s'{*058’E pXx#XS1Xqn-@I𓸒~^d2jriG1Dvc 8ft,tH vTvr?h<&l5$-O29~ͣ-qo~ką HEP.H]p\\`vPÎs=kș5抇@^BGtNBC!â[L'8 Dkm cR_ C4$П:A}v}G4>4Y4.4G+E()Φ\үЋ ᦷ;\.5|;#k'+F6Ή)["N49馕2 _{/{4e@P7\!:<,XXkS5 QRA+~h{MA8H+G38'KЏ7 C!z&1JCl ^2 ,_6-O`u6}S7 h؇=yy=yE2P2&]Ln;_; M!"ӏӧ1ڴ3Qd;p.5O Nd/`~"-OuQӫݯuy$8x_\Ù1dG׏u]AP@k;|_\89 f79[m@?8n֤m}nYK-0 eL C?Q~OMAy+x"'sbW~ڜ8Y3I?YP~Q|(67 29$+(h|W7 8C.8 ߽@R2a$;I |e% ݄K,.633hiI_/ NiXHDxe5T'1 K2Adaxj S+xack#kgk](ZC0G6GNqSOi/_rP+e@P|KC\7q,0I$WMn'Cbȶf5tBG@f#&\hs4{[2 yhE[akO&|֡1?XOIqy1J4s`u5e OԸ]GQ@>h W2$%!'"ALW0 #.t~~<+rVʀ2 ,P㹼O m+?rU(P /JNO<G'K! ӣ/{`;ZU 4]~*M)o ʀ2PB''!cmn4Mжe=f6' |9o'@ه j 5s#U܋9'yA(z\bb|''B6+1J=L(ccFP09 V"x51r*9|al: v d%\1Wn+] kQe 4ƻ|LߚK+Oů Gտ89/96s}?*!f({' yA?NMEn2gv=@i1Aۧ(7 О`[nD|diT 0iY0;k8 cY<a0ITbp1g+ ~[y?npK >UAmWia&A4``2vcl\܏66{R%2 (ˋؐ9K难uQ4[.X8890fP4¨(9㑌l*üS'Q`6WŇVe@(N/FmLSo`N4=Q-<<´[u L(i dWV#渘=(C\"x&1nVʀ2 7~e6i,ʄP}r3ͽRfiㅣCfڣڼU8IjY7P(?bW-ʀ2lhJ6\dMJ~m'/-nvWiл` n6f gDz[2 +'HY*e8"N$(^͋kBң[LЎ΋PwA2?2ʯ/Hg㼉"W|؈ˬ<ٜJ9=..k6cfAh'A3US?]2 ,/xBk{3PF|&-k׏AV>s4 Fx5dO(dP 4Iwe` &=E5`]N\Zak?]=8VxHbڋCӉWc˾`=;m*J( j( -.4?)GpXV 85?EMZ%b%hWah79VA`M3FphOeɖϋSozqX>ʀ20?c]i~LZ\|w-Ku[OV3AƱ*'Owڱ2a'>{ TS+>$@Rbÿӗa ȱ\Y3xҾ #|Kэpɉ }~6}p^t~]de` (EvbcWr0mg S`}"oj$Μf8h F d zfo;ct!ÞNW#ʀ2 xTO-Ch:6-ΈG2 ,j n h`\{E-r3]p`I(8OsR?(n1]v|mRe3|}Oxz "vyJU3[ם&ub]S gi^?d{jY KS pj7qN*i=Ƚ=^#Vʀ2,Ͽ3 zr#?op&`%YώLpprX>nl[qe `vDOoas ,'_Dz`b=IL K3&~kU2PlOG9|cCwQ&*Cz ggFdhvz9 0j 1l^yWʀ2 n7DU gwӓf[׋~0?#@F% u<P9 Vʀ2D 8hHr,pbz ۲@زλ (RJƀؘKvupK`XzUnc/ZWYz $BoF٧yOtyC+o0F?}O0¦&74 0IJIpd.25U2יS}z`Wsd_)c(h/e@X ~(ʀ2H~`.3oW/:1 Sc!&6^UlV`bكL< π{< c`EPJ4cs V0`K ^Pxl n[A@GIӶEJX 紥]q;"nlˆXwOa mqBfzMLhʬ P5DSIZ+brl#G)~%~eO{j 4Γ&S<l>wfrp:iL`2vM"ܜe 4/ԺRo=*|@3{re`DgAxZG4mܱ (K̀6l2b&n܆ht,ڹ*X͎ϕ~V@XUT d%|hx8zZl4V g  3SK;m{-ƀwAuLb%E hWoo5ÿ Otbͷ_E.dFAW[e@(=}hcIzvb6as`kvΐ|+G8<#.\S7#E_gN24yZ|Vʀ2 4f 8`+c'зl; @F7 t߲_>(Tϓk?_?3 Dt(IVصU tif`nhflՇ^_jheʀ2 v\81BI1$Lھrw`ٷ_:yc90+Oh{ٲ颶Ŀ܂8[i 4MpaP(boνr7b8.Z;;;3}2UiKXIy(ʀ2<BxܪךCɯv yH3th6drwѐ̰m|.8@>bRaO=ZȟQV/MX85k5`4/`PtBl͚v}ִ`UOaڴ5ݖq}܈#1@)hD/ʚH6 p}#&ˀ%'%.s8) bhe rH+e`p濟BOgٳ}M3TXl]f D6Q9VpTe@P'> Qt/%&,[ X֪r_`Uգ/ *KnD*Zߣbjӛ[R`/xCYc0-:\<v.ЯM2e΀[ ^n4#e8Ovچ&?;WXusNJ܈9FQ[gX_ȇ(K&w@C VIM՞^/08*<HOepU6dORe`y1=|lLE;~he3b(h fygLŞM:Ir6cEMmIPbp zƕfɢW_@svPmGə<3Gs7< j (-3#v;9U Vg.hgbꄉ?4 n8ZV=_#{/e6cKY b4]r,q۸d6{SkQe ̅/K,X(SaEaڋs%.G㚐0Z#7r8OmeOt_ f:_0q9XqEe@1}1BkЗ[]d\iLw% 32'B_r/c}`7-@ Hz@"vOYցVΏ Q>(b kKCl=Rqrm0[jh~~d4HY9VRe`y1={qX1S{W^?;#?OOs'vLIø\-Y깊;!SoGO ݭ3gj sAohS(2 d k ` $g'i]ѫGO{~ ,jX<~ͽSe1@21 UPH] D_ TUgC?/KM3ٚ$6ՈȊY02 y.v9$yyA=q@yܪE('v% /@BL膮$; dL]0'~sZ+˞Ȯr\cKq[:\F<L~ c.׏EPR0c=6ĞL3'|du ee}N|%TpsM7 i 4Cۂq?ڔWQ:!B+e@X øZ`~VyBЭ J+~` q~?sm%x^~@'= q2C< v*q4&e` 0oku{P25D?#4H? [슠2 (%`<.+Zw[#I?v՗m޳y|,/Vg Ze`OQsW-I4[4v*֧OǑX^~['zsL`ᯫ ,sef΢0L qz5[Dn]l4t( -'!}-LK[;6EĿ9J'%b) `_ƻp2n;s 08$Q ;$ݰ̹uV>k (@K`/8ܧ**C@l/[L[08#)S@02gL?QƆD^=;Xy^ Y2PeiKtLs HҩDVC}k}pѾ7_ ?.8 v"h Y++Ņ-Y`9l:&Z*UM Г1lyrk NZd 6 w"%{S%fC'2+~zp1.4ҏN1lj\Ij (@Ka`} ([+v`ePܨf7`Ů LU=%H l{Mt`g6̰6ĆU^Vʀ2D `;M^g?2Y(kEmD^z լ{'Џ79.rwM_R0RڲY c,r!xx Ccn ,F# ۲SO7PUke`0nlC(G@;d %.tHn%>!+]ft &@#d-ʀ2 &Л}$I{΅ d%Iȅr'=Hg]\EE>>4d[A?D ;I'e`! 8O="& Y1N97m]hM܊ϱ/蒼),hgiQJȀJHn 4bP  }ᐜxDC198}WpM`c|PAPo0Sd!T:miYK;yݶaU,3psj\R2P:P:n[ʕͼ{0@0eY6[!7ʮk7Z|"5)|[UqhO\tCS!\.PY2 (-w߸hhK`+sH6sf;X;$0ohؗt.>=*"r3Ze`qp479=V~0O.Hp{$M]*S 9xt ޅ 7%c@'tKۯ,M V+b$O8l (%c@֢xz My6ża6;.&,v|l(/HV@)P@)XmY!yVP9.Q1 |2TfePsL ,9vbB{Ȧ  eSYPjjO0#L};bRX#u(K\}0K'z~A|;9WtҢ (@K`N/Ʒޯ/#ţ*\&AΜ_7YpBiܳ+k ͑Oѧ|o|4WJPwl䇉?W8ɘ=p'5>ϻeJ8i'] 4{hQJɀJn˸34 7b7{ t$'#du~Jc[aV4,P4 hT h} ;eyrN Dt<їdg.M+灦^b䵌߹9K(ʀ2hǙ\-_&kvv${aXm6ݯ^~.JCwyW@{M$IyҁvE(\$rgSW>̷+*02y +'įJ5@YKp8?={y#Fӛ:E(!T/K S>_6o?eޑ 1w;,dOh!tMo5ܔ,P2d G!'!G$tW#3 0%SU~7Wye_WWMVXԇjs7]ap~oAwx(ʀ24 ď |]c(bq`v فunPڐוD{ Wn]>m tɹ|+iȾO/7{~l:e`AΤi>&l@{7j-8t?ձMR"!eˀ--jr[ͮX˴[6;k5R9۷1gc25rlg,ly:\G92 $sNQ:VLd+d^~sLNw!e#Nd57/I^Q*?VOʀ2 ,MP7/O_eq׺X6-e PR d+, i}kA_E'_7)*@3t_kY@.ii,`a7o-rì}8W|e$ $v5{t]A_A/3Z43g>(YOg,ಈ(0xE#Z(K@ڊ~BWLw{\!*\L1)y0E[?d,ug%~-ĤC!wÊK.S_"X'u/[2 (`齹xW}Dc#ɧ H N ,{=`? 3Pxx0XLL<uGLOcO++Sb|N٢rP+e7V]i944Oyo:?֎7[f%??;B[O[]ю希q2Pf] KdHy1&m2O8:`8R Qlň-ȇ(35`}aw}OLd&p`ڮb0J (_Y)T›ZF `tTQ vR-d~/WA+e@h qh-`Xp$AH4L{a40V`yY7CS vgb1bf dj @l_A,NSi =<[e,op:z kx2[;P 9&yH$c_?>E2Pef&TfI0L`g48f}F&yi'7[܏<@Yg%gX89\Kg u`bLSח\O,]ſjv`YJba}!L>S&!A|fvZ)ʀ2R&{.=72?4e# =ʍJ˸Q C3KC)>6k~4 6`Em2Vd) у'#ZvqDl?g< m#n+~~Ŋh}ml{:ѧ6giQJ@K̋.E4hosl8Dt'YP(R=O811ExCZ%f 'rDS'rTZV`@@B=Ծ7T ,J<*l\qrGCvSx) 7(*ǵRef8&7e*] ^Ԥ0*3r~Fs4ٟu_ NM~}N<:Mbia.I̤~"$Vo@'.`.,^wy53mp{ڟeMbFkb-xf[r+;҆O2PPR[%/r/ns4sMQg~@5 3C0P^b T2bܠEX r90”/k]ieioû0<>Ebk! JXR^.%OD:@[Epc)TN+ՀUsJ۶89)+g9BK}Ok =M(ʀ2 x"?^{+z ف:H4^;+A e?hOhPNC64iOj_ x ESkOԅFp?n:;2!pI;tyȉ~,iQJȀJHn 5N0hMbfKRfM{˭iXM"nJ@ Vr0\" MZ)Kɀwy+ ݡxESz]ģmo~rs '/XgjqbT@nЁ_2~Tvxy $G>/Pxv}`Na=-ʀ2 ,~Wbu߷/ұT@inʍf7jq2!_#윺1 keC`J)ɸB6<&k餕2a#0$؃ jUT^HF ;17{y Nʞ{!)`P!g D)(%d@ %$\zlT)Ӵy œo_vN>KI )vV@ N>O&b(d+wM_[_"cᒒM*)x)1Y+i-!0ՙvC!zl'9rUBl(2MW:~o,>)a$|. 9(['e@P~?&b/?̉gT3/} ~~`iw(~\a_@xEIJG4 ]R~3 o.Keȷ祳KXslm8ʬayCY*Qv$)C}?kxcӃgi%kQJǀJm 2ˋ̶}LCP {=q `Q ` T@?6D:n#(%fjٵ 磸Sp %yN_NVtl8r6b8F UH΀[}CS%|1 m E{.>W ?A6)2aC;׉= 3{Չa cީaRU`I!JBI >GKb^ghnRV07{?'0TPlו'װ3m 5͛4W/aCs;SوG5:b1-@iP@ixmAWv6Mx`M3ΰW7 mdMvN C?#'2P"/?-Q^=v /%1B[\9+jV lț,Z}109,~zTS[W>e@PO)\:"ꧧ?U\vf 2?ll)\EX %%o*\q N_208Q⇔R+ĥbh,[=~`Q^юu9F {!|eO>F cÀ?Q$Z2 (t~S2Jpnf'w20)?{`Eg^HF怊b9`g8=s9 s,9w&__4 zw?[K>f:TWWo**1<6`e.?sN#s`;ނSszN,n/De`d ӊ ʐ$M4KFt$Eu,lzs7RP I#-'x#i{'kypZY)nRL!|CmcyrDyGT[K~2r6<>)6 4fj>jr4OS*:SktUh,kRVnv0N[}9D`V\a>zz\'ydZ :5ȧ[Y(IL<Ŝj,ˀ0` <;]䅯{޹{o "{cE4vCx&}D ªAQyۍqA4SDe`9g@ſ`@ˡY/35,Nޟ+>C<Gy(Nj)<\;< b,E+m&^!:踯#[qSqC1J]aI**qI^U= + r@1`67IcSJ$.l40V|QoB:ogBwOTu4`xm%#ht =B`"p苑` a`1G,ˀe2{#U= IG_?Pi`跉=/֤Һш3O-t\hj#`$GG5)6 ,W y`/-d M㰙1S]U vV1vzyhdO#5u5|Z&DRXHmfܖv'Kj/z ӷi~? ѱxlSN #@g2T ~Q>. ܱϹSNVFc'Og߀t7}Y}\&q?>)  v ?,.w rM,b0E_!LEs%z @:%H.#8p0ѐT:)vTcDsߋ1q@1S +^4 ||E[>'+} :4ަwt|10 Kf#{ X ,U=[7/j C v J'xVk U[Eo6ݨ ٥R<\<>T oy09rM,Kc0hn6-h!Z=@H{KJ:=PuSJ,|zmm/-XIΫ:QYy0yqA:)UNsvdSes (2`X LvјgKh;ѻqV6  4{12<+SNø?MpwS+1PyፆSV1aZ'|=3T;`R` i/ټFlwdUv3a= 4Ч^؃^3W2JkFJ*!@m6̔$zCASG`Uo#y.tWNTН.W`.Ԛuu@/95_L#³nЭX,%Vϑ䤏нwp2 2R#6 uoHiГ}!bOrwK}h,[ܸO'JuYM%!ljX Xf]z"%+KhM끌 5T0Mt5tbr#S@f gF a ?:.C#S]19-'^J&'k{2W6ixԋ'G#\[f6 X,M -K(#a`3:Fn} -Eö,-.8㟖NbX0_Ex6XГhD.#û  4Z )ut+|Y~a[gCiSd$Z`{u<˼ ׌L=qU@WR1]-y"b`h vĄT#JgALPdHtlPvI'J L>`}]}iꜱe~z=vAe2` 4 SKfC/ƿTDmOѽ5npw S/NSc+6 ,s ,6yظ5_2N FmXؙݺ (3l/0_%Ȁ5,A2xFx25Z; ~CЗa QJV'H[.d%p*cφܜGT @Ζ=2|0oiq=Z?_?՗v|+OL~|`uGn?YfGyBӤӃNˀe2 q(n`'*$MDMzM}o'ĔFϠ촉e`9f>w I#d~Ev5(/>785v>JmŭDzp&ۢe`2` Kfx5'rZwgH +zHn͸{zx3o[Z _L ϖF>w|422ׄ_b 9iي?eߖq y]neCT8">M8Uk QsA\ۊe`0r̀`L=<w %ˑl_qHN2.z=Km)6K8^>,0 QUEcnW"@R+ PGmH?3R,eŌ4Wk@?4sct@TjC*&+w'SR%҂nǤ,g w[xz!XAmz$XņuZ ,o ,8sW?KyF PA{rn=eYzC  7! V,%eJJS=5ZYg!q=Yp!ølAp(H!8RefUgs@eM5ƏpAhp,l c4Z5t]7@3~7iQKu*zG'dlr$>N' mG' Qb#31{Lo 8 DAc|u9Z{pb 015}!0YR601:u:9P)y )xUQlbXXB y?뾌+57w6pDp&wbkbs0 m~SǒEV}9_ IIȽ5WY-#\o0Ae23P~'}JojAҁW)A{}2{y53e3ߒ2ʹtueA1#8 f, m-@#hYxkSu2ߜ@ॲ3'<%s <|G-Ju+ I=#92(6 , D V~n4F`zc,C;4Ig5һs@ i ooH2u`'@6ж#6.ԏ Տ#H>eLz,Cet#ױ,' ^s 9׏G`Q E#cI?|;.jRf-5'@s{Φό;p,wfEˀe2G @q LCCS2r)W9|`r@$Bs`Gb t7ZJQ?Qt7c`Xv0|MEC0MPVvX)2{ҷ20)J9ϊe X@ Ho[^?3w9NƹT pQ5D?\U;S*/Ni:U:@EA! 74#=(!e2|2@ 8$% %'gZԉ60 Hc4_ lóX,D,'w*1<'\OO86T2)R2Ǔ/@y>*Y̐VQ?.?{zE>j3BMqGA|n;5p,;3j5Lg9v>Xq/a@}lXJʀ5&yhβ.)ΓهnO0XObk^ TF{H,$u\.|Q+`Z , d̽_WL hއ6t&N.bM|L[aWvԶeb H}MHxC$u* 2` ƆQ˅N;j:3{&N&^KL Q7Lsқj(*/cbCi* d``_<`ȉ95xdiF >H)4WM#a&q4 b()PRjBqA{ؕ;zGh.a@ Ss!(,܎%u(2T<gHʂ?nP[8Dwo9R~IJ \ &M3eJKFv2 3էf@ԮQ_@K`6{fMctq:!h2PR7͝t D?=ū<C}\-8H0V>gqbÀ(6 , -ސ {q{gWqka*c @V,%eJJS\}J>\Q)YPQ-5_˹PAk>08hcs::?Sh?7($F h@ԡ63%lч|H ?ZY3!sf?;JFj!+ߩ+OUÁ N. *Ѵˀe`x.IǞJlcʆʛgLe o.Ejy{ _q 0?7RnhqT_|@)dc ~QKWяSa?Ll~Ee5z?\+2%|{̀3$F~8-X=s aH69 XD\9Fz[q(JΗƆ,ahv ,g/kh^ݠd$mF~U{DuBo8|NstJ[rNsxJ0H7`,?f #\8\ < NĀrix,n`8'8]LhZC:\ER«1A$[&f@cm.n>170 6b%GA?#B8VÈvQ>X%eD X@o:"@rh U?gT:)x3`RB3hj%w9&ZVa \RX/kR#V G])O1찉e3`A3MfLZF*!IY){Vx7t?G`jpȥHK}SoKIhp#n , \;8(Sq%`q^53 tK~ `H7=vFctzKU*GJ`lF)Re33wl,w䣨= C=Z*XZ\Ok;F̆E@S3` MRj,>It$˗C4[筌ڣ1Y_Nޜ4DWHY=Gb쬺HP(6|HE.`20u 5]DOcD?P?4 s&F12h@/)UOԮe#R3ΫNd0F,Ch"zX X,@Or>3yw-N ]6W<GV&.:h"LZ MnT Jt4`NNL;-͙߿@IDATJbWO~2`LS*DԌ{ 0iN%(챉e X@)_Fe3:7u/ʅ*`mu9-J) _y?}8cKj%HV\ v,DI1lF~_6 4k!Odu_ 0jK'Fv}g;*/؃o߀W*JT2JW L϶&L W#_­s2QM,D2RG%U,cnRm?)&v>f)1N,r(^̀N+=%h 8Y.j*FlbXfPv-:.et)tatx L ӿ=yK*5Fce X@ F0" ؇ͻ0WoI5^V[M˨yY1P[ `XE攨F XC04ς|+eM6#'S49BYWj;[o9U^T q1]C2Br!Z9fLS@5[L5 .Ӭ<d22`5C\Tl^)9 ǧ,{}J e[l8#w70|;8O)ҨFU2`X!jqSCbk(wRk1stu8Hp,y|%ER.zՋgR~:ڝT@JZOp)1b@eU;wNdLr]S/e̐`O*zgF|EFx~sj2PB7McaqJvJzTT`=ׯ>˳M>Ɍ(x4m( @gwZ ,c  e?!o;M1}ds]ѿqed-UrmmhPv^m)m(fް-;96wt]Cx432h+asEˀe`Y`ԬٳN$)gסׁ+I:_#8֋vêнjCW#wXr/ΎLQ 9DӾIq`ZtdM,0W2%6b b,6!y_<6e=X-%+kٷ)RjKS__pdܑOb%=85Ƙފ^%cԖ_G.}ȿE aDX ̈[u" u! R/NP5{NfמּXqqki{3xgp;E=ot-r%n|~}q<ˀe`d`L#z7^!^5 ~^ze.q ^ל+0X[YaLP;ҭ/C p2h#X 4W5e;gdek9'Ɍ挚fr CBg,+V,`Jzhrp.J$cyMQw ԸTb(pV,/ @7>뻴꫓dL%8w `/KWk"oE4UCuG7=fG.. 3Ӏ~wͰ XVq=oVYSޅy) zM3]4)QJ aP3ފ rM,͖E[\EI1hj;jbyO`vaT") g (Qycs2稍@5qm\h2PR7o0?qQQ .}x"0@rg:F(lbX.0:IIwwNhU=&>&ͮL.|P!eު].{N$!tS/I^ҕ0Њe2b2pǿq5?eCHp@Z  zϽR3sj23Wן Uj-?i0V#`v\]oZCafÀ1Dv,:W:1{R]ghֳ,mipmQ_%V,%d@޺ \0e٭X'U,a*4Wlȅsw0uwqddaOA`*#*r f95H0mjX 6<~5~ڂk%AN `xhP`j2AK[. NX _{P0A+o0 M,q#ӱ6D-b[x8;-/&&ggmqПP| gY=z%/1-b<"sv|F0*#83EnU2/c )/d F' 2Ŷ=εb(Pқ-Dll_yƙzFǾJUJГM OavcC#uY4Mj>c҉Gm.d`1> 1f|jWFT*0uj}`j*trɜRfP9X\'Mput}&snO2'6 XV,;050.Q*(ā'~`òcz~Ou0IOj:#=]¸(FJ1L(vR#v dQ;\̏Ppu ZqUb'W88U X k()Add./ˑ7'wm`q;@܋/ HF^H\Қ@ 0A9Z 3dhonsW3b#O=KQK 킛Ew$ed D]޸0p'oIyn/$g< alKm@BX<<7NFsC^jkoeEi|,n[,+3`'5Z:`-SRy;7~\X;&Z~ ˭;Y5J >C$sB9Q9%;mbh2{gm ? _%cH!L! n~-PbT& "OB>[ T@ w.&O R% a#O:{̑h]nvQ-(c{(D_,Rk blbXMWBjD=0 Tʻtܿ͋ҫa\܍ճ΍r#j]:7(6%mbhbmjY0=t[~b /\o6e+cHiMF}8SHY6 45l5Q<~I?3>Cu39e|[EpN 3iZy(:\Eq Ày;O*g=7/՛Ɏ 29WCO\e7ܢ^;TL# bZ%|sM҂Vdo&42GF6>jǀ) KeLAP U;&o5ŃTo0TC y23TR+cb@0AtG3g"i_ : Uؑq*)gFJΛu@IƦJ%f`0HpW|7#Ww4FO Qb:ƃ=1O?:I@ xyDk~tWgZ;71z1NYt.i Z^ GTpP $M=mGB47L}yl~٥cÈ\jQ8Cups]5w* J2&8iރp|VXJ5u/h+qt?4 ?/+S؉Mo816YI~]"MD] ]YolHT2mbX!^O_,B-HCZ$Cjk5s2]Eﮐa!SlDo ezyH?JLGt_oĘmI=A^9`I@Kʋ|0sZʡcVp`S/#$ { vD &MR XJƀ"T J yST82NrX6ǧA X{KSd@gY 4-д|7ǻ}B_cuNӐZOg\V+;"gsr=XCWb+8Z]dEfsMe`d d5`ΤOHFxGFuӠIuq//WGje-VֵZtb8X<R< \> rFbFMFt[~0tP hU Q8)Rl88T Ήl/23`5bZhZ_tΔ%)%a&XGtOgo>M0\@Ԛ '`42r~A2д wEKYe M~:c- g&;Yԥ0)+Z^5;4φN!'`mS@2` MHv~E+1Iimt =W~]7f\(Qf=][v#yAgYKRt&B 8Hqp;{9[ O[P<%T&/UA/!+,hRT"<Зla7 Y+h\p+Aٹ|K uќB?P.G)1{6cD]rr&(5᏷*9_wG2H}C@obf4U}ذX3E rM,%b`qa0pl49+*3|iJw]VH2z)\o*recLZ 4=wwl. Oɣ.ȟ-pm?;=n1m D tM<)K MGAXVhz@LC3҄c$`؜C7dx`H26U")o貱;__/ʵey0h)+K0"Gݝ)vjO^eHa5:_߆ѡ0Ĥ`H޴b( Pޛ]oQEuqtBY4cgb}!5_I]/:X@s3jTiF(YoD .XVxL`ψ:jx!t.s< 'V> zk@u+ɡyBoVqT$D(LJg pIm56{wxz gy~.81RpLθ((1Ö1=}})aaT Q6V/l QQ>G:hɲ@u^<5gI6 ,^\{\)sEgէHd @k*/b=EUc9`aO3?V,%aJB{sCWñwQQb2h .bOixs^z.ni4xDM-͉c ).VⱤڨcEopc_AqJ3sϏj& @h=%t971I xc96m7b3cke'Ѭz5K9XJʀ5fqWXyuKq~8ìC ~P'ؖqQ|!{ ߍɺ?+ 46sVL.%~ΓE5GAO e:*Wv70߶_5gU9XܫaUjG`p}ȇk 8-0}8 %7J&:w;#wk4HB n-%ţ͝qs'k142}$_cC_#ղ8= HЩ qGij!ƭnVp@(z:P1y9SQ7+10R$e BD?ƞ< VQl҄ ,Z&^4oA}Wx o1`lG!pV8SVuro;47GNVGsm2P$7GtSy#=4ܐ *+ŘuhRiucp<%.֡'P.R]39 *M} )\gfX~X+0Ga3qp5DuEL<ďʫ_fMd 49649V_w٬J`xOp0ԗ<< |)ufUkq;-g̦zA=|r8z_ -J@' 传Fo%X9k{5v }mӷ`sKL_b,$=}2G,W H=ăHp"=_y 1u4mRcԸ~|=dJ~^ȘXCKiV-z^U-܉\2>a!DKj@3`^&aa@##h`On8[4Z]7νq k.flGЄA\q4 dt0c/C15!Evro_oݙxw:[DAգjqq{-3MZHؿכ] LdYz?_ =rb:YB.wϏhJDM^C ;$ͨڣYE*:%5_o =-XɈBнyOpHAoboyvM?(82?Jm^<&)3tFG9Aovb _gk5_kˀrmh5޴ப`5VcEV%8,]( tZ S\HaGMs0?zRNLc5npWfzGuy^n2Ms@iޜZ/n}1ĉHr VT7|X׵vu #'P*܊q职QG_L4:p+3`zx@?n(qt:kAR+O K^Vaqxb0^;ԝ ;XL~zG'zcJ: pTqޭ1ZQj[ͅ<>=E$ýy_b1_N r‘ C/_RC!vC[NFrGC1p@5P.x酘Iܜ.8Q(п1c\[J 2+^qnf?pEm2`ޗY4F8o8O44Bt<+E jZ@S0,c)Wr4SUfO 4,Ǧb}- \ؔЯ!UYߐΗpqiεb(J%dg}H{\+~@g=rAvsOݼ4=ȚEv>pIgnzg`xB EU i CyZ /hA?XuDe`)0H/<7M ܸjMIBS#xE߇0꾠_a̱abdb()޼900^S=:t .kj[ŽQqW@ݓ1C@AVs;c4~{anu=T :q=Az\w];PGEД11촉e`c~xƠqŝc'&OTt.5ɕD?osO:)uu@ 篘t[~ _#® @fc(D nrm`~^v: '>`J0 /gg3“71:d~m ,*m*#@5uo.vy9{ZGW ^^,'.E1Xzbx7_ȱC =|JA U-D70%`᠚'Bw{.JyNE~07@9sƫkhDb`X z\#Y`:cU(Ps)̫wcdOU\ F|羦!yw}_9_ p=oӚKQ9<rL6 45_sc@͵kVLA/1isDA~wwM#2`wɿbu\aiF酐mmƼ\q*6!JFj.: 0mbXN0EF'qq!~dhVwIPOn Jά-^нL] ]† 18_A=dO0I?Cx8A@S𲂜￝(zj>%*Hقa^ 8| {%t~P]P, ݁ o 7CsQ~%pu{7 #6@~f p;;}?g]@kt58N_[a#6 4Ffp*)[ěDa"C- 1)]XG7-\XF]_?Q`_>M&˭563^=_̜x ͆m2P%i2poJG SejYQMo{%*kYx[(`'ῷ5篥}D^ȌE˭fO3P7AhfY7?n@NbX:R4PS*W $3 102\bs9=#>0N9`Yy>7huY5YIGa.nHQ:a_ |7YH;Q8Z Mgt˽ngz7 ^ ,ޟrDAW=o lxkt 5^?="^5ZndՏc?;jrcUs>׃L?cTxzN,w L7:q=u1sӁ )_7&:/'/P?d&ȳbX r 50!S"c\ʂ! Įlҹ]{.gԼZV7 ەqu%j݊+^ƹv:8Vl=iW?Q ПvB[TuNUZY,%D4IЅ1TT8ڊe`Eg *LlZYL"zJ߱m/G:NOWFiOţ@ u(4{D~ӺWN=E~8DX/T24 WFspʟX ns@`ꄲ[t4ʾjӉ1{ij`}t&DIz'A> 9o9i*x$ޑss2&s u1݃/8yY>\J_>xipnTaL,T$ ?cu" R_a؛nqSw/@l9U8(4Vű>TӉbF%L5_fک]Uߛfz+g,g*\1BDYā+(RnѲr#lt㭕4.js :tR Av[C)b?3 #Su'2h/U :m`u>fclT cew;gnSE`h`͓KCb\ h=$0|<ڙk,z^C97R"8ĠVsMe:U6={{B? Ч^<770i>`Sl+ Ucv`p3\pf^;dϥQ^ܽ t. /z ނ*#ynʬ\0-˜Fz,חϿ$.ϽYmKp`Y+$:q8(MWF2NJdf;1A/9_wдCm=g9hH&'9e~mWD/uX!SԐoSS.c4mAX@1RSVgMRqy,cueVM,Ł{qe_ _n!ZL&/J@=} v.Ѕqfℜ|Sۢ|9ޯ=dhK5K9 Rn+{]Dݫd$uo$hozpP]2z'`pwűQܯ!ʋMql~Г{zMUY`nq[`njvN,}zjh6܆ >[o_v a"$= ?ET=ߩ A/K;*\:Yʒ2%_~LԻ J}"8U"hX/e6:#~^)&x)cgLԹz8 JKYy70'+숿e-aāߕz-(r {_:^Yr+H++Gm99~[~* k@IDAT#[G.+ΟOɅO{Q,Rdz-HJR. hn\HdYXXddsHDq /aRmrEZ*m󚉊﵉ߏS&g hj   3a,zd9tvۥ>?נ,דO4R! ]'0FF =)1359~./(5|)!Ɏ} ;Htwܓ.B#}O^F A?4ILPY.pg:$o.;srjW8]aW{ӹ pz wTg h#=ϓ^N0kzItd+RLJ p>//t|pWR/lL ,ܒߚx/Iv !vRIKBDƁ&w7T2$H8gFy,*?tpiQڽ. O&iFM =d A<""BXvǢSkqXJlNԔ5e&7 1h^"F; $c!}v\<ğ;BZDkYrzK=xyoQDz#Oj7=FldU[)eA@*.*4y[@qm+`E8+8`G؛i3tt7m ЇfGŐsfؐ8+tM/4AXdANTt0LL {~I1C1ɼ"VԱki2FJPcx~N)PԆCKINJ1XR;|Mh1Ym4J/kMvn z1T?mS $I??8,9NB)KtiO]/v&(O*tuyW`0jkUHξ@ͥWLT d'kW6T3茪Y /y @}s| %uK %tlCpɾ }[z,nf<sǀgM/BjTכ$HVK;$aY$D)/―2A/^ʇkO:K_؇zN#peZj+-tS^Z1 zȇ8N6 hP}D^0㺴Z Y&c J_cSPr4#2,2 9GjV "\ؒT}OoUHAsL;u$ yES22ܯo7n-)Ǥܹ9tPf쳡Mf$pJ?!,1[\_ ဿRQF e}ٲ3xW=/<7E!!@^F4i_%Ɛne[%/ pPbBk Te`y2̌"mqlB\D٭ ӄn}|kASmf$ܬkAsk.Ʊ{=)rY%v+IR*t|K+ ) tnyׄSA2n@} 41(n !e +vR3`t,Hѽ ]X"{W d%5ˋ*qwZ\z9 ES@l5ᒦ*Rā_tK-7c{̑* X؎<$jo7ntc!LWdߙShZzyQ&xqof7#Rā4(E!tmб-+*2xKlzE`sp&C1WLQ 6yVx}L7;y{&v-f8_?LIH(}> |7b^G(ѷRs`_^s`{R:] sÙCBW]sr3hw h7Λ7Q}o\),rX7i=YpG b|\l20K>`_S(W%}&np'_1E ~C> vzԇk]W|*"?QXvS[Ovn< ށ@zRaBDjb}T=L@ Z@sC9{*)0VP6?2=5݋f4؟>M}؊jsW3Υꌳki"Gs!J-NZ&/y;}N-I `n}L To}"AZ-KW\*B /  rV"\XCfȩÑV`\*H+sg XyO xUJЍty 1t(8d : ,ezzFEP(l;.0$~<_j# e||,<-c(gGR_KR CAMfv ; B"FTH H(.GKH?RYX64; 3 RSCBk9|'&i|sR7-x?(Eh*Ѣo5f=H)DP?7Di}MP;}jQzSV19NAuE_cLлtcn,V@mgkFyā Ek0Lgskk3rggWyor{ޤfȽI̓*(ٷk98fA5ŏA3v@ ާjG=9Aʁ,[j 2E-9nGp.GNTEqapgE=ZԽ@ba٦KTc获nsJ׫ ]t:HW6C4ZB>jnWtQspqb>QqBAj.USsE~)q  VYf\7Q#U'A-+~~_.=3pdq,t.%g@ZlFESiƛiQ}_r[z%w7qSzdf5Ka|f"PX^t[-sX!Vbvb).=x+}YnGOݸ|]MXIkgz3ƙ$ 8{Xed;F.mNA#V7׊>E8s8` &v,46-mfPNS7MSxd[)w$ 8a h*rpu}_Ѡ]Q+8I@6Z z#٨U~vdvR9*;3ܕaJ)_}~IoUܶ#[Ts}kH̊/y:%+lӷYB-$g *5:{K{QdnG.81:a  NעB!wFpp־wvW۾VtbӃ*Áɮٸ!lF6bU^F9ӗFHviRp uhY-;C599@5@I -=GH LGR'Re8er+e]쪌GԵ%W=^X*J'ctv#c|% ˧F)@2o+ VnQy 벟}|е\*} mSݓ- ?NXSPR?嫆kݙB.V$@D}*"BnE)o,5_Sum:;:ǿV6Sc] z:- P\}Hxe^Nx' n]@uw)O6m'g$_Bw8HXTs?̓Kk0ٙ6p r%Ც1LUm:Cݭz78!kcǗ{d wwyfɇ08 4hCK\FsЛPᥬ\ǿ+/—1-8)ˈlY1WmQ˖/POyf*2Mbg@}Ubf^Cv`@/&A0ݐB\ï!.vӾ$~9?<zj&>4;0S=)Aqٗ.lJdˬ/*lč"\I6ַU׉RāǁIu'F³l~wqU}8 N0ft==zh1x1#r-xhdHuQ%rjE8=7ɾO 0_ w0BYN@xAI1bxxa@#!"^~dG;n%HՕ9$UK^ k)6].ڂ3;k &r$1L@=%<%o{hPsX|?^=:>d0qp|Oμ]SSȟY zJncyz/N֑cۋ5m?c_9hJPe퀟qN(rW+ Ov`\BAO0ّcڵÃ9`ہEW?O:hXOAl31~"ϙ<c*W>9ݨݦ;,{%3+"l>A7}E)@1Z-F7p?o]1`}ݥγP{ i<ڭ7j#RPKogX:-> ¡͞:|N+\~~:O7 >>}2b6mx13q7yeX7O_Zis C[=1tl$=if|=:n\XzX:$` u\^} t8TWwsedF&(HA?T2jXHawkq+/pfDtO ݛ@޸_"`"Q~Ы t0YB1nط펠A>K - ޠiމtTÓxlp\N5$ŸÁZ ^ T9[ éz5} ({sQU0.R jR8X٠k3Zlt5<(}8`E<@*X1KNOn "Xɘd#$v齹 SƲ\E4UVBҤ6 :Iyy8}JF~2Eq@nN#<ֆJLqNf/vЫgWe㭙rkGq!2 jXa),{!{0R۟;MKW`0ӶC (E)@ā߉vp]zML WdCHjio96J/8jyb0xVkC:#k}רł)dA tD99V" 4-?,m$kgBN<bfb(Q}^z`}b]?1 gý79]p5&:ҾT;% wqwx<,,x&P4@Љzhv -h+6M,_j_fS7ı3}HݶM+wg*G&.%x7Ƿ˽rî4 E놔pHpgI0 N/]}3r>W<{KA4\FyƌEJBrT&sPTU<r0W)j6kWAO.*E\t9,_ḛ̇5qq rтnvI_8 2/1l}ʿ}{MM-HC?Q)&=XEU\>F4ꌦc|&P|LB*;,:QO-zk q  OD"&1NoFچSg;;3ǟBA(L­GCwx^%(VKCoWx%OWL%V ˎJ :KaLt8Nb ̣UְVuB^8u:wry׬N4 }Ƽ1Nju޻@/ޱ P)q[9>k \ 0{Bǵ=r} uBy-d C|-.2 ~qt 萙9~0L=_sʽ='y+9eT6<'Of%oVʌnLMKH7pX@}_`&|;Ь]4O+l n222{#"؅1Iu2K^;c,$G5Uwf܎ߘ1\wk(x}a?&$q˱ KC+X*\awLL٨GLR\r^#`kJyCMS`mz1O_d WH~'7mp}|_ fCA;y^Xcmu\ʝ (q]䴟Ŕ1$PPH|9AP))Ec@z@[2 .g9d_<00/|x )naؐޥ8@=GQӎ?A{ nl-bRY[* {jU/m8l tU@/?ts!!~0?1~ER B( jA7˷N7u;f詹m8,t; f +*])uz<]8| RS!d,bsyT!Md_RjEkC=`FkЋ6Zz}iP#\K,\RiPЗiepL0'K^L*EYāB˻cC3)tܴ=/g7Jw@wU_?m|iίoi٩NJcAu8%Q8q1{x5\=% 9wG6A#<AۑƮ=/!ePW%!)ib ~q}ßg,#ξatGl41ųCjvXBhۙ"4M ]@2ҟ ;‘&y\};ۨK`rOV|Z &#mzY`]VONMbr^|8{otj`?2nJjn=v`>H(xiL`ݦ_}_vF`/MQeDqI(b)ԗGs7<)4f]|`W8h][^}`c۴^ J}v|BGٟ)a+BǭQKn៖la,,$BԀ6҅V_ Ӌ6ݜܰ*jP cG4n'OVW)" vJG軣m-wǍ,7d?pYOXCGodD5KXwзҁ YSЦplLXJ B8*jP٭".$+Fe\͓ŠD839 w&L=SS uhuc=Q )oN_Co5@L0ʼ.'k~Jgנ/))8z.,nX%)$ڎl;KܡR7 ߭Bm`i#(-8%=+}<! aruBW OJ%; ߭7ᴉ,` ${ vS/ }sb"`Pg n.n]Cd/?>si&_|}^U3zjU"FЁsdzkumq3j(#*eg2VK5OP+qmmUCC܇G%5k&E]uȈ"LKs gvfZ-V'QMq('0g@_j'xC|g? |EkX`|QWdh}cg_vFDp5 'G1.!La7kFxHHb ?ggvmu:I y+ӅhXJufw +#mVρξBYf{8=0XyǘްaĎe+S.L?0, kyp mpfWx?>: gK[:ϴ,sp(z _u/[ 6DuϛC jhX\w.8%XQiv:C\z6tl;Yh$'FM A hYeX,ak5eh-`T9ܭ1 zdǮat~#R!Lӟ鞣{]9c_ke\c<4b글ng:86wwSx;.V]g* a1}U81#17{`w1Y$8B$C[v(Rā?Fmv"hy7uǛ(q0wI+zț 4 s|wWݶnkx0ѩ j9g'zp7;!x+3U1H|*U #HO!RY8X([!sS陥Rб2Q'KC6Jړ3 {pz]T=kɲr1 K,zn](3 _ vr&@=18[p sb9u9(2\? ;ư9`oնv^[~ 3>h3Ơڸ^ԮhV0nժФl 0X9_e ۮmy[੘%hry(ۆ* RD 32Τ0'Z7Qט^3 :r*A*|iL 7E)Z=;-}%mIt=,ӯ4}s+QދL?)aA[V\ҜFtP9zރW[s!/Syb^?) &%F~ +Fq @8PH 9] _Lю=\Yʝx)1i9|nέmG;m/%m={9j>͝-ўz ke H>>F:ݗQ6y0җat])BD 9` x8Bn+HZˡncNvI9^G)iOηE@gy~mK8BM Ut|܋b>hU~*c Ģ\U`f;:kZɮ%pɃmwZ{j|E׮)Re/w03.;|q.bw?͈'@Gz Ml }+N&Y}ZGVT&>aJcc$8+QeW 9gErˑPH-70,"™[6sӅ;ϠR^bTB:P=NP}| ,?֦R^TY=|xG)ESzt-A*8w7s}OO->ْNS*>=]if5haBhl'~F/i#Z ).GfB03qWr FF@VJdD2 ʝ<KMRa?&J?;} %bE^fWD}`CC` Z=SFLcK9$k^fkPO+:Xj v2_zb+q0u`~*cbIА HvF5-g;%k[\Af?M᣾ .˷Kj/6p819LT#tUˠs5+y-R ΪX"@(cNC\tYy SZ@,}ڔ)ާ (c̳~cLsJxJ?:rS0R i=Ff?]$xK x 0 }6bx{nEp XU_Q`.Xexj@ z$؁?3fӿY^NncSǷQžXY5)3 ,Wa / Rā߀V Jىr.ٻ}Ȕ]g4{}\ Xtu+1q^6Ӿa$N{lc:6QpGc&G4bS>Dh t/A^ B,ˮT41%~rk͓s8XvaU5}is)?Z iMr$Y :}@E`BOk? $NIffRqk ˾i|Yc }iOR%jyUew7 WAuLuC(9DJiA)*)I%3˚򩡦,T}s&n`MHTP*~@{ܟlfn7kpPkia >1Jli" 8]?{C0 %zgGq+ݙd4WM#hT>c]oK Oѧjqe q9:^|d!,@āhSI g$ IS*1{uo1y7&ƞL(@v{pdU2k%k+:Rw)^-J|wJmȎǒ21WK^Ş׊ :ޱAwCQd7 ˳ @v Շ.IQ XiY rmrd)G7]ufGYQ}%U/[Dwvʝq@vm"e?Ɓ@*X?<>ky'E \3)szVSs9^8'j3#0^}+` N x /4jD~q83!gͿ~]o83bKzg|l@z֫x6ixb6K;J{G'oUWZƋy[OJC"Y9`|ֻ >oFNQNYRMHut_݋~ɇxzn0+Rҡ.#׻}SDLU4 .uy Q?ϦFv8Pl(lXeI>~&rY:!ՆQy잓]%n 8T{.v`I\ psy\( ^*͘)503s3E>&]UЉO7&TH1wK ܪV%0V TuE'-_ |7XR"ȧ/ပv^.\R4=NnWcWR' kX:\}vNtAu!\ꞌrȊ!YytЯ ZoŽA_ |dI{2BXøyi/Glev;G TՇcyE;2O|jh(85/r1ۗB$m Mp@g]fPuzp 0b i%?(.!ɳ,VgR!]KHU.FOHn=z6m8]OͲP]#2QqIou᣼W ϳiG<"_6ݸ"--<z'+2vcMJ<l8sy0w_{{0>@% ] jȂxmSp4 ޭ:$౺|UV)jkXp#t9$X e""ةٵzMKWw\DvPr \P6w{>R@8Ҟ fCWW#MGAlߩuo@Qld 0Vߺty&,{(+* 5(>d'CY{wlGcہ+vrRe+׶YLXïV_*9,':B6` n懥Eqϕ6m(t!-[tpβ t(%}^+bg9Z}ﮢQ|"UWsoDo 6e`"87h`W^|d a Sr>wb"G ݽq\-T) 7 v酎{!գWp`WLN˖ώ?ɘdaU7'MWk;0\{c=[ '&cLےIOn4S4qi'=6| \b >Δŧy q Y*ˆ-^ Z&A-{Bv8kN Wd;QG-3:zq~1tGMUozuW>OX~/W\JԁQ)c)%L:li>&ոaāKsFl$;R*j/;]=)w0rFx{I7Z\#tpZ|n, gC.mLrz{"}]^U=a`Vh'|ɛݞMTkP``u `d̥KϿ'HLP.#yD>"\省buB/B4-@$q098JGzt `pmg?xTNe җ^DXǏAGٵ?P7YCl {#1?H%D8i JFVL\Pc8P>亼; ' c4&0'umʢ8`e5- >/ǙP0sgRGggtyzEE}*[x`84%p-UPx0WۉL5ۀno|ށGi~ d`%tHFqer@Tyk] 8 b?.{_J K)"jU3q0U4}.-ǞY&'6P*yǗrt v |.3GL.,@āȁ*vʥo&3ޏzE!x jίz;PH[H6JNJpf-QeA6NunuWv+eĿ VX\NR-^ EBc VH(8`|RJuv[U8u.6>K:qW %ۡtbuv˯i'^ꡠc tdX Sǁүu/Ye^t9_2+cmGnMI}R'Qs(xZ`C|eiX >CJPT$n!veJ5OEswRhRXJt%c5dގr у#1my5VMy46O) 3,u/KD"XDhZY'xlx|N7vF0g O.YOԣS Xt.+s_ϤĜ'QE9ƹԦ}z>e KdnQ}HFE1a R-"D)m zU(~ EO) }uQFma8T4] l=Yv4պjh/01LVTyn)V;'إQʈobݑN/ }3;: QqJmܔ˭h H;zYAOv8ݜ81^/COeQ OmR JnOEy&ϯñ"vp;i  eL#;>]Ț%Gtm_`[@IDATЅI^g\Z;&YEٯ?/0uN8|rRO.h &@R13ysRj-]ڙ*R$XI놵CsP[cЏk$Kœ v\ؖӞ -Zʽ[rb8{깅=VE-{ZFs`[g} ЉR>DF2M vB9@\,=f.ͱ+*N~2P?ś,xn ?l6^"€N˜!Gz4=q -U2OD9f@3I$YS 8b_H\ԓ<8 )@e)Otɍ' 2ÀQf hI,rų?tZ]UǛ;t\ X~V[-j/Љ+@-NB#E_mcE,]O[h{I*FY}:vppdT[:b : =1{Iq1ݵcwV z[͜o᯽|)`gz,#:2q_t>Яk0#&8>!;'.c~ XzgkKU^:ѻ湳 W|K BOEMH /~*C&YD"; cO8Ku^'~hOաK֧7p)բN$\՟y"_?gYǾW(ܼ>,ϫ[Y_OX;3ɞvj 3r,o#:Շvd|J Q0}8I7k2՞&@VAp b NRāBe5t-݉@+~K9< xX*xpIFFݴo+5>ZLn?`4mf$ʌ/|I cpRD~muŻNǷ6烎=8趎T(}8(p<!v.˟N֠S.>pé卬#Ն# ĻHJg'rP>u nM"lde_p)r)I;UB@W0#9ISy\}3C_iIӳ.M $>kcAf xQP5…Q=`YDŹ9[2v`_X}1>T$K^u0>AG^Z-~1ti๭zgR ~tfL\-9YD~[U~侏PJcl%19ʑn`? VqN֮(3ީʲgWM[a1+zsyO@4 1 X |?Mq/;f׸۟h%EQ똑`CX;2tm`Ӻ-fg ENm3ȦkQ>F/AfCw}?[~|ߚ獝rlIGFyrBYxH01c!@p/C"G sQ6el)񽁪zVpLx(=e ~q8P8#&e?́=uv%aW%؆yW4Tt/czx`;+׽,~g sQGqpscj]Α&Her)J~  ;K4(7~ 0=7R/`Ùps[u7-bZދj`B_czs}fdƽ{{W]Qtٽ>t+"-"vbwaawvca v(!uAD}o%aϙݻ{vf33gަiz{h2# 򇜣1 "<۩C0a-! C}2˵L^,E䷍2ҲK-/`+g:% B:G".cW h[,v't,|oJ2w_xi]bOwGU;Gxu#}cm@aoFs0UYnG` F7d>j\ԥ#ЕzlPj+8N XHv7s#.6.icqKȟre3 w"kocqK,%MY 9!f i>o/-g~|z8ffSŦ'P>}M\CwSu?HuzH*q,HCYG+2ySVsXѓ)YD&slW[%f/4\U4wӞCyuYrcMo/b%JP0>;Pi?`hk ,<ٌRo^;JL}yU߶*9IhIV^O?܍zlRCk[7г'餦y{U1j6T]rlf kK91A-/Gw<+t;%dC  sA0oZC1PcHgQ\Xr#0`15#yy78Rv*<q8Y_$}߶~Z^2WϷfFYHR''5G2|ь95<]~+҂7Z;DaOD ;39S֏irWǺR(W7Vg "7&(أGxi(@ʢK!fo 4c#p ^m>V'7znbBwo8q>E`ӌ<țy53 yۛ/DnYBY )%;UǤ@mhUG]7hEޛU٫']1[Bݢˍ3?{/w֏_F(%ŭH8(owV͎mP|UnY&Eݭ"ǁ0P<ɷ;j_V} X@̘xc/P8Jzɪ#S}_HP+3]|6#fz$~'.U+Ay<_kAN+5k/Ȍ ڥ>B$ü<03?=01aG`s]`ӐTULl%)̟]Cǭ'8Q7 .m<`ykYskXph철pA/Hq*/e| 2N8pսKY43O}9Ak*|ʩ4mJ[\~`yVl`+JšB >? kMonb]rVn\|αU^gm%Ʃ뭍1^ Oh{ԫP#|CNzGpG淢XwZƣ[xw FPH' A񷝌M 1.;(0pKHRGa];zsМ3]:?;: .hDךqy>hz׼0c4hEwLP+od+I c;OƎEsѥڛj!1/%w?4pHl輪鲖)HMjul2 Qooj>ciAW ېcz[b`"t;b )"HZ@o'7G9_J/ڜ|I chA>zF3S)cwۯ%_SV!ֻ tLHwxҹJyjB?Џ N9B  N>X_h[hE f*2-lt^9 .n&*2KLI}v&G/Gz[cF&yQl'Į/> |${k?xV*EYL?e/f3(ߵ?2o Ya:\f!`~NF LcS?;q hjfq$eM5i16.A@:]Z̼6Q0cd=iW'E!#rD,'Sq:nqR+gS]l-e@g{(_14; cW}z$> &Gr8kh>2/,\jLHD[}/|~+}:T:B3ǃOyPu(1ǽC:7q^Ҍobxx/V##3K8qaSuƅ|;8S]|=x ;w#tE>b|4!Ph^xc&uC '#|1Xr ٰ9~ 0F(r~ⴆ%j`@\ fG|,:ɱEkJ*n``ya{wTZZHhafLFdMGf%@=R{A5 5lCKInj۵qTSoIL]ș&ؕ瘁F](B/D* ^tzwE1i=_GJh#KzSAn 0wuF_S/\ Ԟ!Yvfu>^`5ϰY~|EH;s\/fi}'r "h%Tpu!C;]c;=wHLw}(xZ+I=Wg80_c@KYI/x*9>_ߗ>!Kʩ>'l]<`8urpf%9v% FͥHU6gk.I6Jw!X%`>-SK`2Ok,6[='D&6ྲྀ%pzy2~Ec >YbJ5 B?Heuި/M?b:`Bp*v 2ECŇ*H)<&IՍdDG$u bCz6y0tkgYbj>~`O']^3Ym<"T)V\ҽ_W,FF˯nϷ,zREw 5Z?մ 0|Ű}[ɬh b:wm)8eRO2rNbϤf98bq@Ύ bf _|`qmRoNm/V!^t6|J('d:''!YF۰=f /ߟYdI\L$0u8N wzf639=< }q(OgC_ U0gtYv _;#%sv^A~@" 6p GOG`AuIg`9K,?N٬v?/ٷR[%؊ sKoaoNZk0ytcDrI ߒyYɖ'ԝ Z'q#}:6kui`{#15 vwuDzO,biKc 9IyoK.GnÖz'PA͓C],}նMN~":믭Xƶ ,{uNJ`@dFW ~v{Hi&~Z;Rt~pSq.?Dv\v'\2&՟hģ;n7f==>q~FMCc]E5J<&j5d<$ nj.L;jȒ˝C #L%~d.ɥ/<xzXaj+f&v&hCe~m'-[xnC=RR sȼ̑'kPp21̋m5 |驭<]`7 m ,8XȉFtawSzhA߬eCo$Hy/KHU5*WM^-Dʫag;m{1@w߈3wLt3W őP\9 -ŮޏYC;/H2I%fMA$gFK^=X9S5ϿLon)*$+zBB|L|Ȋ2;5)#}l|z.Fn,`/6|@g4x'~swm5 t K'^R`N.]EN^E XZ<3賾o'GMg-wwjXHѦ#Tؘ`*~bճ)HZJ2']hsB O> 8#Ս}́Z<;,>T#.xu;s>䃆IuhQN(|{'bFiKM%} ZO|0m` r;VRZsHE(蒠@خ U1MB c Ԇ 2YLq6=t͈by%~1ғ?5kk||ad&oA椄8(玎URAsGe_1]V~ G9FȻ ?.hM ]4 ŰP1~BǂvR"%:P;:w]ιcw$?,Q)`h1<- PcFsl.U8"u(mHYRvƀ`_Gm׀$k2Ȏ6vrK~H~ La@=1#rvņy3j89yIV%@ݩjG%jsA`5\eȢ>E9K22f"9ѥz<*K/Z|&vi<.^?0.;o&|kzcA玡B=.e=-h=٥FBZ$4k6moza# e daP7e2#X)gލJ:j;|W 5J Bu,|C]pcjqpu!Ս3ORPԒ } U $18خɦ-C ,S߻̴>o y&}^O ջ5| 0;"5ŰO> h|YHOLn`uGXbgO?<ŕG>_V}:m^zkVx K=m-8DKyMג:ႬB f74ۮjcf+opa~HQo T5)vF*U~ڊYVnd;>/%Ƕ*AzriFӣN-Az O.n5 vAmΊ߁9IO'5ܹz4im-5<6l|t_WK#+:HC[Y7)=74[a;\_9{&Q|^? p%[qի1:1ں3ܧQ [$Ww>7_sp)x,.<t1d%3<X%WHp2&Nn'uT>Fʝ P_Kv/\/w39/>wsA5|<"UXڹ].H^.6i^lo/bQM]:qqذq哀Q>`0齂yf&)fq]1#횿&IvizJwirG^w}s>>zW `FbpGqف06*[(zsz4Tޟo䩱 ~} D>ȁgB\$` `kuqnF[hm-eR/RofIG@ ol|- c rRU\ښ9g}3کw$s@ M /ҎTˌ8oc\82tq[B`}_P(03y8-+},пӓuOSO{U_|uؘut LI}#F}ʋ@7Sh#g'aV򃕩[>0d0%cZ%jZu2lWԺ (ڂy#QJzܢzЩ]w\RV$O:jvx⫛#yzq!X%:V㗻r<ڰ;A~v!z -`q(6_1S9pN7OVobi{0u9?.kN.eճ9 ==j,Jg EW1nI;JOԙ:3ǖ D.TR XJ uWu`r"aBb][ b`> [6ekөOo.eB :{À:N` ,]4V]6PרuEG N-|w!pff*d~~嘦14E /%[3A0 fz+<r )}n'`[Oy1F:#1Xjt7Dw80urK`}jPo'7e%4ROf޽%H$헧Hc|Kc fxhfJiuWB~mǽ4_Id@8B3o/DzO~Fe/:׀{0պf& HeZtѓ;4_n,@]@M<]ȣі e.%́fI':"3vԇ]##YeC %K tx%yaÞŅoVR@>1ƌq?l 0=.wʩ}#L{%?]x/glF{/HU)5XLg~PX#@Wmѧ4ԑ|$5 $ ֘I* P<+k gV#e>Մ堘Àu"/Ő >uRP`ZVxoLwk] ԭ|cUFDzR*ڿjŷUMGME/ eQ`l~@v@us%I}j/$Q`쥆UזWJ`EAQ?]o ,uLjwuJunsO>c1})xucx3*%V3lNF,Kʤ)Q| Ρ#ob^&H?G8y(dۏFpo̳^bȰK6B qd_xzf ޘyRxi> w417P'nv4Q”23IDfu"}wdTq~]iK\HΧRƬjߊ1I[ ]Xt cz׸%B7XTǜ1\ZUr읚/gJ`uF8C %wJ;>ot7OS_@c}=N.>e~]}n4h.`e| `O.Ncgc@0SݓqD#„P#Lm?U+IzQ [/$ I֟)U >~JdJ^ r`W`.㉗lQ)M:oV֫XxRGE#1\}" D+FTϠG= Lx$`kf9VA$EbL;g[ql9_b9/<⌐MMz bDLYk`В%m+GE+.|z%?UF^lxG.^|g+8ʂ)s2?/Zy~L#hL_(z( oG^[{|wOJ<"ͤF`{ZWzewsU`%%OQe7 <Ĩl2쌀Z'|cD2j9e>Mp+`jbfR[U>ybJS]%EU,qL-;1f`dݘ3 p.w$_ݧ牛%s6J0!);+m䊛׮Eˌ}AHQ=s,(蝐}PjF'VfHm_^ V_r{g+__ 3m \To t:B_YJļQj+:{Irx :ʟ6<7EDZ zg]$x87H0/>Ƶ0Xow;AᕛRzw!2 ÞUy|ԪM[Z5UDjF,]tto>myGEm=>A O's# b6}gV3 DV g+V'~bY\6YU{i\I]˸8:>yZ+#ں7ӣja$C0.\cຊB(c?%(gPęXT_L'^:-aJ/;RiG )ihn(2ÄIN>(.,y^HZwԌf1@r=3{;~@wIT a%XO=`Y϶z, U&Ucaxh# +v:U3=1x4A{X~M1$` 9Zɶjmx1 }|Q}]T&oA02}6@:C]-#j_:HWq[:{̌^=ҳ/W <~@/K ^}n~_ {C'vRHv$fUy[n֣3wf0L*H,2:] OS@znttGZIKdEϲi}so՜#?1O,z$b-r^4QC@c:.qEΙ-Zo;Sr:;{os<(R?p_L sB >J)&7wed1{f~'SQ/cp t'mfNBF,K19sp&}F4P 0ַ,sqz;SG*cpw[J3lY<:(DyF@a+R( ^U0UPO*8]^0AtQ[]gRߴ &{n](M>AƌFcbY3TvY+^(RŢ/m5@+@ɹ HSz\ -g~@vh4Xc  5Tl=VFQz],|_>%X_'@ 퓵{6ϤӁfǢa3S Bfb6fU#9p Apb'c+zZq}ս砈1 r=ӽ3=S_]]}i4NφÃ5!3Av愕^`5ɰrW$OGZlC:!0‹"AUn ]惕ybBDZ}\ cd ;2ufcRRHp.%2^nK9a]XL恞u:<9~%)N@aTIH~#`2J qt:xy){_ܕF`a=gXc]5Fz:Õږ+MO ?0 އ铹wߕK1*/X1B\68c2I១G0N Ct1xjbZ_>?1jǥDL?|ml2JiSG}? Ż .v0:H[|zŦˆV^ө="Jm>Y~3 z7-ҬMF:ӁrfHJO$`Gs=Rf$Uu69*|O tz5ۇs||OҳZ =řz@:M=.{t3U Ԥx켞 (1݉11 ?,]ߌlue {g7?_̝@yq@CGGxAG-<:9?|՚1 6eŏ. 򠂖AQ;;z"#ŤF|`f|_{&~zQ JEV"9[l̰ះk҉(^ @ ,>A-XV}+_t!OQn /Ylzf?bo r E6B %J`+KQ~lG4 U&g\d֨0ccO?CbÿFO? m+0P|~1ZBkP ,M1{Y2wŁnPDIg%Q53Au5G<~xqfĈR5O4XGge'u/.YcѻCハh jA 欨 z*4#C(P"VY4pMT.Cg:o >jܙi&< TˆaI?E3wszW5!?60~5LhJf.꛹cO?w(Cy&OV\.Xga%R(fdSvgduQpg ЏxMٵRg~[-j^ܩZԠxȌN= V [;Q :qu?h%O{GD9'뿌|ͭiP0̬I#GHC DoE8D[G{ іCv|c{0ށ_~I&Mrb{šg#fҥuXpAp$I;%h}I<7CSb88g"xz0Q Ɣ}6l)9wAW ĠLn8|fq1E{RkvIaac3,WYKL{%crkA2%%m##}wq~R`&ԇ^z<`V2ڙ5a((Ek f+x0P&"c9%[ bj1CU 0ΥŋP㿤ڝ iAq tK^}'r}. Zڜ|B 05ç^$} n|Mbb}+ey611>f}\.@%i{8.ƭuFtTkֺ"ǪޝXk[Í@goocl"5-lM"I*'^ngG6zX®~T1w_xٳ׋to7/z?$305*}TESDpRW9bhGm^~0zfB9pKұ&,}(^ Qm!.NWq{o~Ŭ5›l-hn5mZ6tݱN=Ӻ^?}xf{vjn8+P"^fp jF6R]0Y H|-LJԏܵFʵV-#I(nVz2/ |Z ssȁVwu~_zV7Kj:x^3l4ZrrdulXGǚ:r(B  5$ knCG ֛w}?9qP.\I/]*ҟj@_1ob{[ / ;Il^NNW֚vߡ;%sϤ9^ruEzie۩ʻ;'xM׵7K۷ ,jU!߅)%"hPoddz;qw =`٢uDf0)|[T=зyR=2˓!==y 05y0{yB=׷`=Fp D)lXDu-S+inz.xW:;g՜:G#L]T%Q޺^5?'Kb2_Vl3dž/aj(5S5ç^$p z7i]M(uU;,.'ǖ.,qNtGwfU}K'szgQA\*}Y]3u>ӟUG EyYxfSC ٌmJ@;8H*ϐV{ lRۂ`FI`?Mo՗ABzWN ֔&#g/L,lOs&?usi3{}r^Y*~X4\1CKڶ|Mh1E"PH5蠍irh]rSCM2C(V3~6[+iZiGg}RC`K4 iђyi~ P/uI;L~,6YR㿝 CizϽ.{{+&Nfd^k s)@'H{v^pOoS~\3=QY\+7>{Kj`}sg Fr/o"L;GZ 7' /$7̲6A[ЏU,)t& }7<-McD`/7Ji#y_̲ Iy0g#9)7H͢\-ZDZjcc.) c?4KGKa{ܤ=`n}=2g,&+ղIP"9)- FE R R#̫]yjv7UjZeNO{!cfA7ZȦdJ-T+NI}Cu{#Lueai0TaU݉7t0 i1)YH2j) y<(kۑBdu*4!P^MMC "(KT[>~(ɛAz惄1 pİ^7|`?_<1`їfi@ԒGΌA#Uu.azNbK}=k d۴$PI>~{ŶHm/g\}|z?.5ߩvuSGYT{=kaP~TM6vK#-SROHGgޡy910I$F:_6Li<,Q;:_P V1h00 ~LN,Xu`̆+AihɷҒm=q8pߚGm߱ =ߒͲi ҿŅ]mӍ"'-Iji,ذd]`E@7rUm VԁF o|/'B b6!/* X~03q%.flºT%.|1MeU3SQq>-B,?yѹݕsw%9*:Y^ ҃fFiP ¢+l$WpW5` nQSrg^xt0xOWp*I0M?M}cQ۩?xƂT<;IweV\6-;K~EM/`fk}Lj75YPܫfF?3/4[8$%'5[ <",l;O+YM /3Bvn4{Eٱe/`zp|8ds$}h.(OVH4d5:a\m/X~^j3<}gKLͻ1֒[u%c,x Gjbv9&5i(s)-M|V~s8^}n9~zĂ⾽ee܎H)@(Wߕ\x)!57a@xGz^Doq|Һo:1ejTw@g+%>/D}e= uW{sm?r P# At續!l{#Zq`U#s]X0Ixo͍>tO%L^F^ިZ^c\Z DɗYI7OS#W8 dhѤǥ{o徔[-#˿>oj7юrv7 K si2P7Aül~ -ݵhvɈO5)imw"Po Ɍ]Z܋ff3;)RfhB 츤%]zs#^>'}:CG]" i߼{`<4;828&ȡ]NP){_OR1#Nqy~dgqEj_r8Od nYF_(A{L/0|ݳ -Y&ks~ϡ?Oz==u=*q|0HJ/EڃLt5d30`X>B$pKa>O{h Ѷp ŅMOfᥖ!?PtI=}I8 3-^gjutn|. ܾ<e8FK|, \6li!J J#{Utd oZwŠQՅ*/c<];/uG&WΥ 6kMgMv~ߨ'rǨʧszINRP9}? &M$N;v jc,r֯'&hk5`pat* F X6xa0H9N.ي3Q8ʷ(|նn}ۨI2S[}nŨ5Dill~٬}sǦf!=EE^WWtI!_&jzO,r-xqt`lP('XH,C(Rq4G=B=+2Uzh/hۑAk0Zo 94brV5YA k &ZDvl1Q0K99[?$s 8XyZl`ߏl &vb{+eA+"( pۥ-v8'ST~k炩6\:h7< hy0PD7݄Rͯ5;.NfiW) C'7h8EIy2w ϛŠ_^3 vKAv\ fb ȬtE_4mcdǒnsmR@zpPܫӑvJ͎.8 :#bvauy{MTʻ|2N|}gMwko%|s_盘l&m׷ʅs}]Ks5@wl&`D90wNRk~YpHz'}D=P b/h#+ƞӁ寖hH8Xɻ\S|/PsxM?"H%C*&rKf.>T}y!zUEWԺqiyfmuQ 4ZB=H}f F/q@ wih!.C %Ht5+̈́JNbE PoGW ryimvs8;І4@pkfW bh@QW)Z +4bH0Oʕ̤n{ JLQjlb`ↆi5nzZFZ bdM >`N~ȗ#7F xzN2&m=I8a3 oo;kn=L]U`[u4N3:P#ְ[5|Xe`rRAУo@~I*f᭡kZ|}wXU-H1<О8]  YHzj[jėkvL\8nt}YB?J3 p{v`{ 8r$?v#+1S@>[o7"1y^꽿Ksf0%=)7{nJ @ȏ[߭6Ojqs̔p򴔣I; TbO8&MJ Pݱd{Gy$0NWlJmWғO432|K${Vjov/-b? %vi맩Z#Sz/;$?\~x3/{;|S}KeEt^Cc4cP;:jLS ayIɛ\;e>ō;̒/s+S1'"͝_PjhpA{?|pBB ,+np!X$`{OCpˆwރ~K=N `C5CaEE[}5wL' u1ҋuPzn#h3UM5^QU4)"/3}#JX>nv|1,k[^ UzKցW ~ߐvv 2щHp$NHaAu- Y@2@oO:`~~RQ`5bQ]/Ԛ -^ᵢ8&5|>oU-\˹IMFh;e;=ຑ{[C<wl9 1;z"z]7Ubc†c'I?=tkۙ`ߏ iG`*fJ:%ʤ'hoư]FINŪB.>ᗶFaט}n;boX&2}_] ^ IE* o&jzK38nxS4A"@4S嗢ٮN_OF@%I9sz2fgy3&ehϒrǥyt?Oz,]zPf!f@10  kJg/N+\ڥ?C8(ߓ( z+TS"J %_ꙤJe(//T9aZ(M+* f WF0`D? [mO7~O8Xnݼ']F锑IגfHrv/{S{܅ΛQ<<(q?{!z?5߮&󷨁kFuRci5PSƘx`)!x/HI>R=J'~XNL_ل,)l(&(2!:ijJ.a[.$ʫn'DV1,Nl0pɍ,VnBb ťC,~3KjQP(]Fa:FDNd~;8ҝ@fLXQ o%?͍Ҽ0 L=N} 6 ]d012b*F?ˆXJIRtko2ۨVoh ;%փ> TL+R`Z8H}0`Kdd eVmk %֬w6KXībɿ+Ɣ)Q -\|flt|egR0$?5O]*Pn33 tޞpFe#ƥU}aUdߨ tpnjoʐ+a`bL !+- STw=&3¸=<>\VɰLj)V+KZqJ#}K-CaA q1]e bYX!N}zsQ.Hf|vsc4:y!ߨ?b=&f@Sђqoࠑ:gGOac/۰L[ENH۬18M{  F{q/c(}oo-Y!kMw!48|T˦aR-De(Jn|,:l={m~虢Ʀ 6O&rVj!nuY=2$M;UO8u7UeiSQI;tۅl=| 5q6;V33| k_ۗk57h@K<$hCk 'f?GT.לe=D}xg+T]Eźn:%4~D!IC~Fр''?I>+$*r|;vi+ J)eDSy2n4FHEh xT.hnv + z5f #%z n`gwV!d&f_kچZU, !n[}'G5ĺzNT}@¦̿,ƨ@1)Ѽ%Ћr}/PN.ԭq nWʿS:zkKur]%MxU-%s sk5+&+c1hZy]Rs 0σnU3+tʆ@`A3zPE\:/]Fd&}|F=eV\b~epPXJ#{!ݝ3ΩNvg<ۡ g2N2`?/ꙌQ̀]q!z@Z([wk)nWz{mLHVurY4zQf\op4$S*RO9 ϗ[ VJ6H$Y_z nda]OR;v 3ZT2ꇶq{KU3ZP煗;&ctX0gDmpLuAVjf![R: [G^(wV4vmwY@W(-Rƾ_cu.wyoi;/!HdžZphEWyP":s8=W݊0wxz<?P )y-0*RV}l'G4ŭXtnr /" EiHrv;ȜUOc+;jQT#%\k _ #h1[H?p=;pǗT\;[diXf?6#ͣ%{.~fv(YkQ_=Ƚ7ҽ2v:⋧S9< k/S5jt9|| @44Н"KW:[Rވpbޞ_$MahKҔpoq7لIyGx Yg5{d%рtΨr r7lw Dt/!cS4R LGGE$հvFP<؊AFGɯ~4e?G=?2DVFbfZF33I(997P W$d8>"V{160񹉌3$Czoe+og0>-p0:,3V)e[mXnwK4.?Y?JqWUZj3ur~~VglYa+:,/,_d{v0`ir?f͊nkfu .(Uq5<ld / 9;?6@D6(Եwχ9ǁvtoLUT/fk'J6D^wjSW)_53'kS袄_?5wvȺv<˳&}1<}υ~c۞ jwe%(l64=(VԾ*1~Wƒ5bq.D;cz;ə f^F0>b T+Y ! X6~UOn={33~r;ՐHaԐV> ң@Xbiwz wZ{P񲙙Q;7ь*nv{RMb3.zbN :{U̚3 nw]'Ǜ }5vtZvgqvw[vOw/N&ziFJsĮ,D!E^]{jP27!g0HO7dʹpWc܎cσP7_XЖ3@N>>_Ǚ)xhQHc_ZTm$k _ASՀ}Hكa$

    3>Ҡ2Lw67e];T| s?9݌4T)5B]+5"IG6ήA~F^^G4=YIVxUhPe'a {/O`G٤tGAާt-xX}_vbq35mnQ0Ў7a<GV`8!ǘY :ۧzO`nԽ, , n٥iJVxח ]=a ȩ~8/{N5D"|)`Z6D3֛Tw䫛V\W\^|`pXW)Vפ&,}$0cE'A9 8C T֣4P#Bnzz0tel t %;&!PC}*G#o. h=ҬV՘;xZkusc^Г5߫n5c7}P>'Yp{k@NNǸ01?+@a]+/:{2} kx(hd>3#P[nQ}F 3H0i k}Vx*SÁt\~>1`/;,O0*|{(9ws 2yǂՉ7}b(WCXaWe!?i9qZֈ./v=lӧօ-O1S &K] 4*P$ŇW7\n*~h(!dK'Yl ||Gi}6w~*1,i3Q~#1Q/N? ;Hz b+S0Vp?w__g{0lB6[L=&^K#~_.up!MLGzD3[ݛctNTdKVݽc)бi=%o8 ,}]}kt6򿈃&O6C2-'|=Oe5bxiHXNE樦)zͪDL$Nt\-q !ʕ9:=XW7_|R< f)p@ T_PMꞆ^]1@~w ݧOFv(0 Q$*PMf)#b4,߫L-cSU[~"5AOaH>C.IL]J߱"p7uDUKDyQRn`>8ћZ|vׄX@ק6_6ȏ|Ըߟі!R07 g$mDz_P].fVW²3+ԵyǰU h=xވi_J[. NGEy{5|}( wlq~ ^|ܻewڻ:y,piB>b ,m+8ם_6fŹ/j'o2~ ,!2̦ȴX|ʸ߿;ȿ] t6<O[sɃIv\&fG36 `s|s{4T%m ML9W (-ا'St )Wv>y ZF#n]C9?4|:˄=papMʟ p1MRxro|^Vܬ­b 7їkʚt/7Ծ 0K~0KdH2&Ů55yuZj̧| k[d\هO~O /g<(LAubȊZGKO эLy!38C" J, *ׁ޻1L%v }z |4$ڃXH_ R¼}`g9 ݕkkA8NNLP0{_V'SZ5ӱ OvkkҶ&ؙ86D`֪h7RrK0w; w-ˋ.3A6ZDgw~ZS/eO3I̿=ӽUǩs4ZҌ!it}9z.wv^!yU.7K(~M\ }LE3-^asal鹣̓۳xn/IP0:W7\Vna1 :}t9T26Ċxb7!QטX&ra42w]zVF(SUSO)2͡\F ͭ!^nfiipN%%0G@IDATS@gV`\Pji(u'6J2;3B>/0^>%Jrۡ_tؚPEA(nYx}j=:=3']hg,y"EgD_\M+2)DFdy 77[lgtZYv]fh .57ee+z;9S 7827f)QM11%LZ=G^,_"_g5| j 2Dw=o߲Y3)iYQ)hp~-䂱F\Ϥb>˶hzøN͌JXW_[Qc#XeWi'`ه닁UJY5ه7znQl}lkfj}`;y@}D3Q4MšWD՝,H*ˊ@Ӛ'꾠 K+ݙ<|a.3hZ[͂.,07D濠4OddE[̠ZCZRKFZh{\ICjjc|8rV栕˧ XOvqxS=|}1}8(jj: 8"π0K"qmEWr'sȎ&y8-_(d;P'?|yo= yۀ/.2~$ sen}-pH;s;*K)%U|3Ak@WM^e՜Uj0Xd+~96`es ь SÂ&&-9Yw/:\-@q&0imC%Y;wʅ:E 2D+H,"z2V/+91G*UvX5[GXiל}zί6ŏfC`&_Z^W/|>Y R=#E [7f< [SvL}Kso"?nQJ+O|mڷ,%[d1`/Qwx%OK]'@I&7p\YbuX2*o+;78w1~OK_}|g+bU*;{ڶuhY@}t}oѮ ђ5˹P)~X mPrۿ?H?OL/^ ~ڍk ,:ލj7'[ؒNvw:c?"$?ke%zS;E횠`#2xIۀ\ WN$D/ElL{M[_xP<_ua1KO;ѻ3ŕe `B_`b\z:/҃ F@fro3{=nᄃCDu hfO Tvm_ΚLʠ oF)h~FLȝKIB ]gA0wQTTmX^`*3>|^*V s2PN x&R3k}2W2.43NHhoK3$<~ {3,+tVS{x\x֥6 6jD͂;V`)fqm[a@8i_;TZ 峻q73cM+g \0igL?km?X6ŊmȬٵ5DA# 1.67\_"YM2V}tUϲt1 Gәr(Z7+rZwhgr }kxϩ6`wڮ0G\2s}kH8J[_cb̚x2o!KHW~mc|vY*DDW&(eŸdW5E@'61>23c@㾖v6>64CArЩp/q{?hRj7`8tԬq>SU7A>0}73q]&ץ0 ,9g{ub%M?pTN7?:QXPY]嵹(|6o,y bOyo/y2$&*JQPi#E\tty)s,\Tk=m[G5 '^ߌpw,$/Ϋ r\] R->ד~ }-qEѨ3HXv:D+5???h yp0瀮>(N.h|HlJF T4 m@p:*؅ƪuD vNry $>"]붧ʒM.ԟ;5 ޠAT^w~+~Ϥ9T@U+QSSX0( 3zC' A-\|q0GKd \N 3r-9)zJRo`ŷJ^}':}YefE'Cy|O'=UL_f{?ya12`vIvb;ՠYto71k4 nJ:xQ|ďG]O3qƅ֕6mu3}Qt0n$?$i΢/gcRL{(&8u'i_Gg]GX\_$--331ɂ|9|̸7>Z_ʙ_J!Vab2uϋFԺM|y: ?9ɊCI5k }Y@V=|Kb>/z^Y] dρ~ `J`#z^tl`OhG_yD٠rMBI)im:gcπ$Vq;ur-wsw#Snп"a1qVTUur m'.{Э^iS!;>}~b ͊/j0啕8rqEqr?<pEyApgUŅZ(V;GmT㗦@~KÊo%έs">izxS{*hRcz2֓( stQLi72'-q=nbv}88>2S2YwM{;ϝsnO榦^dLyt] A,?=(d옻.g ̎dIEgwChm!|yŝ@D`ux.n_«jJt(~ӫ s6??}0w$*d)aJDv4W`F4 'ԷE.jmFZr]  )$a)JBW|DG4 /~RȡaƐ\6;QU_#_}Es<)"QF#đT '(REaJW ݍL`(jJq>{1@._#ы$ rkIx|:_(<"ׁWD&.8s ( R?ZIIlTr:6x RSUJVu05l>0;z"y&1x"rv2O89s p]jfBb["cA OIt>˳@{:B~zJx$P09f-j"t1IfƤ Fi;5S_kV1(/A> -\p!C۟h(Y`&OkB,H5 2ெ\ȊfftR]z^ $Gr$pYgeE}cͶLݓkZ#hZj a@>4`c\v:[͛Kq߁jSv(Wpj O ψ.'?6t株.ؐ_&j 4 hQ}d *O&zWŞ:߸ (>1NRԵׇC$ Ty8<<8Ρсf>I@{x'8kw9P*0RzL/1$~Zdu0$0 ,Z=6s4*q&։l&}Q9Ft9 L[{w@70d =dwcyctdj0.QT.G3UkZC#~ *es!.߯wv{˙?T`$ɮ5x.nR Z$6.v5n?o&PKOr 'XCb$eMY%&"*z3t̊rpGGD.R"ZփJnU~'M>ҳ֖=Gv'kVbHI+)lg Ÿ:cnoc?e@5_Z4Ѯfjb(W]c[<|i, aFPu8aDl/-Į nD/^?eax} f/Ok:4TRH= y$d7wJ03t4OG5h^)|IChJLS`fUc`ÊZc* IZ L3.@^J/fHl퍌\c+lo\eٹL͚Y [x (tam,ڝŊt x/<1tZ3r2vXWרAj,~>y-u`˞sw/c=Bݹns&AS{TO2ޣЪ>\8$B|]sy1xf<}?^cAH 'eiCgвmtI+?wM,kn끶;> E`YfA ՈK%܎ ͊RI,8',m2gz/r֕!UÌHqE#6ZhM#f|1E}C5|ov5ЯCc^&7 2֪5𓗔p^ݎ ]x&FFz]&U/0{Fs b  VۺcKxUc<8}bݐn u-ŊXnޓfv9=LrGyqXӂ 0~g!?/s@;=ӟw7 ]/>4ׄUs+L % .ފ4q{hyVYI_He"k"d=X~xKq?Luv;̷v[ɌTd튅6h`9Y/f;DI -T}G/Vc^Wʲ&WZ :,u*W3](ҷmA3c*eߨbMnFʓ _8;@;'ݓ^Y=]8/Ґ|$W^ ު9JI;:y}[a4Yx͘s]/2{9[MECp"c<}(!A \Cyr;eZ*_|a0asq&zJE҃ZEK!iT*O!a*bK׃>ܒMET5?Doa@Z `oVlß _ѐҀ{4h@lm%Aul1\^ ;]QWbA0 ŖO)QZL& uIrP@-!x92>pq ) &lWNXDk0$Aph?`M54h͚\ w)i~8 vsnb&Лeg `2@N["zA b{&Yp+d_o~cЎtis2Vd)fWW? ~+Sr[19ۑnJ}[3huO/g~ܲ@s= '||5dY55^=  ^u.hU5 r~<({FnX, g?8,c :|Ψs|_v24Kb G `#cs1Nj&uߣ\| uX`,ٟ).M5Tȗw5!|8 4tF/9 )&A-ƥ6x?ks[Ћ`):ƙ  6;Cbw XWÍՆc6֨`s=k ٰu:S@Z"VbZ|^4U$҉\c\2>cW(۔n'M.+rt62A!S@^o砠5G蝁 b5tq )/If*ٰE=Ovz1\9ٖzK@;C5=Zx7|9H Z2MpL'>Q?Ŀq /O[)8my?ss>ezL/1N޳KZ]3PmMPl_?[RNU|^g:}glYJ4[Ke[dmb8[rξ ?>kǏV$q(Rtb7{^,VK/$nŇ(Gs5c4GA\i!y?7]/ CXn ERœmJ:լAͬu '6nC8GLF#cnZ6ˑ>]beC>H4E;]E<;v&G=05AGHv\d)_ kؿ?p D6M03Z zq`QC~Ƽگp*NWϥр_4"J@Ԭ)ڱ걧UX 'N'RwĊD k/NJ.@;+%lKA 2Ϯ '= Ôk4"Z`E?!sKfEf0Ǚin+7Zp,0T% ޜ@x?aU!F_\ȊZbL1'z赈6E@Lr8q  f|zZ/.@ PC,G&̠9/2.ϴ/ӃPkvQlq1|"Fbùs@\fB(0!1#>Lgsr "? |x,dDl$:o <jT1 S?>{ } m1Md!q-Y>}"b\0`Em3 3M;zfk婝ۯI,M7}A;ykd 9F89Ǭ(N ]M!߯&xKÁ@=P-2h'-$4yh-z HZp{5M\:~]N@o ttf6c6 4f H!<"'UEMkƲc{(C3Fx͒vyx|n8eڭSt21(mcc; _|Z*W ~d|}]lCJwyyc?xw.Jvwb~'&aǿ< FsŲ> lsHULGM;ADSpqhz@:`鱔RfD{eGV"9jY֕.@l[=IJ--'Wm&9=SÉ~ȫvd݂ᐗã.$BA7{A{q#|@!/k࿻WF|uYs,\˂_h|Yߒ=Kx-ř]Da(fhS u;Cv~rv9Ð#t 4ןH0.0,' DXfwXqpYJ~OktO.*'S gGc h'trEg.b8[TMI}K̭7PTOsՋ@3  V`hFM#yC )̚xb>|=P bG_c5ԁu+('16A se'rYnUHc2 FI,rԾX@Rv.zv qQ(zM$~=c3gP,^vU0hu n!6 q7Qo@2|m@ON\\_)kxiMPCA;ި4Ѕkպ,XsO ڝ#ʝ@$1}-"^s'JlHddz]6\{+̶r0(CwHn澷UqZu >,qwI}ju4= -?:S@2t[}R, Ê1V܏c{ᅲ~q?Je}gS:^Z LB-MH^$x,۵9wjy܏;y@1 z%@."<_W&0P|+ņ}6̫`4Er=%'zb~?Tꄐ*\h6&iO5e7&dKcؠ<ȧm A%5g~k\ vQ̀f ^dbP6o]JBBN{-F~cb8{#ㅜf{+;( kUQGA6D9,@~-c).'j^q?w2}qWwx/ Nsq! FꞬMfdTkw.􋃑ȒnzcOI~|ZRVQʊbcKo!kbJ ,dP{HmKh~ (Vסo=#d:T(O_^y_^Ԁ9$#:KX78x;,Ҍ(PtK&!W-ϩC-3g$T脛biu?}v,5@ьwV$?P\]ӄEc ؾN?澩km,Pl;qUٌ"DΩF0OZ#Gc7&v;@'t?YAwSA74+'@M `ZAE[| $•@ L7)8hLxف1&O[Xjj~oHݝW_w4Aě&ȟ (B&ɱmRG8M1B\ZlfHbf[@Bōb[Jy3x("HZ<(S&vU.7\/b1`о,Z1&H; ZOI~bSj3+I `J~ \sYxj(0qG a@_&YAu$]>O/*@~Q]`|Ey(O33NOw h:E@LZ]ks-o_o+l@niξx& z*N(_)vz0V;.03ZנvԧI9 \8~Ud٩$w+64t_j]}o;` bV,\W,wc8ϐY(. ޣE'f7kXkkpH9=,w&Ϫ@QB d 1,XC9x8(3 wb;[ƣCKB 7[2m<h7`dꕹ< =V@x]ghTDs&׻ig?kڋ% K¯O4yleش Xl,c+? t*PKqς +\D\gv:wo{>$_)*1d&|rFjg_Y`W>K5o`)יbR~dɚnR3;z]O;2[Kf`.^FoW5C9yӰ716M(ᱲdq'i;'xsKF%4@dMccޝA85ݓ/|p=rģ];}$W@}ٗڠjp )Ri\t}S#EGgn˽r }s@9 I3'!C|jyJK>HYkJ[:jriDPt$V!Gg~4CF0ƨF": E΋<:a0񔝹ΏBί+3Zi=BM1ht#bg `l=9̠0^Z=  2 8]V(]h? }ib8{'F:M^@Pf+ Uo;p0 ]ʈǶ?Shcw_<)FǍ"H"2R%͙u>Z?>ٻ!*X( AQX vD{W Ea XQ+Cz%i|ߝ߻y͛c`w}݀l\$.ae8q=^Rn nϵ)x} 0# z ,&;{@xے-\`@]7\`*wx꫰]x`|:Z!lp| o>(}:Y.3CY|. ߕy#<f&n(_N5$2'_>gmps çp:} oU;t+~x> B9T'c>:syg3bMui}-as"|c8?28y}Jp0ߛΫD&)h"{#Lҋ&|6y*;~{;~f-7F穞):zLA2 uCR2hYRA2RO_M֞=J/7f9O=ʗkS0#&х.]s~К~0Zr1#3n8|*s^ Cq ΀nPZ=SCCsJ%:'29t\=GCO, }aT{~}rY$r+47sZPoѱ^ .G"*̶ jYUmA(X~E=Q7#,a+;/ Ȃ7s3?G eQO}D!#{)A2ьLk q!nkq_/Ϲ,`u!b9 Uxvus׫2HN!6+E~Kgc1M8(즧r8,5waj])L>!8T"Y]'sU鵞"(Rn^%Spk\y=ۛ}4#{aL/ gaM ,=%N?q+=ʛglZ>-yDA)*>y B+oXg 7EPqd9ן;vxNŗy;*BWfѽ6ᄉ^ݜڊ* ~!!E.T* =EA&kqӝ7}͌Y&]A/ n)=!֛n(}mDڭ$=S4ݵ'WȟA+2M {>r=Wʉ `L1$v=FT 6򰩇 E(NGFV> SUl59Ty-y7Џ%S0#ܩy@ɀҮe S |!6"]`Fǽ9J(`@F4Pw Wќ}͈mW8^}ǡSx7ТcZ#oAׇc  +> -^3l>?unuЭ>h,2)RWy߷BVCi\ 4Iޢn\5I}Ozw |PK8l<DZBFq9| Oo)lf:er^vPS ׆ VrJE.SXތ6Ug0/ӛ(s0LVkrrjSc}Lf9{<k"hka>[􏷇`e٥wkk-+r0c0 ITп9+i :H/v)>`` 9ai*=#momM ALj~E_WzCiMX].B PP/ aNa u2^,􏀅T~`.ezn`e}-Ԣe,p/aT^hS7/M* ?uV9btzѼ y^vSe /-h/B2H{L5  ;.9~v<3pg +=ވṳ8Eo^XCod(/*lP ])1@?oEbURqc0.ErsJL;gc~@}\wh o_-~.MYR6ݯa ´aq/Abޟ,vC M\ڍ 0GgM[I!#J7?L;at1C0S<.3,XfJ1 /+ĵ D|`P$x`~6 Z{M}Ϣ ~rg e{ZQ$oC{oX=A-,ms`F[~#֫G}Y(G7Fh<"X ,@hP5_i`.V׻(JFЩK37ݔ7lp375 Ȍdho*y(1St@icFf? 9vAן4 F16I-zcdTU(f{d>Gy%̔ c1dSLM=|̜r2Lά`\pg԰keҞ,h"g^]4Ӟva15Q~m9=ti>AcRk 2!܏٪QÁ@E5ȣ r \GÌO|@WʱS>Ԟ8sj)Vs)LP\3m> Ok)TD- V-'620`FπQ]C<_RCS݋4XqQϻ^}&YZ .Zr7@GLSm׭"}7\ڍ@R˂QxnǸJlp0QLFqkXfDV`XH-(8>^z$L84\m#RhC2AwH *Lvaatkh*qS}I0J5+kB3fF쌁'ٸv\皭?mt(VԇRϕݼbl*q>߭AËQ,}˿YͤWnb F``WtL{W0|` NlNTeZ x08PBNCi~kQ}?vvşG9h_:[BkY_.! Ij|Ka\)pI;X]˹ H)gUʙHaL.Kؗj ڂǶ%,.A*b\z/ъ?\~嬢qc2hF؊5.!_\V, '#&n͸ӵ0Zv+\j\U?9 Rg;7YL @b,F`B7(\fָoVsNj&zs_bf2ǻY M""¨"8 Φ^&gwGF4kJ6燽KjY "] 㢧S3 *?[|_*vkC_hi-hTU4ZJh>@`@e L&''"㖹V6-:rv/:=D: >\| E_Lwel2`h X@#`lv5 ,Z|(=pi߾xlv;x}t|尢OP B}c#_bgaE|/EJZ#UO-ۏ;{xƬaDk11xcRV{0m7u4 5{-c}pOE\PT^@YwDǁ>: GQL&DS^Qeಾ"x)]XqV̋ txCIcj>4l zK#Oö\' p0q:-F_+Y-蝧Dr./7'b}r8Y/:*hr/C%C Wk">旡.Spt&o|;#h}\;{VN#&%b&e\(e"~c@;ꢖCT 1j3EtF0\p9N5y:0Eg%+(pF20u37~<Q̈QI7_۠Y䧦_D_֟ L~kkwT=@S?[dڷ:o1U׿_/|_>uln@ 潡@,Z _ ^̶6$J9dD pQ9<ɏuaƅܸkSm88v"ѳCYqljx20.ˀe3` 02wQ9HɳY؆b,v<~OdLB`[ 8׉p&ATtyZ%oA {\ p!6e_ձSc 8T{cWo6pXгPY JaX}=k XEq~.VV9h"Ku`y/ݟz V j~ǛS]!{4}(?m jӕZlD=u*ؓ&`2U2|:Rɷ2yFz*~p8Z)0cA3ҏ|JU@|ˀe`Wcw5vl}-7 hhh'fz|bfIӿf7k? z,;g{ڬ/6s`77ӯrO8 ȫ}!`\JU;ןyGˀe2` X~_6J3P#.{)*#+KHpee2` Xvw?14xm4LT?uT+x; XKV˿BEI Lsm gA0 D?NNW_ "a}S^65{~t #~bOg6~ ޯ0ݔug;B,` XnW'xu\3ҏ+U> Kettӱn ,Yn2kj?)Ά|p( ^(+CX?:׀GVh3rX"6bQפk~(.p@r1sϤ3t`[, A@C8`#3 &HgӞ(2` X,Fosos襱g5{F&ͩ"s0JQVV҆tVrx|rWn_8k_-bDuk3 1\_.IiYjwpbn<ǻwܖ7e ߐ j }We`Wf;,txCM'{12'/2?}-$ti9<(q xar~FiZJk`! b/Ѹ yL}Ng"[pye2` X~3ȋ{v< Rn СꊧMi[@`g%PZ t, yq1} p + 仵3qyR\Gi\ժcл`Ms%Em vE=X,ǹ6-ޕcdşYVzp?`2l|1!*Ԍ>6_d>$9w65y5ȹ?$2(Xh WQ2`-c/xx@Ʒ߰fs幜<xdC `pB9-=hyⒶN> _.V~A]kCfDD2{ X,@cÎV9W^TOǞsl&~VzeHqlb:(epqEA|E|UI[OE|3mx-,YHw]tʺB5T3zt*{5v.ͅb;WACS;u}17K9߾c<$a` |}Ab14D=j4hD( E8Qt`Gp.9 x7ÁeânOmt xx8pۈ9^);Txw)t7g5lxb[hЇjY$0Vt:w F2SX,ˀe`b@f`S^r=:3?-7?x0u$ aJOrïd?B%[ ~7$DyYV|D_7r]ȳ~<0&~D7wd Ll3l X0{׵ !]9ϝ54仗, (.(%3 -*u|Sr+ Ek:(/EFzqpL%) (wЇgSH }E_: ,,ttDX|E/D/4HϥKYGW=v Ne.cRy w_rp_,@c?Bie/P7軫(Fo7,+[T;W# D əKhf'S#F,=kS?yލbVoX-7Db ?7=Vx5|53|]Q4>,'3@t)F72`s﹯n2И0u&v՜&r=W$oQ!Vёr_k%_WXer8w2~_oF<)é:ZR oB^~EQxTi_U8}1Ks`7@ >22` X,lSi o|j^6Έljھ@ޗ\$2]z ]@?p DwjQY[}GglF:א_}䟈ya :p7oЫ׻ \g]z,X,nl X3#Ȧ-a4^G 9D_ c vb|zB% K#;jU#=J8䫞Dr\"9n :I X#H}^yJo}{AS & @f{@HRLjʤX X,?ɀV챪F8?㟧uFz`hO-+?Shq.Mۀm:}B*{,Ԥ)&M䟋!4EpJFbz93uc ] F?uA O.zuT/}E)Q}؄rSG6CgnĊ_M-xˀe2` /="9~h,3I~OBo <ˡUFPe~8 v`lfGDJȀFe$OL$30vo{^AtjqK /y|џbA"Gz9sy -+8}`e2`h54 F-c.Mܝ K'U&攨CB.i+ Pl.w}g1^8R]HWBs.Fev|o"vd$zngːVZ ~7x]ia:'TQLk!us~Du\[_"Rz?D9yWF7kكe2` Xm_V]3͞i\4qM0m-ˀe`b3ǟߜUdgRhCד=dȍ8_G*È NYIKrlAм4幍r0pUaYPI&W6Gn O97Ebg!3vld^I{(Fmd1@ҤY X,=_{<7@ 0@g>1LqWHm.VPlZYO)iP;{/Q<Y~NkIcbXsG+_Ǒ| }?os0o!zQʐ6X,΀5ulIƀQimŢC%t3>X6WM5<*Of;n[xmdR}.FNx\p1Y9~dcdZJyU0S[}#ߌa@&'s6c@+ S ǬJaIx `ģ)PBGˀe2``%9J )G+F1_W@$WCE6{mTN=yNA?fd-_cNxeW ;d|Y*ޔ0|{q(7c (F)BWe Z X,g @ Y5~1v@amYwɄ0l}:}}H |q߂$x(:/xzaH#&ų C(OGgc` ?ZD"`Wn V *-6$z,!-UF,nɀn?:#%_x-?r30Bn0d"UR6(2KgG_w7|G_p*p ϓSlP.<2\S|}$>bə4qRu'y0CE9ak~jS,_eaW,F `*ysz_), qge`-< vyϦ1{BxT^ tNݻXn WѸ̖7&HK?8O }=K9 m<,/&@}űA<kUpICj0ӁIl0gE$`Mܢe2` Z posqtG_3m?׹.VR 6 vFQmŋ8,fx \SqT>()>cps?p#r5+gcPGx~]/i~T `| T /NԻs"&,Z,g h$ qX-}3/"EsX;z x䶣#C"IC@ w(gKJaSqXԡ6؁>50B1., O,a^ДZ"n,E{5j=/ȁ6X,ɀQusIޤ0{P\zT60j3ƓoK0HӺ,6E(>{[⏋Nlj#Ǝ6$R|4%L=;t6gAa]-ko1icu0'j t *s+,g9>%@EǢ1r"n5Mt_#:o)HEZ,K1#)P`*~@;86 e2` Y,B͙gvwan %dUq_d!0LQլQT1]R~"2ɔ4_겸)s5F S1Q~@X+;],<$ch X X\{k@#gȏ]ŵFQfn5H>찓=ŏ(߿˜~JyC뫗 CPE܊?%!¡(Dt%!gk"~|:!x ÀX?+Dt+&TGGD>MS3[Y#@~>=f2?6" nFD d`b-ˀefmny$c>VȽZOMP~$`+)NjxmJc@ Ud$ܛVMռ p/3'_KKoUb@JŪ9!B&d=P0m~jS,ko1ic`řV3Ŝzc|x$ 0^#`0@0-1`6?徍U Ѳ_ѻ:wsT20S#A~ԼI^Th z 狱 䧨MҏeB DAp uk#\ ;N7#32` } ❃1vZG8:Bgh `! Tq 0 hoE"5<6ŭNcB~ `͘tiq/2Lx5< x.|7'=t4{]3j*:7=A~c 9L({g` XVo>2K0.\istg[.\<i4oػJR jp&+w¬w󀂺c$F~/ą%bQ*{u[s^ nG q7fx7sɥ Mc60(p܋ κY?wT oe2` رڇ nu;ήhLgח&ί/0Lj`% }Ӝ6o}\OǥvpO3 'fI7kdMs'^*aKđ $/=i3QN8fe2`h X@#l,6iK1Y~ǵtl5Rã EKekh-$%/u 0fa,!@ghY\[{!8")rhߛNQy$xd ވY#v\#n\ˀe2`1i[վ\z\,zPr # c([>s%ХSEw_O2A# 59bIF{%_Umޥ&c{.vP+!\OJ{\ y?CO(sfuʀ.=W$` Xx> [?CsQlZ*!K9^|D,7,<<\Ql5WX)Auz_QL@~F;!HM]5x|~J,( @8'ϙEY.B3ш?F$t@)X,$:* }M0b[0=9; #!hg*uXa#$٨e2`l(n€X3(2ʓfuԒSOtx 7oCn*nvxԝ^B GjP"([Jjx6W*ų5?'ɇʳ hMNa(whIF{xDh( yyZIǽP=_1*hT6GM`@iÍ\ۣe2`h X@l%,F7*X#;1dS{cI$!v(G˧>?6]:(~0m_Hy./a8x)W BćP4[S+y$q0S,r~o_ge2`ؓ0#;̴lDs] κhCRl4#Rpu:j˩K:9=H2)] sUbJv)Bn?\"F;VzA[}Y_j_丘KGll X, GvۺZ,xA"gUy,vG\ h+S,EEY}\yA%쾙0ӗf#}/NijpZU1j9DrB.f3<A|2[ž kC)7\SX#ZM0 TEih1pY~Gh> @s ˀe`wgaV^ҏ+dW|mP^W חQ=XC*.9c׌MKq3y}Z7tH\q\A/`8CM! ~n3˅X,'?Oa &DQ@)($,Ljcx? Gqͱ X,4- ueX v@IDAT Q1,mM*57? ڶ%ebRȍa-M9 J&/vb5tP##FUl`]\|Tr|,@2:/ ] k,bi"@B`FjL llˀe`eagZ7ǝѴPl+1V:uG 0 -(%s0:f:p6iۀY 0ˀytg[hHE1L$(C?SF*8e(__!A>wa0@GJ9̃ K6X,&fdGV8jб!8cdwϽ [3glJjBJxs~+h\C⧻Ɂ?GP$'d&ߋ(o>8wyg/yU赴VV)bMg6`T҅!8pQsl X,/ZOHVe7 ?Ov]?r;:XU{J;XElz QeA+`,ɌW(eUh_SͣGṠ}cBS)> n>M5<(E qVnX8$/ F)5x> ^Ăe2`ؕ`ˀe2o21s;3$$N=M"ֹlGQ yk @vbDqb&-1sB3)w?#:k݉u+P~Xw9@H(]<6ܹXLM|^N皾rŌ8BP-R,j=9DS簪%L U37ɷh X+~'S{]?> skQЇvj< ؆nPE:*w&ԬVٔVz }%ə.FxvC j&qݹ]P'oWC E\.G)6‰ ˀe`wb;}ˀeb +!ޢLgedcn~s5'j#F柦M۟wNTqC"I8&p ghY4*ܠ#BBmqkh^Y3'QǶ-V?~LAqy&'gAWÉ`GyQǪڳwCPWpXlCf$ =50 6X,j2QMAV9L⍑V=B{%8*v3bSt 0fomxl'jb`2`:"˨'RVk}* RDyUfUI `CbNKT01{f Xv5L2`h CuiW٤hLΊz*Ux3@ɗP)Up>MiћۜꍋKp( ˷—cōGE$.'WAoo1DvDPyb,~Lu$;BXqu'aR,X,]NWW1dF5SJy=B%K*KEE<g X2[y‚+mi}!`}n<0b ZА'ӵ5ǣ}X@žt3}w!Z[8c yc蟮ˀe2[1` i_2K0`Z,t"tySw ܧs|pbӟ֎eN'" Ѡ(gU,XJ@irz^qSX@r9qr=ZKϦC}L.p?8v{;9 pm乭zB;cĞ[,FȀiʇw?1MNW~TaX aS` +F+e"Gy\9]Cl ؁sGđ}J~^x/SR:@2ָKP-|AL;#{W ˀe`aa}Mˀea8iDكU[K,9xl)ed*bRcz`&|忒uVEn=Jِq ~ '&!?%bT8W)S"~-ń(d] MĘ$5jU;cÁ ˀe`aՎL[=vA[wQg]XrCKˀ3XI%`HCM}䆭ћY#~}[0". *Kwh/@|Qt' [[ 'z y\SqQ9nˀe21 ˀel{BA4)Q&DZ٬;a? -}@-nRob=|[]]0y5}QRK(r_*…謌|1>D`oy AU&*6rNHVHP{+เ] +4lT^<.Ů yke.tZ 8cXop$=:1*߇6:g;{xE L_0|9h Xv?`LY1а_QL3es^]~gǍb+:XɀQ vɴ Qn`ef**cM4Ne3)}>0`i'ݔ)Y!Y$\#T7EX}ͻsTTd(Q@P1P$9a@RD' 9[=-+O}>*~ۧoUu:Թu"=۷i:& ]OeMނka<5!^o9e=T/t܅@?ՌmutPdAH,zI_9"u6s>16@w x -#'QI3 Qa9췉5?^}$7C@%EaؑZah8Ut<Ca(k}MeGc¿9 d^ !?-tv]KbűF*QvL/b?eȎjz h4̀f`[\[qT..@!7w;hH!PCVSv!=[¢ zCZ*dJp%LYgcQV, `|z]ԣ zVM`>ФIۗl\c08݀ꩆk5 C*Wn<.r# nGV;{[Q/0` d|[o|^MV%,A& +'!?ޯBjx?qJ{xQES 86G'үUSZ|M@wd_k< h2`',abJV-G{9#,CT\ 7GO]&:aA,uϪR)SWZ&ڡ6' FV"1SFl;!bj h4_ck:_3 ؎fY֛1rK/eەἕ1ɢՌ$!hyk'pr)pqϸgCBq lPna/ޗ:g!DЅ/c6vBuv!&b< ,=7c)3=jr3:[_j:0DsH@` pLɍr{(4U sI32`l!l_ݞrc b6P ܭ^$ V4bUt\wt0@{KECia蟋}Z$fo@4J@UopQ|F`߄cɓr-.H,Ueȷ' a  7&yz]38c{L=pL,׳ZR9]s?8^ z+w 2K/F@qxJV9,S # _VqQy{Yx;hE<&5eZI }F,n1{N>,+#ƪqe<&K7tދZGР h~Mztf@3p3 c!BcXJ˜s)'B昲֏-{MإY5B\[}߉q m*Z6GO(OM~Rv+}VnM=b`,. ,w ? G {}T=1d}XHv_u~"j]2ⴃ/5Ԏ^ P٬[*WK+Jy̾rDMy1d4yj;}7!8E>?_益z]3 h~'; 5n]9qY /XEbFn`0ܫp.0?c~^^*2f@3f{zC̀f@3p3g7w)k,Q~^ਦ, Y=od5`Ϋ\Bd-'N¤~-}瞱\ђhEGllO;·GDSU7W[T`n`;Y3xlv0K̀f8ޖ;NKF,yva !<# (y_!*DQTM@QGnJ2sP<j"jb7Ft&D?R cR, bf펣qS)}irVGu7ԣ3{Qd41v$8"bq5,8(hG CNTd #rpr@'|XP 2piN8N,9`Eo"8̳arww]0 &}liX Ty#^|R}:{zTY\9腨q7;Dm20S/SvE%JFqZ%qK21ӕ{_cpreϲ^h4_ˀv|i4'$7z_NW#UϚxP ݞg蘯߿!mѷ>=L "2? ?(g̾' y^ωeߡ3x}BJjRB\6πQwmvoruPÄo$(۾bd= ̀ؑ3sK[ZV?u 9BOrgew` 3N9:X֦ 2"J ;}pEkJ=z0="`mof@3p3` 5Wc79cY7#<\~:#\ƔBqŏƠsI"Z}B|<A~4+NA(XD=AeAD%V$ϑ~bQ. neXlE27`A|7/ J:^of:[3 h*bZG30`7h 鳻~7e͈`kr?PW;8Z& ŕY$z#|yk#$\EA]3,qrEmgi7PJ \!H|tCib @\D v$ԦJȧɄB7C2^`k=[(ZǢJQ,8a}'̂4v/2'8C1I`cz1?|?uJaQ@ 75ȼ8ejGT?)?8  0/}}>a?D /5yU҃+*tÙf@3p3`7TOԧ h ؎W.'sxaH9tε0Q]яR6f}1k++=Z4W1%, iky/ /@_ne od {P<:H8ZF+ V*Ndu#],tT!uvvd=ƙt L TmmٹڥVt CX P+&+/eʑ\S,pg7֢SPD*,61^7 l6-79V]͆OzsޗX~[uxv\ЅĈ0AǸf@3p2'OO\38AVFΏ%e8|5MYѷ\-p m=5>N5БT$RZcYh*[+wW(DLiS]tIBeKz'9E[CThˡ&vQ3%3(/1zFuFy,9 *sǿ+c!6AD@ ?:iN}['6 z,pn2 فmmn~~n0b0*J8r:l&9ԃu-)m?k5.;50(WPےRz_#P 7 8o1{S1Ǯ⧙.Rвdu=5GA2-W4f@3 hI hN8l9MG? 0gFf,ڋψscu@̓c} zǗ_zحă}ƒ>3#4}z s!W 3@=%86/q1wd C4 /plY#j"@F]1Dko~#kiپ1Y!+YL~R;@8L!GcZ١Z%էw-|{*2$GE7:z>cǀCxz.Wb8h>"n'p5 h4'9p5%OڹB԰nֿB: )ao ʗI5g&>A~wZ/{3ʰyR&BS~X\:8N9 Yѝ nwX*v[J?wз|9RH/`:$&Lt6I ",X&GDEH dK(vrb>8^# 8X^jXlql;ZYV$KI8۾'1i~qVD]?&XF^VjUOiH˥ĜALJV 9ӕf{ЃE 8UMSD*sv^^80;a*R7;<<|DyxqE& k#fL ;|\7Ca7z_^h4IȀv?>èfDcvy!4',Y\T5]'zAOݔh6+`QlTRٚBK™;QU4jNW Sy)CO$&|7%M ,~XS_' ؈zmyQ"9ɂf2z6YLEHhp p|TЎU`?ydΰh:0Fų.$T_ LR`!.O%grMhLÏ~WG8" 9 1@7-. zcre/E\~R{EbOR /N0xblnýHtvSQʍ #r/ojY:Fω ž#o}ڏF6quu,݊)!uh8 q-N!XcYq RS:ic׫zp}?v$"]piBi.S0B7m. ~X '߂=Y ? aҠksxb{v6˨_0\y7'g44C]S'<QyZcnpQOc?/fWWQ%g̗,#O\:V1Ki4ߋ{j4C['fUj!/fZ:?冻q!OQ9U]zYׇ8b:ʎy%\^fWZlr97|fYOO5C׋x\QA尧Ⱥ+Q VrLB:~?ת~rfAϡ>Ǡ.A̢!SJ'gkȿƨiP# "3TDB,B304!lPI3` *<}‰^(eVj!fD ]^@*]4QP 覸F8J7 @5|#sKpO__'TxcoXqP$uV>o1l) 8̕F?|e^δ C-;3m̀f@3wd@;&̀fo@pTnh"Fn{c|q>_F Ȁ[?ƨV" ja4Q[S&W¿ oE?f~#gL ΢,OJf!C,k]/{,]"Sy#ڎXghMʦ2,ccI*zŀt|O*uhqi_' hq h?' $ TiGw681Y" EUDqU1Nje[q0Y%FD׊yA ]> 6z oCy||*=jjX8*<܇y倫IԂ ΢dfbQV"6uC~U@ YvџVv(7B:7§;ͦ/ \zXDCon~S1Z)81Pz$P0@|^tv#y3x@\1J Z[b⦘IOӢxdD.` LYIU'Յ\u 9d9`HKv t0`i"l~|ox?$}M( +W?Bo}dbx9{*05O(F=-ilI6lhy\/ # ^@!s66/NŠfzm9/b _qc2Q<\ x>7Q|^ؼv-] h48f@3  ؎OfCɎڌOi2f@3 h~tf@3 /XX❓o&Vb`' F z๳k2uwu +Cg2>Z,Skf|z JXNׁ"L&ggRgp|ȿN g?B/~|C;!t $5K"6&?׊<ޟ>of%c%Od6U]`!r/S9g?x PP|86 Mɗ:EgݗK s6IA{`h] 1hD1 ҤeEy<Q~ "@[¸+-ny&OR ew=:trs+F\G:8xd[8rSf@3 h~VSmkk4ˀ-#} 2tΝos'FQO:\!=(gCt/.UIDAT{oQJqOgM2C?*&ty/X{=OYEaN+I-D3knn5 Pj#NC'BFBرq*LQD @.aJIВ~L?ʼnfN6\*$5i">ݰ+KMYL`%l8yX~g5]ʎ Q r+?bJ fzx᢭ \IA/iF Sn$̃^==PGߣ-b W83ːK\O"uFgH5 R3 h4@ h4[(U+]*?J;\=^ bmF~xnp&.fh pG15AM㹩db?DcdT),x:4n!?wIKDZ&<#D\H׌F\:i4̀fb@;+ƚ̀f}N4WNƑi8%C~6,XpPop 0K0WB 2@&y~v2_L>-kʘ+P/Q7\QPRLř _29DD̴Ӑ?]{sSL RYעzI!u[4ɀb80 vSqs BrA Y!L6zy7敓ͣ--~m:v(?~J+#wa/&< QY?|}dxje+I$br[;C[v9d`$3. Y4g#|Ѱڝ x5خڀQ6b `ĭ 1!s <ym>g;sm\!3i .0b t h4ŀvW5sdsVfI +4>=j#:כY"-1m_ /%l2 !PQ9 W$>Y !w9"߅}jL"#r$\>w_6U,Eg{ks#Q̺=+Cf #ʘx񺑫3dFbbuAfajC !9j̀f@3?D ̀f@3p1` pm\ 'T٥Bmfq+di4Z<H,-Cx ٱ=,p?t!mQ>gGd\^k-hg" .&"t%1^mv={6q` 6dߘ &{zt {lly{߃ d'5B[|/C(v`1U^,7aT*5 :kEESP6E>SLewޥS"4c̳$Z-i܂pou>W3J.^=]EJ=A!vs>GW+.'9V.U5TIUUrf@3 h`4̀f`čH-"9cY(;:ph)2y콲^BMt w!F96tc"o e:VQnH˜;q@]h^1R|,N{:u}bZ(Lԏd CE;&S`)V1QGHœ)t@mih`j kY؂:{^bB(UܩPg}-$@?y*++ ,@B C<ٸ0sTLg2!gOa凨Ϣ~o|uvi9NI' Ni]) 3\9ׇQѡն~vq J>lBB_Ỳf@3?D ̀f@3pb30} BT"H23EGa?*a7-e'J̇|cwPS^gC0ͨ2scq Z u@[D3(`- nEôcEk@;EV.VxPM$8/؞:& v^=D/x$Ї?Ma/'d!T|Azp98/73 >)|d+sl B> }Bl=l-++[уdi*B<ufPl! h4g h d @^/A40KC)\ԋ*zC,)Y7Cϻ=ҘWzmyTT=pWc 0ٮ&q֣^`Ĩ~Z/c7Q7qk kw왘jXyBv DL,|ptp!x`ak =[ĂذPMN!4 _hC^&g.MyLƪg-n-ހzyTQI*!}̠g2k+-vTŇ*lRݾVSWG ՃuN\/Qۊ[<{  h4?_ٟ| {̀f@30` TXʰ FT/~hmש́7pL~6|>*>&.N~mEw>SI}XEIeSRخh\.Vt84c%p0Mr |Usmݒֈ\P-P 5o;On .".z~m:U|R.+Sgwe{9#9%V`E&AbGIe^ " ¡m5S*`%}a#j|}[p;O1^݆bϠ8-_NY헉 N9%Y4GN |=M&7b-0$tQ,x*8; cgl[QÜl73 psJvOS&\pkԛJs0%.\C#,8+/ 4'_#R%>kVz?rpr-s3F.bH w= $8~!̚͡Ǹf@32C5nWW)lY 9]&Т=fٜlO@= =fBCt7BiV.Kq>DG3bA鰯4f﹉S=4DJ\A"eФocŤ-iBͅ}f`KdlЍ99Gqʲ"xSȻ%YPۑAF8;7k׶9 _vdX}FW@]lǵ gDQYUCQ@8PJ>hQȿx(>U*[r?Ȭ|Dd₢qBpvVӥ:&ܶNLG-@LlJ }9S•- JD;#s:Xה3c56TQ"Ϗh'-m&4j4ǀ8Lf@3 ؎_;٩G[zN!܄)/Ǫj iV-[ZgL߇4,Vr0iOv)+KЭwɤSX Rao<#vyS MuYHM/և`gSE]nFkv;'10Q"9XUc2bIE>^vDSLIB> "&1bnN{+0 #@(zVi5RD^q(oMt?'+)] N&}5YR^ѭ;cVeFΌ\k/lU,_ ̀f@3 h S h4'!.ίwSۏ!=m/KҺ~B1x)°'끊,a%=\S\($|]v9N9fO2#=^+cE) :Z SF9%\/† H!@c=@q!$[t!W).8B>$C C@磰<@/OJշNbO"y3 Hq8P\xf=SL)L}WbE5?o_$x 1t p',ڊbۿǼv=].s|ajQT F m/d ~ld,S̀f@38 hNla{w݌Es-u+`9Y/Ă) X_w@ gbFx wnݕ&UֈfMdG%E\*1_>[U9 v?XI؏|O_|:uS4sR+bd7j֐")<1w_pd@_%Ssd͆[r_=q~Us,[J\\Q ^ R0tG ™`)~s`}WʦD`D6)& `hu$FGoj\[k\Z3>(*4}ab9u쾶/g4ƅGѵ_Οx}C׉1Ľpr sz h43h4_BÎ rG9& K#zNnyhbli ԃ#2c5 !j4 ;Q1Jb#&W;Yp@, YByKm$m K{r7=&JYێkȈ~[f?A| AqMsIT*)eSTye@? 1s|nn`4-.Cȿ-VwU $jaCV8OY^&Q1BS?ɽ͟nT NI~?\lVM CǸf@3'0_Y_f@38yEk)C,~!}ptnv8у@-@..xMaY< zCˬ( 2އNv2`%xH H[;JѣO_˯*_2|ÁJ/[C@;#'|-oq}P/֪!Hn$u*Yމ |N~%{ ; O== \dƄ`lAl`AȬl y5~'7G#<=zz%~T<_2Bƈ3Yz0eSNI=BZ !ggF=o!)&\Cb!y$:;Br%lK +'Mf^ke֜03E]߻ύ1: 㶨/깄¶Ǹf@32^_f@33P~5NgkuBP%|KCv`ZoU=e uAœ@+!ǑЋc<;Ћ <FFtK1< m,Bp4pz⻋Q# _$/EW ;x_̆pV͓be<6\* Sr^C֧9W>f9"@Ap1yP"p2lE2|.3) ȱюQ2G1s:VMŹޙ@WQdaVHI Q\A6w@uuP\p\pGQAkt}ApGaMJPQWYB yy53 \0N{U]]=΁{Vլ3gi ~J"%ӓoW2HH.p:GN$@$8mf;^[в~m`. "Yc8M5>+WM*2pH0oH)32F;,۷G$*8H_Rm2)u_eoJ= OڜIM Ht@@W98T|3 <=Br3;؟9Z]8 .GnG9Y t^.tLK?hʚ-:H|#I<Z(C?:Z.oQeBQ d.A-Rsn&CbIe9' O(B+qT'jVKͬŐu{X{ۡ{oB$@$@M@' couɕK Mϵ2ilxMj!qpز #qu>Yh8LvĊ嘹6]CSflLzj]K=4SFY Z7@í]zD3&q' @3 Z$C<h:jhX,MhH>ܤ~nQlh' \gܬ/á vn3%ҩ>C Y낰9}n{Ft< w#8"/MS)=8cxʏlC? z׫dHHH>`HHE`;_0o;{M琝f:T̙^oc t<8_T"i fܿ:Iеࣞk/*[6ot/G*9.f_+ZN{̀DJ ljEQ)2"gg̛f{gtU17'x=L^˛j~cڏ*6;.ׇB3$hJr6r'uH1Y^+%Aq@_3|s*8Yp?tV;UdՊ 7>k;/HHV :WZ;u}QVuZb !lL>I`|3ܷh8 F'#g^lMBYQ>SV'hjb hjv8t}7q_&_񮕨PvQyΤj`'cCeiSB\ya[~($PvgAɁ5ЅrzxIKo`OTGfmڔ([~um@`jIHH~M 4,  FD ~hw pDwpCeVK "ׄ[˽(^f<Ɋ!eܯ #eyMclpjp{ [e_n{aRo͌?vU]P써v}ݎ]z追߮Wfd :_3f,6Ú4 <)sOs8:PS{?ZQksoB$@$@$dC6   ?6u 3VkY-C-l['R$ f`>lbRcUt+|a>QGU; $V EPzE,$"l -4=,&)>zNjq ਿ c[aIAQetsЌ|r|q0s8T;^=dl/ɹx?pKzD`5P{_HHHv>v>sHHA@9ܷ\TSk~Q)nAmM/z RQ_M$@$@$v/'  &B p?pw[Mg0IHHi`i5 K pٽ޻ '0z o$P@$*3J17e\6?-LLE^j6u蝤j-u6Pz2?We>Ub>FT߈P`r3`Mn~›Z=g0X1`r7hખ%>>x`b(Z4O7U_ P"Z3^z]+|?3f<ñb*l ;}A.M*t;ZC`\tBH+nZZ!VKZ-Ry®$P<0( nU| df~ ~˽MB!~!8Y!| @%f- N`A YTc+hx ~K/gÁCw.yߑ>O~06Sl( ?Ο鬈:U>m_.oX~IɹPl=\t$5+jRm8`O5qvIC)L>O-wm.? Ea8",Njwf520ZePlV$sXwuV^g:~pp^wGRF=t_E7~gM὏P M 7 !6B uS~|DxN&OEסS(&T A#~M$˜j"{#?Oak<)@q6(8W P-%؆oNpTX ; zt|bϷAPP9HuSJ  <:b-)OR@S] 'ܦ7QzNY^C'a40OcėJ6 x?r"˧O3 _HDբD_I뽌g՘]ʨI7ޑF//j 3D%MB)& Yy YP[Dٌɫ!%p4pX@R̥<.tAۈNmJEe CqSAOW2o#M*-D`ָH:[&e~99gf*&. {ey#~1HW*Y}gG7"? k[-V@1bi Nccf',H!oV8[}qd]}+Uݲw)jemFGݕy_{"Ηm輣:O F߫\d\#bUDDR"TT|_ >C@3@ 7)Avg`}$a)dt… =#d>L/VgODxh asQP5*UbUHe39'c%Q+% ۃYy{n'WSit!;.yp"ӣP)k3vmBUH^MӫA1 -b2UEt[SzWќp!EܐQ)|ydtz|k"/]"Zq͞}~fH{&hqܳuﲅ)$s:- a&%\.a;'lJ$7lO7GZRziu6?fGwqctYHG쨸 ]DA70s4NkQuȼ2q.zF}z_R&Ul ^OB:TV6G/ҟGD]bMJ7Ԧvo#|ֱ}r]T:RD@ oɇD_H%T"WsS{Jԗ!ߦ`\[3$C=4f =Q@.*gBU#Dc˶%\)zoDW)Bݹ3HO:MZusl;k{yUu M=y`v #9Vo=g\dW=/#b%-ۛ-$wT?HG`lQϜp'3JwgdV.̊||&/0Q"{(U6pA_/o_Ji*|曣(FQp'L&WJ='˃Jh0 ri-qW/RԠJ~݅zfk]6鸨$D5%a1o,:~uJe#B4d Kyzt)" ?}*;g.>Ƹ`[;~i^[HV)U&z0'Ŭ.7ve: 2Z=t4m7XQ4.kS̙l9女c3%r7?(SL69BQej?N"1oi5R|o1Jqʋ#rB߅wt8\j\3M辢 x?ksqvCU4*c-o.22_nyUZې]gˬ[4lRptOkA9aGwk)R\)]A0=/ӾOK4ma@Eu`65.$fD5Q!)W R,w%~ 8zzh]:y3q514kI7r*Y" 8ogMo^.7ɟT7ЦUA )OBi5o"{p\C-8$ "õ fhc Y^_p]ɪ痃i|7κ1\^x#(<H.z“""F+yaװ1a%`a"z5Tʕ[QzQV#U{uY KC>q.i~9Yz⠯O72VU2jxF0vI]$h|7`"%"hoD~M>U[JC$ x"AUPn,sh(| Zvg>]Q(y^:Ј9hxHA: ^f{ǀ NQO~W_jD:u;ng3_7&M7"1SD60 SZcMW49&\*/@Qqs{lR{]mX#/&Կ608>c-߼0 @'4J<ׂ^lk:/j/WMMiǻm'>NfN \x@:jД!d;TğlEyg 4B@,Ly/P|$Q%y-}:ٞL 7/VfLϠt'I>0 MlSd'^P eNNO<άoc^[:i)R=mJb5 ?xt~B°TܔGcT:[ Fn{x잕EP<>¾T_A@ߩl4qrILg:h'~%=()Ւ^-Q*z'zlƊӳqK:>}g-:69Dm_9] F`d2)SͻiwPWO즭8d@l|?vpl x sDE30Ms5<\hY'ͩ"'ӄUDj#2岕I 6s廙yC,Ԯ1@ LE2ƨ zR?y6Ui6q:Oi|j}rys /j`#&9~3p_=/n=50oQDVO/mP;q0l<^ms8>{%005ʮhvjj]맽]D-HN{(c(7G(W|7Vt>u?_Y. kj3]+ά'߈7^zwokz'vȝ NC!S>QϪt- q0horvml'_ &9E"*㥿_H>~/(9Xb4Ze߲{co#}~VL_ i664*P3̖_B 8h.J{ 5RL$x9lLN b )F8N:a*?P2Q0HivL.yu縁l->ƈ=T^g56W B<*Wܷ?o9g9:9]̻ޗgV/軫tU=Pu&&d|PUz>w.^msC{lP?-PZQ2HRo?|XT͘TZe YHԓb@ Ep`z93z>xaEL19V3c t ÁQה+ 4]+5Z-o-3Wamppͨ]@M |uwr2τ} hĆ@Fȅity r@1 w @s/p;ҫw]6=KrW|M{O< `z5k?T^`С{cBmy4A|bD Hˌg1^-?n {rVK盟 ]pO_$ Klo0a!QşZ%OV t=qNP[ہx_qbƿ%Pl.\!nnSW=gg[ݬ? +noʮ~{:C)oڸv7Q,ϸ7g-jś%]rퟹٗ/b1nr'S9ќyW^i9|O3Zþؕgy\֛b?^kN.~[سˎ D wG`A2:B (_ysfxsH pTzpN끇C6Wm#.`vskN"ebI.e.b5Dށ N9=H1<I 3|ӋW=V=}{w\VӇE]R AAz?(#t?>m%wYhf>ҋJ@w@̯Gg3!9Z9Q Z~@7fƧ+ݭry*/}g%xZB3xsIm)rI3x\G'9} z2K&t=b Mw!y%Pl[9 ?x8Z|Bu)?azr3wQr~J%EZ)6,zSl$3a)Cp1- .À${6槎<^j{`3́bhM 'o. )=DzRks*櫻<XE=$mӢ;[L:VxdM("8.MnZ8țq3_~a.|oCkS=a%t._(us+ecՁU[ˍ_0Ӑo ?PnZ\y<ן@>[2hdMRɵ!馯o,pqLe0e5P) Odpe廩| ?l8;uū%'r[-/'*ԟ4D.'IO5<Xkxa! M)晇r^)=քE2'gCyߑ6t\SU0AxrGÝ4fǾ |,T,#c"*Q( +oc_/b;7~"bŠz_-$uVu9}=m |ּ69\s El2!e5^잹 m"RgIlޛ?HZ=%H> _>PhK< H__. ͺ' ]ǎWԗKgd6z=ipML =хܧ[|F)~uS6=2r 8}K}k>lP|baJǪ9MWuUG>39X4E\V,C*[I&%IU#W;?4$Z[^`K ?PpN m~4 4Rj>rGkhl m,4T٪q{sGefia1sBQe uFK <(Rowof\ >`7ŵ7,OJ_@hz<(U[Jh$N*LZ:ox)KAbMVԗ˞@u{ERFi z>Z [*e yEba<۵(Jߪ\yPܧPsMAɅ YErK< @+\?=5{od ETJ2^n`ER Z|yL'ªsg3ms?sbS@gQfTWASII 1rgQʍ͖V+hb\S9^M~*]-Dx~f..Al?4Y\ZscoY B)RPd %{}'   ),tt >)4ܱhR΄Z?c'Kzh2jEy_]+G}<n}M UC °_TuY~!(+d*6X'(B(x+l@:&>nE$ V9עl%j\ѳV$ugNֻ 8x9AQ,D1 < pƱD?,@BU3ئ?_"I!2[|3Ԫ"37X'k!_Fmi19ּfj|1,v'<7 4O) į\i ⥂~PZcl/l)Y3^DVd-1J3@qPXc LU&e}_~K mf.ab!<){έP\)eAE3ݾ:>1@!:3e56`N!(/|2wӏrfV矔U|ì9S|Y);u+b {z ߅= q'i~\% 4T~ V"X؊LNf!g1_&-$p XCaޒ< 0.-r,$ˌyōA׫u4stHB=Cpq>1דBp_760Ok֩ȶ;uZ=Nʹ_L-oV~wHo;{x5M (+f)x@6lE/T&m\O~ᓽಠfˡrw7/Zfq.͵Uph _f V+YK5RXj㌧߷|X-M /E;>϶b0&$f݈_MNJ~*K׶A*)7&9Dr| `N(h,og>?_(a>BoA xvJjEh(2?+ALBtUZ+nN",aKuHk[b Ɋ$)d17@4zp|݋~Bh2iZNP/$B1Ao OG*R8^r?j >[dfx$G<\`= jg0ӹ^|F \zޱ( q ?G(#8d+ZbFyp-Ad \aiL^d+lv,qMlmZ[M`CAA|t qI63+J7' ='V>wS~ E^ʤ f?Q'1^]K]gD /^? þ> ?W@QcZ=/j,~(ۚ+Mn<>q,Ez1:G;ޗݭg-NJYjBi[$6V X.IbG!9I^# 좳CSj7)#*Ӄ0 Zr/)@/(ndcK◹wWN7f{yX,w3(Noh"3'Ӎ7 IdgөJ + P͏fޛ}'e"R E yrd.8w.c#BEEm۹k%W5Z`Cߓ8| WuK@eZ*r, rpuЖYQb0uW ( ?.@-za}cOwrԠ sc,s]DR p,zE5҄Zs"3~ {o=bQ_|}|/E8>Y09}h߂;"~}^fjcd}x@4a@3c=>.86:;z(^Ti1Z?OT`SԢf/Vl.aہ[w_.DI9*+s''5}EE|_ϥOz#N* :|]1RDYnP#/a)>uqc6Uv#ed>ER]4EZg 0Ei!Ed~LTWu,w =wJuvx/6P~$48LXBD% L7%l$bu`K<[Ge mU2BNΤ? #2fLۍ3g$C0MgKL 2 "/zdu \Aaկj: XoDF,^HyIfH;VmR`VNJ<=J_"@`壍lչ1CVN`zjoiBDD\KǴ<fh\9SoKL`h姰OH.G·Odg{qy6a|Q5cjtP]pTk=c[L=J/[6(qX.X:Ӏ ú6jr`ܒZ\a};&!0Ke&p tʠCS$Dz6$:wZ.U+wCQ!uRx :zOԫHpI"{Eb|껄>FΖo6Vl{sDjEބD$f`7t=JH oOÈ/Ӏ V1 oZCmժE34W`5@1 K\Yv/j-|WIq<"l˷X+pj"8>*)DV{wS˯g=璜˘_PGq%~8',5AZ#LwOj⦃_P=x) mt^0WU((o],؀7>j]8I.eTl-bLx&}dۊeP <"høP=t js6jo| fJ@L:#}d*{)rkٸYޭjI|(7Vt =]$/:IOvA}P_ Ml'k:]K#DK)60C ~aZZL쾉 .U<ӵwsEYĒ}*Bar :U2(NT-O$]ߍPlh{w@zۿ]>y(|Cap/k31ÆVfω\q!@B˄RZe>buI Ftr@z' /7i|jlkd{ yӳ2ޡ,;ή!쭝\CicS=s q֚<̏pAyF4b亨1kTm0(9՟,O!VG8윌 }×3gh5kQ߆/,k5tb/K(?I&T7_kj2%b! ڙ?QeYy-`Ċ7{n$ia<-3Or% 멞Wo>ssp3iӡ)H7R̋n=r~IWۢL&>Y6Y r/rj+DM;VO7j j\RD`tC1_^U &ȥʛ[*<|f+4n_ W+Nl g?6߮B LEt1K!/t.#W߁?4uy-pR۾nG1R ^Eo9_݋ ^} ;5bK)vîOp;mZk6'rQxۑs[k~y&'VVQ׀>QN0QoN5ydըsgE;~to[oJ[8 (+/MC@3d -:6b|4tPlȁSokt/l}˟&dz¶©e&}VB˟}5T?(=JM'wҦdL}.UK,u֘v X">0YQ<^KZB9吝u\?93X6``-XCcŧ%%"NCCĞKQ)ttp#0ܾĠ*i72|<P!0/?X-_]3/oZwW|Ԕ(K +|FcRS\9'lSߥŐ(CoBo7/G@ʏ %AՎS+ݩnUӃxXHI""UYXHC<}< `-+v䎲TZҗNbPSfŶ87ֻ^N$'ia끡mK<+`M:rK}&K-;˓6c$YcZ{+0Fy/K47?O?##kT+ʥ}H{|r VtRP8Wg˥Y0?2TE۳ l'7sMě Hq̾E sIF(*?trײ}7ȕܻn3f1sE*>pT xTf }\G&{K$+i s^mOEω{X{r ]ͣx)@#RL=Ck JQӬkv%3[~%B/Yޡ\"1d A3m`d2,$\/g-vK9ф1Ypɯ )kU>ਮ[,&lW4̢0V_SIk𽐼~p6yfZ2Y:O8c`J=1+jxxn!T¤ Zd~jNE٪#jm5VN}`qۇGY ku)vkbW;hc$5y@+!ؒGt%~X} *yF\IH?=&t2*Z,k{-G_LhL `炓 侰h/QDmf*Pyo,YvP6?KN2p3 oUK'ˍU<|ߜӐG%&{7{,ߧT&w mvz:;5F s-okP ,Y }_0iʈ⚞^݁r<'Gf|G ',vB=A j23ij/gb@0EXTz'aӢ 5 G=D̨<:RaoѰM9=Y L3R"YKf&%r"/@wS80pװo{o~V)’KQxSȆ-MSY1c;k\0DҶ1qB-"`´p6ΌJj>m)ny]SF#|lL4E`UEq~,d~~1yݞŞh>kH_sqB8O߃| >"l#'h#te}Wp/:ȏjh^g`nfJ)\pCZ.%Ʋ'7f-m5Zuq5fJ ݜ_w҇+>w}{泇沥|>!vw_`֌2@ᛪl?`ؒW?l4;ʖʡ_9Ϲww]9ɦ:F E}gW18I;:2Mj<TQ*Gc~ZE~9>&Q4V#` <,p'A(f5ͤ¨T:6M ģjoSYA`GK}xoO 9-Wʬ㯀?h=PiמbW4[6G| #aWc7A1r>l.sMCŭ4Q}2; P&&>D;Hn -8+u VSobC9H h ņ#/V;gD,(09J&w{vͩj 1 uz -J0'l% @Mbm9,]«8%pS8)yQY5jQrCm'& ɗ?A8R =F%_Dm8?pk~y3*S0$k Gψ 9voR}YJo(^  \iRΒ[Tc[FGž&<-Jq[S㫹K- >dj2E!-1^}631CΠo2z@~719͊l0tZ`7< t H/QQYI:@H2uԭI3qN ^7gz{ 6@s'+\#oXf6'?pX.qw`5*7(Ulմl+9|6`-> ׄ@wH/k켙[pU/(ޢO NJ3[ Χrt9uGcW [&y\\U9f!qܻ, 1`Z*!=ߑ}fSyU\"p.wv-G^_&235£?5ġU$ڵ0ȥq?s~Nr8NDܳ?a|pUkk1٥p\CDz|ɞIoЃˋE'зZ1Gk'+s§>s Gぞry@gj+zW ~;|]O)[s 5zQ3t3GC>2̍㥓oAAEX=7_E_T8!v*4lә?+(85 9gTc-rQu+32 ? ό8t qJ7bZ 5_V@1do A Dck[m0W]Y>й/x1P 3?"$+M R  ^˅gE_@[Mr< y^j.g7,ϊ[n? #hLGr9J/2Hɾ,N7"I`w1nhR/u6B ؇L/6u=b 3caSsqʧTC3%dEfB>#ȞnqˋȲUq kK\[HH5̷0`BZTVC8MvmX~1L:: ~CI-є 20"uX1[JQGqc.p"uAN߄y9DDCߌfߙҐ:@1@@]oa ;|m+ik-q͞} >1Zxq-`Q NMb.}+ ;{btaEkDOOș&R 6&.ˉ95w6`$I\@Qɜw@}x6~> d4zn<V^# PiT5J$Jn;SfNoЧV%EL'~EN/E4 |YdnG2GP[a?+}ڻ@hwʒU*jwhQs}@G}ǧcoW|c6YQkKA)V_Z*JT;Yeҕx}V OZSI7wV>>)5R< tk3U.o#CjE{bBp_l~>5YHy"k$`!Y;@ 'MnM|C_ԇSd|)!ll`uUt`!\}]x 0eNz#k6۾NKJN6B}u-G a An3UR%N42'L,%^2[*xyHXTwTc*i^!ONsBZ]zi zR$8$Nbw/j ~6lWSr \~]4%}E>b\Ƀ*eIWd\d)8 X/Y5pyjd{U5kT71C%m:_KO[Գ,Qt^JJ@e_Zh3ޛ sw7„x\dZn ޸*˷h%{"Gp:*!Hh#\"P/[3 a_UGU~GꏠZbCQa .$^qDxnț6VxF5'SCCZQ*%N 24|d~ -F#l(wN-wp(mx-c& S_]Ct(P0[\ SP|< <"?#L=؃x꙯O皎<>-Oh0cr1p&$.c`!NhDZ;Xk d{ -GpR/7n^^qě*w9eNhi@,䮓U#EAՄ#wwLR3),OOO!Ɉj#}]=#x`G*ilYmv EQ{sAʧ ck4\Z'j@,6[=:g扰#SK# ,N}<"A2dimxrzI+`=ax{^EOb޹:\.KZN];ϦbO"%ۏoc 1?F ? t 2l 5 {!;NJXKSUևN pMŔ[{AW䜀rHsπ!ͷ C7H/]YwH5}2U.jhomFP1DT| 1x_+,]˕MosgdWI Njrrjcj5_M~]LI 4V_Ӓ+k7ȭ0M!.PO^YI^z"23UWxxcJ>#Kag w/$a"*5Dݩ W\KrV.t|E5N_ՕhQl*onb# \DŽmfa8`b89N|3*;kWK Wi{5{].䢩d`b0~WL HͧRdy!7pސBkZTY2u5;RxǰJ.@K, t,9r1Li D<irybB MV]؅wD@LˤOgC{,s]-&b^nv '46撻yHZYfœsOe~H(=& BcB>Tvߨ%vGJ=` c~ /FA5~ cܣ7ҔKslPoY{oC,)6*7FCbh"Hz-zzjuW^M`,W!BZBb/kwPnI"Գkn#1j#6_fLQ'9֒2HǏ XL#bR{!uI"U ЪG!ܖ_gR2 <{Q'˜b2ht=g NsToݻ  zY TBJDXt->ނG1$e\:L=v՘Br>en<XOa@EFCO@L b_$PlrKuBOo}oY2ߠmze \^7Ea*w 'l&!ߊD u:L&VژO ~Bpֈ:7JT,ɓ;wӥ@) &5&g/nTƾK8fT.nw7}PGk66N#KHR!z?#"thPEzf') Cu>.))-(y_n4=7X(FF}u~%o;}ک.ةjQꑩ+r0rU`nDfH&]}PUw߃N "EX!P84ʘ6N$J8j~)$Aa c $}cǛQf{ݻw9g-AL@5\=v ^Sg B 5o%,⢍Ulͨ_,.+G[}g@0F_7CH1 GzzpIDZ!3ա\\W&3n&,5iv}S^>irK~by2G?"k^IќxV1xV"F7GTA^kذ4pWh E;<btB;=IA h'=gϕL[mȡ$U1?͆y1]dJZş0*.ū7 yEbABZ%i6b)l;y鄢Q'YARMRM!(pμ'P#MC\U$3AKYܲ5\w -HQP6_6D=iVqxmiB9U.0KO$cۜLQnBvp)WRS'tH@b~:`bAlB 94rt DX "X+mࣷ枇p4ɥH#͵ 2Y ;R9CgtO!FJF~=khb?@!ütuʡln1Lԋm7H1f`V-ʌX"v.]XB ; ]M菡H5Y!6s,#ղzqxٰ,y&KSF̗rX Κ1/bNE_?Z#A?DyW %Kxm>[uL{6-zT%P2u8gE@&?J$ =HxNJ((H K=(.{VILvƻNυ&9_qw=1Bo_* @l$dDOiaEkHb ,g7[Xy!\!AyD[gpZf5Yb>}婸^jRjU7!?EW( ߯ώFFO V!2|?9 RPn  bO0M5=)n[K4_Ax3^_'qzS ; S7G.+nv7m<")wo.B\$ՒIne*:;ߧzm) D7L:&A1 Xr8 6a%,c1 1;CrYYP@+kBp(Xi-0 2Su?:&:]NN/6i!KرP^y7zoE;ʖ]pWQTbL:.mqOD''זh+NY4nIENDB`ic12"PNG  IHDR@@sRGB"HIDATx]|?)BtDD(]@(>f(E@""ł!]@Б"N&77gܛ@|'Μ9s̙ٽA%| rL?QW1Dx VZm%]Ħ [D?hzzV6CܽT{S_E8P[͑)XbFig-| ċǼ,$Ur{E5Ԙh+Dl`<@((%v4E3a fʝqÃ7q>RBdTvdCIR&+ո &>jAW?wڞ .Иr]YODd>g66/)m:|En.)2%FlXLk[i-tKwnlkKJ@w@whEjm^hy $`n}eV)/'"&Ԅ;R V*r7RV-!(0ڀUy E8=mK̏uV{rZaWR#|-e c] @ɗ2vv _'#-r2[pHT Y*т՗JAĭ WYGw*$q)0jbE$́Q@U)BfKfUv~Vh'>kceSDD'£M,븠h3TCI!$ɏrj]o>kƞɜ$[132V:c~h cԵib> ;^=?ˏHZ |s#CrqCtnnCI^=,T' \mٰ6|%C$Z~{DzKĮB: 8u=Jk:x= 'Aqå?dL9Q!?<}@:Xl"Lave,K 65}`D'ApS vLjzhkc{S /I cUJر5_1VgKپ4(q!о^6/^sm>\w=5#] qK4=EO zAϘ`Ό('M̸P;`6!Hcq oc#˃p'3R s 8` M.gV/y1(qA>H;NgK/hZagl4EɢCsc^n`sw^@ړq#>қ&K4ɩʐ?#_bM$^_%վj=XMjn3CHx#{i3wCqc\ϱwxfc7 ms1Ǧnu%!0n+*7;Yu/oa'/0^R.K呏 ^,>2#X K<Z C_*Mz'=P+t8>yYCl<֖J&z{)aK*dPW#7f~)5 Q޾:(By6])MWUkn?nGr6_ҞwcLazF/9[#;no{dR|©8 HZM Si&+lKn=t:bkQ}9hBoEj]mNycc#'::yAbSlwbxc{Pݣ?b؇g)X~3Л_KZNmyp奲stGu|)ǸsbdMf h iS5i*P ?ғ\WiQ%l +D*.i.%Qni<0ȭKt!Iӣb D+o=}"? q~K$<{2+LҳTi3$]}ح3VAӫZ5A J+S5)]g0nm@Z-~K3LIi^J IympS%` XV48c0H9y/dl!큶huxa^hUVA=.QS#Ϋ:Ϻܳw>b ԥ >3-YCoBU"vQD%ш%z(EbOߙ){EQ>`ң~$UۛJ" zͽ7R@ 8ܞ}#Pm5bDO)%4ٜ"n۪?(|y6(?- CI4#jT/Ƞ 싴O?/_ 9PSɟ Ôʡ$Ozrnl4y /d PLҪ3~+c}|c>EB] o L~,tZqFw9t*шν񆯑C,i`rT#J=+yLm"(Gvjj#*I ,>7 ijAPE񹐥eGQgA7ێܰ/<2ݗprޑ_&:}Hϋ%IcΗ5^CTM/ @]!~A}"HՅ`l7*%{I-y"SF$ #õ43"Gބ0r7Kn|YW[oc]Hp>IϨkPږ v)o~@/$=ڏ.Ro07BSoC)1@+ 1] #c' ν:0D~gc#|xLgrZSlEPE)eAKk5P~vP&!n{EzJʽW(m*NeH>(HË!MXTjܕ?E^W*"[6hWޡ8 :;,@ 8" AISEOEp G.|c~zY2&t@"/b Mмq<w>Uh;ݨS[ϟ~4')Oh[q,4GKٵƐհ`/PGr߀c |Q{+V S@20 BZ0O6wQ8J8QjQF߄W!ӵK٢ ~sXexi3mOKڧJ0QG:e5~ZſyR Fjm2ʵ.fj+9O yIaUA*h{՟]`iX!f #kr%;AQh;B"L uD_jrDxxi\M_槭Wd *)} 9'30b|ִz=(! :ĔgYo= @ ڭ'(ȉ.ƺ{[>W\9 K 9~=YrI=@]j/eU77 ~@MiA\E=!= u[*˾ xh9 j\$&k5##,)dl!!QyMT,䖥Zj_Cwh#Ȕ7i<LJ!4,hǘJH-1ڏ(N1kݼ 0hFXM&-Xܫ HYFߚJ6'$ a[W*0RO+p.κ:Xsj\rQ}ϏTNBhXTAӵ2?C򻃫Sq/îW99@pveo9%wQާWc"S6D"T!!L T(B[kWrks\ӸyT7;AERfr 7BdfT3t.l.к$ _redMDM}?7o-IL [%>S! KMv\>˨|rJ;,egN^ `LQorzR j@r(2e:X&:r9T"LN8mU8'A7'83[bx@dr+ ܘqŻ~E'k-"bz0UY*VGtf?r6rm/quB}bT"27M.WSO$BP2LBOpAZ7(Vrh\]P ̟o\;;iy(uuJ\30, WUTBNgYY7~] +H67 ;hhR'FD9풺icg\2 E{o^`Y xx9T:[KdVkSpIȣLaI˨1޲e?Tuq%Ș<^p3o|WғfŁ ʐ//S/!G!kb:qp,f(]r1p\yfIÆPGU,LZE<xteKFI[B_e {~?oi,&-O.d=קU!#Ln[ ՟Axg- >?tκMV?6-2޵ƞ@IWj+է=~Ǟ6}0hwGk]E_z( I4 XP-;\?E7-]e?yպn z`ObėP/y=ʹ^j8N OrՃs)GïL 2ڜ}9p!u{ުϸW5[p A!5Om>PaWm.o󢨦Mc4EHO$[U?iX!aUV#2ϴhi%1ċVeDl |3?ízaHJWY+\nL bC`H($cٰ_ls/CKqH܈ 6+GmZ1m]hFrj H7mп:Oza Jj|K`Z/N [XaGzV !Lo7EZc\)~#O#+̮7y7|Eʝ c%Q3N(ǜkX=-qEEcOnNAYj!G5ȯ\ҴVעIroqGVy_g?Ks|~C{H i@5kP%?UBv0 פAՆHw; hEʩL~W4Ps u}tutl_H=z@va(-1[ʃCp,T]E|ZR!R0P9uDs:;sbj^C$|!?-U)7Í d&HI}?O?&mr/vٔEfI@s5+W>!=o*ʳ"L"]shj/qUpW=dnjsKUҌn1gܘnt7^+,=}͜8iJu㩗8|ywz+NS@h3폣 k*PMС9e73E/16+jbK6z&c5@>lFJ2An<D56 {û'!;\۴ ps*}N?9`߻gC0]r h/;㦱´+OW 7EHrQz2lɓcˉ2'<gixuߣm4uTh_CikNSZ:٫bw;e^HioHD6C~Vm!x<5ZQD&z&/sD/tG,@8dS;K3v՚z/,!OP̹~ Dֿn;I4u XjӶV^xLad!V0:"%u'{,~ /p5txm#wNs(Np(}3N@|͉n&vpiYMڢ_UQ=Ef\jlI1ӽqdS 7+jfXE\\:/%fg 4[̂!}b}7HY{N/e0ydѾ>1Fah]ivRccd*WEPnzxK:G^r_$TTxH B47 .ewP@sxgB6bq>u_;:9}ʞ!E?wd} ~ηmTg)_՚o&~=3ol㍩(Od^Mi~c' PsQ@~"yxdK+s4;Zdz!T&U;w f?)Qc.~@D! Ll˙H^'{mol7| [r;qMlPvM{AHr쇑nfo t+S )"'$:\yv9K з̓J"ΝzRJv#IENDB`ic10 'PNG  IHDR/sRGB@IDATx}{omlL1ՀczI(%Z0-KBBL3\q? N6?ߗpU4H3߹d ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1` ƀ1К:lc0c0c0caă9k..o%T"ɿRx4aRK~!1Zf+g~e._&,^Мק"epy~CߘbS+oϮϰuY~}q|iuc0c0c0cXȾ Yb}0c0c0$׹8InL6Mt 1J[^׈ %-bLVO"Et.u,LTlwgDQS]$*KFI[J/)+n"[*'j ڽek2RTSw92j/SqkSHq~IC}.ҍ趔jvJ"WH"KK&)vz]a҉Hh7Oqn$^^;Dn_uh;KR{ݐ'j&A8>c'CEr3nWr޺֗27ף:?tG3;i~ϐŊSܿ92I.W}0[/̦ep2n=7H[t5QM:-)KeU)|LP|S&q2ߒ}_ OiJm7-㛴<>QqHmY=T1c5&8⟽֮3c0c0c`a *g0c0c0y)\Y+1 TJ^vˑV%%U[]pbw7:bGB ¶ڷ~o(Um&lAqdxw&߂_U"I~j묮 r {lTK=ܿ!FnyA7QyEyp!xj_i8|MY^_!\lt]g(}:q,ڰAy'btJŅD?*u.uC*KnwVfT =$y{R%J}ƀ1` ƀ1` ƀ1` qow6c0c0 [ۭo]kFp\nnNw W;ҝ9}*Cn>nݑ}SWQf`r9Zd`cԺD*ϪKpDW:0n-0wC}kИc5P7A{: |]%m-']"++s?j牌ܧĚ{p!l}'1{l5DVq_%A!R bfND$|bdG=*$;qOM;R; )_B]|kkwo͛1` ƀ1` ƀ1` o5o ƀ1` ƀ1` !a뮘ߚk2G0 KC_.]Nsșep 8K?G;C) ]IqtapOԜ͞{r[%ve݉Gn'lA ߘ8L [SӝH*T_'%)& BSbh$e+wIY}Cc0c0c0cwno ƀ1` ƀ1` "&}dۭ)$4=S^Gld;09;!T.Oτ CY4˹ h#V Z`~"!g6iF}+EzULE[ ? >Dn 7k -!`p!vU0?X_O ^]l%Rxw VTW ={(AMm?_y/ǘ;['t+~3b:}Dy7${wJqH*wZ &l&SDMKMc`a߹Q1` ƀ1` ƀ1` 4f3c0c0|L[迵qz|@G'$_$WП1`>O@baU 0"SD^;lC?` ag~rP\v6uC7OÁ'{9Ɲ~Bra?+=~{K] ޖ=w 7'WWShO菊Opig#$|ظ4^,2Ǥ6lBi7v;ˏi8-w]dOIC=wz<\/rE]@D xͩ#@RC;:'hSidL_ZH+SG Ų$;m Imc`Ma ; a ƀ1` ƀ1` GZk0c0ch-x~U~Vnh |[ d;{xKr*AP'; o #`M& wx%Qd}5^\a#y#SGA plDz2(8沇8LVGC_Β64+(yN`t[@.i7cR=V(+:!sF1x,o'="ȩ2޷C{+}O`lDž :l2gHp!ԫ[ &97'9p$%3Eo 9LdG#,}ONZc!?S*&nPГW#%qX#0c0c0cV0of1` ƀ1` ƀ12 _׉ O1BY~:>)Hq!2$(ۦȂMjCդ.~i;nb[D%L J!2魩_}SbV+]&jf vYXNi~;5eaWSmn5^mVYx )@3Qf I5*7ì^f^a*LS&}R?@{Dހ!せ@ WD/WQ}GL2'_ ^1/.p&3/G<k\lY) hFnK{WC~8:wOQ^ &ppި|F C7̷(+R!ߍ0\'Xw )%?8Vޏ?)_WWRsxc|9sHy'HkƊ1$;z xM{ۈKnb`t'뷏 GuY~{H3(ڙrg`Y] \7yn;X`7c_.L CCewtk*v@y>} UJw>;Tw-%L:# .Za9#re,w0Ll@pmQo{ Y,ղ ʗH uR1 fJ_t$R8# '>#"70l&+%O!\AFnpKI^fԠpۂ++6p>~jT-JzwF V  W^Q!!aG:,0`{ӂ-r; XQ(\E`Tw'ٟ 0ZN}>Xy;Cmxx_ğA{ ؟MkINv~a`,9؀uP \pX#MсCg)W uj)Z{pfZH;]h>1%׉l^&z濮Nc;oG|3B@rs>f!n- m99-/(V @0V< vV P>G{\?-5 5Y^CK&Ի،|ޗ~x~8)}&`='5^lzW\$gf})G_|>SF_K]x[&$/c9?mEd_/AfoRܚ(W?#2`HſNxgGM8ǹ\+f꛺Wӷ`;F?ɛfw$VT<οH$n1m-_$jMDgSS8-7dOG4"dO6 ?qĿ^z iz.ޖvpR)~݇Ñt<\2nf8⟸.1c0c0o7ޢ5h ƀ1` ƀ1` | i2k*7&TSA^A46ցЃ&CF `mvĮ{{ZLR߯N -ePb}t]$_mp\ AeW=4@F6fGȑܱ- `ƩF^ep_7W!(HޟQnGLAv;vV,BPQ2Z$&gݺv|p`,pGcYqx,V`^د~87^ /dA: 8.\~C#m o *椭 2=*p݆FY!k~Q Z p1zZ \hm`}Wmnj/CKBD}!|# ؽqr?@hA}VB1Nވ <~Ck!YOTvVG. V4< Gs/;$5͎_pG}я[ ? q8}||9 %)~c~.~2EyVxZ2< >I-ƼcǪp_o!n z*9~pSJS~Xs=2JP# Pz8[Zɰ{@ ѓX'p)!!!c0c0 @єa6YFV&w2aǧ"E+&L~In;HNL- +d;.6L JV9ܷ h1׻-.sg_V6ON*ߣ'm9)QH+ztDŽC!̬#s`'Ma~R8?'H=ѝnjF 8+@rg 7r"geNp&콥&Y%Rt+tWA Nm}v Q*JLp~sG{,ݱ̍] R sϾphDԃqQo&aQ%WG%١+ mD҈OpPa*1JKqwc6+u>0;To v(6C  !!nvNcH _!(ۏ`}F^J&lB?yjT U_0"#6#,6cF#G<،b}㹀(8:]-p 8(>؈Ǵ\gD(`"1!&/l7LG`9%> 4TTbyJo?etT>2Fo9qUR<^{Ÿ=QQC=9"ܬ#4_lG;5+.d=vO;)'Bsrc[w| G 뎎Dzbs-r'9Wx_)R eK͘װ1=W[e(=.@.) Q|8<\HJltG/d{>ngWȆ/ ?t?p@"7[d)w#2RgYVҵav ߎ{#s?Aߗ8c0c0 >!fXj@M"wPME\% ~৿17S]"+%5ND狟A)9XU{ܹ![#p|+,>'(`\ S!b;2 p=`g韃!B|PST.9 a]W!8C{t l'BJH1|Vڇ*6 } &N1Iu0v,UW#UjDX8V b ؏2 2DxX*etK[K HSWCpeX`)Awg.G !kW`zyRs;CI} v?Nq3Ŝ::¢Flq̋+ q|Lp?畎pxPĦR paWV:8J|w+n ]20ݾ6B4;'}쁈\嘗sѫQwoB]3{j.D99 Sq8zn?vѨLםSS>~U@WG 5lρ ]8Yg k:7\9 j "2x H%~-A|g1yjy /bG#1FJm=`+4~@m L_ %vZϧG $_@ԾWsF- zxuu@L)X 0/Eʎ~v'"!W'q|pQ`5@"TGh1޹ױ8:!:@Op*= \ , l븮kw p a:7Cptt#D-ĉA0MeLRp KgR:Sq3E+Ր'vl.۔|X2c0c05?1` ƀ1` ƀ1@/[Kˀ [xC[VAj 9DzenHH)N,/U)6qcsWnT 8WO1[J^ą7%%À$Wp)i |Z(x+̀tpݾg`c~Ǻ}rO?ww(Vf{WQ HF殂=mRX&( C: wsa e;ʀ_xJ 'O Y`8#݃Sq^[xd``7@z9Ic9d>8 ;wSlzK\K; ں1 U` l wU҆gCѳ˥ƭGRԄ0J\# )XP~)#[,]Nb^ pzx /o R,i$6 asgn7@:P䅂]Gpv@8B׀`m ,l y F@6#/N!? }?R ~Cu]̫?F@Xt[I^:l~`{P?,#d7KmcH>{G)Nv HA|b=wEd-mqu^:bs;%Rt+6tҤ;|78 ,ES! 0[s.-=cQ'  XbQ\?-}">oqT<X*+ձV`z@sIG4>%yqx4evjƀ1` ƀ1` @nM0c0c࿞_8G_Hz_Q"Ӻ*"Ca iiz*'K\ @G<]E\Mr#᳴8`$~lnB ¾U Y;npdDIԕdF ;dJY__+JGƙ \N/P[6wFFog3k!0y.0(6?ѮO^2"wp398?쐃&C܎ѨGv ߆I:\6|BNwl {6ChRb~!o#bs0Px$߰\z/anp']]{:Zq_=W Xm98 cg;b4`{\Iݹ6j` 1z+q~[6rg'Za!W2%Gie\% }]hGI`c q'Jvv1$%< ,a\z~4#(v(䑎7#tH:SѬ,n2pm<)FC/I@) H_ޑ O_˜6䱎ppzE 1af/(uX <ڢk(݀8+=`9|HQr u|N8 ) 4Y?'qbNus=+_%B>c;ʳ.v_/LE'+Xi1KGOv6En? S;Ǧŝ;ÝO9 mF9yjF93xx?)l~7mF/Bh6Y|`5G7gs[ ehvxj Ž$vQ #k E1)>|?xߤ~Q$M.) Dd"%RWW(7\dTK^ca(r]53EQO=u3x/Y\>kP4buǼtYU9z\-Zuˈl1>wp_.\5?g` ~сf}#>¼i40c0c05~a0c0cX~ ASfݛD˒&N)Mq7KmHbG( 3Qc1}vi~|7OqAM*a෡=$Ł)O. p8t R8JI)pB|szB!97˭%wA/sJy ~˳vef0BTy#8Ar| 9sYC`*Keo nWv!gJON/򜿹9yM]8 x< ۺMD߫6uwDr8@~#ʖ1vqn9WpC}`" s}-B'E#U'lBT%=É~$'!5/O(@DTEܱ_rB>ŵƱvpxz!rb>4!'px1(Chۀm09O!> G@w6@w{HuٯF`S8mWX-tHq!XW5@:Ц@Nq?_l0^؏Pytw_y7!]"Ʋu@!=d-y]a$`X*hϛ(|^Nf ='#}g3VHps V=e5@ 6)GzDB)D灜9DrZ;i!'䓿q9Hs>=|zDl?p#Jj _x_pZ?S "tcM.ER>"oqzXЭ42A^ϝ6a7"aHlU@8W6JCMD6c"XU/wpiN~/Bϙ/> lOs%(~l'%ꀀųac.#;" h^=YVwPU!\ؕ8 "ˋ':x/j#[&gn⛰'Zx'x:?%ۑpr /=!N_wj:ޱP}Q6>ocqݞ6' aLznG߄ BF*B`ct}(gj$8H|]cmJq>Szm[V73M>zY;YgI _gv9e֪49Ee0:74c0c05ϒ1` ƀ1` w߿ҡ&~͎ӏE)9duce{n!'[Dw{K\;E"9z՝[/#;=: 4D~JhyQI?~6#2Frǹs;:]!HaH?ʳ!Ƞ֚z;^vJ{+ǕM_8:ߋg֦ &vL+?t[>ȍYg }qDynXAu?N+`,fe22ם\I{pp/!$ɕ_+!|\CF~[|p0 ,s`w>#`k06p#N skpBHpͅ| }&)% BӤ:X<]R-n\xoyU2;}L.}_XIl/\{uțຓ:7KGJ0/[(KBlW>[qxF&|4s'K 2+8HɆ9b/1f;'0>@(csSa~Zo =8󰓟/Z"@9}m|CFۍR?w⺄ӑtX0l(m*g+?myCX&O`0 Xa~yPY6XV|:`~ P * wѵ=J@)DzSM~)t'645jyZ#+&b988RA۸v`:&>~Sv)W䷥j&U\d$+ =.V`3uIc8缗z#:u-E&w(n+-O[r7 {ΟV$O+`C70zz¶241 x`. 7apK/n \qk#n4|~/kx_21i;=< 4* 8<C@89_{#waߪ9?Xמ8Pˁ x \gsjn u~Gy7pȹ8./__d'xKˈN^F9u {#QqG!񘆳&β[TLW#M G%n}k$2ޡd.$c\}/m28A_@ 5s(}wW%jo8ԿzHqixcV&6=nI|'G''%]ّ?Bדszւ1` ƀ1` ƀ1M0&6c0c0uuK+)!K_8?"B+\@ǃ_8 H-̓,>q߻z9 )|/COY/==/oA7jEs[? 6A-3l gy82W};B r,<_,en\p?Djۀm! lm Wے{nk:o@`;ϭ'`n @|MDq;] tbH&('cp~w+턳χ};UR(DW`;{DL ش3pnugEНmen df)GJ@JE_KLT^ ;yY0 UJss8 zI}rpSș.SsࠡGtUoF~L! b!Lu \A@ׄ\iDh;M9%S t }t ٿ1Xl#G/> ;sͥ]q#mbjܩ_^wckMGsUn>ok0|"d=vp(k{PQ>Xq_/A;@A Be>"81Q0Tƹ޻ ~w`jBn gejSgN$yDWl,+Ԍ_2+ -&5zYI^%;4}(R3c%-ݹ"R"FwJaǸښAlʷR_,l:gkq>\ajLZ\2_L?vP;'CϷ#SrG7[rf#T㮰xK7.h@J%^_1~I'K4>\a=1cE:$c` =b&@`^W#XrQD<'q‹~"v l+p_{0f2 @8XDbm/@"x qP^.6HSGT w`8<N(OlqGt-cL:l JφGd"WbY[#,u;wL(^\_)*rOplS$EwYdn̿/8"N.tCFW{v=eO`yCr2$v(`-pT'|zi;ٯЕ:C|)|p'XR !=h`-}Bp G{1p8POc;\;){8/?~%]78: QpUfղ/,&'CD9+nCZO?-OB{t3;*~<+PWZK~5ְ\[Z쿯e1` ƀ1` ƀ1@hƀ1` ƀ1` 1lY}qgL!StGYTH솯?Y_WZBwMN%2P#)_yALco|9E~9;xƅDq&c0 x;=/3sG jwQw#a ř-杀Q&YRhU @ 9NJZ`tۻB 4˱I#q@0BL|Β9~3mPZHO"aJ7 2;gAxOE+1>LAW|Zl`97ۣ%40n,/{YX22WJ0h &oWvoHV)u V*sn \%s?Γ `'fVBB/E~)X!?]=`$B!<> { 'ٿ <WOAЧ5;CH7nKQo= ނ=#nR'BL*2`3Ľ,~X Dpp@F}%"SwUיSʡc}c* ӊWLͩ 0rJ=+pL]"SNT+)64%9N`LL|տ \m~6 3i5&@fs~R?vL2}8Ajj%06Y`~5)Hd>yA ɛQ#`(h/El?T{]<@@{xkŒ ,?L"A&<5D7LJG9]AW<('?b-@\ lD[WǹU@=Bn}/Ϲ޳Xu+t߇ GnEp`J8omY3vVJ@ĩi^a'Ƒ%@z|F8B8*G uD(Q7nƈXpa7뤊8G?ehg]r8p4b*82?+ ly›&RgZ*Ff17nUGi7OA1>`|@U,W_}bE\/#'hW>u=8J`f Q ~ Xa?uGTMP dF|0nwy}^ם>?"}g%rѿhAY7b59?S/P.W,ފ_ ov!}ᐦv^Uc H$pX2c0c0 侇c!ƀ1` ƀ1}f/6]U}τ՘l0PLw$4{t7$n: QB`j|pOr4<6nfZ_%;!|tue89!NϹݴ<ʍF}(mAs7qftbSJ4 4`P`zŖN v:#쩤!$ a;kyB@G ty=CxkXW)sBb :H \&>u vS`Tx4_e `ywsdFa`| \],s; X%Ks e\(nȝ\]s!<ߖz+eaX 础@b@b8`P@U BWH ;I^jU tWC O*WC\I[*v: BU)uS!+3;e3GZvpVqA5>ؽS 8kfܑ g+f _I$:CgjL]SGpA`4b@YگFʄ\Ldq&{j'MfgI/3k5c~gL&tw?0jLF:?IgWc+[ٕY{Y?MÄP.]|HRr]H@J[udAypZO ڽ\ eyG(,+UoC^+_v@힛l#mr39D T+C RB|+Lwr) "B@! gz- R%I LR0B3BLC4) @zAWb~ғ!fb T~};)X͕/ptXt {hGUmBM7ŀTA 邕  tIG@ JH/ef!X~ߝ9}v̜9+[4d0#+=*"Eϣ' *..XG=VxC̋rkRˁKr2И X;@՝GC^ Aah_x_Ơ@C#Դy4w҆Odrs\G2+ԝz&t/WJCs(%Jo|<'>YG]>tQ!qDp;蝁=\3]^8gpj|WVjÁV.6n$q)Gy'|tp~~k BuImq}5k >9ڸ3 ҡ{Ls ي>3eh391& ¨30۸P/ijyFy#s4c!SfC9π<;8`Eᘦe8npkA^a4ECWu{FDAVk=컀 @0|abG97( ڻTd BGӕKyp}"rts I+r ]O9ÑիF_"t~?]^C/<#ߟxNCΠaW! ppi s/xz肮xg#Hl 5|+r}Q`}D&^>x5"I! Jr5ᷮKЍ=\~B*TR H%J @*φ4YH%J @*T>p.$g0kN xB8 gɻ@=G2gtBI͵@:הUCV;%}$槛h7@,nvAy ?w}P*y4fJ~'лK ds'*Y,!8;.48ec;vehY`/ jwp>c(-'Cw> Te$X=l[pa@PxA7y.C (`: 03D$n^W""ƍ3{{~E0Lv쟍ਃ[ i|,5{rAcm,PC d>"!<|kR:58s\C4g ,J; wBm]cy=tS n30j &N*Z1W4}6b&"Ĵ㰇6@LOJ1ңɅ!1wCQ|>7lҞ3WӠEis1V3.W3N҆`o`rcZ;09P3k3k?jkYz5tbf8kq3b{9,qqĩvr;:~ c脽6׵EpjGTeq2f;G7f>qG\i)q8߷tmA#[C'S-Y<,_/v+m;'*_,ǃ__ <;l ץ(f"DpooSڷp;;<Ί{G)+gChqhI @Ph}<ʖ‘O#૽@K#CQ": o^G0'G/"h"+Z춠 8 |T|P,H)<8z p6{¯*ؐ۰+>1p:IV^'GI(J4+a+> `,JTv5|rj?,/VH Aontw$ *?Iy@ G o.3(?=(5Mti|.?81kg-ADu{JԆ|uķ؛DEp*ST~}CG]( Gn8OgjDXTѧJ%J @*TR H%JXMS*TR H%J ~O63gґ}L|1146$!ŇV_ 懍OE;('l|(춖awӼ#wc7<'xv``m7 |94>˅hay<@x{5,a(eCQ <0/@RVi *I[ Y9mo|`a&e #f֠2!s26bg܏)A!(7D4/ c}Atӳa` t2#+aL2ˀ%]K`$8`hi/Dǻ]x0!`5B//!>"Rw0h>oh͗,bϿF,@ qmK&@#+4L가#L0l>voNԄ@`f[ 0pQN8;˟Q8;˝@M\Yʡ hyG„1N"8/1n߶' \fS}\O8fAM30nO:digQ,\Zhb cXNܾ8Hy̔wD#h荓Upxg|r6\979og <랩S8wpli ݸgm \v?](oNo;9|sB=A@M~7:_!ZHc- 4ѣa|#.0UG!\7%$my<;y<ڋ,r~ o(2gY窽H_h)j xxC

    B~^VFiYi\r'}|*uES9KQSm =T8OwTZtXtr%Т *2 ee5v \)^ @8\VQr#;C椹|#.k1P> #~ W-gcBz7(<}"DEo~@+y_$:_[IUY( MK)n$шYdw&VPt+gJwV<. ?]NGJ @*TR H%J@OOH%J @*TR J),[F&(5ƣ$; Joq bԐz`§"$]mqJ40a7 S9R1\Ts-Mf #8,0O>`C?  i]iX^}W4i_ڥm'lykwqSNW_r7Cws=O9 h!yK\meuy2@U<]X+4L̳beq {y\`NfۘC{d&.WqsdRfpl%[Ӏd?m&s@O ~sXܛ )Q  4o^GwwC`3pM04 XtGs;SA9+W(Kp!Ø[14G-LqiՐN}1'Yu`Hb`ILV oF |@dt= 4w|d: CoҀц@YK ;(&U?<3z7 #\K@ƈ(q[>iV"kB;B8K43 須C"0IE$3".$ZOKk ڈ~%J\z[滝[wDxT#+__߾Wy[K4Xq9_Zm퇫pm/qdү㻒Gh7#kǡk2L >h E>* d[(-[1z䘧6c1x>"0VQxE+1_WdX)iWCSnOc?[ݮ!9/H3^OY0[>oȿAicOOh~ .?R*t4/>_q)z|i::Kys\z}Пh##_n1O,&c"W/~X'(zhQA tb33 LC80оkR9ofag=aPA9ʧ|o W8Uܯh+}c U@GrP>\7Kze(_Hy.pD+P "@ %K]Us~#W-'zbwI|U./shbދ5Wx_/0WUNV|p̭0c9ͻb^O<43ޢ_>oEyo7-{A 4@ӟcJG[AW.~ߡȳI ʼn/;1$1E(N+ĵIS*TR H%J @*= {SNgJ @*TR |%pSxOX՗ Y懊{k@oրbFYʟFc>\BAZ4N#_ttG 62S̋*d!{ݠ;AO*7I(=7;?y?]tu+{tZsI>mgA,+/ 2QFQq%38a;sp~CK!~Q y}Sw5bww2W 4˓ 4eh'{& }9I,spL5rLRiߦ!`|;lW8dπ$gMr yp4+d*Iذp|~oL?o*oQx,wF{Wȇy "61ߓYI993gd:Yw63Ğ2NfL is?8U#&@C??Q6֝dG\[e7 .ú&Ȕ;764|1_a^P.j@ϛr)\&`؀Fgur[;e"p5%}KGED+;B̧A-2U_Jbϒ'P 4%|Jh?ڄ?x/Fm4p~ 0S舢;>axS< JOP&7'4 Wr~O>c>%tHr1Ҩ]i&L%qI O: ip#)~cbiL쁟12'NNRE} 7_˭}s%6Oov3#C^ 9Ơ ⽢A?9.c=;csgz߻h raO;/$ERڕSq[⏉fw|4)as5?ېDzgoșV myyz`b~`_بoj.Yrpb*TR H%J LGZR H%J @*T P:uwNN =a]f<6 ׀4B tOMׇßE;~ vP^H\jC^Jm0g\.2}__f/ ܸqachY>֓7zǀ>L&{{C y9ק} 񽭁FYtڡ fSsGC 9jH8wX_(7 4X3Μr{K6M00N{%|O" |fˬ,%,3'NWdv!2yBYހ`YXh8ߗy#oCOʫ@gɻ A/E9$VH1`HÁF:镹tAgo';˰2"a!p  #rOS} 8p9yɶ=o/{'8h w9:*+b\jh b8 0=ԅ&?Pu+t9Cw pm`@W &G'$Zp9[wτu4ej[].t]~ᄉ5ZuR46OBk~,YxVb@|&{?i _hC2̺5Y7Xc0:%nrKחUaJ(<]ܗr[Hbd`9.?vXDY1z#tI+`9'"#g/?J mQ|GhU;anDĔt`}ypIBw3p`?HDt:D+x7l Wu8ZP|Pfx@s i"0nb?)=;q?)]#Rx]o4~'ǘ)@*TR H%J_(,MR H%J @*ϲ«ݜ?JXO'P2mLu_2 (!.]]T_Ю|edcD"n&]̣Łj`w}\7"d=o>[(~v%*ܻ݃ ڛsl^A~'ok. ߾lg $3[fy4Y>}A|^& G9&YlPq#d~mho B; 0K6/֑; 3!\$ME1kXdI27q_;y*2!oipxSM-oGh6UY@_RȨtʰ?_eh(Hp`[:K\~?A3ZXcL @يwԤ0@8,q@|. IrLh󕇒O2Z]]9Gcֲ=G~Vk%gCX__%l[_-?nFj_xjTۺk뭞'4wG?i,#\9ɓf"u"(Cnbp4" Q0?Wa@%2>O2 0ßq@1 op 8T *|#. RAd>[%2 \7(֝C8-ʇPAAU1BtOs뙾p?}mᯀ2< (nlJ] KΠ#xF\(J?h:UTC)WY"k_^| |RHYDn Qu b7]$`;Xk4D@O;ce`uw2E?K1\"76V.{/`Claҥގ\ #NxŮ0z2)N+>qj GN%x=(`$21K3bS0:Oté_M1@*TR H%J3#(MR H%J @* 8la+_صXJW1B 26S%1-IT3=S5 E~-(FbHoRTڵ|CB0g}ߐP0> C|y/pn\&2gWȲ,Ͳ2s6p5 Tf&CJR `B6[_m91fYM>v/K I6gt=^Fx0/Ce3o$p/9+?Mπ%}*; 6Zs{r] '3s#oe)2#׌WAςaFq~ ;FG B5оoe_d9;' ?cȼ z,|l0(~c vHL`t.5G_79!FH\O&a;Qi4h$3;& x-Ӧ珍N4*F%)b T%lߝ( ~HWȫFg8Y2N'k9ں/ k|GV 5s:C3 8Tp+_C-.XoѮk׍Ѹ1(G;k1F׎踼. yׯ+ʹ MFډ'Lk5t>n/s~\(w'Wb}?-%wݻe}7.7 ˥4]J'`qw# )ǀ^4tF;"JmgKuNWYҥ,!#ȡҁ+]t/]wCtӫJwQzgEڇ\T~;z$xR,*|>%A=8ժƢ"r'"C% 8(ɅmMu T(3J餎=d[~V/ϕ{3&|H{s i,b,1-JvM)ytۊ@IDATHPdd Lrfv# ~p?7f>L2gXMTR H%J @*όR̥L'J @*TR "_iT1b3LLˠdZ=gH mCHN" 1c.'"c7< SA`+A~m&3$lM _dG< 'WKoGɯs#dp~S~7t{Idvt0}ЛK v!pC3 ?'Y a`ǎ 8{Ǩ`x(=coG2Σ`S__,b:"H.±!Ei=p0pifk2'3y @fO޳20n@LBY\*+@\oqVv#) $?@~mKl#u~@w:nq}L6̀$ĀdgHBá .L)ݎ(&; "y)S{_ @ +!R)8GIvZqŜ!>s,7ZF_Orkv=8t5bQ]ߟ]~}}׋_s\>v;wѮZKCtK2 8: ;Jڮ5ǯGWsZQo'Ï˭kwj52KVk9rmko-swpqp'z׷sqe՞`"J 0FE_NV J ߇ͷރ@߷w[ $XGToP,i(z<ϫ)<Wi.o{@ Veՙ@ _3p08:_-蛀Qj` !:j.vN- .%E02_/472d g22YJiFJ^X‘ *v<Zy퀞ßC6B{ p8V4:wN  ]C|Mvw_1쏻Fl_~\󄣣b%Aߨ|8N3ca&A DVoG 9ڡ}vn^S1cΩq7\~[sZ{cms3v|֗ka}?*'QW]GGǽNzժZ־?R}׈7:7Nk=˻k3l{m=ݎiOqq)\;q>^V4EcLǎs-[+h9z$t#֎EUL{3^XF=Y:=-ZD?~t kQlO^ Xj4yD'!q l# YUm6 `[O!D?˵UYgxΆ|"rN`;\8H ɗȁ 3帾LTDrEe"1%?B! XU.R(\Y]:Le;ʬKH oɯ\cytk_eqO}b+^:J~hd.%Fɟݱc3ń1iPb$ҤQHRe`+Y䝇O͇VF[N٩R H%J @*TH[\:TR H%JJ)bU2{TlJ+{al'CUd`Lw'cCi 65هh#fyosM4bfGudO #6UFz{Ue76H 13wC?ש%;p49̼|Wk"橆@*5l ^@o 4$6P;^.,`+硰6͖LC3e:ZFF.37]38Im{K`:t|w'IF4@^ @0`.Dшc ,<zJgDX@qa|vn p]%=J~@3 t]ٛ_b8KP!H<3R7v65s80#9C9MN0IRH l W3퀛&@Κ];&D!1 a{_]k)#er%tqJݩ&k5O-s=KjlFzNj Zq7В_7r]l]z]~=Vzrq˹緤K^-kKmǭ_ݲzZS[9n^e.ߵ>7φS\fw|?1f{Fj~huoxς@q4"y, 0{+=1>Ώ:hp0"E` эFD 0H'qT C_ѫh[c,s˧$ʗRo\Kh)h/r~% J[ P o◰-r3dERI>( Ba6'f^fG#6)>V&NYu~O6O "n mh!{wܜJ~J*`?=_w7yEOG{xZhu1Gc,Wb.GI$p49:!yO)@*TR H%J,|uӹH%J @*TJ)w(u5&LgMA0k)B/WR >o 4;w[Y߻|_vD[EgNd3Y"=]deGUghU-N%umDX]kr;Ͻ`q]L5gh;E@2윟ˉ4 '5<eg@/m i4ȬG6_h"Pņ`YH (!s Tlr1{8|jdRv1prɈL+Q (=p@}:xTe^y/7ڡWC; cRq"eYa8T9(5FCٜXPBȆ5>ڤb\\ĥѝ@ŧo P2@3 J`Ӆԥd*JR~0@lh詹\[cbLpLPk ;5_M( ~Մ]795<~w)Q_O54_%~l''!ISsj<(Av;yvnQ %@sҞI Vg5",U9]ȞXs]F.{? !8a@$>8CI/1k{-o=t yD,G+HqpP|.76oT:}@8D_j`)1M^Ц헱[ٔnfAZ|pQj_:)Lq(2ɖ[ A|ORZ%^29=ׁJ\l,s}v<]z rAh^dLѶ Յ"MG`x*Ϛ"^t:x euQ$6?%.)fm?4{~W'4}hNxuT }Gb9F}B  :1וJ4a-0!SH%J @*TR _@_m:TR H%JcJ,yĩ>fr9%rtYwbbi)#DYqv)2P6z ՓrpP@M?1dU lokW'!۩gǡa>J'QTQ%woJgNSK-}]pR<c[p}ow:V{rĝ /d{M bHRoOo1'Ej^^ed>^l n6ۙ%ݾt䏙 h۲M~Gߗ; n9ЗʜF>vn׷eXWǛ<Ї0`8Cdނ*`g`~|Aw*b9@\<X~4Pˎ]"gj=H6Fm;JP7!7(Zq3@1E8DQ5Ƚ փ"_ؤq(&t#;.I +7vb*_DH~g̀sii8uS=n^=@*TOw4c}"f#:3 !icڼd;#6>י7Mb+vA~t%8=[#H}b~# JjtVQ:p^lӓ, >Y8 |to8# ţcre1-ʗ/Dei9T O뉜x EHYŞXw.} @rŽ]8pqy&0G(-oO9goOf%ˋ?Je>ҩe*٪c kݲ+kC27.#[a{o -vg"|*4C C˱pOg̞Cah2'r:.bSs9 ZHwye6owAC7O*Ώrvc? 8Ǭ hKc'psx x5`oK!  A@IUdM_%b5#k WF-E,vc}%Ýp~ų_(Kva+fdae@Kt\e^zQ.@;/2y23E۞hzYRy5yrϑA~5c-&*"͝7bX2/bċΛ+7z"+ Q?ⵙb~ZizEq$ 6], U)1/N:,oPÆrtƱ3_!DDzA5%S{̝7DHa`AT7xMDDOA | uwoE+#iڀMs'wb,I&̯Q=_fڿޒB_ᶟ59sj8!gqOq;t@spl>`ґB-oNUh~/CYyw7iKp|,d/Pxyx' ooy 0'3V=YZxFL*i( ,K-PxXy-v2fP~.AdV.rev7`w&4%6έ/8 8X![cdd׍@NA(έq3@*TspOdn$f~{[kuk:jJ떈חkYe{۵,C9CFaW z.Eq2o D7^PBY1OD ~u) #a> 0/AM J\^.KpxBtJ*2ьX(6tAG4%O9]Hk2Pz-Á{ 0@:WK2M/IC!9)W~~YUpֽfpO:QWi(3I?O( L>1]jZ6Ӽ!P hrg;RW"U}g[6k(^VoWr%rf&W {A/C(>Pa~;qIn*p,P+dEf6evy:RsR+hgBkU_#\En N167V=J&]dsD(-Eh mka`7 ܏ACQiZ)z$ d@7˚FR= W陝, @F^,E?~gn@9u22Ɍ2plNl' p<)%qiHn?j38wMIV~sкڏ3њqHI)HkiIT3;~NMn l+KTQ9sЃ@>"QpPgQ2ve.!* t:P!92@Cw>`[ 3g =ō43B2QS=29û^aP]!]ɵ3; \~ V:Cgbg1֨ڸGG |7ʹ';sPN}[9ߣRSL%J @*;=E\]GTG_ZRX0$p1]NUEǪPN?WӐ#hϊ5m0{3X+$L {H+ ;WU:ځ)A|0m 42dXglWUF6X1Bҡu^$_>ؑ 6""Ae0JHKʗӗ*gvVӬVjVijdU|藔84 "}0/S/]/HXA^tYVV@5ע7{) pGݑ--f=^|8 U0fFeN0{4"%bY1 LvqA Yc:$:wPcbLBG{ξ!R H%J @*T "@*TR 7H)3sp5k)3}]2#P{)S[EGCus1`#o }WNmzW󹆯>Vh8|;12YC*,GAQm8 w4ehdrwA>')pk3ƒiL}*4xy`cdOE8@kKC#T,酈]$ Q@s^W C/WJ[*5Tb甿/. <̎zANΥcyPVCL ST w3 bНVPvS>vd)fr0Q(J>jX锚N__Opnn]5t=:Nq 0߃+h7뱾w|conDn5ڕL1@*T>h]!{{Ϩe2ߵ~9իsߕk.rtR5X+5Z,0];t[#(| +'@g€ 4dcnů%6Nb\9FP L4Rn duu4-i~#pGU2䜭i_0`VTvBx4QHŊ\?\zK^gUj/-4":nZ J\_1"0"W9 K\"YzÀz^!x3 j`+/wG>-r.wĮꘚrjQxD^M"nK{&v0߶JAcb'K,df4Ș:2bPw|{ҡ멞wJ @*TR @?}ɧH%J @*O$DP)xIE*%'uyuRb ,΢ ,-VxѶ ]'3{m L&3Ò$'\?7~YU*R@=$Na7ÀQ#jv I8i( mfra>;f;Soo؅?̄€>?qtya{uYE]i5K}9A˰w€`;JYUoSd|־`_ hk`} fHZ'9DJr1Q-JXnu()ځ.6!bZ0IpU!p< *gr^*z[m\R~WmkwWoKϫ]ǿӆo|k0 i.]U?vR7]V߭M=Exu穛;oXvI]n3k[Szt@ZrKi?nco?$)>0-86^¶d5D> В8un`'$ @z_RA`oIr{[ Z~ߣEet[fe{.ersLQ^]PN\'#2-f/O g)ȠJQSfY2R<)HuRI6]ghA{4gK9ى3iͿK+j"$XM=&_p±D;]<]㵫PلܑLqsM|]f8Mm4@ y=&B1NׇQwVf0 FQ(` vqL FQ(`0 sRS;v'a!ؑ=tLDERKF\p8*.p43鯴%Cixцy0)q7/_9^+Zb=-~ :Eg 8H`#Va{y=fm`g:¿ lHETb|N寁ϊe'RlhE3঻W}ĎI\_K&߄/-Lu}b<0?#<8|'ّxMݝ};۳;Z7ؗZ?яzY`+؝p/XkCūSx=G %f8a],;NybUS;V9%Eġ!n6⯰]=,ʌ!p0\@7 .>ڭbPZ^[}b]_nrÜұd0 -jO_Ck_yGm5 r{C!1luU9''R+p ƭюZ撋ԧHJPչ gX_eKj6G&A|þd4(~a €=/Kn9p-NJ +D堐h/# UvOR F\{AKEJyxıQ?@5 VGEEn]bwxT-")-M&=Sq{5[viom9 |avlpuTPYtH[J+[(%$+_GO8,ɧ'Ǥ=9x݌Ϥ#ߋ^a@j$>F=-ǃ#b 'pu9wCT-G,D40 FQ(`+g.g0 F/R3_fӦpK1R^zbE4ݎ2YW)нPy/Ź6/x3] W݊ߋsp[i/8h6rQ*yߋMF p}c\Ux%<0+{['} }'愷P=1Ga[WhJ}j8NplL2WȻj.2$ʓo/SSqka:\Q&Xh\mD07@AǨwU;aOy OX_ )w(x{}Zv|[^ lwp+[j{g`/Bw:=g+ޝ m8Yā"ɑ}UEw< *~dޜ_Ȏnc |&n6({vg0 FS)DUOJوܞcNBpU%yWܶ\o8+T &fd}q7`zP9(`0 FfTٌuFQ(`}QVDmk(_J]3UDIj8DΓccxD՛ӱ;=0I$qIV 6ױMwq]vL9-~/U8V2Oa(8L\fl{oۈI1o]'ٷ"Za_%zgwc|Ȇc u5c`{4:t,8b{ `0z X)uEƗzu^o69"#dȟFKj}\EkSe*|gZ8v5}`|LZgnb@~Lc@o Jc~Hpk:܅kL {:"A8 n!#nװ@`jga=5iBm"#\S"Z:95/K#>8;'v}%8e9k }| VXoZ:6EmXFQ(`0 6٢n{ʯ[5q-}92_ۓIcW%M6Iv.ж@ `T' (+Pt#IUvC̖.,%UOɔP[a(_ 鞦h{EEJ ._!>] \o%ඛUqAЈDnwh~-9v_Z 4-3[CNV;?; < в“2⣰GPb'Wjk`Ϡ1 ?@߂?R2 ?OCZZ4/O 8ON/\z%{M ' |3ZGQmFXL^R7L#ڡ櫕4q_>οso H=zj+f*c_ 9 sY+`GENKh֭U: FQ(`0 05ͅFQ(AmJ:_n/q !aIXyHq̤!j/聡aNeX|Sc 5sꁹ-g(yH]܏^Ք|K8̚J8om{/q!f|"@W77#C `4A~g輅)4T`7|WΡlJ -Ac? h.!? sfr0Z_ 9& v͢e|{16B<LiNjpWSID+q^ T?bW>B=h7N߻;t{1-{6Ϡ@{\O-//80 umc?Vp rjF"xzcʮ}!x}`(!Mr%;,Mէ _l}gxFN WQ(`0 @ E]j \Nϩ˺u:_u3t}:_ۚuں_HW`SszGud+ksB }m*ڏnOg@YuV硟0gmbdx@#Uv(k " -FVe,є 2؂*&ؖg&rY)Ц9O4-wZT;Orm`7)Gx@IDATm.=UFiTpͨx)5/\~GE~U2`ؐ }BY4p;KN+~ vE|hME[h'aͰS [n"_Aާ9Dk@)*1Mj}5m$P|ʽ:# r896C9$1=GNCŶj ֽMsѶ~w5u`s^e0 FQ`(lZL%FQ(`0  hGxBnt1Ў ҺP;u)`A>pS\.\@zj07%U֫pt(?V; hvl'p)3V2WJ5l+p?"4$P !t9(N1`>UkM- %mv+?t>{G{}li SY9{kE|Kp5W˨&g skǣ;vkz뷡nwnB߂]g$؍y=Ďj*r;s8R{,cr*Vµ)n?l'zKt->9;eUp]a-i8޿?{fg}'!7]Ĉ;v (`0 F-}nݚunԵuy}\v m6,_;Gԭ&m>. Ko) @Ro=,uU<ɰyxzQ\IXΑkI1<{"I dy%?+07Тչ9`Qzd%܀9 #vNϷiq]pa`]~B.TөUn zy w!8W(?+a?OyVCjeF7ܟQ!|s[|>˟3j2Z[xv=l]W`RJ v;(хt8S?1 ð[ Xz\߀-!Gqc SDfE؃o06]_wcޜ(`0 FO)d9f0 F[X«q^թC,.3egBǍ\n 6lggcs9Q̙*wwŨG`:-Ύ-lMjNb+F4WO /^?2*SK٧r`ișVA؞AlLlumoh0 FQP@=[tf][6u K (^~@,/ _hoʧU9Y0@q?^@<U;HA \Op0>6V8T(p=.s`ZynJ _"P /ʳ28D 69L?A?DCGT\J`q١ g~Rڂ:eo-כX-)Ţ}X.c}p.?Rzz=>4Q|sI%?=UZ"a#H+U[ 9J~ɤjb*R.O"o,V[̊#U^W6oU.ut FQ(`0 )6nܐQ(`0 )n%;wjvNh( ,|%F8Ԕ+3#iAl\ S7%8T0Rwg8:Ɓaxx3Ν`<0II;Q)XA S$lH#(ep׭Ouoa$ o#ZaȟS}̩W~' L,:D43Uoqm8vUڮy|bEɑ֣7U S#~÷^14 FQ(*9J>^7ڛt.+m,S-MMFQ(` hǂv<N+/K={ac`g0i%Wh@nA+n-gҭfȳ{%1<g>$VIk!l_z^#K˛1RTj|>-Nb_2vhm-H'F1SaF'n+vMhk!4$ M[مHݗeG][jfط6v5`':fYOeb'.ك@l0b;L\`P@Ii ((ooX{XA pdNQtp8&E03CKa k<v'4RLEݣ%x2Q ޭhIlmd#OT7?Kk^M@i:˘FQ(`0 g~I_jTum=O_Ħ˅8u_nO(A #N#p*Zw[{bh7Ut ?2\(5' ZȹT 'Q6hJ*-"@A|1\5h%Ep qw^aeSes\~ YYb@R3|(n K fYipɮa f#asH;Z|_ 31}"@Q5o>:+:7la@twGiQ>aO (HY({xYX`_8n̔; xdT G%({=}(`0 FMnd0 F:@5u:ETs)K8r[m"8[POoߧwɠЙ8|SB[E[q-݂G`S@"83y˂KGq8>V>#I /pez&<%}S)8@)\mrp }@BN~ {8zY.[QqvO';}w>Bc6 6ZammviuΊ, cQ5v 3AhSFV /VUNjEfaylfggX '/𿵊-?CKuK_DCҊ_pº!R >Jδҷ ֶ~YQ(`0 F_lGϤ>ɁQpW 5+ "W$}ˉ)S?~@\|ZxX-ѯ-Y(eEx\6QO`tPW%. frA%!hS.(̓,^0 02텱`d||9jfMsxP3LTFV<H (f;\&{kHYB ;OIg-hvP]<mpb׭{mDG{~^V~.Nm\x7"`)kl]59;8wW x} bWzܒv㑏KӔ?Fd=8-UĿ#S>w$(`0 FN4L2 FQ`C|́¹i}A. OK%ة0_b(S *rw+7/>Q%఑_hvmӪ_v;0yt /uq 4hW;<ڨ`|)RY -v u5>@F8`>4qg~6wmj8^%mLeؓĕ>η:Ȏ 3\>T>JΦ% 鴸l'pM*C 3Z^O~LRKĐ`_&AtFrpkK{qVrgb{B'.MaљX<ўگ>,v 5VB5<4^" ̃އ hCb^pEG!C> lHzS;V7rBjD`Z_E_"6P[-+X:uuzfQ(`0 FQ R^iN!۹[Z ?$WTmc(Tw@+ e[&<rWls#'y|_8ئ/ \1<>G ne"P}'(?]1~>Gm{@^PPRRmqPC`.*"FPG )Jǀ3(ﰚDx̀},eyY􃬸rO5x/_yR2ts(/8 }$KRF~@>(Ms@=yE *_:[|+"UDr0x7-PC]ɓج{}mal,@_b=sY]>νX&Pl4){/$:P¼g勊==6| T1+!D9OX lʈ>]Xu{ZK~͜_sa}~=\d{5V*-fLqŎ}k )Wa{,l:3p^sq}>Z>Gm8cO'׉<._wYn.Nvwyp("ˎ#?rs>O8ވ&FMز`|loP28pkʮS]F˒aϦI8[z/EP ? y ӿt{=+m:@.nW)-0oLՊ ]@N`I#`p:/=\LJr6ۢA;&ó %xԶ~k5p>R>k&>?20 FQ(`*PjK_֒vO|nQ2KJ* >^|Fim 53)Va|t*lXN0)vp1XQv8Hy͒b _~= ]0/  n}=\wU{1 |_qdie{0}8}>Nd&~s2d=iJvnlyYؗ9'gp1VRX6'ѽEt5tdJ/ fM/Sep`J iBPw[Up c@JU$;͜h/՟9a(Erb'OSF; Sl':ϕ=8Z'MRv odEjI_I2FQ(`0 n`1FQ(`Po/*F hFwnê~ENx5K-f)ؕSWp/a9ëؖel3E98z}4蔓n?/EeŎ67M~7Up0 dqyKVC-,?5޵Ηw+/po#ns?'i;b&;m;&}nOV( S9lj}OP?ut01|Cķ"`ϟ(K,uJK1%9 vM hi6 }琉ElC[K?{KWx<;}\()?9Hcqћ+?T ,@Hzj!}+e+ Ţsn=F#4ݩR@x\k:@ySN:?`עu~][$,STl1L,40 FQ(`([aKR?ll0i;³u,ݾ*Wk)\*ˇgbhP ds@^LYsʭ`,(]$yd5l} ȲZ̉|rE=  " ($ ;JnB ðW<* yCG6",GCo^DGs9J旃 H= {P3(S`NqT^cZUJ 9/5dX< g_;{6 >lпGA<r&@)'+ZwŠT@cqo:>t*1B^~ {pFQ(`0 ]xFQ(`IFR ͗t7__5URwa<A^X0I8ld9Pz1T\F,YϮFj6~{)5MN;kE+P}{IdyE4-*'r+2w-؍fп\wأ'6A8;!L@R1rX{;kUvzm|'0 1 ȯgX/9@:L4wف4D<_AI_khBr1-KLq`Cj8`UN}Jx@K! /<^Cs hQЛRwo؄[Lr<5ZD,P+g0 E."ؐz ˎrj6oK]jF=!nSK%fL%5P3```&I)gⷳY"@El-ZMw`;*E,WnB1lHИz ^{4hSn-Zrk]Jz5Xm.rw.9֡|q=f z}3,hdMLPDWŃQ3[q&ܲH M#fHKl^2O)bK:s~-'}.iTvdFQ(`ƠIFQ(`0 cv4;l8 A##RPAqGО`wE K r9}a+KfL[TO?~"?/v.u*}v,j:$vNK(SX:H1:~,]3>*m^`:]6L cV?v^V;;ma=vFt 5v=j ؑu=+ #OEw@ 3ZpΠO5P] {$?L"@f ŽኽAg@'r8Cpqvh'vhFmkՓİRSf0 FQ(`P~ܰĿֲyZk|Kgվ#TIAQ$Kq8MQ~ j0˟E׊+d㰜lHr U8SAOhH^* Jpns+|Ky>ϧlss{Y.琝LR6U5-2z-4wM@}AL 09+:neʙ~-b {-}\ vQ1]ڵX 6.EcQ΀*>S`g'u`YrsxND.N_mh h=Ju|;eЁ"Ό b/-lQ(`0 \˵2%FQT@jǿy^Os5|Y;5E?NMarܑ;MvO:sרNi幜/#1(ڑ.#&vS“8V}a. h[0?PN3Au%C v$PVs<_oY~"|P JuKfFQ(`0 FwH=<`=$N~ Q! rՈ/|ySHuXLNU5JJ p?専% *+b<AhV`z rdz7.8LP6+5^Уj8Т; ,R>'s?ebK6|=*.XM.fR~\˨ w@K -h5(6&E7V_5ſ ZQnrM=`}T.͔kCZ,JX`oGN4YrB?u(׍OnI$tNp1ݎnIG?[#Ε-#uW"W@l?l)x֑@B:YefO[BVL2 FQ`)B6_u&Q(`0 . bu%~g]|Nv؁@K@ā=,c'뷠+6e,H1C?ךKˋ!k'Ab ]mvlE,8<Ėt7bwn<~l%?BGi9ֆCN68aWE{Fܩfl^?+ƂlEU1v̸p}1%=%nRp`/Ӏrv|F]r~52vR?]X{ƹU`?KnHi? e!sj%Ek ? c8U8CWe|GH> zN\8ipIqb:;|N|CT =?._U|#74 FQ(`0  nox}ݞDT-Kr~ۺɆft޺<e!O}8qBh*@E p+| mQjܕ9_$ Cvww3 d3h PƹRѽ\ƀ.nLS0Z0G1'&~R,w"\n5yi;Z䩭 ·c+r[I+p?;Fnl\.`\8=iiq ۀ% _7ʉ@ϦS*G`QNp{S+iJS^:myx)cHS 9*-vQ,G^>{AjÞ0a]/5ߌFQ(`/)k.k0 FG:'/:aGFܜpp{T9F΍Sn,,P(Ʊyӎc-Ny}bl,4CqsFgGt#|mZޣfJb/= Zb& Cc=r4[ &Zì o>-^f@ vdLzz(C`}Ge_P\>MI'VTNbKka@91؏F jJ:*V^h j~ʯs@}v8eec%~xr[+p@%-Un1%>Cg.m}(`0 FQ(`)PݮmM^Qmm׭S$V7k뇹û^59$*Z;E9{Xeaײ&-AZ5l<vk[|)k?^ b~gI,0C"1)b%Ld9p-%2Ag/u۠ ɝ(ܣq+_s?ϕ _1@O}γ0)Z)/L} M)7 'br ۺPwrx}RM$@7l#PeʃKDD/G"p^ɍ*Wذg̚Iۿ}zFQ(` _!9(`0 ~ajÿ+^t0QwDjc'ny)EN\PPtp=<-*Es9uWpj .׼y մ\K9`F_f 5>+v  -'v`](pq}+8 [Rb3b?q1-aF$_Њ`IOೢC,sph#qWz!DPW*/CRko[gUHkbyf` j{qz~JmݛseYDi!N=k anO9yрuťI|]^KbNĶ~k1Q(`0 FQ(@{]\WFJ{,"Y iaް$E{\-p-mu}gB  ۏ%AA^~$A`9h^K*>2ɠČ>32ٟm.TVUP` Dgd+) $ܟΒL_#T=Qq45П98Z{@?ֶ{/KEk'G|@KPqmuܡނOVbd%XE[PT_Sxma u8пl*vǃs8 mA79DsW#i ؒP .$<[E U;@U.+1E*ɠE)6+Ҍ+Pk:bc;(oIRD,``&Į${bn޹\[Lg||39ޯ7j,v( }ߊ#*iȒSl'?t`*H#0@V`%t ؀ol{ _ =2[:H,F#ѐ0V8ǀc1p 8 ؿOq@IDATXkWlO?Y+xon]ẙǯbNȺն_x>ӌ z '3XQ2NrE/.l| k^Wy#Y^EVPF7bC<+&6 嗈eԙyDC%JW @.a4"w4(lb\>9#I_H Z&2rKiA.d{3D.aw%l]C(hu r(]=me4؆f{E`i29U f3du! La"b!,Fb!n.ǀc1p 8~$\D1p 8~?P&ms(+n$0A,gF<垢? l5Oys=u _#RwKnnfrU7GR-wAKn5jtg27GӁF ۫ M|}1~OkcHAj}wĞ Վ͑=0.qu1`8q-:Cb147Wb $P'gc;3Ҡ8g< SQ$սxM#gv7O NeОk>ol\$z^2M;#l,;: fJ_=~٬ev1p 8ǀc1i0`L~Chw}}jDgghUlbnv>3UO s.1hgv˸Ed?Jb]eq/|OyeiP ^K,"^Od"@uY 22UIhϺ@B$x_i&SORTn$'5|_-9^fDOAlB2)]޳O:6.%v&Tx;S^=a`יSӘ?)RUR?":D->7&g)E֋GZVbp 8Oʼnc1p 8~ o[ufl_ĺuJ] zHC]v`b ouZ'O۪@M<޶hSrPCbixd$о>#9nAuopG% %X$ߍoB oP0ĹV.2;'ccy>H.  =Ir`l}w/G"O 1{1)2?ĉc1p 8 oέ1p  hkc}'^.8*QaOb$]Ke|{!Ҙ i/ Jx*zP`sLM=]5WLA@|iݮ72MKo%|UM}l317Ս\mK ' ZC1a$~hXc  iOSnG+qH#FG9ϟÅUT4q%ރSYsQ7&Ϣ>01O힡cC_ʍ2'.Œ:X*ީ@z3J&46c7JU>$6_8DzzޯĨ7W;f}Fl1 q<7P6 .~Nގ.ݓv8.X`:Ds_qԋt!DC K`\~)^ރO o#_A)?Šz/DybN~W"YNsp 8ǀc1p 8ĀؗbE(ғ.$Du^NثUB2k-GcDڅZbI^l%01$>O'J}~]*y`2g/P^wCLF@EN x ?Ob*$[nz{Au.;DcsE?T_ e*'ǀc1/a /yǀc1eƴcm`Ux TǢbN27BZNP14A),>OlwJ4ߩWв^Boi-v,<[eƙ+xNء,Ϗ?Kvg轼8`՟y^f8v:4PoQGR߇cEuUGN4vا> q4KOIJ`dT gsM9y&,;8 EU"<Ж<s L[nv_8,sqI^MjHU杆cC +u~(n|{XA}c^C2zD;.ZC߄r8ЗE>W>[6ٱǀc1p 8"%W$=dkK"zMQvXV+Kk}ޚ8E֛=iެ#w֛U!:3vn5zE݌,Dٻ^EѣVz'Q!H;Dcr.k8GF ɮa<ʯ7Z7DlA]Aѹ*lQ<ܑ?()У(wu X^s z 叉mP_uG]:T Yy;aXN"- jTftJ '2N c/{UqTTwM}:Ftuhko1x஦TLob@/rk-zL +>J[?}ǀc1\8Mjo [1lq 5l"4EM!wα'C+'bDK`8o3{zmwudh^6U bWލ b&>U/;in|;IKfbz\'b~QLɬHCQv_x3%Q9/mwp 8DrT8ǀc5?,Fs|ULk<_rO#,ΝcplTjNJ?)j]Sjsj1N58FrmV{'\GZuRC ;-S#^e[@fpLM$vEbGtt!GFF4fYMELGˉԥd\[tN'vk`hrq%}usT-)lgNlD}jGڎq ,߉s }:yQ_Di"tJv2$KUwhnDbXlIX .D|W)1Q /a< . p ߿?2x@`֦Z#4~efǀc1p 8:αhy[qq6oK3ne+5z_ٙ)ږ`q9]`O"ev'ߓzb"-_04"r-hSKlb"f -tA(ȕ0z)/̧oH/q> bA7#_#`'~fR4vpfHǨqxpD=[2X"ZC z|gƁY񆎹`=~@UoqM0.7[xb/1p 8S So^1p 8 F\8{ez\BBY E\"n`dMQҮN6ȩQ_㢪4A} \/lNseb7KMSGZLY_K;a^Э~Gb_sbbboI +e;cv& f"JRߠڦMM삾2@_ IR# [`zb=`,r4'L\%8Y$LX7Σz˼sM-j-j~Ui v-B;,JktsW 6~U߆l6.zw]kkFYq}ǀc1p 8ǀc?kD!ʭn-FȧYV+߹fb[96;%-bY;SܩMmG TD."J_u&)b}:ɴW+qu $Y\t0~/Gr+-Ndzmb22-EVX@cq 3L6*Q#ߔ_A -,7oDdf;To?D-MhN|A\eb 1;<'.=9{u§i٠ooZg .m<({@Oy %6Jj4k Rqe;6}A"1ϑ-sWAo(\͓~bF,C Wj60nO얢7` oP@|[%'{M]uҍs9p1qػ^-御8n['aBXꇠGN:ḁDpO]+q &v AO/c76_s &r i_BT}W%؝24c)qG?zړQ 6: 7 !biߛbP6RqX앀w@k|)R>EnJߎffU=zVMhǀc1p 82ޱS~okƭk6kWv`;;&~#lV;ةH"u1m-i %VQ .eDڱ$@e;DLe[0gP'*=\ET`^H2 ҥ fO˨+/FFiוUEWuMӈ,OIH M4q6/c/CTgZ_v#WׯT_R|~fc=n5zoqTNVR\,zt(N%ӂFd/QEo e]n ~cBlP.:$GXm< .}ŏ2)'fa`iOWX@'D]}'˨;V+PwX.>OQ9x봾{g=B&4T۩uBe3,C>-G z_g|eW3G+c0q#Ԅ{@уt_bn"Vd^gFV>呎}Usw=|=yܞF+vb,4]"ocjۙX{ ','O{]N&U?9x{o&,H0!A9! dBB 諒c8~y~1}.k냋DڧcKs+^(~#.aנr^^j~j,j`k5#: pu;[MǪ;xm\q6ǖ[% ;(Ӌzx.2?n;}E%IvH=F=vJK`l~$a az f O1q:I<-xJ[ٿھƑ[ѴȎ9/%1>6q#N.Og`5$+pgψL~ = vdJd~Zq'~jF2_D"RJ ᱖*xΠ% WUIB?XzW" (%6YNͩqlO`iJ7aq1/ӓ0-/!!,'aP^<>a`Ugy8&/ԛų1Wn"VqRU+; rhb$b oGOBԫiq\X$-p(r=zm̂Y d6"?.)yfkD=@i*!k>d:V.ȰsH~d'!tO@Dk.4x]4&1G(0:+ZGP7V6v{V >%6~VISfo  ܿz,> zP? %R?K>0()` Nl3}ΝG}:SbW})GS04t.2Zr'Zw.ǭѦjl{ЌPJ ` [[ K6R} ^t I?`-:Z ԣA7ei~x@ hG!Mj g80`x/"$X6-يO)apǀc1p 8ǀc1?΀ ~X KjP{Ej7͗蕟V;B6"mqYppm5xMPT&zWBUxkP7 S/Ͻ#EP^''*Tz[6EeQ('ϟ-[Џ1':QaF%?`X0NYHaRESb[L/K!O[x_w,&nH}~gx;h r^wRZًl>߰³zlSJ0{j_Ax&ZJ/RM NGGH46W5𿘃2>|E=f֋#3[eLܶ(PW8'?S ~rZ894gpXs>%톱NT@)ݕ bzi=/=S]DqS3_ǥD:_)|jڛFU2|.l7FlP-%VyCf夒Xsxj23'݇&u1hGqf;k|Z+XD ~Ocܿ:浖0@y,%#c\XAN6WT2.xow;ĠuE{JcN #z,N #mCǀc1p 8ǀc1fh-G??K_Rkw|6t3l?k. f羢;)Jjq*hv#V{;4!H8?O'H9uGBU6/!"'*-|ѐ?6 w!Wx!R$]XzK wC|QxOğՂcfh.BZ9ȕN|OH$T2||]W9od|@%^!䥛Yf3 ZV:uP |Uau1|$/+bjkFǀc1d /p 8πDok"(߉ QAx =.Ya85+S(d#ƺ ~9^L?Jt5:Ăk)3z$d `g8؅ ť{2@ooTAA4EBh|()M;o:4l #VXvyH}Emh:ǀc1p 86^R+?oTuvgфo5lejpnoQO;m">Uc<"_bK;л!J[Ux"GFx"H]I,>Nl_?H ~QB $ DLA<=#z5eWe$"W yX2/BE/gQK}CgHv3$+Q2!@EOQC HVNŗy*$ nIׂ,ܿѿwGF)7#cٱl2LQC]?2~VӎVwp 8$6\[c1p |ŀ5)mnrk٥]/Dm1ƠA;El"Bj>\%d-Q>wtK{2%> Q%e 1OBۄd޳TA_9r63E,?{l*-p߿b\F Q06`5|`a8`Xj3h%qw_v~e~@!:'qovMP%a6Nyω^H:l(mP $ }h+ UFUf<f}ŋꊍ}5lTǀc1p iɭ1p 8j XC"CK$2|kŨYI%fgZWSvaP7%54~h3gU } K3՛:%2+ܗπܱ.g|t1:z,s0||>uAýWp|Þ0Nt_N%ՠ7߂3.&.@}I%0UHڧ$%qM 2F`1Tc8c7C쮺L4݉d݈ J ѐ29)z[* yDPlVz:.qgذi"(؀EiFJ Pg<`$p 8ǀc1p 8Ȯdx=n5kR+zmEnW\!!}*{]) d/Kt5O@d}+/qe/,5rޅ~7Ex5=;҃I|&z?K:%Q bM\-?WYKkbL~7!Xqǀc1p 4j*ǀcIĢ G_va\GCnf_ѓ#>#X;R>Xp#؜e/%O3KS1we>5i쯤F/οwjc`-{p?~)qo^8,vT';^|x~ģ'aq ܈Q?GՋv=vox 7`T{`Xy/@zdjtHhzhA}{8 ]bmOm0ہ8{bU<ΫaJ';ϡudv"nD}JLL ܜ)%2Ư W@I x keqP`kgtft>jjq 3-~8p 8ǀc1p 8kwZZYW{)n??o&V ])]( ;.x(L@UDD-.ztL"@x<ч '&+*&b(geDY] P @wtd€DbRB &3🤮3:R~!Tw_$1Ms? b>~>qsv<j *I:Vǀ=?A|dKeQ"74&5febn<M.&A۝2V[}z1p 8ǀc1p 8 /Dg&D_n1W :OO$j7zυXIk?iDDBD& ӟPE 2'*eOQ~`%1dH=iI(? shb#v(eYd 88 A{N{%n~ K%ެH_ @?S)٭r}=}$x^Oyҋ57vxeuB~:^RjW{d<5wZSF܈ߵ+0[9\{^%&C(JGxAi@튟}sَCD$W%2]O7O^.n;1p 8+2`ϼbp 8Ȁ`EZc@HhW.R ~sIPyJm'Yu`)㯃<>N,ަAە~x fⱪ4pH_8 n&ԧ]aX蝍j.dV85!cal lgSV^up| o.( T͸)x~5 A};_94i8Gc\0jl݆l[f%`-F!zl}FcsLS#bpCw p8L{]LdoU hܔ2KqL kѲ%E_[ݎk>9ǀc1p 8ǀc12`9 nݑg@Gyla]^H+]C"}r"wӗO4&@ϕD2ʾl'6=yF'~& %":WO裐:DV0!U rl_-jdxFu~>8oG48b#U_H@IDATWᔪs}rxqKiүG42-C6~az-Kp6;'{#^KF) GKx˄O&tgN(CcXcy{iQ:ǀc f pL8w2D;Bz_apZJsہ_avj0MF:u ? H6!) oI}SQc Oc:_&S~9l}EfF %$IVBUtJ<{"!+baVh1*Yyј~_Ô 4l~3?ݓ>&%?T Lq`*-0U 88; $ܔ7yo~6nu)/b+Db͵HEkmݾ1>;ǀc1p 8ǀc13`n6j> +w~߸V< `Jf2*B@Ob =1y9j@.|z=DUGe(o1_$  դxEP;r%=RyD/E4|"^hKpx^?3s:|w 4/KqElb>ʋƊ_)>A\{Kpϱ4B>ķs2ͪfB>SSq=C-bŽ"]b쑌~籘+~3ɏt>"D'nV+791p 85l >971`x?[w?-w̉f,+,4Dӂ)/Ճ42gMT%cLJ83EÇbV 4#}1F ?CÏfQv.YOv~:!'n6G_f vZ 0T0K*n7:}ud bE5ŠkB6wCMtJQ_ ] _] уI{^9N ޢ3=ew[7X䷕lmk[9ǀc1p 8ǀc12`?[yny5,{;>[S 7LX#/~!쵿Dl=\I_+G%$MDd>=XQbaC%91]R~s.{ ,3"<T^GPK"4M\͝ nu.͝I 綗9-]X?-bIkqqn_K2 4WN(D~Σ) /cK\ֿcHݶYu"X7c1p 1:p~}ŀ5֨[+,Fѳ$3Ms|B\Z,:ͦ  )Ⱦg\]/g&&_VITrsS^l5oźu51Dn$?}1n:#03w 0'ێ84gC.q ?u7C7F4`Ό{R_mwiR "vEC8bg''N1|_&v@TQQ( \_ L7t"ɸě ėhҊ؀96M#/6A-ѯƎZѶ6S~Ea mغǀc1p 8ǀc1p |;֞on-tog;ݣx{Wm97V/m?( ij]EsÅD2*wyHɗE4TI<+!ʥL(CLg%jA6Q A1?[r> ԗiKoJ\y sl4!5=7Xއw |:k5yX[8ǀc1p 8ǀc1 X?`uk[۶qߍ=Z,mXd#Oj #K|dÅCoˑj\4 L$f+R;*&TʦR?wʗ% 0!@=iJ j PI oHy~-8£c1ߔח_티<9z=wv"Ȫ E߻=VUoQR9X =֚+cկOmwpPx*_pnͻ)h]%^5 'pro5hv9븷q 86Am}b\3a1n*}[wd? ]Lwas V,VT>3.4H. ?ICDy2ėpg]3o؂86"TCw=x!kCWT;Q?S{F1cz뎢>mr@lRd7KoD0 c'0T&n{pߟ0[N )Cs+]KL#~4 ڙWdU`4vboI-V MG$I+RbwsIFom|">|iv7 &8ǀc1p 8ǀc1vYWʎ[_բYܲF YKR"$T8("z%KFh3l^C(--MY*^Mdq}5M]xCgEz5B%͙s"7E%,R| ԗu(|*WB>i`}vǨ]5Ohًrz .pu6[[T%v։C-R3icU$avVva#"wTffW݁v/؇0P-r0p23u0#㼿;G# yicG)v84+./kIS;{3Dd/Ssd`=] ҦYOosZh~nC'rx!zjѴo`KuoEgBF'i_?K]y3 EDU"cFR?L·XF'vȎ~N+℀$< 2C_Ժzd#9GړqUuwπg3 x<πg3 x<+c@l!mK`;hwPҜtcJ:2B&PǶ#V(F7F?[8 [8>m0a\ R# IcVS| A^J]Zk O#| + ՕJmA-nn\t8&=)(JK/J.O&zUGO!@uD(u.KWbW>% vA֔&ZFش(nrj- vD5m*u@Alm#]~[I}I~I5_ x<.|y^πg2 tjJ.y$bZʨ$H]hvb7>G,rHstVʦ~8y?uL`+TL 񼐪Qhd(Ψ\ 7ɐ@bhJI?Cq=%9L㩒 L$;^휂C{guAnuWT5b2|19XUf>.m3Q){[e/{buQ"զ(u8?ρ{7"'pmB4Y@I bsW?'7,F7r C.N2?%sGݒNj⎫͗flJ eNπg3 x<πg3 xV̀d,D̢qEɶ\V [#rXƊ6酴(v# vf(m`V=c$`L]n0`)`>T+])40K$j39` <5'@A(vpMjk;8/,A T(v>o3}^:Xנe-(Vf8X oG.RQ [.5[O";!0Fb`H/h cb`}p5-  }p/5Lc0|.$Ӌ4.pSs.U\@E<5k0`!Z4%0RU`CYjmؕ{6>'EӮTmcQJcTn $؂N6GρT,p#gу?JI}paSkbGGQ32\5E0HP?eQ ԟM`lpJfJOv%]&bTF!< ԭ(`FOog: O"3'$D8,@K.d3pLm^4+ ɇ!T%{ҳq>~M:"2؇affW<  pqHǞoFwE,_v/[H ώ,Tr.πg3 x<πg3 2 U(ZNJǮەl-Ӱ+ަԳ@LĈ9Is8͔LQ6pLc 91A Z#Wom|F 娹os(:򰛡?27[_JAt/" rs"}Z?3k;ވK9Ё:&Qmf=,+攅؊ȑ@y23<:> g@PyE;U*7Sݒ_P#/s[q_d=Wޘq󗎋 7F|m4@/S!Nmf?j5s57Ԝ^ Erנ\F=Ov+@gB^MJ%w=143/q>XJ䏣Wi=LOBwC v2tQ>iffӃՃ8" =Շ8>T_'w2?6/% 8E\ x5{e+A MoIa'H`mh}HrEg3 x<πg3 x<Ā/KQjjW"ϾK@mvIIG(W[F*&d+4`U7ğVH%Š{Oq0Je` 3پxI`Tñ0G?[@hc"I+۷JZR6J$~3%l[DI\J;!Tz{|V ӏ{?ƆWn IbD nڰ!n><&T-}Ƚz<^>y< D%Xc^Yz++yLaW0d3M}b1cۤ#c>>ք!MI 55 TҹԚa4? }h~C+p-nȎ)j LkDòko|>4$ʁW#5ld!0tpЧ__G^1;Bǿ`#p#/Vn0q$"M*bAG88pzeretek{3 x<πg3 x< }A, vηX8`lqH-u"Ǭ:@WҊ8e-=zr@f_%/͛|DaG?\JLXNe)1?X9D S pcr<#<>A<_Q瀊WThX&jAx~%{\@`t(+`]n?حn|}GtS Ig͈/غwp vŸVϦs2#FTǹn5v?BX9v'i;5%$pZJ\U~JUVπg3e}g x<_ZŲVmCqD.'6۹z9#9M" v 8E>Y{~_s)jKj@t+ԻC_m=G &&I褨)Uķ4/?3XWȦ!ghQvIPdaoBv96 _p$ԥ)Ks?K? \K<Ύǵա>ծmMGCC"`)0Fiu0C#K$`h&M0 h%p 8@Ed{8S-s}h+οO< rid%RM43<πg3 x<πg3_c@rbɨ͗ש㿪Jw6&q1xH֕۫` Nm_fm%}'dPTE)B2(hgqJF)f\y_z>J>ĖfeE7AS41pGخSa)`E]CFy7]r&)XOR?hbduG[KG4 Šf&z俦Nox:XBy4 7(J7ys ܔL#›,68NNDqj`T5JqMaSЇ<(p;b~ZXky p `| \oU@r>P*I٧~JGπg3 x<πg3 x<-vUy!e6y>i;nuϱ=G݋'n8ǴӃ 1l Y7JdPcKnZx(UK/9bix'hJV( b])e{2pc9`_'Ď~%`^fϨ/_Oϴ,[lCmE͢Je: ;_fy Uz2Օn8MOZ\w:vP[俤.ifuF݂vXCzlIJ》o=i6jSbHF=vRԖ)wk䫢aQ&e=#M 4wvz?=[1s՟7, -g˻2ǯp x<;x| x<?`G.'A# (~ZB8[l^e73t6"M`ГKQxxͬG2O*MvvD _G1l>' V][(ջ`oeu8\}K!FXwz:)atw#njo'06W?O1tO`vLo Jx@u`>{{ X=5s=G#88p85exj8;Xtp "< rD=zw>Q35ŸT]@{^`}zv6}آ}Vv^i@^O?~&Jz ]41[Zon^A42O#+Pԅի`N<98ڄ 6†A#` :pƮp1([t0z96vA Rap }>ۚu??I<Ӫ<բ=z<jc@}Cπg"OIW.(PMZ4Z楶b=@/><i@}pDlmmWrpЍ1fp ~;ڣ[^xzPOѓp/ק 5*%9 C'9P`~#>=RZgAޜ8JCih j6.}h`ױj:E2`fdTkUzM&ivH4d!MC1؆vレ~aj4> n +,@nzgpx?2Nb5#;5bsZ 9z6KÐ[g.˃g3 x<πg3 x<?a@)bc'Aq؊Ozd놟b9~ .M;HRS@MA)?XŦ˔0vXn\2g;R6b4`_K xŀvj X5p3uM()$U2 "[(8i{gNqb7iFq)_P9SKOe&aw:ݨK=`/z:_6c=Fףbf0/fBjHvE#(샜60Ii {F\| XN#$6G'Aykg3 |C|7$ |m \ r/oEW6Z ~v’F^Ź2W~TeNP $HaQ-$}`\,\@X} ;sJ-e1lj]|Fd= )L:vRn {խ,QsyF^S-L.(X/Ū/D49=5-,c<X 1Z<x*Kw>chlD,%RWdA x<jj7 xQE@đ? A.~N9;#]w{Psj;vHru/}cE;=k7Y@w^P'P3#};Khi=n9V(lX;{Q]&M:Q4*9Yy\N[4䏠RQ`ܢ.N \Bg>Ib _%=k`ɲ/C#wq[&M!a1Z1ŜIۗ\E Jn (gہMc>jz+C x<πg3 x<πg3v:nHd)֚K,_ֶ*IEɕڲe@X^C33Y*G˰r@;iPx\ Ÿ6j%?&lqʴTl2Lmgy`k78 u_n<Z\J݀pDʿE3`!0GY\3h=QGDOdƓm{–^ߣkɌj=LE2֟ƫ hSk"jMF25_5֪$Z?~<πg_gޢo3 Q%Ӻú"[J}̗3WNtKwWf~]dUDS?#enoe,oXY/g\4oA}J]r#"ݡ[73*L~>MJq153QMɱ}]F8Y8vo)@? ?M5 XjJnFoߣ!IɇڽAhC~b,r"07[U*aoGKez KbI4[,r"'B?$0MMY+pnGez'' |;վ%hv|hd˰!:3S]sTP86V8KR2ߝ㫦h}QRZL6L!& }38zcd6us|/l\սt*#1 pSjVB?NE*t5pdEMBlB5}x!8~'P>xOzml볣PCG$Ct!s,· ( {ޯ[ZrHA׃k:ДܑѫuḍԺ)Н@Q'I81VԟH#W@ނEOS&{}lCS;- 0rXq.S86ƔRBa{`<p+0o /~C&$I[KGsݕK2pXy x<πg3 x<πg3 v4VeÑz_Y-%a?CMnψ}Ec,NPy9u &E͗_``g5ER{!#r,Z|rVqgR>"Z}_7E|ge?:!(B1~N|#PN/! K#Ԗɠ~ګ~Ԉ4tE7wr(_J-K l'rӀY[˛?{Qz5WS:Ӛd B$xN dpsdq3, 4 4١7V{asF~vxF?˲vJ~T πg3 XmDtj& 3IE #4f90I֣m"Y!hY_zQU?,_Ue0@IDATU_7 [^ x<2_μ$X7Ȋ\IcRě*<Oֽe,Q^aϕ/R%>Nm18QǗ"Rx0Hu;Ә)0! Kg엘EzjSp#=|x']wW/no~՝Jl}>,֩*K@UC1 EWUYc>nb䅭z 9V)мF@ԛ :`'-MHn\a^EER[qEq+aa1F:&f>X;IL)XkH#9uj5 /Xz7j g31 e xV€(֔bE\&A8 'RWA唶H3ыfz,} pG2Հ$Tx~9ݣ~SitW%`3-*&e(:. $ ^-ՏƠ1qVމәKqtYu XUTߪh|UF(_f cҏ@>Ow&|Mu>O/GOd `/:\WwjPC6G lj l?Ny`QЃShw3Y灊[9,|\qyùaJrje x< {^#.(ob0mB'R0}qS{Ѯc+YfޔJ!0C;.O:#fǁ"b= Jjw|XYʂ#T Ω|݁ߺŸia-9NSvd]B#'AD:C0+"`9Vz?ǩ>*k7NQPI;KMHת4:}#;Uyھ6r@ h9 s.vj':T$.ǵԗr;*| ϵϹa߹]^MMz3 x<Ff]&A6YY zknf Ў^O[^cV'ZЋ :\GxġiYXfzЉ^JcW) ODy_E \+͎?\*/jdF`>7yp"m_ ymqc]A.r!/K~ɝV6aYQ/9(nr*_f[q*mՐl{-Ejf'2bmWff3K0׈pdhմov"k9,]\leîwH _i+{/hir%E ^vt! Sy^ȕP/T>w A΅2 8Y ?[?N3 x<o€h6Dg$(ȺrX!SW.ՐxM^`~*'>GES٪+1,XSt( )y 0G`$zP.dN6`kÁ}(N%b k4; ;)}o~X mODڦBpɧSAZXy=4>inDӁuVn`# ( Ը^5jPwHt+`%qW!Ŝ1۔[ޥ(B8a֎i;j9πg3Ā0 |; #X/UqHћSc. 0!ۿF0#UT>eY}z_X:M]) B@^[Ӏ3d`^O^7XH&G_wEw0LF~9K=htv,p;:0Ӡ:Yޡ77FL=#= eSP Z?2;>KGEGc+PspLq3̆1t `$1O"ba^ x<jVfoixi[2rs{ L4쎢G+~{KysP'Fjw#o͇8 ` V N~ :ǩ8<0h*K,l/( sPʒb 9yRscY/3 a/Si/raB$+3q;Α <ؐiO u.~WԞ܌e9ԕ,ֻd눤Zߔ\`r&<~ bl!A*'QEwU_ydRPoq/?Y@r} S0a#:~95"wȏe;;wVQ|D_ }yN%P%+@eg^rwőq_ x<We@ީvIdkv.,I[9|K$@CW O1]P[ClT!Svbq8aOb~ԺN8lt~Ui`"ђIod!~(ֲ3`?H_Cpύy)gj`+4=nopIECj*44OL!ia8il9e{\Ҵ3 |gwy<+:BD so%稞 mAttުu'SaE,4-;kOP~Z3>?$ɪU;ձ#,0 :"s3ӈNM(B( 2@kicDoD}ӻ{. NB)!8|TXO 8~ j)֧ 8uQs`^,K+ǣl\ N)M+ OcXbř ^vx x<I_y!ڿ_%R_z@2S|)H=7C/ }oۨc]?۱So9-7M@}0#6nn`έ+!JYb_f;rc=Y`gиEN r:3/Ty<ܒ˭`'+_x/ul+XR[qr}r67cAa3(e_ W+\e"?Gn S>1rG`_<__VVTS͘/%\7r?R"sMrĪ Ox釠<!q>9{؞&*B88U:Vw $Dkv幖rhr~{!Xf?S[ ;"$FW?lWT-= Q x<πg`50 DBdvXszV򖖷I!!5+[w JђZP1r0N34ߌX3KR~r-t\T{`(U ˔/L6# ` 'Lxcȟ| V._NxE?yV3J+pt*'kblsrRn5c{'"L[@\#bc4䟽Ic證sT?>ɵ8<21V1hP<77ҿ]KhF}ͮ@W6xکunT׳N0pZn :+w#Z#~pPzsԐzԔb}M !#:Ck`PCExb,'8 r:LQ73 jP7CT[H0reϑk;T|N2MkpCe-Jy&UVDQʒ3 x ؿX=$qh8nowq.qKsuԏ?|^0Ï7, & #44a:TɌS-q/Tr]^@qj]8bð;aTxygqXJԵ`P "'1ԋ $iO7{cX+KuI Es##5g?+ToRVfhtK<-"Dh&nG95Q vfM;n{V"ˎ`Y6a; f9=gHErðf:KFz ¿<+i㹐ߕyN jjG/!Ϲjvԗ$Ҿ\Wur`+vH/]:βH=πg3f jl[Y uv[h&R+ӧ¥V2# Ȥ8d8 b>;!SpPS$r>X6`*?Tl D@@P  wяl|(p 0OO (!>qP,\D@2,̬AQ<NlEOA!9*q>2`!,B>fVE,o@[50v1ֶM5vbe4YVIt=odqaB ZM9I=x<= {[]"i,j Ss>N.6:RCy9lUc(VP KBPHL L_&#~+# Z\ [M'zDchw"bޡcu!tH:iMKiVͧz`m ~Hz(wjp/3GBIMrs!F38BC2NڋQф2 iuף o өMi\"=Mj8v=ǿ-l00slyFC/+_!>3 xX^KXE(9q#Xl"舔vlGs9 UdBisJbQ?y =X MjHHRQ,l-8pHO; FNCAZ@?oi9n"9e7f~㔦jv+9,t<~- Pá'" Fu#w&\@]PC>t3&\5^(lq[/ E"BkGd p7Z -.rV9Y #[IHD$Oh5  h=\_%iEwģ֭{缋'[|dr[y% X5Uw*O [o\{\gyz#oQVw/ylw;_r x<f@to y2J}߅} $qԦ:M#?@wU)=ݔGZXgASP¡} ,A,{ˬ)! їK~5f l VX-OSYs;NL¡ XO~t'UMB0qJMTtcj>LTh̤{=C=9 ^Qt4G+a44=]YcRT+jk}%ta8͛Uy-Qw(zs&?u+d^E5|qt>`g3Coy߰g3JI" B4ɪmLwy4i2\ޜ6TF_ڒ-aawM͍2&?j›(:[>l2U[˃Ss-7 пߨ""_}m !M}$jh`%9 (uA yd+isuobA,qk=C_vԖQ{dH;g&QCŻp y"\dCF0i]inPgeop$Tzn2nNs|1qO6UX@m[JokOπg3_d`E M1tGXt@iPY˹Y97C;h+ax;o{Igsۜ])9]kh ' zi8[5xd:3|x8 k.;WU5d}d%ս 5vdw:J6Cؠ5FzVC+Aj .{9m`H#F@499b3 *瀯8-@fdV _q`3 !`E[qs:ջ Wh7z[8f79p09Ŝ='2~;݌j28۱c+o̦ΰգа.!fz;XZNk)Jmag k Y=%C|ۊ`uУϹ} ѯf9-s+,vnF7M#Yսo@fSM R1bDps~'Ŝ>d˩qw\ xS>V uMjAYYB"'{%St)dŅp9NVFeW.w/X/{鶻Y2 sng/WaGɗ{.p$ YlꉜVns+?ٚԱw3DwF ɗ:Wπg3 }&˛ĢԲv8S,qaqU4CО83#8YC+B+P TFzߊ&͈ Zհ&`i*Ev!PO$z3q$f=@@poex+HJwKQ$W9GQAAEEĄ9bN`<#fπ9y9#fHP /LU]S._Na{zgjfgj*u~,p b ).5Fj/ fdg/c͙= gToo sz{nk X3쵠5' y4^ 7n'5E^3'kT;ؗI񣏟^|N~VڛRR @x`J R  c 4n.Sy^Z: G{@K7 .Ԁz.@z-ro Zhϩ!bssq-dH%J ZYo?9kLt?ީƱꬁV;w qF2Ya%f3"B9@`jXc.@`=Y ?%d I~ǰݾ <  q ["|}`"56P!Bkz`t>~,P%`3$0A5͠t.w>if /џ`~ρ\gc4/2F_Vĸ/Ri F=TiVh3TfBN0##~~U:SL%J 2{@*TLAMPD":(+WXⵞPѸ95,7ً7A†=9W,z-.̭UJ̀nW S\ F%TTͭ~OKJ~KʫV \@+6PS+%d+<=hh[ڕF[T7i PzP*D4M]rV(ӊoѢr`^|)E4M5KףÀin7Fs@5t-5 7~BWkRPCoʵt?[\߷pV= -y9a{>)J @*T2 App@P;~!AOEk6; \}[נGx>>妯?%F_#Yv'%HS;A&$N^ V޳؟1;.آv^ŻF͋lnTőJ5`x滻qz3EF pN @S7LXg6h*d#CmHUﴔ}[ `zg1tƭ\ {~2X3QHR2(e/j:-famLXf`^ɪQλ^_2k˂F40#.yeryga+o&Mfۍ2~Cst+ zIì^!GiBihr`*}m/j+㗘0763WO\w^3k4`\so 6[@-@3s\:Bd-Ul ku{tĹe4&5s{:z<|7갟Z/fORz>~]9{R_Pl^(XX}' 3Ru?dRPQ7?Ltƚ+N_@[ wWC`KdWV4pX4ZAB50IweUչ< u:O@]zeZyű? `Q{ Vps5i,_}= k2WuKÕ YP&nay+C?!$[ފVLH%J @*T?όU ^g0:ZU?s*`(qvFt/X v *DӁpgO9 nu7`oLɦ@lUNU?W||zCgn%K)n`  :qYC,bWQd ߴг&" f4n7々Y5fx`F]db>Ex(aqMKaWnk=wꛝi0[[G+{EzRL%J 2ߘ~a*T?WAI*`K$7I1' (b2&8n4dN @F Rap;;vl?ic>76zB23E؅ͺĜ Cз?wPתԦMT]}#k֌MTSuudZMW;M+LsVO+\eP`ܦH\Uz3UүߏN.i/uE>]/Ŏ͈: ֮4\z26CF+yhdP48dΫ?j'L~H%J Z!%`x΄vr a-D5EnOu<%\6.< n\Ӝ4ld0CX-^K0MrԤB3盏5/.31q ̧Rs9Dh&}"U+,-V3f7skf?*x}:cx!׷e4[I/ Nu71Tu I ~!\Ny0` ]] ]2MhTP[LjuiN 'ݭm6N/PV6?Ymeaf-u[N2zLy7?,@3kF}p27ø~ sn\qle&b 8X <{=͌۷6W,} 9.^\4 l v/ 0.> zoЀ6Z .@MZ , F}*F^j(TR H% O UL58snsٴB?슦 #зIqM_e+s5k5RưƖ@dYC[͎*J*b t%i V vuys@lW:J(KIfvgnK/&lm@S7'uݏ)D[@>?v=%OnX%ٸ} (g8`+oLnqU1a8aS H%.1 ER +Fm1^ V95sex:kiGWxLW;sײҳ̋`+-y=mRyt3p9*{7p 쬙򝽣Ǜux!>]|6r'2&f-n.ro^!yт{(\kq2/y1{5Ckc6cga6Q|}q=y(؟Ǔw':QlD3kGN뚃edz-em+Bu|i~Q 6qr{+nMBТ}/ =;!:71%i&+qB0ՀȬj;Ml thV9ofs=}%󉕀Zh&0/ l?jvCf$;N3~yU M4WFF1~H6;$o<m,VVRn7w'tfC()QW//́_/ ]wBAsVЌtnhOO-XK߫^ Ӎvn<_ po =MCuDOEnЍ phHÙOy$αNx[^L۵TC>=qK}*AVUVAr>ap(t^1N+LNN>*49 XLl&OIwxhG ?R ߐo|SR \ J41y/1JAh׃I8 %KݽBjc" =pқ 8}]Bz= ̻AjԌ7#F*(V} zvZPV@?`<~~gN!@*T~OhFk(/!${U!hzI6t`>v Q_zf&?i샌`6`}59?X-veALc,ޢ%@`/OiޙgoXt`Eӎ6<&YYyL'(>y[ ˵z9m:>2qa{"yμ%"[Nubܯ_OZGx=o~sY,wtPrG谗w#8TiwPKUY9Oha,hϴ0xKص"9/E"m8c2r]؃Ny6@}if?dz3FWf,ctjc22 }Fْ2ӥ+L_'=\F3;鐌ΎE!]qNG גgki"47gC_YAh`oG'_ I*t2wqU{kǤK%h+.v2 TXf֥?Ub}e [gHVT-ZLj@T22 |4ZVPX.BF=,F~4l伙?2yEmod\OeƟDߛJ׽zNBo8,d|tp{B^ n >^?T C txOO恃AXCxR H%J_I˓?FyֲD߿fD\]R(x.-5 j"?@dr@N -a>/eM>F4F~kL8c)I p|ۗD+? 1|{XbN\,oH L>]^Hv0'{E7loH7DӪ\9(Cc+Tn9-][o܁-v2_ZهL:^vGaOmQE_Z.r|`6qΐY^G##@*TiP?R ] x@Мi`m>N{-Yy :vO _եs,g"6]uZHLf}BvC|"R6N0C G*`1U~aEs:x2_2tNdѨ6([.Sףe>- fAv5g&w"VL-=nO{@@d[6!h nCE&9@̒E[@/W|9Cfe0`2u"8`Uic_Aٙ2S H%JW&T*82jucBp$@(9"麒ki)῭tG'eI^zBsvm4wLšfؑ-.yq<4#fy)^ҼӅom{M,<ٴ7ۛZ14~6IE{L#cqh%ɧBﮥv>#2Û8̦)~3ES'x:_ݙ~ps%-#Jq.8D>;f¿BuMD#bqf?esMYdXk#n*h!-+&Lj!jŻ>%ǃ0yBрqlZZ6CK?s0hM7cG3;F6@W㋎zƨSf9^TV7-l$X9ю^!vY[t~}V]hs>`FL&J\?'k N?qb'Mq/ kǔH˻o{+wVҘyZ)b4]3gJ:x{>nv1R:t <݅k'w87ݢ0>~)ZyYp*ӓj]õ},MC8 .A.+Ls#uB6LKgψOM?ӿ rNhM]Bo_P;M:ޕZ Ō+.QOTi@AZ! lkhevx3MDz)1(/ě@wK.F FrQ9TcϹh`uN<*[!0=ʟH\r2OҪtR H%JߖwϿ=O&hyyv7~850ֺ?ݽ/4’CD @soF8 (OI>΢Bk@>?q%_v@|OǣeGL0j`3?zhL]AϺݹ7~v-ϸyV~K4ƽGgf^gw=vq a3[+|U\NХ֥>Qm&΢06#X)H%JO W?=T M>NU&5i4=J֌rG#h< 3 ikm_"u8AQ-6!nb$R J&JX!@%eu.ݩ iw8>ou:S*ec%UBYYkBmj?E[N:oix::h3*)a4#(Qf]Ê(˰v;`ocva~VrX`36#WM_\4 y 6<韱JʿTX!sG k,j T<ŋ]'I|+.WZ/Şf]Mk;N2޴GSk{\% TB@ku 뵑<D>&7,FK{ku~᎔^$@kj͖o j}u̷u5vd[QPkU\gJZ G"/:$֙хB&s`AQTQ6S%]%(>+ ~+jugM2KLa)m^;)4u' w;E蝜=,)$-=Ἑr? DqWRIS+?N0t[gklI?kǸrڹ>[f$ Wo ]JFK #p!c_M 퍜8;% 3}̷2~fEԈ\hT~QP+!A^h0v{ywl]Hn4Aw]q4 7n) Ҵ5pcu BCo2nQF; U^2-s6eㅿ0 XrM+j3i:OnRgwkF]7=v82ntr8rp p lB#%V(C%lb*TR O@;WK?ou_Dfڇc +Vz kאOtyb~Af0 |3^# ż3OPYL`b^I klIBe ǚzwG\I{RǷ3MŜDkj`˷7 }hpq8u13k+chO Zxo]_ ^Mq k4"K6Kf-~kly; lc9s=R _H /UK4cVr{MQqPĢt6+ e bN"Vt$H*da2Bi|5B)VQ\`/;R\1؊VeP&BO@/_q ^} خu>@\&:Mѻ\ 歗k>6pfCz5i5sp<6*y:l'İrcG F)D MJPB J{8+͞?0ߏyߩR H%J`U GF@oo0H !cD3Q۫5vPu["8#>1>(‘BZYvW ~Q79#л7/kG{a?0е$c/tcT؋xk9,K$Ǵ따vE՜7En{hI0 2݋d4l u9fg,S*K ;h5QKsϢWe/fl$~<36հ6Ef_hd RW}A62vz[""dRFΣ0cu`*Xjx ]+Ad-E"os)$Z#"9f.0~$e\vYfDl6hhM? MzaFfXɬQ63ò∌fFm#d|e%ws~tl=@w%ɋ2 DqvnۺB.% 9ʝ,~ w9VuGs;;[3з$ rw9ok2)#@Q~ WfUy[V&hKzy\>WKv篧`REr~Pk5/%47Tkg4t~)KXB[7nϚ :3s%CƭF,Yёt.%wlo=z:&of7|{j`Vq&zCJ6u)5c}{t9Cxh^+̃?ȓh^$4֞"ds`1Jp #׷@+]l h1[ }4Р3z2]LBZV+Ғa郰@^Ojϫ>la dR|"N1@*TR l 'WxLP4? c͋Lj/)o"iI %~v˚gPCE,,)at-7?wTsMX@iK%J"Ѧ-@*\ 4A!G.eb"22GS%=ѿ:瀋ip WaSm SA_O]ʠ㨭UW)x=*bP* lK)/VI@=l&v-- jV}_Fˆ2K[ 9 Ll+.aX:}yjaZV52zZ/haM./K@g ݰJlCQ~W?bH%J PaJn LS-TI*lͬ)f)@Lipݡz ̤;ίEn@ccq(%&sL' !>1(P. |*' h*~T%>? [JTHmX0yJ+[ y_!?S4,7/U$wiv'/att67/pO4U;; z&.n`wiaaMsz 0Lc>oВ˱.jE$ih?yЈYKxۗ6BoeFz3I =2ǕV=u.)u|svde14#r}D>)8yފudw5Hԗ>b7{зGk >eoHvV4[WGw "q$z^ ܕe(^w3r}G2o1=-3"'rzf|Es8O EGfvg4#>WYp=WVlE #=Mͭp#fХx==&r|pdd cRTa?nY"3w5@u훓3GNW!, +.9z9+79ejN >J`޲K.c ɾw#lFZ,={w\Wh0YwV\x;Mb:Xx9t#kVL8p;<$^ FnC>N'HalOs9hfzO#̹n+Xh~h2/ ~(x]p ^G5@R`KhSpVڀ"_?za-jedA;~'K7KP2J |r |!ҏTR H%oH@4GlLFiwv?WI a@(/!L2{y<;y)=p8) lƼNBb mG M4X)}_3=[[ZؑZuNuQt~uPpZ/5} 5I-ft 爞~y|(]*9WއjѢa:)yfTR J ?;}:{*TfiFE䒣Rr`2r{ sxRk,ώRVв[Jf@Р0gۚCAVWQy Jմ$T Ϸ5lk~GMlYDIr`e+94ρmk(`?:+{8amk8?%P`>f@6>'<+&T:24tV} %:_Pè@zVU[FH%J Y-=?<Ī֒3-v$ban%+D,wԿOvf:?F~OE6QaEc@w)8*?b& yqL6Fך1T//bL{&./ / d}O\ X.Q(Gҿ4{ 'DqEtrQ,$B+JBi ͨRUG4naJuO1ݐ4g#Ӿ01o1HX[7Y ̙zznr+Z R;y{VռaX55Et9Ht6\|2 qx;j49Qfw̚C^p03gr:"'@4~(f#~ˎ2{WGG }OprtF9ϏN"_9>y2Ϩ:+/}G},++13s /adn }wgJ4Q̥{Y2ޭ;'d@"Y79]2X~w¿%9'w&ӄ3Q/ch"ZI{n2[" ow3Wy[+QLs^~zJ VK/%zT^(ϭB̄Bg fu^]xX;ǘ/4t䛑9Oti'} 9Jg5}15x:6/*\=0Gu={S^W?P Ԋmu)uo=m"ƣ)FR{12d׷{5'٧n{r$M3}^wGr]k#xsm.:}]0g};if`; N¯Ѐ%~fUAwhF>S/]ny=~H%J @*> 8jU 9搧ϙ@QAxx>;֬X#ldΖ@+xO?H`>s*$6Oq k_@r_rU-`~Ag6| @kЬdr 4}XAvsxx3~Sz2*g퇜o:'Ŭyn\7}75iK%J /E_ʁǑJ* Tt!`%UWܲf-ݑsG`-,L ;Q2@Vi;@LkԵuopjߚO(Ԋ UO6`yUޟ%6.$S92l©r1MRMIЕ1 >1QJI4Sf'^6o`*r+?nARܚTSTb9E{X-J̎6!)(?6S~D>_R H%J <"pn-UQN3exZ)VXٰ;p݃i5-/_F|~qr80_c< ߬(lVE#5qlYˡxHq-Ƥ8G/L^)>?'''3ZCwt?ױփZ^eZFSdlҿ6g.Qb:4pTɫ[K9LgV>6~ =nafy{>eϴO-^Z v2R#=ޓ1 d/wt0̰#ռm`OYKc{f:_ F,/J:!i ^#+כ=3Gy|t$efg:.sGeY~8 (Lk͔d:Zdeڜ"oW4[}5g rf=6gv_dr[ {/JCb/i597. K{#*>P 1CÄ"[p,xGf k3帩uzHFE gz:jZ},6GBg-?R%j^+ಙVV2qpkenhJƈz'L3.1LΟʯ\zCw,Q)c#tl&sYdJ-B1'2ҧ>ļ3vҿ4B7:yQK/mԁ ,w7r2ZbGy|{ ]%~}<=Zq~$;^m| ctl?-31 ݝ=iM}%{EF*tRg&LQQpDcO!Y7~|0rEj*hMVchԯzsZ*p&)ucԱM-$+V "8+g3U6Pe`ZuM!bO[:<9}& o(t_pk %`h>2n!P ʼnɒ Il 3ͦLƠ4˜愞S H%J'Tφ0H t򼊥?o [wͰAÄ^pgn?=ɘ<ӗa8?`E󱌅Mg vjڒ1?v憡͋ʅ jAPiX,byxxac-/1&7ű)cqKu)ŇeWtɂ!B?趋% 9#OIQpdpNDG/ };9L&ŭ#\܆hL^qHfZ%Zx~(JMBZ hZ Bn9>9:4l.#DNt9Ie-}L`V/oVhvoγAoK\Q-}~h {Z1kY̝`n*k%Ʊu8>%?0d)v5yWKOʹGD+&,Q[\Wѓ瘎d ,kX4}{Nt~hW 20>/V=cׅ_cbt$>>}w%%y/n&Ύ(yN^_{uEͱ6$S:5/K8F;am=.x.5$@%Z}9͖qͺdFX E2r:_&A. MGVV:FÌ[ǜ7'+>0v`gʬRȖ+RˆpV䊻hv R/|U0ᾢy15R@n#\\+OH?"\o)-ۇ0NB*TR 7%,#)2寿5Z*[<񚘱[l'ּC99Q$˚ %j,P]C@X3KUxS3eTtlk%Pšp8Rc-,le_vuMKLEˀ/}BuSL+e,߇kЖXuXmhZvi`|R H%˒@u8ѤIZ89ؙ6?,`-P/3(b#Ͳ(qsO %y` J (f=}+vSmCh`quL6;QP/Ah`j_},ڕo}e@CrYO؃i|F.PGk{ 3V;°wڢ[Ru͈; n5p #0;y˜l)?sP}O?7RR H%JoI <"}nYt O3xRO>n+t_k$kAСYn1{G@-Ϗ7`>}gN5Mw(|no\s35_S!BQݙ.cq|{8WϘTP2gAk$%u/Irg*w{D~B'<.t&!'E:d6C2)f Vo4~ 6: )BiXQiϸ65ZQ\X#zRWt8َPKk v0YZi^8BnYeM)f-#vXMA# 8C)qw J}oXNVh_JW+"8Qj]'PP UDajÙunfc4++11{Яd:gzTmF;"#ס1Нd-g1m %a&ܼd6]Β#|Jܫ?,\WKIE^3~;+`$s'o݊DD7WLa>*RhͲ*_ ~WI7MRKK)HY.RqXR2>y:|Ww2~k(s+1Lo .͛y_Ko= j:7[E}o/%t`؍^J`^ffmgH@vbB!%хB7H45#ٵhc46fAͨ͞biZMn:G6dlG36Ty+~녞X/K8`kcߏ1ި@ɀ|Fwb|Ѕ+V.8] B^ 2?8_z2ҽT[ўCif>P[QמKh|`(a=ʈf!qH^sҟh ͪeIhͨG8߫bR8Sepqkoz vHНDk"||+;c pfŭILxOn!%3-,y6h?@H(4.tN2n e<-4)%Z:|M4Un7yJzTph6[f9Q1PYJp`]"nӖ3qmos&zGe`M>?z/3,F;9g ͤ>BK9Ac3ȸk3~?%0"! Ș xfWxzE(+)<׊;J)^-g2E~+UqFpl"כa1 @bszlx@oD< FhoQC^!`%ܿ:f5Qk4 J:툐dnG?._6е63d|O#f0Ӧޭy\ ʶcڎVoBo7ze~ tM/=a+l- ng:R ہܿVffz's1cYfЧg1j|8?h`waDq׏}OR{%oF }w;+Q+[OZG0%]nߤP&{nh-R H%JߐTZ&Xn}?qeMq>zk~Ѥo/ Uk.12$Yl S] h@CŸ QȚw BRyC!r7Q@+bK(^~ 0Cq4 90 _3Àa>ݳ]bO̿}4kJ8D:[ \ƚx-@*T( +/҃I%ܟsT0%(6sxD7wV\`+EI pb p}~Z%[a>*ee[ l~V:Q 6u^݁|J+_kW&>١[åϭ 24ņ=6EMO\;0MLV 7Q1RY?xIߓJ @*T> YN\d 7Kdak`ru.V,;-SŴ&atDkFfIf:F0/.X\3_X8t hnޭhϨ55ϭ_*1PS󊛄^P c7 m 0`Q͂6t\Nڱ8Amw=igOyr{7u31>S ?a1 QHrǓP\T~l&B+xG*csU:M.q|V:2Ͱ^#Æ6iz 76zVjAC+RYr/є{-dʆo_!;V#RZ9T:F\ЭE¯@On?OokE_EG1b?o9ap3uLCyZʯi޷>;h7/ 0YF"lΰJ.2=.ecf2} k1-LE_zU%ÙYj@IDAT}c_q`;I:k-cҫLJrIH {Apt<1TpΉ|a" &S`Ktu׊\w_Ǯv|EOpuz (p TE? en=4@xq4YHw f)1r^D rk8^'G; .9Q:ʊ^i 2wQ:ҶCqJqu~kwɼ+>#k.Q̵qcDr_zN[NpE1ӱfwd̕^3UwV{f9 `6vawc`ww=Y[ق]b 3QI['Zp*>E Z3sϞkY94jysf:p,(`~SߠEw=?Z_:xt>C$E~>Fa@X@O }=܏SR%rwzٛDB.57mH;Id5GҒbeJ+R@qx ! ({jbɀ ]MrLldx䑧΄SU)h5=hG8)FjKq?4t{y_Ϙh-U[֗XlA3'^1RS奔X#pI?S8S(C:5X|aOy8*a9;dbLn-n&n92r}?Z '!q#-eP\ﻈ9p:rs?'h8$/j{(:>Lfۅ0&lfd?!Ctx1G:*_J8aH2 |b|';.+`2>|s@3l[~F M,wUQ ;1_Iع%Cp JvIm 8t֢XE_*` - X M\4wip ӆ= CR!A7n z8*A opfA-;x.lf`#(ۯs$ D`uSYg8B;=hUk.]-:6Lq3Rr΀%ȏ,Md3RKQC*#=&&}|=O0/->ܻWç8B:8dkʯ_^GNGҿDլ/<^?xV0rңX.Rxl  ɮHv tSfp+"#Z0'3p%bVdNZ ǻ;}Ӎbzd!UR:4Fl&UɣeAmt`(^=ڎB'5 FtkmSaIͥ*=|~(òY/^]%xk߽9!y1hIos)+ew۔zM#> =bf^GT_JLVJl mZQK]5 ڪe:-"c< exi?<>*=ri@-:H6€0 "̀oz*~У|~ѿRM@#iMw^g>VݴzgIo}<INɛ%]n j`Ql]a@Z900G2t+EkH)ͦTmt`*Fcpgq^mRw70wՇCOo~ Ol–"7[%_kՕS(UtdA%vD=2$scN0VkŭL~G~L^Pa@ xh<4quFo\MB7QvUC󒹕ۙf/F&V!^˜qu<̣ٙ{nJ{0O;pXӃmp Jl6"Q5SUk/8Ra@hR DMnf)9ˌTlR6l<4Lk!lD2s&\7#@<.`L f LR-nؔRwF΂jDqnfa3>0RGa&qsܗ)#?O\@;}@űzw`F?A(;\xla@g.k^/?gh|e\K]\08h Ӄ<"}1mcLN-l[PtUҽy8k4{cfg~1wE LZ,lTiXA/O(Tn]+ݥ LFY4TftmnOKmͨvd# $4׈=j?`_z:!e"O H=fbr/ն~8RƼ۩OCfP1VfG3CY6SMټ0(yjvfX7)Ֆj%Wt*3ޭ9zە2 )͹=ԏpl;m9E?h,g3e=^bT线NxdǬ֏b|n!ߪfTwYJg`v"['4@8p P '-QV@`(U0*ù>"Ӎ1Pcf2&חNeLG$ ]]fѬ]Blp?8:A[Re .vI}ى=S39,Ou8ʉ/Ӹ?Fla@EoO?u}IhYG\Ky%ȝsl{o~{6*W!6 9Z~ 'g ?4"Q=&ND0}H+=GH}ӇL6ȻUA(€0W2 %rla3ՌZԫWz5:6wKaRAs{Rj6`*jVFz/||@Qy:as5["l LIC檃9Z:9 i?ƕ2p 0 [Lɟl)s6~x8z@-yH~~|a@ w y}b8 }:lp)y [G2[+s]ozrÑ)S^XS=m{VVތ371D-eT/d,Ѱc| c2cmyqMU: zJf75pΔ0$pC7cH}R5R6+]pu]Y3@en7`\opɁWw2g6 xS̲ÝO0rN6e\vGإ?]zn<- r(`ԑVGwM X7 Q#'r9X'!W3Jpބϒ9/5zGmQ˲::il&2bH.}Ꟑ/ַ2/CYO Y? B]viux b9x?1|-c?rt5(?P2vmH¡V ~6D =?.` )e*sVp1q,%}y;jWk^/_LRs; AEa@zxv-ByEPۨ>;+gg˞-vv_otu`Fßb;rkayk5Y",f],ϩ'MQ_AKT6SGslLZOKgBN;a3jR0~BFd&f\:RjZ󅑇U4l;0x\hͧFh ڥ硞-hZV>~O^/( €0 U xǿGo?f&N rg)iC7\^f&phӄ1=4A7,'*w)Rޫ0!!r;X8~ pT 4@7!_8R=ţrX.Gٌ S8+Ȳ LUoj(Z bs_~ֺ* Jd# ,  { sR=!g)E(󦺉QoiNQC<[PB`z_vze90Ch.>Cr#5 /IeSshS5,.vWu7^S kJʥHڦYṹHҥo*k/V/.N\渀'>{S1=@FZ~TV5 !*#G֩_y(XSwdoyE=Up'Qo~wr5sK<ҫ^߮5oҧ@׷.`ᰨ×0&3RAk{E~xGj6"Lvp?c'܎VݏQ`a?oɈ߂AW]@=>ӎ0 €03l^q7%_XoU]S>0 l.4!>d9ۍW"Rvn"ԪRۭkQI#|HqsGzy#(SYO2x>ZiFt/ ~^S_e Zj_BsڳDF)NALxhD-xUdoCBM ؔRM*؄Qͦ Y RE2Gh+RtFn߆ k2.tCw/!As/XB`{:ǥ_yF*L[ xdB% Nx bǛki0l&+?\\樉 ZBr1RY߭c?'|FC(ywGx :xvPç#,D$YWl˼rܷpczd`J) NTT2=l28Qni|j>24wf<)Fa@h X_' avf\å/#kBka4>P>0l59 oi*Ud^&j2l-N؂p Rn4Йe~%_ꛓr^t^p*":#2 &WO`f`5Mi<d~aͬdqgM6€0 Ā|"*'oణlZsyG_\~Z;GTrp{_@Zݕ`1'Tfxz33)9;X$ٺ8=sw2n \c;ua̯Z :8 A=V) 42$cB3N%_zw:PyQ_+//וY Ny#Yt|wX n;.p4ق? nW8s[Y?ϛWs/hnU56O_x%w?_||@Ϭ2ß}@ԋr zkpo+?Iε/[e$ƼaŭG<^NKdL{|KWW ^ ~wi‘c 3CX4# סVP.$%j#I '>>OKL=H~\MFߚSlX?z)€0 4)$I}r3Mr/]P*&7|a$aMz#\+|04:\<"Ǽ Yeڔ0ԑ:s,xrf9| 68Qnao €0 )J?^igVmRhsDTCᏺ'z3sDRBzf.c ֊|h4'LJwJ`9iUR+f_r}~C -wݮ8U 0_!cU= `-cy"TA{tbDZ,my$?m#]ϩEH^%)kj__W௣_7(tBQBW9B?v-Y^%v*(ml_ ̔҇v69>=eb0݃,iS E] xtgT/`=Q E6€0 \ʏ<~lV#F_ku^{3ic Bw|Iq]ԫ =[kRa@h H@..~&!x61f\[<b\5/иU1 LVP&B>j .nj$V>-ѩa@o`cl)v7] +*J< w]oK]RrqktUx?/Z%Kst2UJr}qIT9kg }gYظ{ N>[Ca?tcn֗." !ݷlSOCWYq??7LhaTIwQ@oŝc59`i0v _7Fa@f`7 ^_O~=}Pr#>#i0$]ykZ]:" ۽3_Yijx -mDa@aoeATq(ڋ͛g%LXMic}-f,6{㤌$,mrgq9 8bJp}M7f}~s;ՠ]csV|✑ t|B-/꺳\La,_Qx1iSڀ1=%Ete ߺ㍊,㍿O]}Kcl/k9>7c7Ͼ5{}~9`@lz]owM?csMoV7ϳuSg&I ǰ_6%58A`C~rs,Ll:/=dܐ<%a@a@oYޏ/?t LӳZ/OL|TE#{$W?Ox[Ƽ84V. BE$a@6{a.a@ .`AMt ;y8d*n<{|VSeew_}D?J甪\<ޟogb?tM7??a97:=ӣ)9-3̼.ߌx<բlȲ |Y(ݦ/!` `ߊQ /;1D6€0 OG?^H?22z$\)ɴ4-xZ~ I30ÁޭTSl%)#p @5ۧ@$Hǀijz%w$ 4RgXAg& 젟E$#M4܎30HKlBnIyƦ2v5]x HC?ìX" €0 xA`^5`LC7l^ "\*f 7Ym^NӃ iS'ۖWa9]jXR\%# _0Ni8 xq1u}[1kݗz1ox48ߓL;Չ j=B€0 ?cL*r7jzozv7۟ cCbCv\vsp )gfhDvf4.%lM_ +6zp{LSm€0G[Bv_`M31Cgۤ! Ha`!c>a@a@1{2o}O!\EsT|83NV4גK>3(WS{L37~\a0ys.)Oڕ!`}iX~c̜̏m LkU70m pRRn/=RIF8J* 6̀**3ļŨn0;?VO|㿟?) M< `q#KylFnex=Vzevn! }c Y#\\ݎ3io71ۺ`ƪZ\lrK-d:{[!PV -Pk\k6 ~ oaF,W[3-Sw/7 `3kՉ leJ( g |35.yHh0 €0 €0 4r#r€0 €0 |y\j,%anB.ϝ`<\Rz 7Cq}ڷP@9є#jCtKOg}:/"~,wMoL»n>lьuk&B~V_\. P|?o3 gWW#ШWa@a@aI0 Mka@a@'g7sk WV8[2hGJxkhn!9nz0ǭ9c}u}I؂e}c2+6 ~ 8Ee%i X.@xhP>a@a@a`Qg@oP_a@abjTb@?4?Lf]Au^_•NV|dX '1l0#3CfokfoQu8^),֮E RaJ2CMh! o_Ӹ€01|E~>rU{#Û p@4csȃ9#=%3Lwnyt%p@0yg ʴLxof 0-n*ԏhK7!ـh'KFg3=.+c8,2)=B>ji._7l\T: AFa@a@E XBa@a@2QcmDwC7ÿZcơj ͕ ȻyB+RUn;8@l?V'c}jv啊1afb P|s{|6:M;7`_~,6_X>Rr:2 jH-6`zϥP+ՙF+*\ "@W76?}v ^M4 |h'끭biΐ?fg`fD[e%:7[re~cWe[nY?9{''f6l!ہGG,ÀS0 y @IDAT"@0؆QݧqVݕEu|Q<x*U G3S߇ a@a@a@u$`Qa@a@>e4~w y@JZfH6#oRpk W7n5!Fȧ^CGrqy ֗q1N,G?˽X8p䯯|P/1Ig,ǻTF\\$KI7,?tQ0^eϿej4KLʲ*ݤ0  [|֍\\20 j:@.ک.;R%Jjm`7^Nmy%9pUE'uFZ@j-nWX:b98;\,48?Wkڦ7d9:*s/3I8أ>>8)P|#{c.Ey UPxYV DeY{Y8.P`Fv Ǹpd)ғŹ>*Qw Hs*x^x@ Fu/W]dY~uzِOh\ʪ̻%| R6€0 €0 €0 , WE.a@a@3e} s8A;NjE` bR c!>i01esR8Lbgm)';#Ne8M8n<R]v! X;~z8 Qܷ+vo)]u7(l%cmҙ<t5)fj3j,To\@I;a@(>pɥe1 Z4tr˲Q@5 )?MG]h}5˺^@PwJ^A_+\f c}vx pk؇}gY?s8ĸ r}Teׇ\=쪓!^yJ'dH'd< @<_VLϼG5vpq ^ 7f}aNdQ뎐14gkϞ up#u(龐G]7;jMdQ4d k藸?Gc€0 €0 €03-7 / €0 €0 ̇3WOv`Eo^Y[&Poeg.'vڼhs3DIПn0l!O.-ch2Ό>g_!W?|:\w~:8p c}a7\/7TŅ.,w3+}rzry8yi 4cTq !@pP|=z9B0 , T~*+T xK%-ne% m܀MYԇI|Z>P @ӜC? EkÑ[P?  pK[zJSw vp`Ө5uSsoc㻀fOEwCE ATqYٷYݟoQ3'sr,2 ďeݤ۲/:Y>`}Ic:x[ts_.FJy)|9ݒ4אg(@q4zߩ{}}`_€0 €0 €03 W(7 €0 €00[~7{@RHp)WV1g8_unzws78rIr듧J/q8(J'/00V \AG 2u|rihdN,'z.67,қՅfK?Le ;X~~(My;7߯R/U~6JEwP찘rjy7u~F 0} ~ g@h[@?4w=4@f`hB?,|; | ƨ GkCYGw'<| ±=ߛGpIdc49+W _Aޗ>z. ;pL7fp?KпxKf-k͔ _o޷0}5S7%rQ)Cg ;s:Џ+5Wڔ1~,/ 5!ţOp' €0 €0 €0(2 &, €0 €0{;r.C ߩz03Of/u6uY7}t{ғW3g6b=-g}ojLW{:ca0ʭXYC(9x Fe8zKc4Esڊ0XkS2E<K(@kd =b|"Sozy= 1S%ՁC<D/@^>N@ot%/A~.+x`U ?[хؿ! 8}?| ^s- ?? O} }b<91Bq[33Cc(DgX,cIhG۰ksPE..9/7??vK,̢TP \f洨* Q3}g(bGt#ַβa@a@a0 M囔a@a@9E䛘*i hK r}28\ cLq2'^;toLa׍ή]TwCl @Z'?-ԯP17j48߆E8dU7~^hMq>3lzu:XvPbdw_r&90 Y ?^yh/iKaЏo1)fxkt6c8"8'|>Frr G3^g^o}2C}\yS7 | PƠkC*ѾП:tEBg9}$ly .0t:gt:/< O|\&CfFjK?U}v 4oBQsjL?wW*v0 €0 €0 M h*ߤ܇0 €0 @c*3ק(H)Y05gqk\ *[7=F3EӞIdRy˅ތe̿Ts5cnfkH)L+uX.\Q,p4˥>L*>rD xcY6{juK;ySP8jVPv?~q@ϟ~?x.i`}LAHi!#uc}]>'v84,1f~ӳ]!?s7:&Y8QY+y+3o1k[A40-CUa@[8\G%Ui7-j9_A_ <;^?r023ݷe910l_$3m'p;{"ݲpS}{㫫[t]ͪ1_Syte>ȧgg2Fe@>ނ&LBȯCCX֣ =᎐ @>/ 33I&A8I#@ 0@ҸQ @>#4oV3\`ٝfOߌQAtt[r'jƨopPR?f5|ՠ&Bw||ߩxǿAd# €0 €0 @Sa@7)! €0 €0sUˠ#n ; &!Os+̠W_eYovV:Y)v@ )^r] 220xO-Z4oixJX.GŋËg0҄GSӝX6cAc>,ϷU X59F|[K;a@X0叕Otu!VqU50jA2nj=/WvtKt3 h>'c <_i b { ?yn >sNGrPF#~jէO|xQk.c9!c>  @f.{ N҇o]U4pT㿴yF PgTA ԡ] u)zXtǛ}v >p/!mQ!gay6(Ea@a@ai0 M{a@a@0 -!j)*;̀-i."Z79)8:̵n{utHt cҺcJ -X. RC X_J_hY>X*Pœs(-ߍrR1y41M[A~rǤhHq~eJ=Pjk"€03Cަw6Sk\m$T]ԯcx+}zA|nX]߭@֫ Qj29 !53  כp}!#=0? <\[ @(jEeԪzg< ƅj'BgpxZ>>g9x%nBL .zipcdMjF?@e>XEafj.ToBz_\C B™ ;GE ntC-udnKe{w߯ݲ'{W+0 €0 €0 M h_ܜ0 €0  mҸzuG %ziuзJ23t:e8`;g*c׀Qz8 Q,wP^CWRڗVQU%o/ !RB CrjOL0CIp~s{ Gez[o$;h8L=EƲӕ][}Ü rc*NSѬUxΩAwY`\/!f=B^ Ƴ>x+C[!fSO8npi8hux ]fnphM֓%p͸9c42:ptv[g&;8 {cUvUA~8?_u"3À3pA<`PthKct~?m:F? ahAO3V#!Rw{'L*ޥuJ._jǧKL/{ߧmYqW>c €0 €0 €0 8$@a@a@~祊:c<_ I #*bFTL`1g1bČbBDs$A@ݙz#>O[Ot[U݊Mm6MI*PQԻFHKӟSX⇡P||/Q)hT,qpRu[XkN_8d! 縸Us{V)ǃϲ?naz@ XXJ_Msu+y|7c[Ykﲁ߲q-B` 롕s"+omcv?6@zuJc$L%vpmhMX#]X}6gHewvAv;Ǭv;w#q u\֣doo S)n[(8V8oloOhƻؾ?ԭ6T+-o(\7xv"$JPݬ:4:MC@y_q4"DIoS_F<)Yyﻊ}Wa$7*1%?cQI! B@!/% _<B@! V@:e-7ZK_׊`$o.izD`h5@ϬN+^UCx|x`uwWsE0Ja$֬^ET􇻔fpXsc),q'>ULt%JJ֨^>T{B?Dt01bwCꦉ3W^ؚlb=wfʫ tw~ahutCб.{ks}; _06*wqwbuq["asH8#8 cםƱstzv Vxmk-3۬4D>ի*Ŀ[#(VڐrP{@r1M'\?5jK 4ߒW i._4_U"vu:nL"I,SY]`f\go~sB@! B@d<B! B@s 6fFjá8<>V=MdR@FE% KHǃkj>U >>tpW8k&..D\zyQo;нK<2:4#ct00#3/]P.O?q܊/3S_X=>d 4X$OL.n:Xx@5Ʉ5@zG->|G58s7YY0T5^ɐPf2&$$C|cqz셀B@! B !! B@!'`l4svrRL,MP{ F0TWjucZ x}~Eԅ5)l+g-mUbX.of^Vk-T>[uq|{{5C;FuZE8mF":Z!a@^ǩڇE5X){Ń&Qop5^MCRW4LZc\OƧ'fM^,:W%,yx3˯0.?87ݙ?kǿ;E~B@! B@[ 8B@! X_g?7aUU9qLاE#}t45e׋FQk0ԑ4f2tYk.]p Ņ[2TVY#UO^ c(طf ǡUz5 cX7V- mat!I=$ mا@|tB"jm3dW VP <ݭRNBBC?OCC}>"ބI[cB{G7f8n6祕zNV?;0ZBt9/gZ2J_IJ&TD DlW,'\?i${! B@! I Q! BJ T0Qu6ٻ;.ky<@Fg-0I*@ŻD8`uR?#R "Tz*sZnᇈ*;k` Ks К9L׽㧡?A:ލZV&ogmaf X]j%$忷<7K ַM(tlkuNN}-X!S-Vw .tNVL;3r_^:~й?#0rqcxH(pM8VqТގIa[0>=<&YuקoYYyĽ_]`FץT/jy=h'uoD]Dz=IF:otzi F\^a2۵d dư7"e5#3#oMʺFd~dB@! B@! Hf$3B@! ;3䷊?c#!5(DjTR#K5u *Fqp0qG0z;K _s$kivu]UzRݡkA* >?Ū۱ҏ)?&QjgݬN٫FPWת#TS* umqlr`ۃmV"ə3^duo̓a]p]<zN-0ԽbȱT hw";a=;X`q`#!Nk'Wݒ15R͡_鱬zx֒o3 뿞%K_h*t}O%[k/fKq@H ޗ[+toaߟo ,eT! B@! VFB@! `Paa*4u[<$cfc'Qqu)kz0kؾ,"*Mkp\:Hh󃽪{q]DGRc\T_4c>֩`)vwq83jFKrˈjQg3nջggա|&w~`nz#ijOuduf6bdz:s@掆v?-, qwys8JatA~ 9wg?9/p~E<ԆQoXe?Y]aJe*oyuc}ZOu*20A//ci2ϡ'8ug74 :AY*HRI`$r߬&CMB@! B@@O +3 ! B@1(& 5oG=W%$^O)!g庱:r_xWyYuX]6>O=gñ :Jq}xu8MYO@g)$^āzOk9V;zPP?T:Pe3cQvl_c~+sjǤdgU|[B@! B@@\ IA! B`%!`~SZMXMlJG"%V[>KzoVzx4yՃQ;\JW^j|Yj jػӬ󬇡Wr-u& (]Jio}N0 g[ 7UU{g4pz:Ey3;sW^ `*MyI$)y11sdB+kb>0OZI1d#,( 7> ѥDˎ@Ԭs?]%{ǻ{>"—R(T[X0ՇZ[90x ::"q6Vgpʽ]95׹yXG 0yn:8xwgڰ:YCXn[u'5Xhv a.a}YU˴c-m|ƿ"ɋe:%(鏀$c7DI? }?jB; NHH1-94ǖ`~i!$D%YMOSQ\NvB@! B@!2( B@#LK9<>wbצH0zSjÈFg-*F+gqLTEx|y؄5<85W::t6t E NcY1?1ކcAIàe ɛSc `gCélVP84|"2&},'d KtF1 >KwۦZgg#ʚa|a ڞʱź=C>OCJWs;|=XsM}N !X}+0C"{ߘMVֻCYU'e{Zϣ($ P?%}FmArzj4,{YAu[mA=#OHTH^ Zv_E,CU:5kW qPjo&+]:bY٨Np0nqy-.|c]tOM&~ޅ+X*r;hk5jo]*5P`@hnx>\}C)^xpht֤3_JYOwo'/0WSe\Y궍W^Ҏ){+gjuVu:YY?Z;XvGw'7<@0r )Y!y_f9V.C훯qr'tJ}6밵0+=\h ΪS@;Bۡߩc-4oi8t I597ei7{#? ! B@! X.$``B@! ?Ŧҿ5ƴ.5|C5A7vdϓ)2E85 ɒ;Yq(J@VwJucVI?ĆmNwV^/5C]nA PZ@i}#̟]@+~0b>I|[YW퉬3tPO58NAO&$2u?o6P/{U̼/Y6}Vd3إr,? ! B@! !!!B@!   bh5jZdnC["^3+FqXҝ5:bYp$Ѥ`cǬC `D x(U!N;\cKKt$?@NinvuV%ջjWVk'{6:XgX];|LJeGBKT _D<2D<t.N'/M߽I>SnJRYG MyI|ܾCg(q|}Vm*8ntP&}*oC X.W{0;Hpl`}VX͵ jz<] }#Nzp:Vch*Wd4310 OVJ 7B@! B@LYΟ//B@! jo)4uTWjT({hT1:DzqQ( Z`\MRGrn,RW_8[5ZWӧԋǗx%F''  r4[,[|){EՊOU[Xlv8e?bs&zxJJޛyWsU+:8렲>w`]+)$Zssrwau>c:9AڣY:XuC<Ӻ[~\r@IDAT.ħӋ[ZMGafTw)"-DHσ.L*{JMR[9 %;! B@! 'W+rOB@! w@&9$YɛQ4) *IxLk5:^,7Dj0hDhvs:ǛC_Q)7/ va]mYK|rˌl{jkL~I}ǧV>c#}1Ύ>>םCwY'a{.@<k9ε:TrH~ʹʇV^8;;k{hoWWڈgp>N۠N:L}]#1ާGFϧIe!^ Jcs(M2T$7%W]/%;! B@! 'oCE! B C%Gô ➚Ԓ6%D09D"?]Y[ "@5!*IM~<К-VOQroխ"bBe쒞. !p]u>B:S֬)t}3%gߋckCHpc,Aw)mT`#Ws작fu^ʡw?v뺍8q@Bp_4ɱE~Ձ&iCM imQ% Xϣ i[ ͇._25%F'gf3LBe'B@! B`E$ +oMY! +7ό[B%?I,w>$˚hh<]{@aDFxt:qZaw[q/`lݣ 9cbRѦ;8@tW6jNcsTTM.@u9.jB}.X Fۍcao:{=%kQX*&C߮@tZq1tR.O熰:`^pPpa9y u:>cʚ ާħ)iG: ږ:CYBX%$ ;K0hUG+LlL\LvB@! B@! V2B@!r(wH1 m66|fJ˄J}y:a$7E0&ZZ/GgmBYV {q;Q $~:3ދ'CХoM(˕ԴV%#:! LRuҮrQլn!#d_@EaeP +p]{yq~#6Σa' -4~j _&G''y+ЖjK j ~gȐ*qܟ7Oilf"B@! B@$Cy! B@lc*:'9آ?$艘z>c'~:B+RsBK8:QYxD#,nuVS=4 -zᘦ: նˆjf\Ty@ݠjBu=v'NhGƽG'±έuvR%:W9?nb}:q:ZtZWBRC+'3sY8oyu$vn=Q[ QeT.B@! B@!W*$B@1[cYF+cLY!@|sY, n߈.4 =x[!JDY=GP/Fkl}Zzzì.v] 3|! |V8{}银W^4l^HiGj"-TFHB~W2f4A&xlgp ! B@! XH۔gB@! ATtiEY4Tߌ8V:J_oW4^0,<ŧ5KNCMBK;!}tnMǢѯ`3FQsyB@(*iUzKjSDY]<]UX] F =Ve[er ! /UFh:7raNU]U b!ٝ:Xw.*^ދVblʖz=/UXS[ZVHrVG= =B"݆cxw.vghwlh#Ms's5; /OWu?u±}izN:I$&st D] &P :}c cϧY:WQ7V ! B@! L@V߮<B@! VLJzxը%5Fܒ6֣5sGKI'[c z\Fz,1ψ`@ƩՄ~ՁY([OwRV~AR TvB@! B@! 2" \F! B/ Jr h3jVMZVIʪ:Y Bljg%tF>(n¡>,>5R5>'sWc #Εв:Z/xq^ָo؍U\o>4el5 !@BQrϩTu-]l뜣`䫦' `MةUz߇-TB)U$qO*޺y$85<\!zٹck{+Vu} tc D*}j95cD K (RU6/&Kk"B@! B@! R'' ! B@Llm5FOmTU몴@sc YTiB@K5%B>V&y<25ѰESXx%iI}k#IJB`%`֣ZxcdLx$ ,ݳ6uqjUNt`a=sװ?pVJt8񧤱u5Ԋ pQVwGHwwquJױOԛHRxkzb (b~8ap ! B@! KN '%?_B@! ElJZcՎ+Rk!TSB>ZbbCJ Tq)=Y][rU?}q8X[U/A/ P]^BkhXƛxU@6%hOht&IلX ף4U\u$W7)}?_BQ7B߱Q!ouGrh뛻nFi0ϡ4]?ȌbLK;'9f! B@! KG@-B@!H~S1kyPT8^MhiMBXMp[ {=$?ŝXˡ3AcY_uX{'=]m 3B%mVTcroV?N1a'FujXٻK!=[ʧT=jOk}Vku"Vېig-4Yх_2o^%3mp|F;VwvnKVgw,{z͞_qLua+z oshͅ&tcYQ3n-ˈ! B@! KG@-B@!o*=*`OPwkc헤>o2#zCAdJ}aOgUo߄Ĩ\8/1Q=ǣM`.*?<)G0/9BkEx|gԄ5j ^8ܽ&)` gnF^v)44}w~cNϠBC`UjHH-0(ĺZ˹`=}hc}xAFnx~h|7VgPh3#YPB{W6>PCu:L}޲-mbRMb1MڪfNB@! B@!$`B@! 1Mehef$Uk]@K[ӵϱ6Am}^UҖGxgu49@bBxV 7(sJ ;xY$ְUgyxbhI|+^I0x1 ! ЈƃvU{T W"-Ǧſv?IlrKreuQqCg\ZAn*sXݱA΋j<̳;?q^?6Qi҃XIx@Wh!yɋig$ f} lǵKB@! B@eE@IB@! !`^ '*P}Cdb/]`aO'חuŨd}c\w x˨3;Y4<5|6@lk Ż0>#GFK?usO_unqGJ4?N&!?:Rj5n D vg=/O |$9[_^Kscl`mϱ;&݃c\ fXszf.Yp_$Mc鷡(]f+\-/5qyϓQ! B@! B`HaB@! &T@UiM:ؼCzMq1}i>\_7ԗii|qJx(xBtkt{CUx%]Q:YM;E}0>58YXhh+="t$I+ 0(;! S;Gb?;zUg(u9Mj՞ǩ[کVV&{zD%:[z ]qt?'ܠUkp~p [p7V<~E?e F~->/Z۱Z80]̳kJ{' mG6cu;n'?@:+M쇽8N~j]3lcV/lW4+ݧюt*b/[WX474 :B+goMBd'B@! B@,+HuB@!  `})W(b*(T&oxAf=4B8qDc-1q4;uYKy<<Ԇ5ڲ*l[x hR]GC  p!+&De>=a=tOOjN cBANYJ B`'5wuOqGh[2Hވmy?{K4`cwSOvcvxe5M?zjG+Fu^(ګ9&+)4:p>}O"0Kt+plʉٴ#DB@! B@$,rB@! M=ySZ)%آuh,^UH^:U EB} LA|>kTk& p\jm]VB P6/Tj,@n5qt^Wp-k|yX?F&[T/~/k#f++7ִ%,5 5U=o!1jn=͠'{':7搈߈'?/z'!>{Ůjp΀ Aj5j'S5 }9jG?E!!R1:[WDŽWɮ ! B@! Sin#B@! 225)OwM d ޏU7ԷC/QyqNp kxm YJ"~ĂWq6%PVѥ4`G7Co [ƓM{С%=dBE5R_0un<̱=A%s7cX'c ?ՙ⡃@rηp:Xgx5YBu!Ǫ @!nV8n6膄u1y! `|.MLH4qᾒjĚb섀B@! B@L@:,_|B@! V[]ų4dRs>ECawMOP!n~KY pOYymyo$Xuk)<:Mމ VVu3sxuKnS_?AG'AI˱} Qz̮qj}zQHR]G?Hxe@g%MTPc>=yF_BC*AKoy饬 e'B@! B@,gr|x! B@.?ӌ׎&9o 5tt: J^tڄ`'i|/qU4EvxkX+h_-1/yxREo >k`L}kxxJ юs~&15ո.~^]6FM6.djb)[ϒsgX_7nz*YvQnoVo2F}b#Gk~k|m z͙*^ūNy|bZY@_WXB. ,m yO_qdwLI/J(ӊ(Kټ$w e'B@! B@,gB@! Xq&lTR;n,At tc6Vi=3bp^ CޫA@x"Yq?5*\ˊEaȪ֋q?:%K\&74IXjr! l@nWY&VjWXO/Wgs%7Y̺ozgq섀B@! B@O rB@! D^i Ƶ3[N-PZН)5V nҊYOo">Ls[1 h|4ǓG` b-媟?bQ(лBŋYÝJwFS·Xg!c>tYjS/ϑ!&55՚ao߹ͅ{Ã磢95#%/u&8osf:;/M>^Ouj1AB3F@ۨmi5%ܧ1DrW1 &tFI t7K{c*;Sh! B@! ˇ$,B@! Xk>y+Nj߽7ɣ&6Vt- KQ泥x\aEq 'եQTVq"Ԧ/[ źp8ޮَ5̗zF?ܪzk@& Mbh5vػ{7VEQ{T=gn$;ϳ߻ff;3'Zo@ɾ @- 06'Ig 1`q$@ nɚIW蒥ЋKGQUgv5LZU}Z2UT;ƫ,=i]+oi})/oǫrto/$&+M-EVV=`q}tu O$@$@$@$@$@$@$@@|    @tUKߎj#+ vt"sAb]&3sWڡR{ j;L7[LNNnvzA^5ҩf 8*y餆n.YFfl6:Ek~`gڦ 㡳q<sx% B HvJ&LEKBϭgZrUVV}j8>Af1g;VdZU~̖O $L^ysLI0A`|aOebIю'p1O$@$@$@$@$@$@$@@'|    @,?tt 4wP8ʷ'/(ar$¼jSC!dUiL+g6 2%+Kpm]eC+4E76;l}(-65\3 o@B!ؗe-5A7N-*PZ Um ݦ|2`=VJE  6/$gCU"4 w2 s"ЩRj?:8GS4HHHHHHH<O ' -13fxƌ1 fǒѩ*~N0i1tQTP!^c] ٗ1fg]ʻן t^ -T7uML S}Q}dܕ /bT-䟸JH}HZ'`|W941 :N.!14~"l5/ж12J+?:I틊-q&y"      X 0` HHHH`^5pDEGWt$ ҨSe,^k \T;ޔIe8􇐩fkGE~CMq:zeiH#tنáw6\mZ9+ԿS04۠r_,=T_6G'#f\:͚IJs ,oC@A$sSIZd? S bo ]V;aoe{l}KoaЉ%}Q%ߵhǀXx"      X 0` HHHH`RIZ+M&|ชg=G`kEO'5R |\wSsGyj ӽ+@Q>ɴr|JaW:՟n6i4\m0Chch+Þ{sݏw"XtA#C>S':Կvo`|#:{#^ѯǿn'ظBؚ`Qh7-*TK-"RHHHHHHHjB$@$@$@$@@dK, c&i _*2G(2Q=/'V{AJ 2pWϲ6Xڶa3 )4mXækӧLtS]ӭ =MC:l$@$ Lov @{o_t/ٺCwYh1{y˯{}+2I{Č6]'nb D$@$@$@$@$@$@$`IHHH`^ڤ 5R&#*yZ?h5tu}Z_?rڸoAoփH3nbU>xQW`P4=Xm[Yݔt-SOq5[k_L弢4;'T0o5Ν.$@/1Dpfk=`w=S7y"      Xx 0`$@$@$@$0DGP,!3[I< ^HS{}[uzh{[[;}E]x128\]ͻ;R\Pc- 'AucuYzÒNk4i .dyl~E[n SwM27? \#P*JAG~;A~ҭp(uYLژ_;$8ܷ_~ӣo]흽n}V"ٮoNJςд )vΆB%/=rHu};g_Å$@$`&J$2Tn2ST:*z/w=*ݙf^O~ ,C}r\v5ƗqzuZGW92Touy`#)vE"`+J/l`x ~_"? e,mGG ]Jֆ. C_zZ[H[6=T'L~ ʅG lT#+f*M*LݲvN1FcHSӵBFRrj?*`m}H [/赸4]_B5MOVޓ} mFaЗ7 Չ V3[;eYhŽ-jTtx"      _ D~   ٟt.JGJǓV-$(/13AF\*ۼ+ yf6l3zAi֪2:|6 2If*{BO28|ɍ}Tu23A Y&{^¾]l]BCMN >lZCZ?}\}xϕ tIHPt([/$@$@$@$@$@$@$@ 1$@$@$@$@@Ip桴,&qd3H-tѢwAI~=_q}ԇL׃Bj] %=*wUY4RirOV>E{-} [T7rxիf "ty=*rFxOuFB\D%M_ SgMql * dO2Z' )ƳmҍSM#^]o2[{vO,=x v L <*#nܚi?[w~}b1\L[sd@&E@d t @* J 7&   yG@[$(A-+ J˲NsLD^/pkb?`b>ۭ\.-wq"SweWKC֣=Ӷzr /p91`vmAN m`~[Ϧ:Dqfp'fb4dPe9y .ߝ{BU@IDATdfkvpHHHHHHH`';'    M Vh&mp" %1`O-X3azm׾ \SXv2Ӭ~fCʿǸPA%4?!`:cICygP}-/$m c ;.av/`67CM7d&oЂº&1>^Z@O^ЗFS*$ -JNE @+A@E< ,~w|s    hqɬ;UI iRԹ)Y-A&~>L~i/K:F><*ߋRfe~E+oB* Q9ڢ{zm?U82[S=Lth94o"8GI~4f.*5d-J2.օ8d -P,ٖy nSC7ӧMF O{ɒЕd;:tw¾ ;@8ϪR?_2HHHHHHH~iտ<    @ 8h~MڱtIKlQ_\XRk+ _zo52d>f;9L v22e`X9ԝՀ)˟ٸ6g驦<[ȥ~X#ƿ/ ig}!Owg_jn>֛\tl&BwT-NRGzFVɱ\%k&z [&ݡu*BX^(IP䯀u,Ɗ%Ob'       _~i| &m8?S53=v+$KAW8,w<}m\WLc7luzivU٢Ij,], M/}CIk]C<\acd蜟>Dl5_$@=y>’zGBOuk@f7A_ɺC^NL{g󨠢uܧv,`ߔVɢ7Ӡ%AnVJqص4Z#|Xǣag       @ |x0I$@$@$@$H1Y,YK6rQZz%@uWMn6ۏrAȂCJrOLV.[֭m2fFV^{ʗ6tO^?lx D /?D/]Mui~/1f<2}kw/7{3dܻ2,@gl^OpCaw?2J]J'd Zm`/%C;h^zZ؍q %<.HHHHHHH`A!{ C :Vxt`&@5M%td_h㾟:hvqwkfV|\?R,[*ܕen*Se( =fRSVs4kV{n=!Xx L/tE]_j'➇~dͰGf7 =<?pMMn-I24/NZnR5CR1?I.7jq A    yC fkt4:~( FKKII Jҵ`SM[ =)gV̗Ϥr]m^ijMl}KA6R{Yˌ U<ə)y+ky;  }>[Cv]57E+O|;KAd3^= ic t|!NB@AtEUL\y"      0 kp@(-F)|UXLB/Z:Bk it=A3S8~~v~uYʳЖ!%EA6$ݮ`ST/A{)* 'C J]׬5tdV6#e%&}dǻm^?OA@;0e%h7ju~,LԒ`>UvZ [`7VJ /M4q>HHH~IQ3K3{8~Sh1 +pW&6 NK}GS2un xw_&-k_yzf3WTPo^+Sdm_眩^ 4c ,< /@  ShA~ )j>MP ?e L | a {l+[PYEuþ6x8Kw?۸{J NE3C9Pb| &A;K/h kf$؍)RHHHHHHH T>HHHH 3$hGǿY x"5|ԒLO S}Q@ұ~~ yfӇLU*B)? Tn1uUTЫO6dۼip`(Ȕ5%1[lwk =+C;+zwQV7eݡϸ_d4.<~@wC(WNd:iM(nZ;J O$@$@$@$@$@$@$@{>HHH膉UEܥcGuQ91@=sS xy_`J/2HOӮ6k{8n;`w[':( =GXF!?;L~7?.[}S:!P@Wҧm<ϳMw`D$@I~9B#).*v}ٷy[L[\we9md~Q ݳۡȆ`,L +*w`EK7}_^q]y"WC'_;HOhg b @ˤ#k@HAHHHHHHHh>HHHH`5 p.lGOui]v|_^^5SG ƊR2!3W% Xg~#z_63u}2d)Zd7xEñ.In1ou{*fE`gy" _y[}FΆNZ%ire?  >u2uf!`q-[Rw*~蚥r+f}ltLirpZl&(Yzƥ.A73Ba*%<p%e9šK4u2NB@A$O$@$@$@$@$@$@$@Iv=O&   'ܵ3cI"3fnuĐ+vӡ"(Qg O'pL~#=ko[!cML1IuB&IY;\?.{ zǸ~ۘz3;E !Qv|$:1ox:t?@Gˡ3dڻRT plDͻ+WB\}i?:> noLeWc'Bꇦ,i]\V1Mlabt6 ayD$@$@$@$@$@$@+o'   yG=)j=tZZ.*]Xv-Bߕowt1_(JK6> }٣d=o`7-z]?{\ݝys2Yw^إڅ[28w_C/`JFVn0jY4ٻՓL2c2l] erͥi_v/Yo˂4 JZHHHHHHH#G|4 #s,_Whuǒ -It`uzG ]GEipdfü=ͅE귊Rf.v11T\bEpH2"*VFnzxOwڸ"zh |6G~z6T`ZyU.ta"d Ӥv/E@r0[VTm1 U/(~Ob% דB]A       9'9g; G 8XϦIKbKm*EjtB kH|ARzށ[QRGFƽaSغ \?!ucnMWtv-]w~go?4R?B.$ P,[ m H -Sr061uͲETP%[ƆLSjQ9Դə6.M;@Kք ?3J_b|fǒBc*^+wJl1+80"?m\ `u$@$@$@$oV8[ Fy=vxi[L)Z#qY2M68M]Q_*zW?蟵q/LS;spDՊ˻r@{{z8tP [m\;2Z_o},< wq-8pG=_7EχQ~fCY fWNij.U&RɭOa-%\l^uאdeP&]/{8o`>#M}%h7E WkZLPEb @#kE       %{vu$@$@$@$@ "j e1n;vm,0$f*D؏ydv1%E_rpEt̯za paZTC?3g;8?ULH@:x]5wfcM+YxJ K껚]YR*ϸt`Æ]~g\bz..8,o(Џ틀7HHHHHHH` 0`$@$@$@$BEoh%pc1"3_/.JvmAV)mnJ ]mte0_CWOvC.n]EvvTt΄2IjcE/*n `u$@$@$@$Ipȴ(J͋8GAٻjX|#IWd>ؗlm rCǸGMhLQ_qb|UT.+2;s̖C7yE`|vOA$@sF`VW|}fn2{l`N~zvKVYUӴGC L+fl]dC%k@ ldy]wgM=3tt}1+,'X/KF, m" B2B Uc+Qq[HHHHHHHff#   "#yHÿ0ӮT'9OQ*ka _A7[A!p=:Cɧn$JD~f]7>Qۛʣ2KG#g3tgz^G$@ѱڱd} o4|W/po3J xzw=כ]Y{y?YV F{[+geh[YxyQZXA%"a~z^3Ǝi2:]ST`Jy"M'10x"      s?> D`r@*/ϡp 6غ!>_=nqBǹPq!ôЅwټуZz>fz> 6c5Stp) B @|e~{xU~Q~ F]jRir[pأP9fo5="*l=o ==u+:hϡ{c2>]vA9[9dsCf[;z%螰KMggH~YbOԳu-hޝM1 M \bvگ&R 5Кz -aT>`?wt weWdy?:݇}y-r c"y!ptbb+@;JOh+A4)v@;AHHHHHHH~>|V\I$@$@$@ 8 -悌Oi$>J+kr^AV8u6ϟ:CKk kfMh\f˟ K{ N[ͪ^G$@s(y7<[(~fؿݷ)JgU޳e8ao݀fg_wUA`{7E`5CPAwwUΟ?+Ӧrl }M."}+G&!$'Wa|еKʚTC[/@0k縿7/      MM~j~h   uX\dK{;L}_~cC W_¡{~uP<[@? ߡt4gB1 n3'9?HH lO vE cl]oJM6}VVIUpWoYƆM˨rY+wE:SUrKrN]\`r S;M%M'^KPi _;C0աz#엓md4tjAR_ ;!l yhY ^< T~0~$   M.8F 5N[ @ϬPPvV]gT+z_*tU}&qf\A_ۡ3(O$@$[!Y1 U3ӟ9.2mj^9 T6EyӋ2;a/cu+K_vHSV0V,y,]c l59pT]> y;vsM零irt%mt`7V"|~YSc l\KHHHHHHH`A&ố 57hFZVa|R`xh[ltc~)l_B*-ppw.գ;xS(RE0>G :y 9#u(K7ܺfnS;; N:4Xj3W=ƇC{ZevEeO7/_]Θݜ@"` e--]cv?z/z(t|+Qv^z dL^2>K߷dϗ[ @ =lc1~p?ϚUFf}=++d2t z :/@בо0Bw7[~&f*Pw9tLz_J3[T͜?bed~]=U4 ޟJ$@$@$@$@$@$@ ,p_ _HHH@tt H➱{YGv ,(o-vu:Mp}|l*lPTPZ;C])ۼ-OA&sލHfx 8.X9%:}lSB˕>]>ۣ ||:p-V+7^]~uRS׿r Y,~'Dڠx}#Aؼ_ٺ!s~ /žaV"5UcX1{=Uu)O$@$@$@$@$@$@$k"_ӷB$@$@$@@ttJ 4 }fб6@vl0Q=U;4q_u1[ c֩l* ȥ@y]y\8~`D$@S,oC?ӾaI8ҳ{4 3W2WA9O{#2vFjvy=>ܰ߳zU^UA<]lwnVo/MQaP &oʅc,e뤃 m/+@n&ZUUઋ@r@UQI*)?[ `'      Xx T/7'   I!#FbElV7;*:,ع{$dVP8^Wp% Cog] `;N %_ײy]߿ ݼh Q% 2NNp8$@$PpcvS%8s?v_=-mK_5ͶJ^̮,6`Ӫ~5GNL4;߿ 7Y>]ԝ>lZ^_;ƴw͎5oAϴU5 \Xu{`K])8 $$- .[-ekvַiM}ËжM1=  &pW?&pW]n]wڣBj6[Vsw?P&y{rK "2ց:T'$k+*藂yH`|x   )@n!m)I銧m&KE " Ȍ@ѩtoSt1~#gxJP.8tN!_{ %/)'}6 HV1_<:[)>R9+V:=;ZAWz\2lJ3ѫ<_d*fi\_ӵauwh:6ʴvkn jn6!&o+fp"?پGJȤOTZZVl΄ -It2ue ~IMQ$X#{ [cZ< #Ğ{HHHHQ[L66x^Ȯq.`~@_0[S'˹:8V"n*|b_w^5[}fꤢt3y" @p [~V9EC ?on[9CKlD꯵rݴLFN=޴~錣'Ǔ&=$dqot7_:e)O`Z~zZ TNٕg@Ifg>EuvyzA$'AH{[Cd(? :Z^2[$_CgDh*ӠAp' Y33c`3IHHHHH` HHHHf@tP ͥ7j]8(l9@Nn-y@~$%{aҲ6 -qM`Bbml B7b@G ZܔB$@$@$@$@$@$@{>HHH[4/z'.d +x8djTn^l HH&u J+r‘Lp[˥ JK{fpnI` ]B9u>dׇz 0,yPVb& ӳ- ;8UAdz4d:/y `؛%=[M.&-lKQF𹥥tB:Ak90Sl!P5H?B&tJ~d       Fs %oD$@$@$@@#!>":!K&ctƅ %d% Yv C(wgGчzt> ]?}]pw|mCf~XnU3t[j1ѓ;R1 @ދ;y "EZ7\;hk ʍɕ@.-W񳓰9\t;iطgVB&"oHJ.6͞(a*M${&B-Z4Sõz.T4)풶7uoJٵK4[w TՓj;UUWWZ3W?T#@SAf+qIr-k!˖wJ]+IV*ZЬABҷ3Nu0%+*x{5JT      C?56HHHH`AL2ՅiJtvN& <m}K^'쪼_O-f2H٫mЖE銎-JAkOvoGn͖kP":wwM V .v±ld.e{MVӰKɾ\mG)?i~{2{ zJ@.bL͗l>dӚe5M^C5yWWwiծ~|St?W2G$T2hQ X5T:Hndf@n?}'d7ȹd-Tϛ1h0CVR̻"`#~OK5SIHHHHHH` 0`B   gF(ZEZ$mmQcM O*#q}Le#D@1Q"#GfY_F`Uc*M;< }>hvÞώ3fȁn~i0h'a]K!%[{b Jg{VYif5ꯀ.jMN7=i;Eya\7S~'%$-ߵ҇1 wˉЩɛVjɲ"N+*T"ṣU@]#?5J$@$@$@$@$@$@sJވHHHꉙ+(>ǎ83Hc)I4FHѯ%8:z @jOֵ=29U4#NGOdmGڇLw N>/J2gE=1 =:"?Ջ~.,!ˁZ|_CO 9~=|76-]]1EŘl#f/1GԼ^wAli֯ߥfuO1Ëw$I$>OkGs~AeUx<,;@z&ʆ[ҦNw' OeT!S6ZeT      {0XN$@$@$@$0 4 :g}NJ{pPD]v|^8* qb'd2^؃uYu~%h=t^.0{ub|cԥٲRO$@$$3⳻b+-D}XoRA~?4!^ckZlvzgI5c++b22rƓMM%I NI0;G&[륶tguS{g/e3{ E  ~mFPvk+v " bԽww<,Dy=3~ϝ9gػ`/'CNoz A]TwݧG |p {_g[t6 Ы 1el! B@! A@ rM! B@AаGppkE(R@_AC?u:+6 =GfLƯ@IDAT5/WC5V]Ru'"p?`+8|E{N*/B@@pl2w#8pzȶz[!L=9)fхyz+V`$.OOP~6F@~3͍zyVZ P@i9_ٯQ#Q~}̠˙=>ל }9].7U?a=&?4VڐGx.w7k.@ԊF}sjv2,ÃbyB@! B@!0$`əB@! xι SlB ?VOoK?U=Ezp8X8GYd5gf tY1>^4{DJ  1&o Їwʯ#͋l-Sv)qˋB@֙DW'L?~zEmr2]m]!nrs+͏U7_1.meb-.WKЏf9<+{(5ԋmɠ3'L\!ݗ5קhr ?r^BPXzaPNi:EmlI>P ࣍R*b[zZKm-0 v젡l,/B@! B@!`{O-B@ Mp Gqa`9S#JY~"Mt>Th.KIm{:A±c.3+mN_S8N%+b88ҶхlD X!"jMnj67AXp =|*! _J51&?gA^%DOcr/qm6a0fj77Pٖ3OSTCʯ^vvs%Fê7q?qIl編ptӰGT?T=۹# Ays p#sP>0# :8JTO~4;+-6cuΪӒ mc6Rxm ]!0 |=d*"|! d__!W.[T! B@!  h_|! B ͊le|(s'YLLdI44Z9Z8o4o7Xi]|vbG>q)R'DJ y|'KR39*z힌߀>YJ1 5wl۩fmYt)ae.C! @`vmCUAHA w0U~i[tZX8r_:"Ar9DՓ~[I?mcb[k8ͩ)V_'pW4~+6^X]ބʚS¦a?Y ttESž+p+|V? a X MtՅ19c \fIDžL]И!O'|:s7o asNB@! B@ }gB@! @Oć&8&8g,L@3lx |Z8HЯ-V"ڛ0-ܴa'ŊO}o|/F@{Y!Yw|~rxZ Zft7T zlYCB@'KXǯr=y!X ӍmMЗ΄Z5Sh-H G}L:(FƘd~ܮlFCųUP@\^ iUQ{%fI =*wfngؖo3帰<7R sau  > -9C}Y{}mB8_>p oE}1(xK=*4;dvC{2"B@! B@!' P>B@!x UiT5б+7klEl֯ȅCἏ,4٫ t>UO`Mwq}8VE t '`* +\\9 M8r#c\nҏrУLVECE! 9Cjnp 7Y#j{>b5˲wWR5iBl+UN/0fp~]֊805ޯv-5Y+7FYW^v*+G~5w\zX2tu<kΜ\؉|e*>"ۂg H@mnٖŬB_ mCWû9UEʋB@! B1-gB@! "/ jI|Bjc*ele=T;lez}oVJM-۶#åNJE3XeV==56F@r|G}rjyO.+.N+wv-ñ+9:  },s֧:ln$B`&sG!8 gyGOZwߚƾ䷚Qv|yʯk |S QWl4t~-y5 bMJMX ~U7]_h+w)#,*zh)=zsz} :۽٦:EWޱl.ʡ3Es>m#u"7Yt/}31>ר/f" o2}(|!#|8 /npGpB@! B@9 B@! @$R-ݑXZCo9YlSh8uU#l^r͖t3uϓ-X Ӡ9QgYuX,@/oǚ^̀G< 4g`59hKJL! >``NqOšfhZjS;GSX^ᰧW|?dn\>0Eӝ\O?=!AZn3M+b-}7W+#O!j,7S}sƖ61~>rq.! -fS(P٦s6kEBvCngX>::ӎ*Blk4P1+  E VB%V(B@! B@4E B@! @c#G\ֆ.LKADX C\nO|aapz#=zMܸ-Imv˰/v>~A}vzx:o򰿌r2OħV~^c-dkV$8pu+/i_JOɋB@~?g+{kKBKg#O-gnWqٞjW8՝vi-ipsԣ(/&k@mJi6./BVʬ?w.-QQ,/B@! B@!o& ?<B@! M„{p S-QWU]bٞÓc6 { [fOݓİ.QYv4B}aI^/E寡 au/],zUdkx3ך*@?#}KrB@!0&|0.3_p> +iwlec7sgǼt[yflzoA_H|1zӫYkKXJAA) _;kԣGzm=2D3ݾ~:>=Dj͊gB)L-{2?Qk\LE_yMF};JY5ס,>}BvnVlk%@%5E},SPXEySZZE@P# ˜EB@! BGOKH! +Ê78PR2 }wtag)Uo ǃ]&kw=mWӕ=ZvaMK6d21\U]^Ċ"I%8}g&XG%֗p+l5KF4lCm's/ UB@!7Spi?xЯ=kio<(}E/SgYٜŬW2˄^cfg~t jI@BVAVۅZb󂹊m7C;jvY < pܡ/HnWqI~p|%|ۊ<7b;ys{'nέ9ԫ~Vܚl\ht%MG>PnAKCP(י@#S=SLE :g[! B@! k H_[&B@,XBg{xȹ(V:݂VS`*P`R;:aMJ HWȏ?-!,^vYƱF7 =2$S> =<@L;p{Aciw0\BekktsnnKob%^'F?~X1V^xq3gw`Ov'S(O;گcU-zJCYk¯_U{یtTE庺-XO_&3knLt4۶^ PnM_"0OB@!'hFrǘ]ni5[X'n߶8c?6͹Swzd(xgִ_MњlWؖAHh_8V,Ϊit VˬJ5+꬐@ .;Qݢް&sW°w[m - f>#a`]Dk_7Y@"B@! (:aB@FB  {&~X>fC(]^>Rk貴6B>~W,Sgz8~<#"?p pN?ח:E8-" ٨QdzBp;] l^aXUwEgsoE6a/UICLBW۲.?aM@/UvbU򜚖lb-{XrkZQbPS%/ n!^>z2s%jY v4Rg[( nCCjZ2b! B@! 'ҷ!"B@4~<8ʺ?8V?m&};u4ލѣf̗h}P i9ي50k/z~\,k(X @y:8tu4=^-^Z5=3@odD11}մ7pSУt"$p oAhVW'\E=2򬑈B@! B@ B@! hDx!K[l0qVVX7^a2,[H=8 xvg;O=HVb;mĚ)UKX1ˣo~P)tg?c?+nϚԕHIlV L8\nt+tn_b0!pbnϓvB@!0 xo}?z>Cso#e ;/ipM-R}2̦JUC3ߝm}nz kdE%Ϩ@$]-&p)lɴe=*:'[?8wW[s>W s嶯}5ljF懲6ʪ*&@؛XiϭWGB{@PGh 5g|4V&2hJPߠ{LEB@! Bo# zB@!Ј Uʹf>mPTpPb(Li8t О=a={W`a0o3uXӃUawJւ}\\ǚR^5>Ba`[plDu/"%pܣ'o0IFN$HEl6KeכCPs.#8aOB@!&M#8Z>b:j&ma_ȱ2W[ٝhS~T+ڵac}a׃92FQL4J uZY&؝_-qU|$V nCFuTn:Y` Q*P;܎6"|NU+ ][G!SOMA,Af֔Bq<F"B@!  sUB@J`lDŽe5m:HXy׌6]VAɾ};0bل=mAv|(tV}u~}i|цд$#H-]%%Ĺ"\"qe'oR#KX,ѐ>o应`y;=msY`B{fϹ [pҳX K!&911<>lY5N {x3t3nN,~ =s}"'`v{p*t)^X8&n"!51 M/\_ z~.߶ɭ_xSyǹ\WrWzmU>=N ^:ٖްQw Eh&ʋq =f2tuY@@H(B}'d>;P}_Aø"eB@! B@~ . ! B 'Du{6R/CXyOzJpδ#Z:υ@>k.xЗp༴w CMɪe(L>/퓛KX-#q{iU^zr )N׏Ά8oc웎. m=,KO R+ 'B`>t{rva"!Du|I{鬛@M@MplqstD{qxA\Ωe uV]>3GB(kqCv4~ k 3vb-YGovq.'x~}|z;Ofgh=u8%u3Yj5GwVl ՗ЃVG0hGC7Y6 g[!-~~n~snP^B@! B`vH,! B@Ys0&g/-봜kWu&Lu | a%ۻ3jjA47d{E.7yD%yK\<] ~|Q +.gP^]Ѕ˸nz2ԿҖ1 %7i.eQt&N{Aߋw ǀ2.4s~r%! % %9/h"4*B?@%ҿEnV@@9]b^29Ӄ;YkfV$+A枊Kj/Lz vU5BoU=`6cOϾJ# x[r}:W-}lˀS R=tT.m{%ª6~ưR&܆>@n"K 0 = ?-iwB@! B@,`_|\! Bw  %BfԳr[Բ6jUXa>Ƣ%jo@5{гz5h1š>%8K߰J@Q߳$tV&/w}^>ִwtz+``/XhmX}, hCz9>~10o,B@y"0? U~Ih?^jW7[hVc`'Xm أ-X=ҩid:2~d2J_FYud)k 5>>7ymj^b{B E;wyq:V-_ r܊.s\O#Խ^ ݘ>aP he0"'ؽ!#6V! B@!@ZˇB@! hpXwA5木9򣬅)Fu+]ma7#??1OX634z&nRo\KJϲ& n_zڽ*_(FB?b՛a?|jHX0Sgzc܎-MOBK#/gpO?r9W! l?=w~ V9/`x;ů7Pwa)z~KJ4#/Au>ԟ8}K^B@! B@,P ԧ+B@KO-MW}9LP9$[ DnE[.P]7&w.rz'WNfM6TVC!Q܌"&K{Vɠ#n  Cl)V0CٶtߺG}u"2v)%~EpɆچwNT!  fe+Ow*Wex"zz?Qj3 ۴ 2Z{4ʯozGj}z?%je`zjn">VPxeӾh1p`?jbА٨DN@0.Q>K~6|`Fa BB@! B`'[ ! B@GM9ʣq>`Tab;Lt q^[jMh3Z lb+e+0p`.[LSܟin>&2}tT1s{qyB@e~zNߏhs\z!Z:eWRvf]Vs^3[>y%uⱥ[]\,bEԡmck`-O}tO- D@޾~+-Jh۸<_ܕ5XDdRe8"N>P#PA7I\_2磊yv%>s9~e% h4= ;% )v]k8*'|%aK! B@! TB@! 9aYpaO`v&[ٖd* EF-Lv&*`=nmfg5{i'NXi^[ŵYp(^Ká+}Y-8l''p@wm1]XxpYDi(Bo$PJa{i[f}4+8Mן%p;|K:w.~t7ן=~hz8УU@yzE+??U_=~w{4IIz1H)# i[?9/ۥӣ#zfbX͙xhe bs=fOh;Vm0 k YU:lk" ]> ѳRh]W+YRG'.jV0e+0> y7B@@oB?!_*?};XGdo)htrW|=6c]`6~vöZ҅qUn!uZzvnshjn =Doս6[8O^ȶ^8݇ oբl%X Ͻ?sPn!=\]EY]`@+!_~;)tzUA9 ##s@lڇLag{ P` ! B@! $_ ! :0Ax-h)/O|lH5&퍶9.jV7}XWKƬɭ-YGQY˧ mVw::8q^ܤ@r|^? vph7χ&!+a'Aa Bf:Z=5u$}Yu9j۟վˮ4iZ:-`V.0. A(w"B@! h$Q|!B@NO Ⰲ"#88 h6ue+r޵0ʍ_TnY\n  Vj}1O؎Ǖbu+HP>lP-&֣ce\|RseEY/ݜms>ΰ>u`?|ԻaopP0o)B@w~%3aſ}?=b|`G&8fs]V>T'R&U$'ŽF7@vcuEܻz=o_0t蝱oߩ4+O/cꮬ4ޖ; V_@E5&#Cra Ԕzq9H-_i7&gj Y` Ri!i4BGwGw\;\_T! B@!(H@C! @eѕ01O! oǓ&؟)p>ɮ3±O,Vٍ}*`;l;VXh5^FS;˻^YAtn+<Xn ^#]1f)y:(F9.Y.( 5ڷZ;zWW΅nYkK*Ѝj7;5n IYfESK˱\nʚ>} ]9~U ]gצlJ3GضLsh;{ +igq{] S7k:Ch24RvB 29)I! B@! @#PhtH>B@! 8b6o:.< &֯GlngpI+2jnЫq^19 ZmrONǘO01=풺)y5 H (15֧%(7M4V:t.tv a\6;#B@!G9Q7O{nZKpHz -X8֝t}Y>ՑjVs `>dgo^0pۡzXqo/3>S8)/h'8CuUW2 t r]z~\95]VV75}àSxNurssW@@&UYfiiWeAfak\#hf!  !Tp;%%->P lQuS h;yB@! jalC. p d?0@op䶭܈۸@֥h!Yƅ،Zr|! yB@4XIB@! S?%!eoАfk&i=ZoXV{ =RҾbm_͡^PJz: emz{ɆЖdIΰaM |Ķ 9_aۧmw5X!v\/΍'d$r! Xp t1O6ϮGpZZAZ)74k9`FʪT~8.*wVKmp+쇰{z9՜1'' wDUU,`VqW~JF忪YM\V㭭a6չ>QmA._Qg.x>_2$YFl&B@! .ac02?#LJlWO5ޑsWv%\+\`Պ0_ϾBŁ49@IDATóqr!   h4_|! BW4L6sSQR+7AaO^7΁>Kf+Rg/rYմ;XѦ$N1,Rʵr/.OJ#-XV~ tCb[1oR 4q}5+ e[6ULTu8d㢐D! 0~߇CxSfnX*%] Wsy;ڑnw[5gZfYࠫC!xy! B`v🽵ВDt,5i*tq$zޯ}\no{ꚮlI?ִekUt.k|Hy%hеK8޵lɷ'EY&;o1`w6q;|&_qfR#B$@;t7;JVuHzmjgb1-YMm>7نs|k3Y梕KkVDIٮ| Wb8M Ӎ>A!3I]-.+]eɍVo6T볨S,ITNcۭ[ZK`p@-LNM-ꋙqh 42CD!  1WP7{@@Ϳp0V!̱*ӖNyOod[T+!ht8J! B@4^|~_e?[dYjٵiwPEX"SG| mǶͪHlC u&B(nǥެqOX;Š. wjnG7 й}϶)qfd e[Mwk>2ͫf"7"#B@npi2:::rxni|ssB@!X qAP?̯dS;Eoگ<ۼ>t}eYr! q$ ! 0K-Ä{5Go#m{%ڜU-IZƶ}Άn`߆W?ʪJ)@`\2,I}9fw)̀N- x8q/GNKmI1ao~\dZ:/ ~&m,B@! &&8f[@٫i7hCf)Y 3>\5^O[=2EwMʵD,S 왵/Cw}]'ME%Oc;6UX.R# X 3,v9{ v_-{'t*wZvZ:"< Ay ! B`Ps\eNۏ[Ok3'G"S…ӯL /amp4]w: eG>|?3ar! qST@B@! ?~?895~r9._8o\|,Fm*L|Sv vweVUk:--z5iZ5n[Ązt_fXKOWK |Gޞ KѰ~7L|S>p7B@ Fs!cO٭#O.Թs>0;ݸK|:UxSSJҳ,jh~k,/UسܶlZ$Xu`%=-y&+H :A#sVMluaVOoq`B݁ h?RhMi:XoRHx6xaƕAŁˋB@3 cwG4| ;YV{Ƕ^(}eX5%f+*kC;#Ko&0.[s/vǥOw8DB@y'װ?8/ʡوo`7Ív3W¾<sތ~F Ewr zI*E*QBS75v2\Ngqh~MC+Fpsٯ&Z BƅJ^B@^T! HF'a6d{HrFFiΪwZru ';K6[1pȅFۉ|%'k#nK8Р`st <9I!?[ŅB@!?8l-8W>l"8O~9dT _H-z{مլWgիNK1&^.oq,t[wEl'G+;XMމ~nX`{Y'$z ?E~DB@y'[pX8sж;\nD};En32%\,q"&}Krk\V=)=ՌKGW]m~%yy0k'twy)B@.ByU > ڿuJ9M7=_ fyM_=jݑU_NoJWJ0ӓ`?_$.knU'O.XЂ}α@Kt t,ٻ 8;]=n܍!A C]?;.w{pG@}Կn^Hv#yT|zzzf1SSU]j:^[1N/b`_1` ƀ1;e^u+ĿY03f0j cxm ?막OJ(iCj Q}v~R鴖&ɼI]t2 |щ/>6%BO?) Pl[TO-.h>7JO~q'NV\.!ݞVA@>3beAQ/ q*7%ML4vbghh{>$~ʩTh_Fƀ1` 3SFf}7pmd:5Sp"8NAhN{>3?,>ͭI >Ha/9ɺr:Þ ǿē+tq;nR}VuUz.:ӚҮ>XK,\{J:i߷bh`:kҵgc ]:# rm_&̯mc0c@|K)? (s7%@MfA`b[+D]_ j>;4^x{ꪋ'4l;P$7Zkxhreٚ@R};vch/ŧbhoI$PKmo^N(X!Ӱ60c0~d D{%쁕h1 P+8/O#3 ,6&>GC0uC )c23 v {b\ޘE|&ҨZLcXObd gUμלa4ɼ/+Ak[c03*ڮ5B/DH괠֘_Ҳo0K9( M[q`JVYzRk[/- ,m[XQwA=vX<(1 eၑi%~I_t.T1` ƀ1` , sաBR1Ο۳'<|7&iWKz 襥^Ϩ{]'wev{>W$@OMP\7 O.Q|'@[} ]f^&?H*wt@IyөIH҃VQlEfU%4MڰdT1$ ic0cP9ekL9>%,DTxO ۑ֗>}D+N!,:_室 ّgb?}:&J`]b[@fh>N@EzOOmbϗYTWOE;%ݖ7k=lS>*_ƀ1` ƀ1` %uKBvE3?гmq`)K%c㡻V@Z%yUۼ:TL%Nܦ Q[z6|8WN/k@ܲ7'M4AϱOy$_j?j_ƀ1` ƀg{el{/?!C/Xp@~$as28q彏Ѕʏ6 Lc$,v/@H?JF$.$DZz" $ ǡX1'41c`A1Edk,ߜ)[ B@>:CB琡?˗:!19p,fctval)B"tSٟ}zоNdS\/}{@ ht$uKAZi70c0@\޻cgf]؉dg݄t00MZJ}@;yl80;,ոTEvh;+dws*FW#q0DFgTuoÌfNNjыz>_W Jmc0F3_}K "zQVOXihc`Jb MqZ %$< ExGn4iQv1`  KX@#@1=$=~0b?b Ks෉1`  PKRJB^|z CM} &Kgwi{m3|o0~7Rř:Ĺw;YlwQS/ kNjaF\hc0cw{Ĺ%b wƙƳR ħhOFTvgJ(Kfř@qkNr&ќZu&WEtxOVvUzq-aFWːDr &kA^)b^XUϥz|@ft:y`2ڳ3MDg_ˬbºTwU_=QǶ ۱4LօRvƀ1` ƀ1 º9o_uNcqƚkBO`4TJ*Z ^ҁtm m{ IP' ۱JǓBND@rK;Eܝ sm?u+c[:o|ߍt> Nݿ-z/Homoac0c DN|&{l!/GFw㖔?z/~`g}CO.]Lc,rv'@d,6Ffp̐鮵GVej ̐ 03`F<0bH`BBcqLO [K#M?+2o%mcr!aQ(%Rr ɫ(jW_Y61~>Ҵ\ 3G68?CRSe|{ҙ->)+`dټPy95c0Es{7pjwDF~- % g#㡧;e.._h&à&k.ҥr'WR*M^K=vwrNs纗UiFAMn v^G+WZ@?{wwI!Eƀ1` @}:~OC|yY˿*l!^m; .+ldtc2"p)AqLECV>\!mc À%,< c$9EM q8؏b֓i4gu`(&f{!*T@@ ? _?'0~Ns}0_b:0T2K4l>c@M@~3%~VyUc%;[cԔ.%=,SVG6˩6Ŧ>\>b ƀ1` {b@E?w^ UI-}鹊nD훬oIggWe>ۑo `n*|eR/ Gmo`ik7&W0 )9MZ':5Q;}<~DxP_LJCz% BHuב]@'}!bbc0c ?_ R-[ۈGWkdn?p-Vq1WYGskvCB o1iK2Mc`c]10 2OYy =1|Њj0 U444A  11tyt ET?FZ ,BtA<7PHUU}" +ę!XXex e]V*Ot>Mo&yb8:}v>? K mk ƀ1` T-s}x bF>Wg~&⟁,?t{ʮ,|)?i2ܻ|slOuwv9yݞlk0EKXv}np>EgSx1`8պyI4/q|':ژFZˢİ$@*LFEƦP-oeQw8e @CO3c|^EvA?"CE1y>/O'Ty.G㾗+&Vg̍!/+~֜m؈Mt,?`Cc0cb@#+ƀ&Qyto͉4Pm ={tC3(ޭHI ܧ z?iRsGT=̮H?W<1=@:QGIJe<;P۟skޗNno ;PoPYJ}% ~}U;Wr{h60c0i&Ze?_~d$L QQ&K?OP{ p#𾴻Cnֆ:^#YG~$=Nⵊ:r<aƀ1?`$)F0Gpyz!ӇvQͫ҆ɱHY1J&y^ b[h xLj)P7dV3Α-H C21YL6PE]4zlƀ10(;XivX6:p a)?+S?.J):HK}"X'g*tP&!$iIgx#-sbc0E~>bn$pm~m+ /f^Q~._)O*j@?Vk}/ŻUz|MtNs' ]F)v&M@>A`SZ2_+D1 j Q@beW?Ŀ*1c0q}o+or@j #L<+𜴕p=R'?DZG{@~(^Nt=4`C/yh=wE]FyR0BwEvAƀ10+o%!3TaOKiCM*O R3ߐH'A,ƽY}[Nc}~ ?  !cG1` g :d>Fl,y KDoC4ӧ"lam6a&OaQ|ֲ ՏQ}~m_D{gtc0c`g ޑ?.V h'ٞd@S k`?;"d)>ZԊL @u.:UϫfH{Lg/| P?TMk*N}i=ůeF!u|B,W1SI=8ƀ1` 2ju:1l1,' 5Ml.,P &-.7%!od<&IoAMd$ho7Vgn$:~rw]~Q.Lc 31Wh_.V 05@?sI ~Bd)趃^H-f3aX}+$˩U+@Pb4%j@P (oNEzzTc0e3c;.>r䭤o*!yHKV>=!_"zp\KZI!)NڴC{6CuY6`C!޿D>귛n ƀ1` @}W;䗿bǢoJ4k[c~7鈶%y|e0S-E-6+|t)V@zn åd݁;TqO" TNk)v_P= 혗Hb!L! PRΌec0cR([};F ǘ(բM\3J+ЋWo4ԛ| Cr (lސFd]DNtnxc:e$McXEz \pD4a@=-+qA3P \5FV@"8LVMC%uim-N&RKNp& e1Ĉ"Ŕk(I@ Vr3q`@eJ}<ٟxRAr$of v!@98'(%`HEHnf )K1YǗO5tI7HtKAfwHYoVm ƀ1` 9ߛ~8Ҽ'#P>`vTv>0=w튉Cq660]A jeglaS/3$od>X~%b[~E;TqrXiOULt~j֤^ߏd1Q1` ƀ1P Dko+b@x,PO~%?4K=]Zh0J㗴om_ۏvQ 6_;nU$+,7?'c[,`n~okO 9/~1~zEwP/][ -I% ;Tê9p|,%Š)tB8ׂ{ΒՒdj LDfyq ͻ_Cjb |eq%#ƓԸm>q-KSW1VhNt;z8OTbkAu@38ڗRh)Oƀ1` ƀ1PA DōDx՞pr-@γCg[PE(=4p07n՗?Z3^ zzp=Kp=;:ϮS\oQܝ1h]17MIY#i8Q!M/'ƊR<1"VX`0cXd_-^Tx JNP% y&mFA~{,7 H{R8_uHccƀ1Nh5:?-f ed)=%g`FvAw:O!ďCE{Up^)I31\] `8Pi ƕIYțSG030hv oO"1! bftQO,Ҥ~ز=]G1` ƀ1` ){1y4X[X@O/-mxCi%`Q[ފ ̫H՜,Z"RQ-g(} t7g;+.Ov>tW\>T&TjAYHb"@PWH1$ KVYOjc0c`c5g21yObIڼ7 X-S7[ԏICP9~O %>R׏Ю2Q㖗4U~ƀ1P9 X@-N*iԍDÐdmj58Aj#2ipH*r)DPa5?Pê{P7PD%'H& i2 )-P*nh ob?'*ψ~sŸڌc0c17}2/䶙&F:i+VODžˀss')KUkuyX:%`zTŽK_s6+T7 (JW}G7?']IG]U&1?];ۏ%Fh7jwƀ1`  ~d`Lp򞄿9-9zce1nͣ疅MSd7Iyr-h ~i c610?VJ5T`<ƒԐiIdU] 'IA$$yއA5QèݮQOI$;Ji%V\S%@kżu/ Ň[@#60@|X\QGOIH^돲1` ƀ1` x0=[<@0~ L P0^q ݥ)hOWZڊ ,\ХO5^Rp3kZ}v hc v|YCjbbē''g$ Z`>O6ƀ1` @3="Exo6oXtxTr5:E?5'RB|Hk#]4@ƓErƀ1PQ X@E9f*m]m@Wxf>W9NQ}$z> @5t>s)6GWwnSRh3Vu$/N1s3 {Ͷƀ1` /< Q}NNjG1` ƀ1` 7>-_e3R-O+~KCD/cХ7kI`n5(ؤj纣js?T Lv= tO': MőN $tEq+:FqN-UD}[PiXX$u]Κ aH vlk ƀ1` T:zd]q,詼?ѣ():Yz8CRSTy/C z2OK5ZL11Jcm46Wɤ?D㥔VtG!4؉_R6֠ϴ=Ք ce%PSҒHk2d`zG {y]o@IDAT4=ƀ1` ϡQZ{<1` ƀ1` `pن#zIK~ۋ?4LA ήJB/hˡ&6UxSMׁLNvi Ui=h%CƅM&36}T҃̔{Xmc ƀ1` .#:$gJeT85U+*~'g RHZJChЮmc ,2v!`ߐ;oaH^]q':Z !R_ݶça4ӉA0^!3i*X'&$ 3b&a0-sB8fNch ƀ1` @e3;Q^ :TgϻxNo9XcUu(nUx_e&誯ɩn;Hɿ: pҶ@zUQ,WXRKti D%(1c3=#=|@ISI BfvZiH*T8Tܦƀ13` .;7z_KQ/C0 0h _PCP\"D^z\T]"pqxybAJ B CH+clםG2c`~0gisꧽc;Ҥ UheE#) 5c0cPҙ|1].;Y^]|}^";zvF?'ot&ibЋM.;Nq[CO-j?;l=ѹ|bB[wtIxT-X.R$ t'>ߞrDKByXt}ljmc0ѳ/{G2'OXL,1y@jl&0NkzEwM%ؕ>f'UI*1` @tIW܍ FafĻ]eDQ_(řt55=2!`@U%?H3?`Qr-!Y >} D}mc Q}9+gחç1'麬0c0b`4}7o>Rz @կlNn[򮪿h@a?e] Ч#NXŕJ!xz껧)|܉πk&dwbOzGk%@.M T& U1$~bc0cw@ TLBcY.ìB Ç8 wN]{{@ҳarEx7h;0Ā}j, bmXc`>10$ ᾖ=35:Bƅ3mtmoKp1$%klY@hѥR>1Ud hUƀ1` ,H?s[3}TP Z-  amB8>ǍO01` ƀ1` jxVB ܝEwn SlΛIb֙t4L|6F;L0@'h!KA!=հ=}g:ߐ27A vd%Q1` ƀ1P Կߏ=hEnJÜ<|-U2L🩞ߞ(z^ke txsBne=i9W]lc π%,Cf`|7.0w4IoBG` W ,fT tGb10nI 2KXR+Rp1` 9=]GU"UҧO= H!?-O<6ƀ1` ƀ1` 7;kX/ߍW[Cq9 Rg`Mn_Fϧ='~SHw"Ŋ%j@Ηo)5 @\$_ΐbH z,d<:mc0O˃_o~ JĿ7gx`0㿙?o%{(a}{K1kХF%PXW41c`a@?˱+1z ĵ5ϵ 3Qs@pkV ؏͎y՝D{}QClю=U1`  ѱ:;?(pKg⇤!_"?HtN1p7'Uc0c0~ 4}R24Uq3]Wz~ə+'wM'+%#}U?ݣ}r$s'RD۳>a@_l[ӊ3dI=H>؉a?uְq\-l 1` ƀ13-џ}K"61/T95dvTJɭ W~8 hI '5`w @ˮ8{S5]dy#cXp XF6Bc5Ƿ0ZcF=Go&%]G:RО &?GQu_m=c{>|jәhӹ%*8z#:$TuC^Iמ/UMB0ƀ1` @3,$VU^''Ɍ=C0Y;ljVdJVO4Q3'5ھ~2UqDb'CDqt79/Cn80.G&X~P .  &ƀ1` @2PD?Glt0s 8;+4Z]55 @8Gbq~~MOX;DR/^ gb @e0` w\JȨ1at 'plGHua5ŦBq ?Q!$$D&c0 G\ >K/ Cb?yxØք7~-\/b ORH'ڵT,utkAi9܄4oCĀxtmc0c@DCHHw}WN+-]r*0閼tgܿ H@mwotCܩt RFWX3$vѮH)1$t^#fDв=jgc0` "+V+ebG*3gtⅎKL McY<-&+aDߐ>78KB@SNax`TO7 ]G-}B2<y>0c`3` b;1(:j0]*f )I@_ T]ψ^+MUl* T$u,1c0c چ KMøs[KT,9|}吶N8:[ut3t-؝6+|Za1c0~ Dq'c)^~"OoQ 1%J_Xy@BnI̓~ǹmxZ_J_u~>&}\11c2;]T.]d xBK@ .RbJg$0bl" H@"@"ph TYab cু?*ӧQ|jBjL6,F+*3O_@(`ڹӴ}PJ꫐>>A䊿ޝ]lc ƀ1` @2P2 y>eU!^*`/ʌ@8B1ߡ/2rgwc j1yEn퇳V;yM<ݎ:r2' _\JMBl"HLxv'0cT[v}$C~PP?t+Y_;=3zi~>_qg&Y6]ɻSL{[Z#cXp XF6Kj>cFJLԐyGqi0G"5q9VC-.D#f>tV (lMeDXSeTdb0y01KƒQ9yA*sI YQR0OA$w[).跣T@o+~Ji B׫nSPgb ƀ1` XzOy|DC ^WTQ>?C4_ΞSlχ+fW>9ZyɭU}% @;+6%p??@YH@  vd+_1GZ$+#~DC )[jqov1` ƀ12P~s 7&`3Rj l.mLlk+I%rRyowJsx~UՃet>g'5`;0À%,^mTc`~1/lx+H>(34BW;pubɤwҾ5Zp *QDZ[Y5A 1l0 <ѝG,gch(ѱbHZO|pܶpċ~.'LA{KZzfNvW}<"Nw0c0d#Fo:ݪ8]2ZA+ҁ㑙&` _23??W}T:v_g#s]i@/흲ul7ť~ŁKExW+W z>!2Bk5Rt _CQnh ƀ1` , =O 9AUEKxHhۋW؃F)$mK !`r&w,_=(K1",[R1` ŀ%TԟnXY 4RCZM%gAűP/ƌq`$ԂKLvh($Z=n`\-X hO\}mc 4+d1"m@O%uVmc ƀ1` @3P_$[TxugZ+f(~ z wGd~zv&^f>=]NqT;- dBv(t^*Y讕Ð2I봇b7OS(UoFR qDwsvk6ܬ-0c&A82HOZQ\L*B:Wmc @E1` 紛<dߕ8|HLSp4DgOox_NL)qY݊:HI@{gjKXH k4<0|(ab 8?V8,nI^R mb/]|;XW{Q󥨫;Ρn Rpdg? g'U _:T1` ƀ1` @m(!_;x _T~ VLPV+:Շ^J>8R"Mxtկi` A2 hU̓{|erg* ޚX# HL򙯂1` ƀ11˴G5#1 bN,%D??F\"^k%mOQ~c?X ƀ1P9 X@-N*U]`;$3%k.Q`I )( # h$kbnDs1i.QS/٬cP21c`>18@(/™:~]((P%s m ,i:whv9F7.ewZs+~׌±^+@Hd%(1c0g &|*)OP^%XqBfӀ٩饊SR]b)^cS-jz@`Y<`2 =ț'@MA,?J*=C˗4s8p%lDŽ?&ƀ1` ˀ4xquy_Y8C7b-o<ȵ@;|%t.lK4'{%90 c*jSq #_!7&F@<=BWkHqmHZSq tqAՋΗH"㸶 }oC;w~iK[^T1` ƀ1` @y yZW l_WJBv t [KӝK)VD:5~PxJb`K~;0YQܒVS|"߂P}U4~P򿵤@6$ ^r_s~G0cXy{O!#~iUhbI*xRފOvzU#[*< =CddK+(Oc0*KIe2G7޼3[NJ M(TpBYUk9fwqŎn;mo#d4Th"AZAe%   g :TZO/d_ u~I|@L t (N?p];D'-I+ۜ(ݝ7$0c0Jf &fƥ^o%D>>Pv?#?:z+VZVtv {K>UPЊU_BO(г?N;dUoA)Τe2 QKP+>!ɗ5$ 1 &/]ulc0c`a b"@GX'̵-jL IB$t,,("q8`Lkҥh&ƀ1` TPaPc3Om=-&90hHSwH.wIRbGb$ :՛ѫلY  0btc0 LF(_9gYY:Zktq[S\?$.clK`mJt]wBaFX^\&ƀ1` ƀ1` Hkwz wAMZ`IQ Cj銺TT0:dvwcNg64d_B]˷BZ@P˗1]jx~@LvnO;0cX|QH:<3%y\'Sw&i'S9FJFx?EH>H%iҞw=ş#obK67 ~rIލgsk a 610hfNG>sV * Ze@a@?ֈ .K8y0`a2bb B@_ 8ì6أU˓ҁԡK]}i~)]d1>ï6s{hcatYN\ t@DQD>]!$! b TJmc0c`f[4skb:a UP+dGeڥRW`FV`k `qZ;+ɵnE|*Un⸜.|hhO̟84vetB(xAV'4T{ 3c@_D@Mg G鐶1c0߿~]fw[Ig.sө'5G^Zv0Rq;Ҷ5uad붔=OqSYnK/8+MFt] |;rdCcX Xd6@N 'ϣ;~0#h/z4"ƫvCc0 gPt(t&d s~FUm㌫@n_($ pA|>*aarϺVoH9r~͝&/8bKҙf?#?3~ƀ1` ƀ10 Ā5 !u1`ʄ

    ĸ|i%FY"G9LcXEj˲ 2@&alSD=ݻp>ovQ捶蒈LcX1ĨgI0S !!IVk)WKuG_{%O%}U-(力>K[ae67za=0c0@k[ek~9?S-џ^zibWh bӊMS{n4 n ?TGKib wHȖNp/OF2Q9Wl#A8=|kGQO  D~Ab?Ulc ƀ1`  cY๙)~dN2_VD_u[h:V >=uQE@Kq*dqQwM @ȼdc061fgJ:kblJϣב @f^iDŽ2J 51cf :V+O33Pp|ڛ6-x+&;|u)2CjAnI t7y Wu}y h1\xnҨMq}ZNdƀ1` ƀ10qf(c~|EXgs.m) pcń*2Te~ng@\srTc!Ú౤va~t[| ^R|5ƺU%!8M!Qib|k{o]UX*V r€Өً~ƀ1` g =3 %(~vij\& pHy+RHo݉קQŸtg.XxgnܝoD%}@j`ߝU\C]}E~;orտcML6Hn7<0?`U&ӧ gwtfvXybv#o]RN'e>2FO*HMK!,+EPv\B c0ߞޟӕķ ,o@JCZ #Q.J;RHmQoJ$,vo Wg(8^wu5`F}pv!AO~6H$0KX&vE d}c$a\GÙ"& zڣb? 6i41c7f >b@t1VgS!|BBL˺uRu~;-bbNT+uށN>OQIe d[!z֩Z=.n6SA"C ӎ4c0cv!DG}G֑.𡼔;d u~%F:J^]57j`#MzK7-*U8t 0+եl(t^/iu%ܪ T~ʼ?*~CzRo1KTRV1+$Z]1` ƀ130^-)m% $s%:jES'›{_K`. zd BmA7U'~7-+PO7Du@jF_#Ce ;/7pDkc0cXIZJb/q/w:] X[/-}'wjRv`ٺT\-tiǂupLRF9MN"{=(J(`13_1>?G/?[>eCc0@ Gq+R@.o }2}+mE(s7*Dws'JOo|"?򑬆Zޟ%]zu:=$aB}cƀ1` ƀ130>ӯ tÜwUW . %=!&$KwԞ,YJYWooرUž]kDzxdJHgV.T*D]iuoDpCڤPv0c0+8ځ Ģ $ h$l֌}EЊ?2xyߔ13X¥r{I_8ŻNq_rQ#C.uv1`  Xڭ3 ;AkA} Ni+ #4V!VR0i`N,QOȦxh=uofJTz=K/ORlYL҃C!V&5ǫfU>5Z9*}/ 2ۀ$Huw`|@Q^*y2]l di=Iꣲ638jhJc0x[\5XLI{IYtbx⽒pd&F޼:_wcwߖPzsh0Fƀ4?F@_߄HF8Ҫ" Dh%=$m,8y?/9$\``/ d+BK䎓+ 9s2uAMhPzcX 3SJs?:c@@*PhMV RSGuڿ{X`Jo4`;qGV3]ݬkY$ L`Zic0ch ){%/]A;+5 ngt2-*9;%ͼ/.]g>xpV u'MSmZ!DW+qk'y?yo'(w[Jf4KCT^YBCUvZ1(yjc0ńoƗvc5v@@zn3pJ@ kMmc%Of*:ӁtO!N.f @aLÍoiq2Vdϯj8K-hu}mL;b$B3@ 0u4̒ȡ,n䍥^ 侜n,SA([ '紟s>ƀ1P@76D ǭ"&aV%5QH eU6ݵ}6#pc>yv^/S'"MT13td+">W]dc0cXU.Ih>?~?$$͍q)^xO'`n a=X XQxeAZ5X%S5_~6@lx S aKdobiiK>Hn ŵEv>~?xoNӈ<8,)v0c0)`q}u 'b0'*7I)m6*ygNj(c`Ͷf @#c ~c1d ֓ 9x_((Y+Jh8*EAB%O[} 9` P::ƀ1` ,ƅ7O R?'hUa VLc'JOqH0U@xWvi n|$6V!p!V2v0c0%`>C)4\Sլ?ll#`⎊/40pAث`R 09<[q. >8%Q=2{\?TKd$Oh@[l pEV;ƀ1`  2y ?䈉ؙҐ6WL}8ۨXEvwI-Fy{wHįo+U׀Ry+~BqSI@5뺄-wh+Ŋv0cQ1`i?2Юڇ-:HC~T}d " E+؜(n~g!B6 @(`@2/"xܼaiuBqCk2ZS{vW^>8گU@ =]z0ޞ3xb@IDAT~E1G \hB`/ƀ1` ƀ1` , D-:[^m@YAokO5x.pGl?NYOJ(>i'#lOg+8 uf-[@:TQѺ-/.Z6Ck)+z&SnNݽkzc0"Rul☓#f WMJjiCMT+n,VjؿWueاy7 HJ,:>@iD>W!twSħЏY3x69~=|eXP+ bkƀ1` ƀ1` /0AjIZ Kys3l "`4}PkQn,$@)lI5 iGE킉j@}E4 (R&(kƀ1o;)~ Kc?2.2R֍C}o;cSaV$~.c 6 ?T3χ~y7?ƀ1` ƀ1` 4bF|Pi|#?ftɚdtMԱ>sGɀ{*crП;r@YD:yy$鼁tb(P9@~ GFz?6Uou1` ƀ1_eWb [_ #ckY8[3C#(3dZWÂ̋+@>hϲ9Q_c[~<𭴡>P~^t\"c0)H鵛 fC)_}qCjHzI" %"qrׂ3> DBS7]b+s -q^*}Q b@TkVV60EȀwGA' ':C&W| (hMb;zH1l@x?ІWaV߱;7Lc-ʗ2޲~-&p5c0c03Ҋ̥ht*I cR˒0.=,U4oRD+NTW.X[ `:0-0Y#;2Ȼa |DKqpM!t5EQ ƀ1` @\_8FK f2G*ncR ~' +̔کǹǁ#O][ 6\ʖ=OM971rkI+W`04+ xh@rR_Ij J`/*8LpIt _D u )Lߧ-ʕk)IM&yn*:Τ[[]9ƀ1]{BGyj,ZAQU @M*ڞz܇6VK4\[|uAϷ?cId5T.X Z?i=ƀ1` ƀ1` 4&ZSG9)򚴥ܗ@NO)^NPKMu{sT淩RWw{YUU>`ʽ6ڟW/=<@L5>>v<#l{'ŋ .|8;ISp{,RCcPfx8j)ՂPD'J.f Bb`ޅ܏o^e!sj5EbŀfF-k*GjP桼'@W ൹OnýT~}^/!KfKOeUW10c0@3d[B.欎wzWvFZwl/LT!=Dq}r:60~fBqJ0.WqWأvnT8y$wL۰ޏ^ F=?#-#о}h3/mlOgʇc0Om8a9 vTe2!ѬX $P@bA g&An.PA8c'wKB̤)\'r'縡2/kֶnv1`  X=!>wE'n|8滈:TBH䔾ohLjaZ&j/7?>qL*]h)-*z~c1b%}{"o;Z*з% 5V,ZJEiiF?]{u?Ryov\ wVl(=| 6wj;]~ j*Wm` ƀ1` @cgOlO=wO@iSgI=yL45A>.;Ĥ_2Xqd~VdJm/exLD2"UWBrb y~J! t<[1t4ƖSn D= 4F1*0c/1 c +ag^b^̀e}Lx􊣟 G`qKO o'r햒MC})>>6s5UV_=ƀ11`c z^.惩P`Q$vw>")?DIpi})jQ!u'WQ?]_'Umuoh @Iߞp%ZTk`XJ Xp۰& dѵ';E@:u>_ -*JٍV|E^&;ս 7JqM1/&b4@i1` ƀ1` 0c%fki <'qW^6ldm2Oݳ*O" pT~S,M#iYwϯGI9$@K ؟Ըzƀ1` JΔ`i"hد[̎JK| ;uoY0H,5U݌q\K{d{w&fR9%1dGy.oODf @#c~Nc`Rp燉އI9A(8 aD#8q~Z3c`b [o=T<j {u!So[jt,ϔ70%K1ģX3n!O78OmsK9brE*0c0F@dѾnI!K;|r~ٍ*gÊ#]_3KBjJW*ݯ8ⷥggWlRR}-[R?ͧ??qi'q8m6ADiZj+4z85|E,8.Ŋ<p(ec0E@w4cЃaV@?;JTofb=XbEen/]qO I83$.up3D__J?f2W8f oʀtÌf`6ԔY➇3sBvp;H?f챠ODi8pAq3"F)f @e؊q\ep/ im- _ӡc4 Y {y"SV%=,z H-D'݅G(-v0c0LB Lnv*-S|x:Kw\WX_ ػvW9_ wt@=gkv,k_UyyTO)R若1Z T'˦h%;S' d ƀ1` ,L8~D<-Г? bK`e夻Xe˟z~GIiøc-7 <"sOpDžA2Ԛ1`  h<K%LՔ6u&Pы^G&EYO0%I2\p($'QѢ})e 8Qܜ4SLvU-۴ #IH{#I,JR٥<0c0?SH5*d#WA>)ݮyI+. ba4xtH7ͫa7sv8 ̀Fvk110y/wJUD+P ~d4RŊcIAz*)'Vs`)w|>ƀ1`  @~U1 gHDf$E 촑`g`F[y~h ĸLƣ-Qƀ1` 4bf /^Aƽu "&AaRg+P E?o!960c`c Lc V,u{ Xd,oɾA%ukzqϚI7hoI>`%ωX∷/l ƀ1` 20I2^[2\ dvXzX re!Zl6f1nx^Vпz7k*^T;XڣlR }x[AKP6AʫN=~)n*qW U7Aƀ1` OXۗ[Y,װtsp8!'LIb{vYM=JDƀ1` ,n X/b'-T!*-C8b@"7 1هD?0~|l0%X4GRn[qRhWGK-9=C%]d:l&mZe_Sw5\?Z?@6D|0sp7ÿR\q@A/|" o`H"8?G f @c` : mp@g=Ӻ[ Ů?KQ:8^^ kYn둆LӲBsg:~=.p\Y"d©`c0c01a zRO;ݎٟ-i eVtzw ZjbK 'WkfnBfq,75p $U}:$Nc80WCwi ]W܌V\vQF+kډTh.leǿ5:VVʟg1` ƀ1p lq+ۂH M8QF@R/ D}Rih1зIH47SQi0FÀ4?Fʀ~?U>VBuqv3"z|_y}2c`qdK,<|0[X|О|&?mP;+QzQV0հ>ji1:L-f eXPN;ƀ1` ƀ1ЈNCORRoLvƐf䗎,ؽv7k4 m[sGU5-?rqz{&$mLFMn.|r2iG[4 ]G;[J97P咄:9H|?=Dy? ;ƀ1`  h. b:E! }p)>0ur;ƀ13 a _n@cS3sN_97B:C!gT_L:dAvG|[Em@wFiDКR_X U;X 40c DW0& Do5/IBjiC j 7 Pw6}+/w:0Pm۟{Z`i:W;PG/%v1`  X0u(NPDz"?^8Z3c`f f p>^A.ѣC= soT ϻ27Oqw@Ŷr=-OTNe EHa6%|U1` ƀ1` K^ʹ_T89VЛ0cXH Y<ǐzpDpH(RR-o N'J /i>|Ufn/tйFT%8%Hk+z$8}nw\ېvPC.kcX4 %0 3lWJQFG(C*3U F*冩M;ƀ1_d F~՘_r̨VPIx}>Zg=V rDXO-=]Noi*oϊ3-@y1` ƀ1` ,y $*1zta1^ wJYO,z],;U wbzs/W̷9XJ S٘ⱊWf7evA솪%ؙ}姯hU/e7dU1S!_DwRF傎ʫ˫>ƀ1` C <5V)wނ3O *eB@-l8[/pc d/nJ&K-D} uVف8#{]C]%SYeE2 (DX3ŀ4Ȁw]T1p?ʨe >3 9 4/Ϋ%v0c` dPw k ?7Vx; C;[ϻLkotc8( ،jZ':zoj`N ];ƀ1` Ȁ_]F_{wuf<W .qWq#7)[u*=f;  ښT/;ӋKеJK_]zvN+nzTseZa {K-z 2&ECVl(LR ʂUV7Cm[(0c0%Zү.c`t(󱿡[J9Z3c1`j?1PB!z6Q\Zꄽڪ (R,R=_E.I)A`&NI@*:TB@povJa1` - "yJ[-Js2qw >Iq7(S;^X3$)rp[.uZve,Xn#V+a׊9 lt[3c0c`Ib˫Ǻ-1m nnB(%>Ld2?Z|OV`Nq,ticQ `vm@[T>>woJZE=p IW1ZtK~O? >ɚ1` ƀ1nDy>nPk2R+j `$Vlqqb}N-$tMJMﮡZcȶLpߤl#qܕABm`?>ƀ180`_10 R T:if~d _#{BJ AJB1HQx<"-{)$`@J(Z3q,I %Q+j\^+W(trO>a oƀ?|SM{0(,L}TW2Q7}i= Cț.^JF\x"W`k_ox~Y'6o؎"ך1` ƀ1` /23Ē|Tq}F*~C(@_ѫ*hҌ} 7NѐE zcQW8Ϙe7c?Qp5c0c`qae?-}*ז,QŲMmi7A=뺷`wb]k@d׍-u7az;q]b "g9cA TSz_ũWi{@]T3iE! f-œ(U2CZK;E.HK!IÁ\sbA%jD R?g=ƀ1` wo؏V1 nRނž}i}C܂/S8zF?/ aGJ7,( wCENn@!:ƀ1` ƀ1` uXziצ|4/39MqdC`rIJAS#r%չ!W*>dTdJz+끼z t߬7tMoN8*P [BR} "-d0cXT D6S@`f?إ}jlT@DIGCbNπFn87spC4 {شގ"wf @#b~Jd`6\i Qlԟ&{Kthtj꧎ro\ `N&BЉ.)'/*RL8I-uq10@ZY5 ޓހXNJS3DKh#ȗ?̯=\mDXè.{nW;t;Ӟ@bE0C5c0c03Л}yɃT.5T{~0wFfQ`~˪!Wix|̪#ʡ'T<LvOF/L݉n%wst ?؍P,-@9 P}BY59ٲz=2n PG a_;]kc0ߜ8ED ,E%2c0Mk4+X)uX!4.Dcch4 X@Si E Lq#rHS܆M4=0mԊ5AQ++t:3TŸ눛I% HTN955c0g{ h0[ϧ2-?7uc^ [glz~,wsbD *TmLǝʚyF*Ij8 UnJJ0c020@o&}1680 Ŧ[Um5JXhS!59[RV@NΝ LIx|18Pt+) !T lMU1 YPT+A9P@/1` ƀ1y peI?`X8E6~C.1 =!ם+!smJĐHch, X@cKh ӠDpש#~DJ"` QsBHF'?M\ͰHMݫ͢UI P9¤QIcKѡuNT&>d I@3AenQsƀ1` oh@-8St|b7$ZtYi=tdڟ|6~<[+>Gz7iʺ0ld[htc0c04^dw'*Trcuol)Úޥطi MW4_j*0BQtv`lg!IR~⣾R[@n;G* [MUH>4_0{' P uWzc0ߜhN2-$%bXTLe\)!QXq}k$'"ϓ*0€4,Z?WXKUM;MꨟB˨37O=Ax{YZB;}-rF@+)h>|+*V(+p:'_: 0߄hRѐ:;֏$T 2lЁ%ȯn?g.m=ROgP_q_ mƣmkJc0cE:V~ȗ%Z)Y3w7䴘WGWh6=Xy^WT~V|xy5yO(E@n;!#O~@'H'DIOk8?Ɏ' :qۺ(F/ F=6ec0ߊ)1Q7>UqR{fbbْ&;@9&g"ذ_P\&XUz]eƀ1HEJh0fꈟi$b4Zy8II?6`TKћE$ߕhXAIrbQE#"P"h`8l O`(*l "ٙ5fV],<і,Zk"_n7pZ}橌p,J,DOd=E^_R!L0c0c` !8g{{%ANI.8_Ϋ>Vq4ܽ́;*P,5Zi0w2T UhfzS~YɞY:Z $'aqƷ@NC JhO_*'j-nP u*Xչ1` ƀ13"pSOtϋ=- L{SZ^qM _hXσy]f a vWc`a1P# L}jY?–[hL^EsfHCdϒ|/=BziQuu(_ Tb* Kl@ρʦ&Pkƀ1` , 3|Rp0)gQ_ JSSpj< qE8SM-!J֌c0c0~eO>`L|Mr0y+HVdJʿ9 uɯ༆'Syڹ>>߽#Yhס@[8>ToGn=0G//X׈? 20c0 ~֩; }8?y!.'v P)6jM"vo$uPM}$!M,cq| <d :ӭ[ȝۮv1`  Xtڝ@-umdRgUjQjTHMu0-dE"9%jJEFÎK߿Gňۯ51`  ^1FO0(Py2_ϯK;YVKduN*V4W%\FoH+^*LWjBq2XE` ƀ1` ƀ19-)q+ȼ8)`#_םG?@{!>O*ZQV׍HVX]}^ dZUeq:>>JQ7QUCk5kp?b=+Ztuwy]0ch8qv߼P' 3*៊pՂMCb[+IP*47XW'5;"9K&`fv|]rWkƀ1` 42,A4:J!>? U}dCdd&i 8/ ݥgkQTV&|&dA88Ƽ+,'=h7Py1 Z3c`qb Zœm93,IѪ)M$ d{G=/+[J8;9U*X2c#CyW_A~`usòVZUDPƀ1` ƀ1` e`}xw]-fȚ,@IDAT6;3ugSKשt Ūdw`I3gU~-VX;dHBmuŮ vC!;b?;zmޱͯc`QSWkƀ1` @]?ypcJ%ln?+3zjNkrZ2y4vn>_͒رؽmimۓ4LIE}w^a\ec;(/tUVMiyZlv=;}xKvpڵ⮰gROF |z_fƀ1(Eɮh8ȨoX>PdʘB?qށї`](G&8a׮6c`qaJRPp)3* RN宾dġa*C45)m{mr۲vyJ"q^'-&=Oޱu|5}hc0c0% P?MwX/m_xM5s[Kr(ʩ^W~ZgOǸ z*քVeh~^]n.FLW(EUZYHؠ/:c%%ߗjiP^3c010x^ Ol~B@8꘯Oo&iHh+PkgY x?,|f>T+:Ir?M*/ְ F |^dÍcX Xfo 4BK24y8c4 E0!E 1` P\?=+|=#BmWs?<#X/o9Y59\qD34CUq-X3xc<Hmi`+]);ƀ1` ƀ1` ̟ i)Zu㬭.NOHK(>lLf%mZ)J ,T|ֺGl W~j#{ UזZRx麻S%uVLXF3*R#1` ƀ1ίcl@ p$}qZ`R[l ppO7V//$q馒P!j𰻛IJF'{̦n 7f bǀoe_0"2Ol68 sp2EQ<{#XL4 ϾE 1` KT]1lxB@tO {\4%Xz~5:CqE _a.Rqd⠤@&WkKv>o[ mKr3:b\w5c0c0a#z \LW+ԭ/7EabMxbOVΏ)(`>6M,n.S\}xW9z`ci@Ke7d%@r40A~5}*Oɚ1` ƀ1N}~z_?-d UG|Nђ/K?$A-V+2V# RH};"yB+ rk`y/:V=@֌c`qc .e0"> J p裡T+ȉ`"wĂ:VJ> `J2zn*5c0{,dp~)NȥM 9ւave:RZ >絒T^!ѷ%Rkz>94I<,7?Wj8X H_ vuahc0c0aSzJ{u;Ů 0\ʀ1Mʇ8c! V}ԤfOȥ c.auNђn#ȴ; q%Tܛ~j>VU,saG _ UOe900c0*qMu;@?BrDgDT$U%N4M2J.$B|#ؗBFnF+%>z#x̳5` ="W׿mXKJc0踵; d7q"TEP0gLx?DD "FB] ~%īpf "b F !j6OitV ZSG|񱊻'ے&@r˪\LU:ȷW~͒;@:BJۡ}eTF5c0c03{'NKSLv :ݭ{X|:+rF=`P3BqU}JIȥnfY2]LwN@%%ѭN7- m$T Hj? W03zgN f @`~Ee\p7TH,,+3?xɎƀ1` , %_Ru.'IFVw+5L,R>o踧Xt oџlZ%]9ɃzMޢ@69I\8#tߤؖ>TG;ƀ1` ƀ1` ̏og?EbѡgَʗytV?ߘ>'kj5LtYaG/=]t]^ZxÊ݀ٱE_VYzrUIs;gp+ꆩ.ys9ZMR uQ@ڰeլP#ʅ 9:ƀ1` @}Ix({ 2[c%T\`B @Te%-iyݤ7mIR. ;84dTǿ;GIs̹,.n0Wf À.Ic00 GNBĤX\8ཐCPP P b@DOٺƀ113c#on~qP[y9;2-ܻY%݊&T pϺ+#Q ҡRTG?*TѰ5c0c`a1|??`5JH>]!j[*"@ X6t1_Jp4gz%OfbހA;]OP/1` V`q1e jͼ}V UpWJjTƧҏ  ٻ0+[7C999簻9]bXs5g9Ġ$μNu_< Wu׭[zk5`)LzLZ/c0\B|f(dk@8ʗ{UǫMTOt{~_"mk 7-\ضxb5Sԣ.PlShE:ڑ:xR6M(wZR-kmc0c0~1xZ :;]VߘpT,]w 1*|fVoh!dDEdR1pybWa!cIThP-5νH?P<3:HqRi Uf2,N(NԂx@7ӵT1` ƀ100}"e&旒 l5){F}Jq'4sW:c0c0_`ғo^W{ ˮ~ u3=E񭴕9tb}r 1yGTR}ꆊߔ^CBԫ'WieM\V/Vy^q\uqv#->(}(7GK@1 BOQ\@Vly*T0bb ƀ1` L[= TiH Q BbwYBqaYW X"zӉw٨'1` V`V37/"/~8ُU!uۻ ѻX-ǯTWXqBI(Z<oYx]&#u亍Үn%ie9ƀ1` ƀ1` [m~O4R^ǜzrb<ӵnb5}hr%WvQPxe9 0Zu@ړIF_6W:9_j8^"w>r$7f]-}{+pec0c`V``Zrшل/Ab%V/U>JR5ȑ3^A6ƀ1` o1J{@Vplfi> S~S/יS8sR= ~&ƀ1` <)$|+2* ?Z,[\wHgAPܳ$1Y!jw(@3Z~͊UIgs+)^x@a btd3Fy:X2Eƀ1` ƀ1` 2Ss{od^{sTn|!NqX[zhr$^X-9Nni[76Ȕ hAA2a@8S31XA1! 3IJ 9m"dC6?m6c` OC]$NS㙮30ԙV?̼+`w \b Ga{|T=ō)WرtB޾ESPn. ʃmc0c5X2~/Om}`}؞R-}*]˚Ya35_Xt=xu2Rч_wE+3ѷNTeKC}ہr?²ˢb#C\NC[@鱍1` F?0}A 1$LW ?s;;DAMp `f3,>g!x%O@ -@F]!cenm$x^@zL0`"@fjve @и8xcR>KĎ*Ttv(9pz|t|BpX3_:б8^ k%рH֮ '.]ˊ1c0ceXBµ jM@|pHӽZ|ru~w/Dڠ%5hhep-lѠx[2э{=5\_IsECeӼ2UG cNyN+K HbA%6ƀ1`  9[2Ҩrc5 9ͭq?=9Χmch 2-W ج2W+6͚0j0 &ฏDwlBoDXkȔdFet$pd ْ<=fb @HKF9K:ޛcfT]n]d=[)A=>8TqⲊgTl_*ev#m0P- ?H)vKrGRx*mi?:} @jb2%$4gnf=6ƀ1` og |}ɹ@_xtΪ/x&<#Ν/9OC1` -Kh9K{Cu . ?XCdw-f2[cC{s|Uծ?4`,>C2Kt^C K< 벓vfi!0?n'+5RMk'++5ܡ~QʮEGe3]wюm~u~b<30- T:?(Ջ Tqٌ ӬB,!{d?.P!d0 Cɶ6ƀ1`  1oJ;MD EZD4b;'vF#[[sMnX2W7%(1ƀ%?=NKc?0m΃%pG mnЙ !GH?^s0LQhͯF:[ b =1י@pV2 zSd_c0LB@0 ٌ~i۫ =EdSw|+GsGc 7>J badڪGEuO?TNqxeb4>^v<3c3 3x뚠m1c0c`V` x3FC"z?SbӶˊVBL:?'V4=Szt̰Die㕋W^'W%o%+",!3'(/ n{ME]Ub^8$D~ldRO`c0c h*3Ol4j|H 뤸jB\l_ V01c1`'ja <3cd _IM%ߠ }i,PKS໮lQǹ!آ֖JQuAٵUF+002@pdH+tCc0f s9|):Q,ށs5I㴧,@w1= FE\PE|9^aA =_|V#Rq1S\Jo sRMr@(Z- A<3ƀ1` ƀ1` Q 4Z0BX(3zK$]_8_e(S]uW$~x1z 3UDgD;݃ /dv$$8Tx>7Tv1` ƀ1` cfu6Cۘ4ٕHu+H=PCLFEj׹A-1:1B V/Wa}11}Z]zR ~XvҾdߡz8ߕ爲8(r (V=K#0 i.ƀ1` /S~π?Ȝ/  7`) R|pMv(?y52,|gmb @cZܟ1.$5h0E0j$b{W};駫YEemOtkZ Z*(^-% g$t}Ap:y8Gb4fkFGgkFv7*] DYMPos2_bi ƀ1` w+D]N*lbzzr14P侥.C0ĝCnS|P!iXX]|(19|^ 'VwMOۧ;[vp_O,YUKX=Zȱba(Jc%zp0mc ƀ1@/D&!5 BkL;_zoEwRx*8-{v5tn3ԵE_~<~E&4h|0À%=Idγo޳T?3 =goDi{|- dKMG!:cKvh.bt;R(+DI5q }x‚l /_<[ *Q@*F|bm/Lw_t#QVJoQtŦő@YJW4enmc ƀ1` ƀ1s ԅDMOha yf_#ps!xډdd5Kҷ*#@LUu#&ݎe,yk9' 1<8̧X+Ǵ ZV3܂%,W1c0!遗hX $d%B?Lf| bG.}{\B+ϟt&SB.)y/]*.3Iߏ~!v1` 4G3l7f>AC~8 f4p!B | { \{b?0 Y"9'zGz*7? 2w -f[c0f~Hm)x'~79%OзJyP)ԡxB&:uŭ#NX%A#D--*Euƣ|J}JűK)Ί/T1+P|6QBIaߪ䳙hxGz=1c0ceFKD=cG|jb7V}+YFq?рz2ig`|1۫$&V&$Tt<\-m:^_҅cXvv/z_ۃ:id5h+YN7mdɹ&k?hgƀ1` e|xt3/ m LchQ Z-=~󞋙xHlwK lWg]2_O o shS\i.H`aFT0~0Y?g6M4*A5ϴ}2)Sʜ2<{[Ki{|A%W Id "uoqM/^N=)>8gu[-DASQQǣLJwVTvP/Ce3Kmc ƀ1` ƀ1 |Uѭw!~\.%ωrJS.t[*˯( -z׊{'˯Teb "T]Mqj?bnukŃ[(G@7҄S,  ;eLnr۫73/5QU eŸzPƀ1` @緩OtO?%\>h<-F߿/wh@tqGa[79-;01ݕo& D1ǹ]IYMcha X@ 4?LFOdHqGK_^폗qs܉0)Ck ';zp=X/cSIU ]?fA$pnO&`T*̾uլ} YG.7ƀ1` I Y9iL]E~WC(m+tVtL^\Av(bmߠrD  +{+.PاA% =S/TCRRqZrugcdC?+}J i;&ƀ1` ƀ1` @H}k@eљ2k?mJ7` IvStճFɫ;U|2?,XhU3ID%DvDw;AcWəD' B*J7tʗ0+_>Ide;"Oƀ1` M-˖ *~a=+3_ԯF`_>ua?+s0>i_2 =q_z!`0\y ū;NTxi!ƀ1` XLAk!w'̙ 0!09U=BZO [Tv"$~S+#JT`1<\W9&@Z0"ƀ10K1[=Jz?Jj+y0\C>CXSU|/ ϭ񲊛ħ!m%:_` SܼbZbF̅+@\v߈v=:!G3kp+L^ϫmc ƀ1` ƀ1 PXiпN6NwN}U &kVS^W>Kh]W(o)g*L='#9SR#Su;[&0pgԑ4꿑} jObnc0c`Zܴ ~}Z0RV L }"#ᅤ{8Q_Pyתx 4=+ݐNqcIqG㱅H8y0n`ՇHg⃩ځHFeYMz_YC1y(`iR"]P&w?ɚc0Z+ SRHzԨb@IDAT_V9!cc`3kcONR<y³s,?t8sỹ|z VmE|#=“S+nSzޱ1` -KhaP{f=BAt@zp $Gp`Ѡ0x2>p*|eHj5T`L;IuML@YmH$`< ,` .f6D?Ѵ_۶ƀ1` y d"\i}qac㚨Y)ct.GT}ȵ߾tZ jSD=n_>3)>GUlc ƀ1` @vTϗXjղg{V|JVwU[+4h`b (_%C#TGtb})'{G KDm$z<%P;*]W+?g, r;:[1` @K`෾4eR~- c}l ~}ӯ=?C$g$w"o`~gʝ"5rFHz#{8 o\ac0f9,` 1E+H\nas~ hCE ~ dbt p>ӏve_w~ 60+"?pX=G0F=04c`d qnB[]x"rDV՟7J "$1dϊ& ˩(Ɍ e;CBp?J _lmc0c1u!와Q}}R '+jV7)kg†^Y^Z]9^OsšsUbg>lr@dn,8lM1S=`5 `$i c0f— PS=Ls@iYG_0'SՃ0uij BOarǪ{<+ȓ\ϛ$6aʗ|wpk7xN߬&%rq6PLch) X@KKsTz%| D`='TM|X/Ȁ5d_&EI.Zyl^+E ݀Xپƀ10+1 + 0ru)Ɋ܏>Āh\ xBq ^pbqگ5d|@4uL86&-S?_ALVv"V?+=Gt#JG*uAsF9:_e ƀ1` @fv} ta=AlITE<_áG%0FZȇ)pQ`;Aeǩ%x|KeuL~r겋ԡWԶ>hb @KaZ_Ҟ20Bg@C熶yth'K&9O`9 U e sj*I~q K`dg%EcToic5ȆWl( [*J}1SJ8<ZF?Ls@}u%;q7EG#SqZ8XXARQΎeǷk>W++H=%utQs+c_ԁP/=&ƀ1` ƀ1` $+I>?1}a̲[:!arj7Azb?y\qPdbʗ[4B1 btzM5q Z?>ztb \1Y^PIL!aX,xN2q#W+j} 3%$z>nlk=mc0Z o^~ؠ lL^+gm}NSNנ2͇#h7贮5_  H+X AK n7c{]'jg7`{uB2V?JDQȂBHPNR)c{^n{9X|7MS=ƀ1` D৞FVuTKL۠/bA>o{6o`9\W'# x[(YGRWyG9D?4s Z7EwwɒucxQq¾DTȎ_ßz,&𞦜! 1UbrEd|hu 0ה=(b.nDK4A!;PO$J_t.yez:&ƀ1` ƀ1`  {&/.fqQwM3n9>yu*jV7hStR +5 HaLMbf`oWUԀ_*yW+J_ٜv[iUizD\1YX/^:Xlp12U[oo}Uo KRy;H'E,S pcd`LuwH;ƀ1` ۞3)Aǯ' '__K5ߙG8)0O3+a? \oW^!2uf}՟=jQ"Wo1` -KhAL{0߼GC?;p2]֕CCn2g{BkQ3YI_ GF ( 3D%NMLchQ IYTEV"խ:h >,/ :qoݝNV|LQ2u>s1/ ];,źkf^( ^4Z:Xt1"* \xJ7_TZqaQ3癣wѭᴿ6" h%2 QOޮDL_<=,YPџl)) ;! Իn bb1?$hb MhJmƀ1` /-s3Ó5G 1e EQ<Ԕ9dNzlo=RqSJn~VD( 0 F+}UaxR8f⁻0"s1` -KhIM{:yOƙ#@?`k-̗aF} =c (%31-'0ٔ=pL,8 ߋss7'LkAv>Kn~[߃>F&"kn)>X0%[tA zv'&׽حit~1v1` 8Sl0f+09(@~``0mRS, xdKG_E@`;n1ka*Xtk賐WV E% qДOb l@(iZy쬜>}01_eS[~ɖDw]/̃y31= ǔ.k\M ORεc]X=mIAO\̛//(U4H?~MFZޗ&qX C{weƮfGƀ1` ƀ1fN^K"}$Oօ$l_x Ȑj ؃# }T_xbrZACE֪z#IhpLJoȱڛc7敧UT/˜>OXM6/o J"sk\Ps[C+M([~_*uO4w\Y䐴C = gg_o#ka/oƀ1` ƀ13yV!+*Wq~7_GļOuK[V;5 _\ƕɁ''S%D9T|o^$OdezT^.S'TEHobm/B%t !Smc ƀ1038:o5COS1$_k[ `A}FmT5qB%+Y !ZDvRP4V{8H'HfƎ2;w&<-_R&ƀ1` X7'h \xԜ`~|O/ 43B 04`fJcU)sUg]j'EN0Ff?C0g!Y@ C9 f 0@LWP32U >_c4`lV2^>iVVtQ}QHo*"n6bB|vFm7Ei;H}AtQ5NV#&D4s`D֑K쩸_LqB ~*&cg^y"] %ܘ s0c0c0f1FɻzGȭDOTת,NtצUğI/N#V.v%&'UILwdKUN&WJP\}#R~'11@ux.Ť7`0pv ,A%ŒD 4mc0fCGa" =_Z|?>C`Wo- =k @#Nw{9mweJB=K9DC 8_.^sR,FOC ?31c`af?݈1 ܯy?W pH$`Qyࣨ,Ŀ<抺aOIgiYsd\N*`u#?}i #f^@?74c0 p+xSR&%S:mO|w뢸;NuLݢwyц.sΗlO8<u+HxkgVz[ POzWMR!sK~ AY)sD@rCؿ[SUD+l%E(rBXB}ƀ1` ƀ1` ~ Ajdi&TXU1%r"1-tjYK*)Ju 1I}gq_%RmmS֕EUǺ%b۫ JWj(mJygHI60c`6d íi!Uߙk}n l9cuKl;8K%_F׭0_MZϝ`[C5_ܑMd߷NK:>ugLMƀ101` _N?]oTxP|Øzh9J_Ewu  #=h1L`Xf\n]u=/6Mn @Іuf}~mbE*Z,Xy6 s;NT6Vp˥kv$i;ڦol8`x D{(0ueu7&ڎyp csp{|skLT]E,KЀF xSt Kqwl#bb ƀ1` e`|\N+HyB}Ο.߈KU ȧ')M4HH&Ctͩ{Tg> 7_(+{:zDN*&~E+p Ru OF><3fc0ٞ}: x'm9 ^κ?HxO[ \]%fw 4n#,{mS>iyyPCab ,ǀ%r!c`:KM2~-E]sބ9~?3TM?BSh"-uV+x NjE[]Wz2tDNs*k f4M0@(aBCLpX+&ϕ;P޺Ѯ P! kbr|Zny tD~gγ[(] wLtuhA>EE8`=+#XwO I͉T~CKfD|S|ev?gh-@ߣQƀ1` ƀ1` f&Ǡo[6ՏO4HVS}OeNP*Jw0}']{bDY$:YqPJD ΰtۯ]k Oϵ=@,`突1` lMA=S| X&ŸXz8p 11bpʈ{u*,Pz$V pĵh#]]o~^_m4C <1` 0I소& tlvT@~Q_#0Ν V \DgcЉw]^pDkf s{EcVɞܬ1` 6g/3u}`=2IȷsGÁ5O{X;I7O(5*#xt{Ɵ l ՠ"[1L2 >~N\_k7c`d 2 ϔo}?]}ocťDn?w#u`ԋu7!ka[9#CB?'mKMGӟ3e񝢄=f$ƀ1` ƀ1,Z i1 {0fj3Ȇ< gU [8}(]E엶I2S0UP0OcM,Ke{՗r!wҺKKXS\'_ 30Ͷ1c[=V~ X F zxLcKLxhw`VTInw7CA9k f]#怘]f]׼*s,fŜ]T@P$4^Xo};>Vխ,-V4P()(( _XN2b0ZɞO tDm6:;&BIiyNʛz%JW[[ʇSFO6@@`WxLEPx]:^xtGh?ߛuƀ1Pwk k?OA_~ǁcOLM*}6Mt{Fk4;L9޿i4~"\H aQ·D}vDwC|XC엿hʭM,Qv VlB4`"a.f~ !?]JY> ל"9'v c0cO@M[g|yq>~AqW}Q: %4OK/f,?Zz_i#[ F}DniU*[:j/x&Aj5\Ձ1v>0vm5 o wF.&O*"1`CU@# 'B@+x5~ƀ1P ,Z}o0%%f!Ɲm&l|<[qf2%~ ŢuA*~u.w|{q:-nh*1:#V9` $"!ݩxW7 +&}So2/ۻrN'زLo o))q+[9_Y+ԬϿGGv1` ƀ1` iȵ ü7I.+پQȽr EFqzz.}ryYi|#ʃǕ>]nx#Ҡ^)WQ"nZi`F." V2ԝ1c255ǰ2cGڐ'fGL{@|=!?X܆MCߪ?zB h\RթonrW+Jp* fq2kƀ1PMiLf.\q,?-'CQzH`yLw((X(6e)%0 pگyO7 R6mCWe;=_ע>jZP~nC֌_ƀ1` S(3x87^؟gvOʥD߃(˪ ^ufߝ'F3TȵWBk'C)͒ӵdubNOÄoPa^ՌmjIؖ?, Hx0DZ~϶wV`oH+ޔ r@ƛ u& ߸-7ub ƀ1` @-3j\b{=Wr!?ZO@V_ve:|̒P.)qhvt ~i"~;K( |0 Ck'Kr? F^H_j31` |kf3L&oFo gqX<j!S?D/q|;dy0B\(SX` K^? ֌cXdEnI Xѿf(iWvyfA~:Lt1uT^TS{_ d$ ~4ZZSfrsOō+Yg *vjDg[c0 +sf p6S?}rӬ <jbQ >Nqz4%|eWŵDGS')r&H>kje (,øku 921+!u4PK5|̟a:y7Qo6ܡ_y(I1` ƀ1` &.P_iedi<:~JYk˗+H9˗GnUyDy?E)"1**C8~tMʰqcQK+C !l4͵5e,$h? 1c3P5vGL?Z jY@.mh {/ȍq(ZZ +M—ͥGkJ1Fr'F-ybY Ȉ5c_ X@ tJFu{.:Y ip I .p\l  Fy(('p\Lo'f0, =RI 2hD _mGX1` .R4 )]Ē(VUa?ʶ|e%;Ʃ!W::5"fpE#XWEop|dB;}KBzZp藻U,+R:F%~V~BFe7Í$֜#(_R|GM9G)~=I(7R@GMbu\=a ƀ1` :R"W*;aUI/If{y5&e L'<("nūӍ~#rK1sCOmr^" zi,ܹ5c0?'\H6rI" ~UN< $A`ILX4b t#W(r2:p#[(=vN?]ݡ=io+kƀ1` ,b cnEcOad8# AL4 ` YE͠FqMe+Y3r1L>T)shZf!`i`w-KOj,g_kԴ+j5#1` nR=<-|*2{Ń ̕]8m*r}4K)Qw/rHh$ ̲\nZnJ/5H2nn?ʲBdS)抛Zr_2_Vl_淧,]E`maoT6ƀ1` ƀ1H3@GA'zCݟ2_)CJKt^{Xbu𻓣>w\I p4=WesrǕ3,Dl4[2G-+`񐷁{p{dBva~f鵢i18G_v[Daȧn b/" ׍_]Xҭƀ11,rwd7d 2hjy~*Vg*IG! b{Yϟ 삔HPd%Ji$e2Qњ+*s23"<L$j,[@/O3'M1`(\?oB&BUԄl񃃝82Z׍3K[m |`  l0΀2)g0u|VW| C[B>:IpR&36[c[܍tC !OCL)x>rlE ^mac0~ yT>9&*{wbU-a%b^m/ハ%QD ![igib>q[D sZ.3rd{3nAհ ~Iaw:[e DH(}<٠ߠh+SNOvޣ==)C.&>f ƀ1` @>ƶ0okjXy?yZ?ßx?Bq` gM˪ץUytH+P@t_\tU UY ÚpנE(ĬTScd+ft0z@M .P~Q*/V,P{Ed6.@VsCݲD`h86 ۪N=lwH[ Epϣ} 2>ޚP;0ߊ  Y|]F{GYOa`Q*MXGk;?X)~=UĶ֟l!do*·\P5ҀLTḶ WӚ1` /b r#-iwyix!˳DG?E$e`bzezWe}ߕO(v*7U4Q81z0, 5+V4cV@IDAT2Gf, U6ƀ1` ~˯b y 8P;S7@WPQb܀p[7a7gknt1dQ> )[Ob{f @b 7%׫1Bj:=K;]3YSt̆+CJ\JW ?0FfTk귆T} 1? Xq"FJPZ@^]O[n \{.ƀ1ggUlaV~K[7[ s k4C^~9X"%8{Fj7HіqzO-h*hhzoUVsjIչKAMU݉ir8dA!B$NϵsR[ {VIj$ JS85BP~ 1\S?*t4A _L?X3c0E=?ߧi؟ 0!>;S7irkƀ130S>EUG09P"CT(H8P쯄XJ~ - (PT]Lp󼪰maXP;;ƀ1` ,aʜOr?F#qs0!fȚQ!-/P%#T.Jcu]>V`Hve'{G+/p|:G|H?';Tؽ2\BepO`?)O.o8t\и22) Ӡb)r?k*Vdzem k24y` 1cS1Ĵ\1^/SYRS `J2GuG`,P;{z!s_i>uX3c1`1WgƑic}yjN?@ꤣݤƚ!a?*-MqVy(^K9*{M YӼ- Е˹k0c`>{mߣapn@yF9PQuT-DWxj&ĝdvD|kP<.:('d+̶ר<}BJx )\L+صB3$kT XKhR_KӳK?}!QutRY#]n}דv! aX3c0c>30/Oa*w;J/_T+VRCyliU{I{UK S? p]8X4 i-,EF7+b[`c0? \iS|#h?. ˸`$fF&"awts$nI]&n6J5ߟل oC@So.!v1` =slW0~XU:ʒ J? 8 Ey*( H >`T]ײτʅTJH=iwYm=EZ%Ö;+>ƀ1` y& 5a9O5oXOR5*Vw;X.U\Žu"{q*/oUA ^5@kr|m. _)Y8<\Wq^U|8jbj]>r|{I iRb@qbv[I- [z5ec0c0'NI;m!8wݛԝ;;0~C,7$Nm ,RTT48]mi$e/5 r]STm_X57ř =*]研jj]@.Ny֌c0~?0=Թ_/K9E3.Ҹ{luG>:tWln0q'7u^]]冡?5zr9B8ު0M3 :UNn,k"qE|0RvΔK<5J3)G'td%]/ƀ1` ƀ1P?$Et)GB~-8!*,]c˪o'T?KǗT=ӳ8ο]g-ZЖ-b+2͂TnehC ƀ1` ,R 䖇r(0F`-bQ~̅}[ &k | t;8X.DV곂k9W|GBa(=[{NAɚ1`  /k}@]5d&=Iu7asMErm~MRE#;L[A.!&煒Te@T4 0W ƀ1` ,fԖ?71QvSqk~z!g\u*ݳ:c H?yb»QqbEqSb7ի>+c p{Dz,Q'#!1` ƀ1` ɺNqEii/?|͊/grY=nduRu5S=Մ_s8NW)k)&ҕ(=R`=,V`Bt:6ƀ1` 5o\?@8ҁ*8Gg#s!.p4 l[/ж[}p]zxςh3 "^ ֌c' X@=Ǩ u~6:޻ɉ`@#}3*FHu ]1K'7*, h~+` h:ƭ+x72QcSgA83 /ForOy6yOc0 o˚ d|07+s[l6[پ&Ce/'( UnՂ9 r.8#P+K|KNťIu˯T]nU!NJ!FيGxtP#P-d_rc0c0z4M,=$ _'+6T̲g6؟\րLrYAfOqP( (Qnrqh঴*\BVF/nƀ1` , Զ=rϝ :SN-3!< /H#J iAn#Kn "{cLsB# [5Dh^\ii 9n-f  _4:?(?+@ gX0c@2]qȭcJÜ *Ъ#.)}PK7ʗce ƀ194q5onVHta&J|"- e*킩7B|=` 2.EpGWG(&},ϳ?9xbeQST|rRaqgMѶ" ĽSe E;240c0c~203˿$AU~%}MXKUC&ٟ~{ 7HQUڇ(W0&ʠPj@WT(tRrcٚfYc ™-!`5K6ƀ1`  =&K7Fgtj^.=@ ? 8 ~&%ޑ f%|nA|aA ((6%i!ӡY FQ*Uy=Ohؠ߯p/*~.a%ׄFH{#XqUbt_\P%J*0L 14*lY.\8?;N91\Mb(=/+0c0΀,9#e}!%\ac灠l^?K^5ɟ*fҼ1` >͞;[}_cp{%$ Rk`k Q 3qߖ/VZÐ@PBlMF!ඣ \Q8F'e_6ui ;0ߖ m<ՙ5L2~ (EFXI*Pղ#'4?8\5G~3;ymDL y)dy.#P`SD3r%μ"0ڄAmٚh50ζƀ1` 5͛9'iB>A6鹠0K얖T~Ktwq7qdc9gŕJ-T$9W0^z9> А6 y W{ƀ1` ƀ1` Dt53/e+%GLJ[]Uykw!w #MV1D9S^$]AR)!\dJ 0yfZٙf,ly@QJmcC2fwsG_'u먚yuϕ,Y -~Tyo GN>#R1y"t(![ "N#NQ}5ƀ1Pٚ1` , 93o.Hǻkpzچ Qt~:<6]S lS o+;X9H/[/@8&<%D8/*^ (P%*W֖H*kƀ1` q]Z`2(M'5bF's3nאfWDVQHY+\س:1{A3 $'5b?ްO„>z=hcNWʿS1[+/gƀ1` @=fFsXdv,)ƊE+.߭5P9h).ϢP"J6㵿R/5@@X &<ݏW {ggP6ƀ1` ՠ67ʯr~?x8 V!4l'7? lĦ$ ep#Lm 8  `@.GѲ@{tuea[H n:Q; X% *wkUa0zŀeW0h9ߴOǻOҕ%pN3_J4AO@nqX)?%Z~8 - <]7m0btM2Sj;s9W$umc0~Cjqs97H3̑iz/ded'PVGtVu/qݠHM9'd{aU K5?nZ8rl⫉])#Ĩ23\V ɊsCm?\Tþ:V_󟦆+e1` ƀ1` #5"׷j+sfzQ.wwjsGgAV:D(ձ4e[- z\q_$-N6 P8[h`U*)NIA6,ՙ#ha1` f`A|Гd{@\a_%@\s?WJ=`g?KeZP\F3nc񋹧p~-TyS;ABkZ3c~1կDZ1p :!Ȥч\-p!H'rSB&-!r ڿ=گ@Du@TX1(@(tb }b@ic0ߐޭ@m9L{󔬳!@F[Wbghjew3LjR^/fN]Qw,T?١{!C-쯸I|D}O\W(( {njpng3c0FoS){DbH X#FRqd*OJKUe 1` " *^]c/fd W5l gCHXx6[z|܍2@ҏN?dY.+9|[ =wĪɊDm3ah 7Ocb ;[ ww[=TdtUUFoP9s$i?5G?(a%gd3?I _%#~/K#UH1E-3+S=l?nƀ1` f S@n-긗 ~j_ 0|Ʃ^"YU}`@nqѡɋ(ܪؠpUب#%Rįݚޟ{q_H#܏0! oLƀ1` ƀ1P_wa=u[mP<En1:,Bebτamd3ؤZJ. nQ{Onʓʭ Lg?-6F>SӴ3{o4ݓ*7E\VmIU.p5c0P5Y!neٲΏ5G_LG|BzgdE{x(cݷ{n}P~5r"~0W:PNJVƗ=S1%P^@`jyOP$?1` @Qj}#Lǚ|GfWS#B?wrr-tU]hl|/޼0rbxv LzQ6Hv&ѐeĝ1Lܫn;ŧb$=Snj yT5c0c@>0Ez艗lD|Px:h@|AkvU@V7 /B@tQe՝3Y&ٺ,@d)sE3jz1` k%o 5]‚HPߌި{<\"/ *j)%nkE _@ȝ6.&K 5Tq\?7X6^mA=?0E Xdiƌ2xuԉ FZa&LHZ']?M=#'ݐ  ,?X:o~/{߭ ΐ.PȖ6韩yꝺhl5TP?pG lc ƀ1?a sy QgW0؎~fH ŶB&*"+#&jC݈eDq&gjEWĚ늲2WJDXt7(K =(7HֆC;0c0Ϗq5|HܑWw쏶LT/J42ecK%L,QVCDwtWH3d9 T-*Af4C,S[?W:+40?$ȿf1l|X'oWÎakf+"s U> tlC?"NtKʺ8]'N`?NmG@[fVD&u0;ƀ1PzOjTp3m.cق~DBonjJ@ܬ;bL+7 :26 b/6Z(`ͦvT5:MP]YF<&?O4c1;gu^{tڵ8{ ¯b vr(r)v^R4 x4*ݚrt~2D…BGTG{_+ݡڊCw_Huq-4_[Ogƀ1` ƀ1 +&|zHc)aDP^;CHBeuAŋo')Q|;mB٭]Tt73/;ezb^BO'ъsީ1cC10osnw-! {9G ?` ?g$痧+s `Cd Կ23u=d,,|rl-\qСa}!yq5c0P5Ȇu~>:"8(BɣT]8 [_1wMZyj-}$icٔ Xo/Bn T*@&rd# mޟ;c0~+rClV pqt& ev)`-s'F@ ~xt2;Rૅ'+ޕ|xLܗ]DtEύF[*-G+.& WlAƀ1` ƀ1` Rj~[GԁNv/p[M4;Eo +OTީbaz\ܤ+% @>Hrt|kh,Shos ȿK@>Xhީmc0~dp//A >pD[ިL/gN-ƀ1PjTx-^AǭE @#Lk$O`kB?u㺺{4rZ yo Yli"Hq@U5lTr9(m[c0ߕ\DԳMѰ.v3 t?MQ܌_579(!@Uǥ?;85q衤8"{Ƿ&qE*P<7:_H ]cb`\ـEƀ1` ƀ1[23j?+ouAݧ1]+(4"W&Wdb' ?.ޖ<\8r<1:"ˆŭ(f' ܑ+#tEnA4?.#?4}pФ[3cXDX/X|"f_WY@8F"S~4SG3XUAKJ3lVo' @x@;yFЭmcg X@=ǩo '\:?#/t] zS1m;Hw۹C:~-Uw}gC# p}]q;Rg)~$b-fy1` @x_Wgo7Z;734)nGN?eEO7u/KCZ+(!:5VCs4-9 H&>d ѡ uWj!~ED<]1D" */tmc0cX d$0.dS(gq;2QU+(G$+jF1Wy1` @>q/e|jjaZlw+ah,M;9%Gja1HtP4X>ŎΊ;%q Z< $?+% .ASz6\/%{!5WVOLR1c0cf 럭4Q A>ZΠzJ"3|_ɨAWNq%1ns/QJG7&= kXos$ɰ*f*Wgt Y3cXt?k >sC>VRqe*Cfy c[h?yڱW~<`JE/Ps.Q60E:"ˀ뉘6@OE;H/y 'ޤSKKwv}=#'n \=s-X`sշ6Y)-灹$ kN2!S1)rځ58ؚ1` @xz? W |  Yvg -m(,@#d^zNݶ!0 sc]Z؝㒾 ,Hʅ*[FՉ3͔e15Q'wKVjWԙ V>Y<SuWUZgYYj`{Yu\5 ZK0uW . Fd<~V|oJmc'y~ orzf25uKVCԂ1֗U͝WtwdD +yt+1:.ҕdɹ?,긤_3RЯahR^~ި l8KtGS(˻*5^lƀ1` ƀ1Gc ןZIuXnSUqtb6mu%i3*IOʫǿ[" )^-É!-6%JJ7ȴ,sL?R7 <4hmc0!RX8y@)sWg,: 9s=!`8~ȟg`2r c m ,r Q ~OFa_+W嫌ŏ_}=iE.q=0ϵ=<Z̀*WȶͯI# 9B(]3E s[ ex҃lc ƀ1;0yM<@D-ߏ~*?mri ξ `"f[]U\]Otρ7BDd`OaZriGs*4Hyf<=(0@<l(A@>D9k?2pk1` ƀ1` ZK_e7w,\ܞnEGʗFApO8X{Yƥ墙Y֑:]UʟDih{"MȋP2쬶r) KGzmc0/8MͿ&5N07 ʾU2Ws00_uA * /<D/{f ƀ100XxTv]Ard1="$+ֿ$gP=\ϟ-ꍖwk+.1)&E#j$Q,K #)S)Rui@IDATR%krP;~f ֌c0~ruMpON|[,–dl`Ejjc{}Qyh$%9WlVEKjP(V¾_^t NS<j(5`ߴU~C܈lR.?" l(hwbk ƀ1` Q 覷^ ~O~9us 2f㞌)~:><VS^ N3ck*_"dGU#j~wQ at\3X- 3zd?Im0ߝ|vKoVrf'1PoxpIe92O vf~'P䂄8 `֌c0ee~,^]I7gDb.r|©fe+pm/fw lsٛkejG?ގ{_TRf2[Ի_ .i \L=x⠧q?@𶵛os jҢm֪N3X'E٧5,fI nUHI\:$9n"!6w;(ʀ2 (@B)n#ZP ]!xm-mB=%r$JGt2o*$y^ dwPpclmcI e uK=*x JBQȝp3J2{kcW`Ⰵ&9_a7' 6e@P_F(Xc`Xy8~k<#`(@0#*|)$fqyƔG04)ʀ2 x4@Bo˷fQ8{7ژK♸tǠy|N X_uOZvCY}9HC_@$N,s&w`p`&粚K (l wDE2*ߕ.VPe@%}|GCmqs߸Ϳ?76Ck 8OlhP9'[rIKۗAe (Z@)Mbm! WX-.j< Ň}37 H?yh ~t2 (ʀ2 -aޕ]h ӪA1MoN\l"؉8OIJSowoOl߰c|?Ξ!7؊FkÚm-:P/$dgz{CE4o2[[)E%T0b5@6e@PYj#}nC_Dl5ct~V 22QEAr'y_R ߃?jSe@u$r[%6. AޅkBqv˃DǑx]{1ؙdXn0wr]O 4-8ca2r9q3 oX%"fSep(b @1 (ʀ20k\O8.n `!dh_"̌Lw"oO9(y+6;V|IR3@V}~|]E vaD#t=i1W f!sHJf5;#rPiK7 Q@*FIe@PfJ6l+󖟑]/CMihwq9^g,vc⧹O,OIn O~F!IDEOf{zPe@b2U*e`feoaѦ =(ԳGqsQ -٥~2*c7%t;:?HMS?&:"[q2G2T _,iQr&xrU c@k'FYne@Pofk{z@|?ҝ>%8| Г"22ZA-C5 'w$Rb6n94X]iX.힟U^? X0_`ҕd0Y8[kj[K|nA磶(ʀ2 (s&y(\9?hJn:> 2#]铈[`-hj%\@F$;<`A2 (ʀg@/A-8D-=JUƴTpd3;Qn//!?lNĘc1w Nݡ9}!~ ="Ot2Qw͆Mp Mk0q ;a(̅J(.`{5@ALj?:Ql(q62 (0߫}ixJx lfndѼN hQ }֌tL2s T7ϥ4헋!^|~۱\ 5 <[+ΧO"Y (0]84xpgd<Ke@Pe`bJ z֐> t|3ݾN}ʽDϱ{G`}#X^Gae}%PMr}ΪYɟpT@-L,L^N{  _hn id֦D$C߁U7=gS 8(>U.S* APe'1߻]NmpXN$+X1,dܛ|޲6gL cA}Y;wGB AqCs b~x WPe@ ė (3'mm%i9zqncWBX2*uY*\2rM=zm.$4m8#1s&`,1r;sƦHq 1!.c)Df">@* @TEѧMPee w=;$wWH2z~^pҽrEB)%~?]7}S HV-̶v/zCbC;Q]1h\J7JAi{_;0'h4ii {؊0CO,yhȆ- =P/Ve@PYeLR?b L8閲7 e%p^V\,ܼw r%zѫONY{.@|.=zg@NVq"zٗNyпoJ6-)1='zW(I /=FkWК( (ʀ2fZg7gbEpc+@X3cȸ} n#[B W=1c|9Y۝`{Y^v/2rkĐenn%>yX#` 7)ʀ2 x4@Qޖo93#ݱ@Ή-ne ;1Êja/at1fFn*$1&ag7ڹY*w&cW?2~Ɉ^N%X |*|4FP=1^Ӳe@yV=cOr!_F|L/3ݿ"{G 9y>YDtBn`i`Ҟ}`%mel;'; ?j'NYK',G6|\&ln iUSkʀ2 (ʀ20 2"}B__PFHer#1X-eawS"j6KAr7_?I@7BoXCF-1@NW6h$@!YЈE2~a١ R./$ӰRLh]2 ( 00nH3M/+2{[]G 1>ȘX2 =2p=*ʀ20 J~PfJ&km 1v;˺6_n3y4d8GG7['".Y!kq_a?3a*TZ Od,h|mWõи`tĠ)ۭg`m(x헹m:)W XX`C:`` 3DNn̹a -SqCE E:RO- ="IրNWDX_k衍O7Ne@Pƀ_7X-0['q,b0>~W|~w\&.}v+pe@PfG4`vUU\t qD(XhCYSdDrc*\$5VضcDD'\$\a,se?}X3ǜ|*fi)5it2~b=(ʀ2 DC{s{B(oCeoy1>y`mnl>i4&Cͮb,m\Gʋʿo-\@U%XK;l\a<968y2l}{-Ѷ!X Qt2 (ʀ203P 4'qq2@@!]rUgM?!]˳+af 9)/&`i)#[hO늼. ?4٭`Gtlr@t0էV Ol_J%}Аo)ʀ2 t_ِ'va;-=C2OlIF;DN$`rYkq!dWwbD`-4b5'e\Y29R$ZNFX,U9Ps@~Z%!&K%1'"*ב@nqSiC ܑ4Hd=(ʀ2 (ʀ2C I?tGގYjv[힅W셹M6umu_o^ >ۓee͉e2+~$dN,ss[*<Ц (ʀ20 0 QJVklϚ/yQqʄV k,ZDvkťẰ4%-\=;{:X{"Uv˅׎p ㄩ^-k{#׸VZ|?{{*APef k N>?JFD)q`GHC"CD= ^2=(ʀ2  ^a'6ߟ+κ3FKO ZƔ G?9n2q3rs=n0a^f?Hʀ2 (G_iSY}"퇇=s48^~PzP(ռ<܁όo劂&\pHF}ƈ 0T?dW*(|(H؅gK|)9-_ *ܴo+2 (/@4따OI2ȸDk=TH@@oEdc"`^FILւhH 63(=(CJ( lEW:"j]+WCy0[Q@.k}2>]| @>l3tC`Ц (ʀ2 (s2Qظ:lJ>d[f 0À11!|J2O }7jetO0?(@i[ ѧ\ Uƴd~v2}NG(pBZN%@%! vhGf*(ʀ2 |0ǦO:3v%r/I}.̈f4F?-P0 $DMA2 (@ hpY}5,K1=X!)_ G_J&J4"檌(+>W;Mr:JI'GuW\;0NTZT |wˣE.@T?  32 (/@ 쪆č/U-ns}6byr~Ux+Ə?^vyb> k2{' 9CW{%rw\XzQݭv ܝ9Ѣ:ds/=tZఌY2&2mʀ2 (ʀ201ސ=10 (=#vDj%.VD-åNۜpGDͅh`ti`}&ogb(uC}M;r]iGAvھ%7`M'H2zCf-]HT K ZbH*zPe@hq_|jj$#g}y,b=;_",V ,a; N 5˖ @F~nIF4"MPe RPYRZ8W!3z5(*n@ &Vdley%{Y?kSe@ " E-PչXW0%dWCi:_EDCf"N=~5FLX?(ʀ2 3߾6 PY8_phںfoqf ̕n?<\.La>TBxe=*PzIE@{~=<دD.*/RY6qDg)ʀ2 (ɀ׈^EǕ@<¬bovX |t'W4|@&{m-e='ˡ8+^XEpݲ?v=ds9G_ E~ 8" 0 G?'%8N$+M`NLsdtYE%o`>҂'e1XgU^yjb.(nl/+aBB-B0,bz R-~g8K|w;)ʀ2 (pY=-nHyG t ~;S\_'v7Ew~gme`qlMb߭&rY~*֫ ̋fas@?yUp}$H'`l[-*BuOh9QʖτRԃ2 (W1yﰂ" 3[}-B8slWF^ H˼uǁnFn 1pX)ʀ2 x4@ٛ\Ŀ w.&1H{Q\}\3p*?O\2Ln,;0WP9dCPυc-C(zmʀ2 (Kt7; d_3/aN~~0h>]` Zv<47o_F@HYiv˷ ,zm8EDL618C_to+؜JfZ2rȧ0ylrPqѾ;5p>ڔe@Pe```L`(?|_~pnl7Iš傓bO(Y5 ,n]C5CumRڿ6IඁSmpXԙѻhK#Y;R}c=I?i^ZTGX `XGʀ2 0Wq } ce,/b^\h(w3]v9ۃ2[V9{ ~q9F;JMPe@CPfoFm>*e|fjvabΌPXJeqf-_c "&'5ZT8[cc~Re@i^׊%]-eВ{n"i}䂯C}sl(+'b67'mY0inbovBrXwŠ/Xznj'?)eg5 .4@BzGpFѠw7+lgz2 (ʀ2 : L?g/l4wgsmRGyTLI~EM-$8*IʎlI.җ#[&i '79hTx#ѳhI&Λ 4KЭy҇@c0D/–QQ_N=(ʀ2 DjuԘ2o-_fo%S[XRFse'#>G8pLnSRb'~,2 (@`/Vmʀ2020mmXsvsi=Ư0GSv19IfӝqzAhC^Kp#(UZʀ2 (3 t|{fx>ϣ<1C^ ˯пN; nb|gIw˧O* Qbv *=,R5*V(S[p|5`f2K%Cf?HiK=D>Adz2 (ʀ2 ̾ -V/u{0Mr Z< yO*1/Qr>z-of'w@:H]Ifp:ֈ>fn+H?k{/P1A v0&zPe@yt~bݎBlʘu N{IfбZ,V #VO01lʌ|Gwdo_DN pRAʀ2 (`@@JWa`)pǒdX"מU8v–0&1vHO,،q"+/3Nyc@t`cؠ NZӞʀ2 (3ё vRw=F3 HRTpDgI[yť kfdi`Pv;0ݡ$Y2ri}8[p`s"?r^MՋ1xCKbNzRA Nc1#zz򱍇ȏ7g6kD^(<"~m|^ (ʀ2 ( ypWySm tŃbTq'uq{z,ߪ: ;㪗߉T0X l`dUog̝f-?q12UzH8mYmEne;7@kIe@P@\O?K p\ZD"|ʜ&,(E?##@V\ x/"qf2s6e@PPA HvKFTIK2K]؞]2yܛ)C$#c'LP-|bEXx.z;?yFQTe@eofIˏo_Fy>^yC /{FplCdC')bΖ-!>\s) "{E8o P?lyt\$+ @sYH;7F  5Q|54CՋe@Pe`a%PwSpoWo[|NOkR)9-]eǒܐ>g_JV<'PdF@:ӝ+ssn"$ӊ  "؉ -DЃ2 (ް1ߌX .eٲ7UYi[vN\Dw,W|8Xern|t%Ct<|4<3\+6e@Pπ_20{30ZcXWdv#{2^k\؞K0a^ڗR-r.+hw'p`Տ2h8v7[p2 (L@|O6oPQ@$- |nB&oGw *ac\B,f&_e(cnw0p[ (嘽UڡM*/~L2L5y+xY?gAhK|V:7B#C6e@Pe@h8b˟w \\@L!}@.Å 9?*a|19<@ȤcZ8sgz\)Հ%)6d]NwT#*7g8^gu FTL#?uw#kEnvK2-f=vOF! ;Q*1?ڔe@Pa@Tid (#b i#Dg|r2MlLmRe9 `iƌ&֕BKV&pn\x   @#P@[˸J2 (@uM}5RdOE!ϋa%w f1refp]$L|o h: *c֣_Y 8џ얈aN·L_M>C9dxDOUe@P90_;K. tgY*Wɸ| Lo*ޓl.9yC^dD ?q2Vvn24m8&AzVh0@)r #^ |>e@Pfmb&Y~d$e_$PVդ0s8|fr"biS[o@vO:10M_S,80[|C[Du8Q^=9#[n~6ﴮ$q>9WI0 Yڡ (ʀ2 1 uvq+(I^nw`&G_غ qw.~f``3O[wf>+}bgb $+ J:@IDAT&fv%h#WdN\! ˼)!@h1x \e@P0/DޔB`>|`!v$rj1Cx\jނ3up*pf}be Amʀ2 LǀLG l8i㽙]cY.I#05y?Y?xj&w.V~8aw@C%FOᣂ2 (@461h#7y-`}f!#%ii;풉"bAzP (: nk+<e17d8䬹 0,WvII%nnP x}J#[;@ rAlF[gqBW p8 zPe@P9㏏x]sd Ba #/GdP^T{A.oV-dG9s on q6ҿVpCJ07 LfAc'Ab p@$ 40e@PX_~6Ƹi;a=B{+c dO2f"Qg1#ٛpe%S324jxo! 6e@Pπ79*ʀ2020FXB>C'$#gfQ`.fjv@>c=lavalchnڞ|FV [L[υ!1()*ʀ2 ̪ "?kó2oC|)X; ;4|!ȕi9*yU EG]J .W>EpV칲³o<3~u?K ×-&Gm/ْ6#d0* (ʀ2 (s?ufݻ(> ]/oZ@jq8,WPQlIEJO+IcR4/^K}1p [^->Aۄ$ŀh(.wU| ' An[ @j[AP9{3rD#+v.>.gObc bX>SGMS7d"E??VɮѶxo4 YWL6e@Pe@eC?+nDC- Gp4IFDҿXbG?r3p׿8j8r1sy8GTs3i_#v~Ve@5hL0lmB(?9ԋi洅ZQO75b~H~G{@Nov"{ܱ"0d=J0A*炦3J1Rfe@Pa@AmpOCi[2rLeQ+2膳¶99|lgGw~->[ERB .\GcE2au p++ΧU v>hW _ >!kSe@P9?zA7FoF]Nw-oɾVb|-DfD.rOo&Mr`j#`n wce!X 0p;䉒ەCКV󐌧󏶠87I KtG*Wʀ2 (e`&xބpa f U+ >v3-.etd, ,2ۙ+u|'#9l5HB9l/R =*ʀ2 074?K5 4QrQd9fBbk|urB0 E\6cفxlP M6TN6 h,B (ʀ202 u87DD롒L5w]3iooN @`rs.#}ٛg{JS^+J2.U~rZY^D.^yM*<@ %X2-鿗=W1CݦEQPe@Pfc>b\G \%?GZ]۹}};=%b|.dSяS HGgr>S}+ߥ6Oퟋq@+t2q7 ,I`$`;JS~lE^[iz;= ʀ2 Le /#8#yw\Nj9 PVVm󦓅=ݙ80`.d9'+lȅlg-3ۡL@$ (ʀ27 O Qji 3xxfrpMp.lsȨX&U$ u 0)N !VgyF8H@ε n伛/ltLV 9O1B})+GCeSb@@-l#ctAPe`41>7w'ť\FXTjD1ı,3HB`@;@`D ‚egxˀENƂNvjb{;6}VPe@o1+8/DD 3ڂ$y ь3#soAc* 6t&R^i_w$ -6;rzjiG`֡=tnE[7]- U1C@#l6r!|ރ> O~~h=*ʀ2 (P|n<Ǵ{5O/oA4o&OE*E}^u8$G?.ū[X67: FɪpgurkhyȜA=%,[?? DCi?b=(ʀ2 L@\?d0J0F8aGFE+ &dP{xF1rN"W悙l5˟#r6k3,_He@P2Sl8ʶ50YvDݣ|4N"6y 4/\UvgM=K,iˣf jdp_>?'q`U8 1 1r?bKyF%8R (ʀ2033P5~6?A~i%~b"/nbP9X62 V )G|rTܴ0}"]YuZ ritT:I JWl' kyb`O+l݋`9hfO=D)QpFq~f;"f\q#˒P+L (ʀ20}1NB?(%oSm](?W_p%\cSBM?78g,L XD?'D>YWe@PY1|Y;߭)rܷnW w_#v2o$BwK/ꇋHׂԿKpz^_%R1^O4aC80"u I./jKİebԏAPeeqX4*Zvɣn;ؕ X 1sas<վaom-\ fDD"-7zPe@m@ƏAPQ4AbՎ9FQ7G= U@66ZDlH=9Nv|?+ @#io>\lG*EGF?STe@hma`|7¿ a8aBl xy%[H|A%ebζ(IA r<]t!྅+섢G̷!Ԗ&kH&E#.-r1 "1ޯ_d0De@Pٝ7G0}*| @snȓrg˛ kYE\[L];vh{>93dR_ߜ h1GH= yNT"rwZV0n0) [.E}HAPe'c q"㊱je]#K, gcrbߧl'hXArNә,s%ɋ y=*ʀ2 D4 2 ̞ NYئ7ϙȍޗݓGߞڋ`> ey-ei$6~){۞1r3tCd黎q ` /rfGƸ oOBoMPe`&g c@WczgXҾ9rF{1oޠq*U% hF/:Y4q gq>|3ԫ)CrT+OBUo/o]Y1-bHwaOehysbˍ[gyG {zd~{6**qx^ (ʀ2 (x=*Q?9RJ'.љC=W0_K7o" !WP_[pݼ/0Y*h.KҶfQ@r{H$`H^e#nd z#-)NXX\Ƶ+S$zPe@ d֞%t-_uYMxV/3Ȧ^,V2N"A 9؍y qsْԌzPe@4@ٛ7xmGc݋P3\߲beS 8Yd u?7 ,Cs)4YK5n ͘ DŽ.|6e@Pو~`.8Tt1 4đ\NFw 3ҿLpCCG$MY&+b(%U iMʼnbp}`}m#`j|0/[CTrɻ1j//O?D 1D⛿q# VV+e@Pe`f`r8 =+?gs!g `tw0>T'ح8X|y|~c@uq'?@bz6IQA,T sxfyf1g1'0'Tf̀ 9xw3UUwpã[VOOtuUuԷy^(c2>3%>쥤:Kl$xQtj+6@iesAmI; BD*ŪǢB e gi  ݄R/Rhnf3ԞϠ"#(s FCŏ߇F8. Vcҫ[ VjD8Z#|=/h_.,>EV}BقZ0"I73Pu,xPˆ lG%0 b Zs 8pU-8~70F3|K!@vLHy#׻fGtlxh? d)J(Ɣ3| qYV ʀ7wkBwy@fnc)Al';f~Jg9z:-Sf8,[`|WrV%[2f)Df YNݳDn0)#iIK[}۩G.m`si +|`h @[:gXQ"^ )e>`RJ?0iݎۙfw {FpʴSD>FϚ/+@F؛(PqF&` <:"76 X Z\l , @`o1a;L<"+8aLUEza%f08B~9/|ryM}0r(M` 0i k a` [Fy6%I!o;lO8&baL85.zgq8A&~еg\ `Qj96J9@IYM/!+2PˌȽ[ πO}fIDC2ؙ#A V{1 jz$'z,Oss8)Z"oȄA>7։gJsY|^ Hw]͘:3ǽ(Ί!:5(#GGs}dR07S/0sv ]aOK#h+&ӆ+ɇnpIuӒaOS{d3U` 0Xe}ӚRI3ZrqG|V1)Fۼ$X_)8_@&+'$ 6ѧ و~ hzD_i 3Xp`@l$ ҃NwH}eLs=GM` 0XNJ=8jƣ#4FS*G և!<"K,EbbGPVi}HJC䁂hѢ0*j9NM` 0 ,a ,"| Hƻpl̗07;Rya襨 #Mɘj[3ꏗ90Y63\sD771| ޙsSe쟶L=z[Fx͋vfͥ2lrl9Ϊ( -YPNe\uU=xV5ɥsucߧs/r{?oE x-wI^o3Sx͝^u^/i+$y[T|l拵q3o0 <㺡] `BY aABN}r,'΄ G듼t'R?J u5!)t݄)|"U"| ɶ Ӕ(eՐrP0ޡj<!r/ppz4EuڂQ2{#@P%/dNc93cz4W[#rA}NOedOeJqAJ<]5:3{_q-4^0[b('8ΐ̇"ьL;<*w"/ӥ{qۖ"~DE2^Z=>U` 0 }]8ؓs:.4`IӿB9}`s|M0G`fS.X4\lɺ@rYpaK,]_rrK .]&-' @ՑM⌮W F!2aB^&,@mݝ'^NBӸNd_(j'7r~& i\. yu&Gu @` 02/PDrWptp ~Sq9LoPKyZ/! OY3( +o`7AH(ւ~wrY@Jva e@9ǻEo xKLsfﳈ޷`U9xa [UU9l,'|Ͱ6pq^$öCiR\ʳ\ ٢B,C /-4-9wb@Ixn C`e  pF[3¹NOkD^tIt<>pO @` 00OqTV3!ry:rP΀JPPꑸ6Kpf7uW2ty6:3e3+ucn|Aގ͘)+y1۪/cVmqb9YdS@=#^dI< ԫR' ~eh`T"F÷:gY׾.?-?ϸsW)҈.-b>O Ǥ294D̀{z`WTM@`/@C#z.L5\ ,/9Zՙ r/v=ۡ97D\JpDfEniD^VK;>#߷&0 LZ~k,I^{Z(di A3;+5`r!o~\Kr 6T<p3$ 8P6 P{H, ^Mr4Eȅ B f A`f30 LGNx6|NfL+\F$ىp>l\LXW_ b:NRi5vըd,afV6 W]|\+UQvM` 0 aϤFK;=zo~M27p_@[_9UW|b3tam^OMct6c٭3:Gq8β`TWMa}(p7t64cCvig@v+^oyZ/bi;.Α3P,v3gڰ6<ҟ7YZ(?_O8g` 0 w\@aj#yCu]WK Y}}]e;ǟǟ7㯻{&=_J` 0 9-?obeƿs#ȗ;HDsnR AsκF$<ҥGy ի(P`)p@NHBE|4apcUBX2@Xpog+'L^+Ӆk6V7Fmcv=û㾄[K {ė' 9ƿ.k1L0@O%$x ,. v(ĀUQvo@`^3Լ!8j~O[ 4PRתwO-O9\ֵꭾc1:?jʘZ;-td9wɡdFlkg$ HzhcS[H:,/%n'2d[8\hFwd%B⦞[➕{vyRv'bҢwZQ~~ o!r@` 0X!T9:r@}h& lc{Xerd]+E=E" <](ѿBdv筯urniyOPE}0а _%!/9 34S%E)!V2FHlzy̎~m>P'hLAB+wd!XGzP=Qj@XͿp{d vpuN.1z;x7&>?.EµE2sLC{u:p:w{ oPOJhD@GRT_N)ٚ]'`fR'r`x>"6jK쮪r@` 0 ,ŀw-U>ZGHp 6?M_; v'̴ E@Dm2N|˜yD2+qnU0Dɂ_$@*Zeut-#U6p`vޘPCJFS+vx^KD(Mb|kBdl| L)^;X/G-'{9RqRIR9F(U~)y.EX UǀFiUe.`` 0 Rn^[B (aΰ`eTG"$TUԷS-]joh(RМO.Mm`5x_'qKxy. @` 03`d5H[hF3'LQ݄t&@A,T&gBy2BpQ!h)ٱ"/H@dm,d.4?v9ݟz1X\#`My sP8&0  X9^>wWF eF`x(f lmv/=p*gɧM|/IP7dC`+BEK]#F=IW9} k"~O_ *~O7`(S{x;,N{55# JsTjWhtj cjlkF8-5rH )pmJ2DoIBVRsޕ7lN–@lYTpǰD/aŀý0B!}\txG9j';-3!Vn}CNp K8 `ע\ZڵiMD ^ ^B{ k<3iRU^vo@``H.U e(B%z4T]s3tNR*vr.N^d(ZTu} 9>&xI5p)@ @` 0V?c"z>"ɄiWԅ #(iOұ*'h kz[*9.eX6HqѓG,'cɴʄ ͹I;FXQ(Kԟk0B- wP.QƦ{ٟ؟?}Dl@.; YTP@ cϜ| fJn|x -qXGq#vE ΑYJo$iXw _2;ڏ%?m@M CCF NF z:HWQQ[(KSY Hg n k7TEGeS݁@` 0PX9`gDyvE&.LrpT`W\J38`v6#, ¨I+lVZ,׌%bȌ(e 6"'ѬfQ!m`j$?M2 sarҋ36<|b41R441.6uPDE򳥾tlNplM3 :#ݗȤZ2 )pb3 ^[:3?p=vsZxpvE-tG9-KG`o\E:?ke:Nv?Jò'6.sexԟCwvO@uD>=6CK6d9D`velN?djA %zVlS'OS(I3:_9e3m${dlTSm.;^M` 0 T}U3zУ_er/iV>UA-!H+t]+'% 8-օT U}&Iy]ji17CX $tQ4L%T`P@``)J` 0PsXUx|K斍Ŷ3kaajŽ^#*tz0&] kNPڅаBhI1a}B)'P藄>ߧ.:jqY㽪ꏡ˄ k {}J2Q[{֧emC+6pJj(tˉ6MЦMa3;̯AK.fLΩ6cɅq뗒,z=F'.87kJ"S2&,g9NƲLYrx$FĀsmAIdwnR+/Dm 5y0P X0sv'ǦF~2go{Ɨӹ޼dF{u]I/0ghqؘmL[VVmZo#z+͍\}mW&gFP밌i X1{]e f!#\6&nJ6g,?#տN820XT9%e"젎s8Yp+%z:K\ƥiVomfqK-@4En:`ɂň+PlI.uf ,l@``YM߉z!`e֞蟡 ێ(U EC~ӫF^PՉ^<Qo{RXW:VB=Ҩ gZ?'#8}&`G<1g;oeH(@ c<ư0O&6 |N;%bA$j:ٯP=~吕hJ` 0 8B@)j6j? :2$`nx.V^cPuy>?/@A<)Skc+f6LATdSvSБSBY+"6E+1`D/dp=B.? Lޯ5)xLqUQٽfiǿZ/ A ʾIhH.lDGHOGǵIQCOBEQy>. <"0|̈'aWY ؿ=Uſq40 ,ŀ}9)P= EDE5u_p[z #X_79Tև6ş69"Z};i6@`1GNqkc O'.RO& ubSB{E ;0/6'WR1Lzq 1p<y暡 JZ! u7P@``)BRd@=O5`-W(o 9$FX*JQԍ,^Ȉ#Mء/ us$^WGuu@S?f ڠ[Zl4r2,?1Qؚ1ujAd=,#1[Xo@fe7܋l O_Q"~sB%#s=!s9̻־ȀfzKp~QL&|}܍1y5 YlVds?*!H J>1n1W0&?%jhL¨Tb;כیxyPpk3pK9Je؈!i)@` 0wϘd893942D>IK$8 382t2 $JZdrK zG"i6@`&1lv\G]^.adA!w>9v8Gj#%8CD6~144<oE8 ycSB.WtۚBB 5P@eS ))1&7

    %%%]P!"XrYC_c,@甲*@`HIi|;Cg.>C70W)rsAsZ7̤;.mTgH ̜Nd^M=M#q E^"ϊbJ8lKX` G% ުr˙ow2mc02\l.xuXtK7/~x\rvS͌Đ:'sEAf^|;{T0=1 קNH[ـݡ7X"v8L6SIiCޯvwD >scNcih`»N8~U~[7>`w^j?w]X~XLR$FYOh,6q=~a-Z)i*D/Rs~[J`-fE >9CShN.e3zLqK~&IvmjtZ^Ou\osͣ7)54~^bm~WrCx,N~w4ihTo$w*hʻ7y뵥<&a+7Gz)^CI +u "R*k;CO)TI[?a7)7ku #}G`>9hjx'|.䰲<"_ɊLR`$t?<(W ۤ w[2|G8DQ.`!O!go̪M&@`f0P&hy؃-S2/ߋ&œua]۟ՖπNrܾ6Ph>_/*h_p?(Sn&g-wՆ]ϒe $ȖPkl/oJ˂ϔE=[(ha{0 o9O!5<~Y0D.HAYsW5NJ` 0 ,ŀWu @Ui>#c?Ye)hG6G6ޫX~&=56Ds0/mS$wij\%>7>+-֌Xx8!`h,oy,zNz}|%͜l[ E 7Ǹ^+>TwN2]GBOgC\a، x. `2iyIg vBы;6^rܿp&#mF9Zy0^{ʣ{`WZSm<7\|N)ь&#P+&SҖq$}Z|ˇ $I߯)W:s-03ȥ V_2dNSوeZp6dh0fzSO02' d`0v[î#d6.@e >MQRe(uigO( Yǀ%ylָ~!W{{j轉~Ac5uHk (]*uB9aBKJŐOx$2& '˺&/>6wCYuT`nxɵbLB(@` 0`.F` 0PSV@)Z`BƬMx0EH%S+2ͪj x ֙ ~8<;CY~BJZ`hC( U7I,v`\oY9p/.en)nFe7p-._u=ً;K iB\<"| 5X4;߷.ir4oa =d~j<:߮)DI"}Yyь6}J3Dd'サNnXV{)q\ͣ,G)52ukjOF830;&5Kx7#w|L\(ryV=&rQk%3 \&Ik?#~Qvy=y>}p?5TOyey1vЗKW[8Lԯ|߫y FMEoO=ᏦۿlOnn_ "=/]CMM ^~XJO09O rPc}&()2r^U߯ϤOypp `^(>B9RBd` T#˴`fvH2N.!eǹ!& WXE)]@Hk;{Bԥ 5y?%?e75w>S=}) k9.FF8D)g@%< }/u5ۉ5I^'L N8%=ӧF Ot=.4ŷRcu XtƐPQ@` 0Z3^.\` 0 (i5#A\RkH?Q&V27aکyF:˜-L_j/uYe-U&_х dI:[O$`&,;Qx`boUc ؂u4+aceQf'fbG-)ܜEV3)RkO#l@` 0 ,?xGOesǘq| pKz[đTq;2! VA G8rj;9~QK@BfF?*}1RǢ_"mv븄CGS29:5GSU3a[}՟%kYL?C|n\ 讀aSYGf(fvp_Ly`r-]p]d^DWq=lb4 5Q5W0jS[-yٰFcF}BFfʛ2u|y9Z}]蟝0G_Od;YK?&JG݃iwn~zV3.7}7dĖx>J55%̵6c-)EffFp?#=)bON g=lvλYG7׭OejͰa뱌kҲ@OFZ@~ K8,5.߇>Cr|?߳6010f -(<EO#b3LD@..Ӑ?n z nCquF8ev"7r&dWҐzh.u%&kcIu3p(7#d驄џqdyÚ?fρ2C, |I5E?!ӌdeG?etm?$D/g0&oi Q.yw8^Gmޡ'9R6vḑ%0 ,@D` 0PP+Mă$ӧ)tH>XI%/#9UҖ3{{F'ߛGLؠ& HZΧ5x=f6hî (Av1NR2ofg֩fnTG.Rr 4L-RҎwbʊZ+ㅆ#*yC"2ƛ ,R4F'}E}6@P'JߐPS 9+a "eN2h%? #3 ҃<2\bI* (eL3jû~#@``5f [@``U0@R5wt͸%< Pzs]{LEpv&Y뀷VsJbذ#@b"{y+X U^/$? W{OS/L=ٙɄMi7Ԥj@](eq_~ʮg,ӵx^H#0Gn'=4rD'VRBnǨUT+u9r@(6UQD>C@@M@@@@N ]v)U> :xDxMU>|cj [K^UoaU2ݑ!](^@0 A3~:29œ!|Z>,POCooէ LSb!z>!`mdAN`;w׳3]e_R9HI|0&u %>zWz/#YL_7?mκW?$XWQ%lP`TeR@`Ea.!"kҮ:c:-m+4 W.^zNȤN^W8Hlw?ܼ}ϑl) @vd}qx(6q!)t@Ou7GsK2XC^NIlSߑ.9ܞ5%?N>IhsRGɟBި8_ &2^!og/>f 2E Bִۗ{ W80N֠k/,`@$0-Yb_Pwxh۳pKt;J->|zJ9y rn LY۸~OtznzpXz%-|OQR( 7QQQ˚jʂ]IYb U #yf(R3s rp b%Uy4S2H ȗm10jZ^i#݃v9b+4M]@.#u[ [O]isܸb@|m a$W9?ǘ6Fm߲煲:^6̭ˇ .-Ūmr6)⋓JZ͸?Է=cz(XTWR?tc)k32|z7.Ʀ4Qx}0g*ۑ%;UkxΡwl-x 31&k`%(((((fy?sG>֋{kwؕ5 X W~13 +uhg`c06_pdɓ57R~"U vv4F] }"f Rgvg;Fh;5y#_='$;O097!QxW%EHn)+1Oq)mW&u3ueR}KsvsT\-Xvw3ӹ)+? %o0#RMRGHz#󒜞m#Zfyt$ʛy;P|;Z`u:KO9aU_&~[?"mKEu=^,t>"+Nv0#lSc2- iα '}B_r۲QB'_ͮޝL-wd? !ɹ ~Wk AihIAz.OB d0uvǺ=7h_u.Ϯ%|eS`qYrQ]R5(`3O7`Fq%%%,g _?g"S[2a>*)c%W7pc%O]}Vf@%@4[Ŏ挖QP4 Ȉ\ƛ:F@ۨnxmOY<~i*ȭ<0UL!; B[\"K@@2'2wE~.C0to͟! ~D#dgZ0cB/Z%4T@*ux&q%c:Imdǩ0'p!O冣y濘Th=P-`#̰)WknTۂB՛2'l/iPQTH)u ǧf~dxJkjT0()ICC,QQQQQ>-0%OptULJjl/V?# fɄ0ov> N,+Yn-dšO1~<("^V;)4Ow `ޡD|p zlyĭyn˲:uCi-p˿okZ 4{ I0 r6c|6Ex$e>~;`L-> Z; fUmf맄e_m`rQr ^2Av=IX#Wvgw22EG'?B G?@!w/t=qunVWkG׶<40;ozp/IEDdG?34ЯXVq''gO zadl ڏ.#!A.kwaZN]'^I,22C@HҢͤ|-ৢ%3=C$i7m1?ǘj`[>m3ө5J2 Wv4 8&p#a˅9\gm˷Ƌ$/~Ƴi"nI Lp]/ˀn|jfv^d0.sBa|I]gnY'^ڣ]gWf1ۃRiGS'UZSs#Lo7^ 8n$Fprm |-&-aMY S73He߀N-Ne6?rs 8(P1dӖ0lNNo+4Vr^E]MpzE4UD g %7%%%@o{fĢD]7V+Efy [T ?8&U>{!^&Sh^ε6D^X~0֣fkU86?7E26lݚj=+PSiApi SvBN~`4 R1G"kaFum@@@@-RGyQXPʾjV;H3N~ P2B2Hp=nwP`Y8ടUO s)r'yݥ4F>uo==W|d zc@w/&Ȇ1fAvo `*kSF=dϰ9/ZL_2?Q^~7Y\]ɬ+a:_w s߼s8gUO~Rrt<@IDATN+=.[^0_~tU~f%-4u>K+/9=}&Âm{ iwomq%8y*ib]`ƪ5t0PL)]h4ԂWiv/sChەhv7{k8M] ts3u%NS>s) 0%eo~n)г3ܟ~_z /D ׭fb*)`N˳Qny7e^e>w^&.p mkG^+[X2h֊YNoy؇G.0g6`k!Zq<7c֞* xqֶD-7{=g {2ڝ.ǧG%ot Pq%%!).p>GwۇXx:C ֏kpZqE&_;[IzB^9sKh{-QdM#o i~iC߈?M@$O9 U X&%UYXhez:Xʗ6kz\4yCi.$; He0TgL`D3*{-`Mr~UJX!u1ܯV!{Z :mgss D R-&J J J J``RXD?e $ǠU0_cBKTCpWPm ौkVCW\O8`5ؙbL YʜXj뾌 i9c3j9h5&K}IaV]RV;z g `Sv]_UЍJ)N}vADuD D D D D , Ĥ{ sO_L8pRo_QFFr~.ɡI;A‘>n}7oĮ`)z~FEKyf>lw/&~wѭҗH=[s·sHe_}]ANnN- _Y\YJn~cس *6XZ#k[zF0_l$>_8`a 72_2 VomX&~(Ч(dO,cLveQ+~ ̈́ ,5q&)uݯ~MSBye&'sDm2;VŞ4KlE>p!I<-)AիTI2A`gxr]60%^TX ᭤/:$c2H;ߵߝ';- z^>y+A+h;M+=П~LzťB5'||Di4 ^K`D43{i^`W=]fyXS@ 4}NxY  OYWE:J JwJG!= ܸafͅ9!HSu! 8${8gb`9(/|3<ǸbNK176w;w;Z;uNNOixS7t kgM!(((¨k&Ԅu4Ch'w1%ꬌ9"ILgҟp,; >&ֲhҼBnY0-ؙ `I6TDHrEؗvVq99-ac-8P0?Xs*\⸸L01J J J`@ax!QQ%oX\⬁yz2cBiGpWeSwP# ifnRV|{EGXun0iHp~[ֆSk::握q**N}?SkqjB-c0@B B%%%%%G$ ! CJpsjojyjQVIRZ;CZ]鉼590$Wh/ySL[=n k4{ w78Gf!@#XֶpS=;}?HiZ~ϸUkZ +ϳpsȧ^pGZ#W^Ul>F9%~ԫÀ&g phAZz`dtyQNy`f⭠kPo<0SR?@s_L=Hɠ#>,tWA 򝳃g]kMBLw~:fU3HМqF5@w˧.pL~ߵ+_g^[8'1 Ζ[p{ t)5{{tkZĊD D [Ks؞( !{5.p -Hq&tZ Ox.[6p{[uu zWJ;|&1 je.#Uj!CS!jƍPq$;%%%7jƩ?V1rf:##uΩwa,j_~5BX3JJ[2ͩ1#L後w!KzIq#tj`Zqv?):rjR-)Jqa|չmhўrA2%%%H +- ((>Au  攞ǁRj]_RsnM&Wk, cn7*hwŠHiv\}NW ֺRPg ' @zFpR&gk 0q6ez\њ>Q[b+ }&_]kE > _`&5++Ƒ_(((Za\ l)I|9"'V;9ڼw9@&_)ڌ |i$#2ӥ9|ҡrŐhqul5Wx-L[\:q$徟|} + @Ӂ1J J J`@axAQQ%WCx  O7A6zI)xʯ}] W~ S)he)jL[vy*;E?da\31T-5D՚&W?#qn2fZg(&4݊s!{S/9oE]dg,?M@@@@K ~Wa04g;9S[qhj2|g`Dۅ-Kv'c~ɜS3S&>}N5[I{l>xul0߮mnڮ޳jBIZZ' z[M3sp|Lmcs ]ם7>\ GeTeg{a-8&]POM FnZ9N rOf *=C0?f/ ; σ=/:nFr3U}g~lV{ ᧡!l?`{Hi6EIF&1J5M텴g܌q)^&Φ]|& qpqS%j+Q7KS/K}rb_ǐB~ ԧp̆~fj7|j\9&9>A_"o!/^zz_ J^>n\40ޞIO̪BOL31t_w w(+/+oZQ wi `uחoV>tО4VhیhW*p]YïS tp<(X L/p%ixf2e:%W**g3-! 㐹*&OC/MiOz:0[wV$l ,w%Kz>-,q>uokh?%%7@{~8'|IJ%w[mB(+:+5wꫀ}a\.Jo!`,,b^UJg X?sHX_V"%%% I ]K((]+8zf'7f9o٧:c3K-lKdY؞B0L -WvGj:^XIE Zvj=:g2Qx69KMuWA78{ޝq&s#Yq;|/B@?wK@@@@@0׼gB 3% 4Hn Vn-A@l@}m7:+tQ =8x@JJBۓMAmr`rȼ ~񻳏7'#)h3f3Ї 30x?@w 8WAz/D_z ^I-h4x.B+68`'Y/'ۄeoP:?;op%54}A `2VB}z 2ơe|Fz?;{e'/4SG3G D D ,SjL]Q((ߒL\>mK .;uRAP_űRAj3JzN`{c$[j1A6UMϭJaUMS. ጏ`R'saM_o`bnWLϲsZ[ b:kS1WK!C@P Q7QQQQQPönCbp%y~sI ٱUO5R=d D_~ u6vKԽno k3ong(__.m< N^hwqir3'e0spQ(w}zD;4s{ي^OPB &PKq}C_#Hx%(\3hwsXPTh3taIwd#0eWEIl]3MyCMInz7tYshuy~sn)-#JUxi%)MǥzቋԯPYQ>dm'WIJOh!ϙw+=9{8pvu߯W~{NN}WA#mG m1ۣ9w,p;ZH{@8֖Acyӂtts ~thwYh=J;)@W6K;4w2.@94J,>y2k͌/ .Y8GA"gda_'G>T5G.Ƒ-~c_n9=;A迬݀[@ nQ<2$n"w\؍>Yˏ{捥^ h_aM/@Biʟ+wBwn,9q~|\ќ+4k0n]YA;u| 0ij*hg䯟y(((VnhUsF$уjCx 9l\b,Ӽƌd%+}90Z4ZMhHP2ُoXb f֍1&{0sŊ^jõܾj9'%%%JˊL`ִ 턳Х)BRe|ӭAʼ+q>;fD[)ȧt]+jaʏoZm#t[j>us )6MO|TVb:eg /!Z2E7QQQQQKG/- ϙ <;p$JA9+8ٿR ~3Z qJ];O]>>M·AqI34)(yy^^cMF9Ns*^дsTRMI ,amˡ1[kMwcMbgO2s-9 'u}:Uڥ`Ύ.:ۻ$2/)_Rn&"lIBrow9$HuCne/H:ؑ: k9ג.?uuA9s#Xu|'$Z pzᲜ$Pơ}}r)Ͻ>z[jt>?w-u34i!p{zg.l^JJgf z6UY $qQoW>R8l#t|tvyi.KAoWAɴZ.F kpnﳐ}N9rB&}j癝_}/Z}zw0 S?.IW9K.I{nVмdĩi;A ue6HMW ޱs 4&}PQ{=^})!Jp_ͯ/7QQKMH;H3 iW6 [ukA}ZP}'_< -#X<32T=U_bݠ;q6;MƑ XkB|󡁋5o!J J J/@.~B5z2tFv؛<رӼL42*O,g-ρ!@4O(b|Awn #fw+FxRe e\q?"\YcX%%%lKl_^(v \sa~S"ta8>~1Gq:M Cвg8$O&]UA+j>}8þ3>Om?aGIl8 3VCƌUC&YVw (]b%Y%~I ԍ&`{&݁{ϣ'mSN; mGuXץM,q[xR3W0o^1pٛ g 5v4c5/th{:W@}Ap0wvA(ѵ~I.`\zIЧm@Nޕސnpj)Hfvs!;d7_m&DPOnfn3, (Y=?$T붂z;ɬ‰OJ酂|;*1Pi_c^K`V+R[:(Gk?2uTOГy)ڙrs[hLLt[@2Л"=rp8v߹eH]#8O0}/%~UD K`g3.ʞkϖ+\ =!y2xv 80c3?z{-n9V~0[xxmsPF.Ӥ'-^َ0=q?r.)<`+KJC@0? &J J J?OkXB'ѠK7fS8pFI /%QT [jѐ);ts1˭3%%%,K@X~K/ߪW|+Sɬ b4lZOS8۪9F4]RgtEY>ڏD]bFE"MN0M2.-T1Kw* 䃁:t% "D D D D p9T 3VH^gX݄PݔsG?L$uD$P5{<<}(f27Io+Р_{'}ʼ ;PyEP?wP;W t|Q?C@MP8^R-$8O,S9=-Z C9'Ϲ Pg mˁ_T)UoJ?.. .vEY t-dA{LEjd ݣF B8FhvY^6.Ó>/Q6][2GJ7U4 |J!Ü$XNfLCzyxK_ V]cCImi+`kh+^ z>=(h-kO7=9t04)0- df3 + {3tJR3>.]|@C<)yRPmcX>P8u=Gȸ$[aM/T+8:ӗLYB0? Ǿ>&Qg>E]z%%%JףQdy,{kTBlM `/FEyR cU`p*cNKRy%[ _J|x=eKuƄZTb"((((#t{XF%`3NSh Vm}Mߛ%@\ h\L`Yо:ao7j'z4Ɂ.GiiV&lJ+&gfUR΃mTKǿԻသ!J J J J J/3لL! ̔kCuZήh)C,Au$\M΂-gfi[3tO{[S5H5+oT*=Sk'9:cPmG0{ K;fZ8`91R?nJx=鋄8Lj,?1:[O'K_)!ϪVH O p$SҎB';$pWVku7K 2E9OCԇMpIxns>03,͔zMmP["*xe|Kvp}Ufjxyk5m86I̔Dmh#5tW:~/\MHT[Os)TQPVLW 5PѴP9tWo} hsAJ>-W{k\)z?URpF Н|Fij9`rG2J5y8N,K*[<Á7V6N  f)ʻ?ZqY}97Ǔ`=#Ow㠼 H3@Z;Ar%0g A?{ 9. ڼfՖLz 2uE: L=D?ʙBӮ}ɶ@}-M^Tn\e1v4͡UEEx3ј7o>b@@_%;j0Rpj_jd2sXK"aZ9#B7/Ry;ƄJ+[z[.IH \2 PL|++\.2;Bc6NG߱YwMK$P/xQQK&K~0E]G(*#!5D 8%)Y-+}Jx}/vM*Pngv37SHe=2J1qZVYadOL{>@nsvv};xnmt[vٹp^P] p,'LoZ3y)b4z3$&'/c\4ǹL"%^b `:Eu[{,p&IiEE ȏw_ .g=̿zxhE?!J J/@S+ p[H31n"Ż0VeE:PZTZ- J{0VҼhE #,0 XM`LZFjDrO L:K=-]695OS[;P.tyZu}*_LإHPk;Re-`;,U4=#\\FI=<.h4bAOe3ZM`֨#*6L/T&lr_\T{p6=$|е'='ov(C|༨U[{![)68ṕN\q=dBK>3"-!jXÔx<(Ũ|>(SףySUGf֡flB}Mk,;U-iк_Fkmwu#e~M{{7pg7?J~u5IjM|_?)l%Hc.K F#ӻw -# bWK*hQب wV~Y`f+|: + +^N^/+>$UyW&Iƅgꢽcڝ gw)KxN1?%74žA 7;/GBiB.Zݢ E[囁^/?YXdzS]G@cn4 [e;Aip^d[EҎG#u}U~~F}xe_r%%%O¹5K?k;VEskR1^ˑDcl@yy{ƆT*]XX&$-_Xd *1gd-rd<r52%%%%%PX}Ů= \xՄ?}BPdlglj䄱< ;R (q2K4B>Ru%LAL8q sC ?i{)A"=ГR 8M0̄xmFj|(ƥZn&ҥgwshSoRIɉrdUV:}BojSuͫK9Ǝ03>ՂcA|`q+\f]3`8냀j֬wnzח#`*:dH{{xŐ)>BG}JՂYj8Pת-R@R8@mG9XHW|\GpWui'`6.s xb_!`%h]^y=-8T2zgPGtR%0;9"]C_gh346_=9٭mRS 5)qxȟECZv] J`A ͍ Ѧ ~k6&Zkx)sȂS2],P+8ړ+}7}f.`G>!醅3!w|\0rE {W,Ϯ0gy ; [AN G آm  V | z۶B;X;_?'5|7O?!k'V?>y?wsfvn)55_-YÁo%WJEWi~Vǿ}zߗ/w} 9 3).cQ&X8@Lq%%J /Nm}ŵV%ZvU ؟l s5y)'z{9S+cx"`?!)_'l E]/@Ѐ?rof񗻔Etʂ.jW;ŜeB@>!~#t17i4~ z'A{> æzո=vRCO6R^ pԫ_FZ XۯHәEƯlh7QQQ"}ڍOSn7>FNoA2tf\q9` vqU2ݑpwĜui^V5Ftv(43X:qIKc/J J J`Y@ Xn(?,Oi$= +N:zv|LC( *?)5)2W{T8/\q M%Tr**HS6%bʹ[AIl1X|ѲA^O 5Rm렅K@@@@_-@Y[OΰVaFڏ&+۫4Bݛp[r>3!8Z>>]Ro1H|Cn,tCƕ+VL88zһ1,v3k[xgigJNe^{E{='ObC=ql.WW __W:W%8mN*~B ;eh!lzX_WafT3):.S}n!|vyNA.<NjXpǴikvCfRl(z{?z@IDAT}z׮CkU{.45,!4ؗ|@AOž_n?m v&03+͏v+ll; ;A`ǃnLOv4֓vJkv|MHlӇV̶ t&ctuB'כOPQ̲X|xNlHB'bS%z3yAt_ #l{sL]gtKJ4U; >@s-SznAeO}>_k~헶. SBП2=p8JK@-40ɿ| ^NWIv!h:iq;Y1Xa4?j_%̄+eIvs>Wi]>'7N.h_]_RBerl;7QQQC,΂'HlB}i;[XބOe +pk)K]^nd\F29%hWZ hnJ@9a׏\ә َ;QӸal%%%$M5J JwI;m۷݋S|S>͗yy5V2 _8q<:qMĘ0VzIU"ڀT֞ϊ<)c*+( HΰjS9)KYzp%'Ag#%%%%% zCQKL`Of9>{7u{5@huj >$0~ntatbi6.?nL-<\ 88}xC[Zh:@?<;AlSHYXٛ %<981y@P8Jn)jmh ɂx0ިrɮ /W^I%hdqϻ=Fz/#fh]QfA=~wNۇ>b$ kM@'*83'n;`ܲ{Lx2+jh>֏>s#st-Urs8-<ڮ<j{^LE~F*%JDnS~¸<ݷ?t7QQQK,g8iҡf濳yBh^ly݂s-# YS`C%קL73H3KٌVVbEչh9e͘Ψr|If-23((((#gX:}^= L`i?emKF_vv\NՄ5>qo0W=+*y.zVɴ-,c;3֢B(ՔV\fÑ%-z4ϊͶ p*+Eu8(&.d`MP(1/ψ%%%%%K )OQ[o`)avq\_ާ]Fjj 3m78cӢM { kՠoIL/9I_ߥ<(h&xOLOi= ܞ~mL_4Z }!y_۔إpڂq̧Kҩ9FQ@Н38fNa-wѢM53 ߾2@ЮzYrϡRZz^j?]Uџs{tEAX+*Ǩh46.ރƎb "(w=erI$SpfϞ6ٙ.~E鍕r>EGת T.~%j".xGVp岢LPl-ENco:8`e~_?M+X զ6W꣆1J[ho[90D4ܜ.sF~V]_▌QӇJ23otf̮JB{d12q?%}o&8*cF!z7_#=f8gJnͿUns)qBG8*ef2n[[s}vPI><ݕQ]7p%< %㌹n}$S6j]N$jjY=}-`#8w/xT_9%F7*73۔[ 1vc =hc:Y:C,ri )V1._S+jXs`jFeuBy#]ʁH[BrڜAݯvgD)1Q:&J)d7b1%7 .`L/+I?KܲWi"CYdSn<*8Ħ&Q/ ڙܝu1Zc?/~ď~V7`Gj?^Qg?Yto;p`88;.kx].HzKt5siWql~9c~~G; >ŘSpM:42FGC#*0pY9Hm8.#5Z=ej>Nh?{6.(Q5^bqN`h pWsc80Y0gx 2p.ÀӨ'b; ^ٕ3<KJє2p^ jΤڼ+ tġ,Eps%~[qfMw$g $TStZ p-3XT~߫ ߁=^ ەhF | ԰U Qjk,Uh~w`3a64V!T*;DnEr!E-t ;:Vds>P*{_|nuo#Xt=хB evl`.Ș_$7BOrkldS' R?&vu;DH1*=.UPri -@وJ*k& j_8l:ހUg?+hK84[]:R߆f`*`#o\OSO1ӣ#a6_OlPdϺH&׫.@u R+xM)ͨC^|u\пfOFՉt&,TOZ+6g6(A.-`:=J`̶Mvbo'fLP"Pw2m8.Ǎj *RWyW9C+ps2ri?y9}:|I黳y~I71e3Dž˨7[ QH%g2MW(2`|Plv"}.3ҡֱ BvHp@]S]Wv]$v6>l-ϯ d76888G ՚}90a"~oǡj7UUl_fzUX~Vm ,YϚ#t?opBǭbT-i^?n(̡%M*] lJKиd7`NfT-]֠ӊ%2fHn ^86p`@˅Oj?`! dnJ}ǞZSin%p&= lhF[S͌ 쪎Բs(488ױ/T(s(%쉪V9ƠEѣ[ \?T{VGpQY]x7WV[G^@_x׬EswჂ>Vt vps+[5uvkT3ޭb0V{G_K4Qzh85Wv@2Ӛs߇xy Ynkx?NC-]*|(}ȭ\^3w >g,gט6כ[G 1\wE1Kf`az1X%'{T@pKTpPc:dX 9PT jԧ<>G`\JLgb-1} I ֥6_MQ=S'O'&X_\vZW,FunϨZCO1':y /tv5Sq /s=]Gb&d(`ԗ:(?fbF(V7jft|7Fzww{{êǟRF~,aOiv9J''Є~4G 9j hcmiU}=h+&5nSS]ªlY2Fu //~8+T96e{Un_ 8Pj;+tת6_/>}|*FnsywD \^RbVL`(0{ 6;1FZ9`~m_o$MO|X ;¦bBzy~ϣ[:UƺPßГ|"+ԏEf  B*Z( 0JΑc}g(\x_ Ү!8riIE_9FalIŭ(m5o ~ݜlBڐ#čp%5biho i.$rbpmՎKEy-aEUuLk b,k'EQRuU{0[&1`G:Ѿpqs`26Ռ5;3j\U]JI4u\ʸSq-8SKƁ4/uQl3fK1!<ǝ|F6'R2JO(1Rq ]´nxηK@;k'H]MZs#v:6sRf!V.5N"xn~ |G !x%G6Fɢ$Q;~77KU/r^v .S1XgS8p"|DsK<@SӨKǸd 4!@+p,m:2b0ȁx)+*p p`1.CI64@h>9v3=QdʬJjR]YkOkpsQ#26a%X7Ԡp 4'}X(XQyχ`(*6.Vq*TBs0+p R]W~^6_1op>D_ YF \+זI.aΎB&Յ6@^Wk q_  6/c.zz}7kFxʭnN`0oS?x珧T'JpѤ ɊFCM?Ԉa3\o0e#6{m-ق[$>6tzSGG͍kդ~AnURW4Q"'ybɗz?ԭ^\w݊-PvKAg;L{%fyT$@1g!_ ":zm4-2bx}'ت[I:&N=<d|k>Tc|uJWgL&4g,(j_0Ƌq<}zejYF4ĥ:xPr<~G-GZYpu|/s6I4"YX`tgǿ;/;?p՞bn0>H%f\C6ϷOeve9=GdZ#Zz݄ibRhMY7$>9D&;ԊiDYI9y@kŏi s~,JTZښ #u`~wNΈ\6/5_Kscſ$ c?82"\E#@8@*MoѼd/NwC,zD6òQLʇV>fPP/Ih)_-_흅 5p #Q-ѭ< A{sE>GhȠ*4G鑠?!Szx(uW7 r%mZn;F u DҙT[9<]FڰYgFb R%}'Ɖ98O~%;vnܒKE1'dJ8`Wȷ_ߞycg o aKUz]ps#bfn}N0G3^wV=&(SX HН}fyF5Q-jл .iO$KJj( 3,-$'.oKd QښM_2,%!69̼F sm@8C71I>|56?/wVѿg9fCs>͐+&9x2ʥCy׸S 4 &`krA JSJ5i Ak`3I?m"?Jw>6CUbWe:9ɤkbPa!RsCA ZONqF`Z T&'%p[ ZOz1f%ԝj'muSkf+*(X /Ui Aa}?cPy?߇J͸S9+p8PO1?nJrP/:t2 _˜lǘ+~RЃK}&ÙcbԼhgGω2}" LiF:٥iIW -# m XX.!RT,ޑ;=8K~ߥ:l@LЎ+GtdɓdO  j@Kx"`0 @C>>(o&Ǚ͙)?홽 l>Ft9P=ʈnX &~:4p 0>JpxM6t/r+R?.c/ϭh\ݔ!)NX 9æ#~50`Ō<7]Iaq)<62/7 s]̞m"LzF1ыho(HT_D=n*@c(7ztA\ dY?"( ۻ7. H]jeEXMT(tC rt^O#T" J9lqKh}^dW3p p7zƁ:LܼP4 <#R' J0S/4d4WYO|vJ;[tMq %ETo -E B\Ua.@/iyvI ,Jó,9jD| `ACeIf$̞̌Z }@W"Iv@"НiRlAm%0Q 4#I8~(cx3$ &u!R;vܦ@G;1WlNcreN;Ei5DaVxWru%g<_%SA]Gv%?"uDBJDR6!=V VⓆ78e#DcI˷a'q֢#jOmUw)n .d@[t$.3Cl5yЈ\tnrV+#X2# 3XYZ zT8vΈb?zNVy72%bO/QZ(ҿ$1f_l+Sc^Ȥ+d1Mdv0֥6MƎ>⃟x߾tO|FO1FLJc҆[nƔ "?$mG7(Ϗ7f:">\pVa*ca -b,M#s/A{$Ს3/)[5WO5W)qdZ]P/B ZIdck\Q&88,sҫ+񴟱( l3 6&K{DlS?0Ojޢ)|ʒX2T:)&I pU'{?#G2op̨.4(&uVs02MjkR}88;ĹB XJtpE=ק8]9 rh)ݜ#im]?_~C@-\uYsbQSP2 Tr h2T15<4%jB5U.uN;NPx \/7 Ja+8ߚM "* e{}+`^fLa-|_'*j"{j$eBC]=UY^BG3\D Z[pj S"[OgԇFGFP?~Kp߂5hl,RޟdWӴ|UWwP f n(>dۑpAr{v[ uт3ՙٌtu P{E+*ApEdr ~ŢyC{O(ta ް+:Ģۖ5r{T5wQ[[m]o/8 6l`WĪ'xZqCEv 9f/왏`@޷)-ԣz HB3^5V!1XwQՊ餅*RpgK<+tF|`^^m/Srow2_x ~i{W1/|kd6΂/2擳~Y&ƴYYޠؙiuFZBb= z#t  Ω>199\xA'T9]݇۩~t4#FKhE>ʎ AಂsrU .$H4W/ᖤtW@ߟ̌]1zv(=P uX m c@14ٵU\t)JX %ś; ʯgX/═7Hl7S E\\yKpbp+_.B \ɾp٘v`P*1ĩ5Q FG_~'c.oQ5cҳZpO*oTˊ)ug1W:ctnUkdK+G"٫\]?ώo;#sUn6߽{+~÷0̦cXiiSmߧ1) PrII]Mmi< Ə{]ǖ-91?+;Z|FsRޛ43 w)P88 k-R+E]!KɥɌOTL~[=/To_3z+({W~%x ߹w)H(7*E".˚@[aܭP,ϱ!u2sɭt|B5f)6TT TSbР]OoR&v4!_ N -7OHe),_Ko3LƻTne9t?o:֔55E؛ΐȾD)]Fƻ1"΀8T5jH.0^{jMm*l(/aܹ$[U]S8\p_HګFGZ,ffK.1gp}vQ>쎂{$p4^ %w; TM@@@@S7fk~%_69 6]Ɍ'^?B0#OlB}wƊiѢhקjV7˨oocn7`3_nCzG56t ;|>Nm"`;"l 5RMB~5U5F ԗjwgj13Lӓ:n.8 9oa B)`4+PlB<4_ \C㕑{^=\2BP.cT n% |j: ҮR7w,N c|ic#{{&x}" #Y,}*fw`+8^%t*5P|e@ [ >SCXl2/8!yôPHOG,23<,F@0Z$ mΎhJHo;,se=GyqFD1[ߥ9]J\OIzc  {0&݊1)Ę^^1)a>qMH-d{>\DALW߄6vgƬ߸jn5#hAP|ڏlCm\M@opd9LL "YLx:aIXG3ҥKV%*&nVfm(MWnEdwcښ/iJ@ZUb hbEgLXKy q{8Pe8Sȁt?xz>?GuA>YA7ٮRэL/<[& NuwAj*g`W8nmށ&U:،Ƨk[:c@'3/f<]흾65OGܹIH0OL%:yO}T`NjbC X8s3Ax'K N9ǫJ}O%0euյ'E1qN5LG=cv#E5oqCF >!Ajo}J oXw*P+.Rq9UK =EX2)\/+QQ2Mp*WD}.]dS R爭ĥAEx+>x:Y^ ^&5rw X%Z/.. D:ىOVewH{UIf<b#̷-@oznΨKF B5֌كi=k0=+x>iajlRcmv/CY:Ș8Y6k jwu+%]zYkc#&1V[slwtp2qO= %~ޠ(M\id2G~]$w.\tQpICQE%uu k>Fc xNՖITs` _U1U7-4uM\MeT-}uziK]r8c-Zu3/2M+N.BcUe HO@IDAT&;*=],?Dpr\WG&v@_uvtW(m$trK7BBS$A]~Wc _M{뫳W0mzW8"kOVhCl|^1>J6c^f J0'tS~g %p p p p@=2p p`1.b!S@߯:QN 9֮ sQO ޙ!ыv'Q1|D@kV(5N8ZMuH 8B=9!iCʀy?ڳggQU7p"Wg_(Ԑ&s% N-[PԷa88888r+Jo3Woj0y)t`3+.6#=rf. 6D!u+oeZw{6/mb[_&oE Ѿ]j[].u*Kp9 fΑb QUc^9RmiH͈Jb85OSe7QO 5l@U1%n, h1"<eP /P(\L0l~/֧ ?!-rh:v"4־rю.ؐ0{j  BnSǻT"#h-ڃQf/DߓK _W?ɐ}հيwTC{9tFzH`SC v"ʴ\LjDM)Ca&ͳ$m5iȸQpEIޡ9NT)U.rJOzxi_K&p p`y;şked%(,T;s%EY\A*ȈJ<юGH/m򄏯F*2$z"`Wǩ;Β4=L_%$|zL v !8rM 4489J?[Wza88888rJ5*}*z|V Ll(e5B0ez?ctq|ࡱԋ[p^ݶӷE R-^r^:޿o0]Aٱ<^XeggX [\m˴T}'8<%Q5C!RdNt* tz,pW'Hl ݡtAŽfOVKv`.*r,*09j*!oR1UBIG6+ṨՕN8% X7K[\3ô:C,-x+czf8E㑂c 3&VI..󬂲I|T'o}*Ɍ 빭:_Q!F+BF|Xz_p[Q,Rx_ ָ߿Rx8oSKy!,F3%ڈ5j]-Vߐ%?.JmN:!ܭTQun/x֌`SLUM Q݌ZG; jSEjzN ;!Vq!uqͥO}?|;T7W\.l~^h*zoH] +#Nu@,L%tq+&@H*J")+ jˑ %큈$BfWϿR`%tQ @qXxb>t%v,(;BۺEq6pN+=pȼߪY$Y>OW gzs9QGOoiDi{`U%l*hIgZeajlyγy~KUoO2Gpչ0D:5Eu LYΡєCQaӫ\OT^M@@@@28^`}OuKQS3 pϡ*iJ:F#xXctyAOH h U!WâzSUO[aTPb&$Vz%qI@mX>+rlL2*1'Rh?-.ߗf[F˘!qr/mÿOOG+0pp`I?4TggLH=h5ST]ϧМ3e^+jS X+olH˃!Aп@=^/GtX'ydC@']<pq1-HPlȲ jT&`LI5wT;[C8I򋉵l~]^aRLzM2"@k섣t|XJrPu[ٟRu 1lo| N+7Uhv-fdO\b"xG%4E|6~lrCBIkW:p p p ^|***j_&!ѧ53\J[Rɜ*kwF߲O@q eUv 5L+S1-h%If^/< >7M)L24P,kw'ԉʷ(,*=}XOnge~ ]qX[͙zX'bu `#qg"D[ڢwdgH_ugTov#LM^emT+mI X I  ni 5GyoCJիҾ&}[x1Y_rb' >d1r~BY8roE?d)}ɐt?X?^c4Yo3ܚKn=`/:]PցE]ɴf4w-㵍#'CӴvޯg R|"c|a vU˜ji_W0Pg-VݕLO-X]+5Q~\=e9M`@aΥsmxC]Fz"!h4'7w_ݟ{|%k"\v4I5&oU"_e_3풜Ũai~!t>d~Rvc'i G"I^"w>2'כԗXÿ:Qf:p+0C7)p Mpq r$NE,C.-՚\1Ňq9NH~a.)xG.|}~@8UG |y1AJOBZ/EPYr]uW1TuY,zU/JA V6Cp$ \96v)ZTU Nkړ鏣/~fjO{\u~Q6T^"X1c,Kf90fȳM q>31mr+!ҋt7/0a|m.Wk}Սi̻f{'\t֯ɪS|i,Nz?izZ Q=?f4]AZ/c">!t`Ke}}E8U&.ڥb+.)x߾>`@?J~;ѯ =q)j1N_bm}hW!yDŠ.ɣ>c=*ˈڈ1L~#ץuHey]^sm#F5g?-=v?_<]и~;"#s`dB΂ЙS,W\ېxe SwRy$oS>k,Qmr15+CEmFۊC&ܐvub|,luoM* DuG 9U2o'0f_$<wYƣ5d/vu3̨evzV+:L =rQ]"|'5fjwiww&#j04(Mcu RI,υ"忿h8on%x߹)Hȥ߷h13Mk (y14ml)My1_:tI1<)_f{ML9eZMQ41)q-@x,<"9PɉK&<Ťz~i+%E# i# =܎ ^ӣT*~5N#c\[:p p^ÔK MnV`<3>e%NM)QC 6du@c)@;ہZ@/ٹ@i\OFo0^bf&иsDi# )YGbSZA.7? T?~Ǹ~^U=Guw9: =_ w9B* |jfKTl\ZΠ.!# A<^8'Kx>>*<3_KL}ZѬGVPX5.(4tiq4E+X$&p p p p p`@E1c ])nZP7yU]YZ ] ͢񱂇İ5/cZ_ vzD$~Go*]̈@' ݊DюgRl%PBir"vGJu3j=V>_g3?vϨwdSO\+HՆVޠPtud@W`9SǍ#}$?qfK6XG.s 5p+_3SMwBAm6.mdZBl#Mh{Ff>Q1o-r&+W% SOx@U }PՓΌzH :i~\mxAy| 9?$x.I~nU/TiWe{3+{fB__$u{D5<$XElkp|?>M>L)_}~Fy\egs;쾛'[6Y~rvevN:Je祫2mZfv^0~ѕKIbA)#tB FX"#R \*sF45f3o0Y xFDZyM9OyvqƏ׸Wh,@@/ƁO{+ּF?*$ޟ]CdO ,1P i"Z#WjTjQPSg/238|Nf+$C<Ė[#ӣoH G&8p#=e/ f?Ҩ__#4y'a7HXQ"Oucګv(dġfDo{" 24/;0qc^3b]ү=(( bb"#&0"ELs,gDQP1`VAnWU}t{nTWUWhLgDjYaO[i l  SH5%%%%%I܊FgΎGSjEd-Lݘup!('#hϴ >$I(ະ#`pv@>AU|z1MsW 0 EEY m`O~zr ^oWbk,%v%JV2pZG vϸ)󡥹>۹C:L&G=2QN/~ <*jr.)Y0YNA"QB)H{tSX065~+xgRyӨ%wӤ/S8k I MɔN ɻi3mbq8$A|u|x%#>`ClǴ\͘.H"ݟk9G2nQ md-bwbL_LF!t_#VF8EEF F?)cM63s s^7B./_.03 &'q[X9Z )^gJeޛAn2a`p3eR?^ͨk WKI{]Lfz]4^$!x7G~xFY049ׇ?e~fTkG LhOҿW\ 7vch%*`-/C+Z@ \ E$jdqrq!ǝ RwL-2~xZy%M-WsHQ@ UZ$PG #H<3YA& ogYcRX^ a-V]P0SLH>晆BvR*݈0&{pF)YGNm~|o%%P[ TxΜNj9kx?o,ɟC*4ϑ);UN>o5,S10:K8]O*H4Bea̾Uɋe p :!F|ၡqP&oT`sn0G}I-@WhGrԦ`^hcUڭ C2|_.^Vny:j32DKK-n.lle`Gw0"d[cr J]л+t%~z__k2*|UZBe%%%%wK߀?[gktDxBXwn}7įEWUwS=y P,V;?՟+Nu5e |0$a]H3ʯqAUځS{a6B)3RqiC5 oZp-w>Sf*L|>/////V\#cJ_64 ̚{Tp 2 `Z] ~b z5%a?&R~W@S4i{| `;?Z j-a.ݫ%l"?ε+ `KCb^ăH :P-|r3H璥.MAdw&qG"FW# c>C5\ɁƸ64ͳ ෂMM>'0  wf$xNo|~?=O ژQLj-q\r3M[^`,vɋ29xVl5 JVe:'iƨr_mڂi8YK=B/]*rGuō+:{\ 1U}_;ONТ'vGF}ҷ V}`Ohψ8|Ĵj@;uj8^эw vQeèQW0CE/Id:1Q3hu7 GC L?z x x x x UpVOfC)Ïi3oT Wp'' #0:Q=Nzzje{-q#^5hV}n2۽^ 53y8B,{77j#%xڐ%nT+֒@H{",Wb0q.!L&. \G/1i9\O1^acVN/?)R?2ؘ]{G(6šGhh"./"x>SяKxȱ f|vn8<3F=QP|-@ Sf2ct\Y#O2o6s2F3 M^>:1ht22$O0nޤ*6LC.ݸɮ. G[aZ$c 3ӵ zThqS/)O@wi7'ف191/* eTG9:J)kạ胘LM%d:Lo1puKFx%p'LA}Fx\q)g /dnhw1Y4&A? #l%=s=7>Jmr0-KAz[s Gz_{%$7Wz  _fZ;dtGS>ԿP0VC,JH0gT"cê- ,BI)IdLzFPITe/^^^^+T  :&n,r \+ưexfXECMӭUIo@Qv!a>4^DuS}=NMhw@S XĄYD41N 늸ֳh *`Ú]^5O يσ*q+i̅BO?+/3۹V|I%LƼxq*x`[%GIɴ3h+X4DF f]w0/8Ѧ?gVKpQG1-83Fpe=Ur^֦X_˴JuYy=( -գ F2Qvō밙d,4*c=>/Evx_<ˈOfn2 ͂ZGh{zzn|Pwfԇko"c (]GU+ =M0gC|ߟN-~gї?*)g=ag:=JX؞ v6 #|ȳ}t '%Ĭ ե W?nP _~ tMOKK$}ލҍ ,vq* SŰapjO}O@Ctd†H4ΰ ^Ʀ,Dlr%eP)̉3DY~GtBH/UMC/Ya_ZqqrgrSd7615-3KKKKK௖3̓Hnsqv{)vyxp$ ȸnma'C͙ )fL&1b=#m9$cT1߆poE|CMfL`^0 m`\[;Z |V>Qdh (VCNZ`/瘤GZ7.^^U{so2=?KCTnſP 0@ a{%m8@و~l$=*"|.L!PjWo(X'zPV3IPLC uxNx$k5ᆐl KwBXҴ'~Y-|@%5{^:kJ׉;1Չ?Uzha:!p$Z`gqwOh6ˮM!,g#@@{ZAB>!¼"܋05BXߧk.5+up:"- j_ڥ-Z=]H3l1~8] &7xW KSI@ IU\fATbW6;%yp}oePlV(QprX^/`.#\Gv=Lvs.Nnbܽŝcõ7h*ρ{& u`wu`ˀA(0`3E8 qjн8>NJ؟aoߴiD\ǿ  SVx^ u.]DֱEvI,JNf _On VhR^5+alt2xV†psz6`"c-̓Bqg6NRu@ƥ]$s ˏdX8,ڟQ5$@4lǿ{Q$~G @vi4ς}ttQ#=O_8?^xY\:>, 7n:\S( o\SKb)յmԋfV9e~>P4[ @ fc ,HΉwɻT-܏k3vjJ֌D fFrsR0n`%2x $k^3'VXH{dBK}ߐKM$EqM_[ynbE&3<^wƱvτh:@IDAT3 {p1LgÏեm'qO±0ٚH6lJk#̇FwH%ԞSrɩnKKKKK௖[fcލ|kf3*B7 }wPI88CC k d¯#lGIMyx,YbYdu hDxOUc^\tpEhFГs#[0. mj3hAmHҙJfSw2~#RqLd'_Г) H껤72R״Rq_aeGQ*z L;}Q}nV'q@?FB714Gjd zPM)~Z h-ڠc:x"V/ F]AJ1~bKL% ])>_ws@J۴7Hڽ828>=///5S?Q]hۀ>JO\ &p҄Ky>20i5t'$Ϛb3D1NyhށIm1c q_%Lw!z4Hx-p_:|c^qc[////,Xh,YN)ס to'3EԓbƳ]Nlƅ"V;Wl)(u0LrG8,|@#\SMޤG`t(m`Fڊ84ތI2N뉛.<$Ub#ʠ(;LYeKKKKKos|feWͤ9.*-tg e'cF[!\=9=Ab9]&\{jFp=OQx %cwgǂ.AG{y:w`]8? D?P7әV0=B6AF/3F <m*FZ;GO l̴@U3b;pmcio_OBNlV'd8(/Y:}7|,=]r׳qK9VO: f [ ]2J}=`>UlpAsMZ4ͳH_0)LC>Up=p?wGʉFzs 蠇q;eڌ@oM67vaC@i !E4D Pk )_sh;ޑ{֌:v2Sohh^[ SrQ=g $!Werݣᾂ/*.7lːHG>- BoˣVG707!\6΂hР%0]& QNEaXKKJLY̥Ez"?,,cWÈkqH) N%h /^^^^+|JEgJ@w&EEH +z=}_&'Z!q8_нiBi0BN7XXFME@⇰K~ a6G-O'V"oTMYo]&A{ w\+C=yMm ]-dd5$̐q]B6rץ2uI7Qv{#:[|K% .`a-ʯY+6qUw+wUl8읭>4A;P>w [ Ō 3o/ ^8UR iTi&BUg_@ke~ Wq5nN6t 95$!i^Dy2w0fl"g<A._ PYP뱑G>_1M .'ob@ D]Yi^cЍW~Y.Yr.riL?U)4*`cpoe@0(H韸aZ/%&ueuͳ^nUnf޸eE+{2W>dqW޲LI7c~ZH/ ^_fhOLo1M@ ŠSRr.]Amώ_܋yrP#It֝m(53(x y ~1_g څ )A8q[ ;Qt=weqc2^Df0N7` 6gZx:3Vz/ ֣qF E_t+] e Q=8Ke著z wKMX8?sJ[f_po9:@XEvC<(ZϚ  d/|JJOvUX@+? SSDXӧъaNQºn ~x~I!܀vdE{#KwuhD$zLZv Un^z} *%ZH[$ y])_4hj3bWbVfA4rKC]0Ø 3[s͌Z\R17Q">X˛~r5ͤqK s2eAiU글67qZGE3#3-sl|&Yv 3ucÞ`# :!&6q6b~O(bzYLAk2"(X)$1R,~tv \evK4ˁH/aK v0t؆\sܾt4+a5u; Bq3}R/&gO\{LۂMp`N]&xl3fB)̷cRlJn^4k oOD~O*^#Y]$.8@_4egq^/?/Sqa麦DDK ' `ѽLgcx9Ɇq]Qř< pͼYp x=ޮOocL Hs1[5 1vmw"TpK%}4F 3AH)5k9ʦ[ }h?E/NHy$(~=x!lA8 y-Ft% ]cG&%T":y̩ŮkNx/^鼯./^^^^+•Yx x $M[OFSV݈ T,yrRlPN-rq\9I /MG{c¨⛄_C<%b?6am;%H'{~IvGKr"".Iz#nǪj2aBx 3:&՞Kba_*gu+\*Y 7M`B>51]daq @8 d`R2lى]#ŸO׹\'V &F &5/̭ }ZUfg8KicGAw@Ep=sr~+|{3b[eEN%lh_tpV$;aLq$J3 ϵ[6eM?ޮ]`Sϒ0Gʘd }ODV 89'.lGgu=Vi3,$7rpsL0\n 2eֲ@37y?S.-dTp6cTG0ꯣ4x[ǩ+ 2(gĊfIsg/@a:2z<[뤯 ݒ J7iCvK?$ͨ[˅/#v_ki j6Se-P`rZ躛يǂG/Oi?Z~Q0>c>&0BwA?_CӵN:ɹE K.J.`[./@7$}<֨-TR>Bz}; 7-N2v xWhT#Q(ny߻N,p)e9 ?7$KN?a䑃Uz`OI-*:ИgzyZ#H|=%ϳ0*H@"Ϙ"%,4#MQ(]nDzgr4@ ;~0t7wrc1A lVNӈS>:25x x x x <+wK(A6\:"ҭQc۱ w8x_jp(G^{]vS_HxGwx{jQB8/~D14뿤_5ŭ]9|SdFUTjv!z7({7.؊םsդjR.&tH0 Nŵ6 rgg]LsK;.99~ gGGԞ5,wCNbKW {1Z@|1<4>3‡jwcLkzz$[:[Cwbzu5mjM4}2nG` MԻj B2~vxi)D_1fWez/0+¨{Ȭ#lNڽ)0EmUpk F8|x=)3'*/B[E'_#,vK! U(-@OX $`M.hX;y]j*taKϣ":ؙB϶QlfThm_u/kF,<˭[KLҸ6VpZ1;b Q%hTτNu $GC6鰹郌yqSdLnHљOHÅZbWbҝmDoW?|)}a$/ZKӒ9Ǯ765N3L4.6uh/+-A%[1$ ju)/"Ϩ,ސO:0fQ-ō.>ĘKz4i'1Q  `#l*;b,p}YOfFxI?)*6D\*hM0n Q"iRf(}.%"/](qXĥ>ʎ~MI! 1a&7?х ʀk$T󛘴kyJ"r8!mH /ӽ"_g"+^Dфp#;.m\HVk&`r}Q/ 6zدA-d,`>18OT'E-LCw>BPgo/*d2HdGvp(7Nj)3) /+g'Ar/lf:69O('{Пf(TG1w dm0BV *}xg C= &mfFd.ɅG-"#nB 0pz_]gpݷYG.^ ߵ.0gI[N?]V'?~p!Tn#/z"uEPQԮzaVr7e~,#$ E9İ3U5N % ZtOgb`ß%%%%o%%%P{ d25l16sG:DxJNSnj@1 ҵ3xR,1(6&H0L+Mt}({c5d0#SqPcEx+1﮿xnES`nZa1h\4+Y FF 8TlYTEk wq{ƶ~t7T?zsey 6:PlloR=窯3;ofYi e#%ccc gpsb%Wf:.*:0#'0F'-|\1X+^e=ٺeVa v5)WV"o5+G%8HOQOiFF@f'+?:Jg Ar?x J9 `.Wv͏UjJ.P&h͜QI&`<"}41Op5e| <+>1+mP&2<@5Dބg@P'?5_u=U2T l5y9*R BNXAO6$[&<#NOH>BsϖQ{-^lELu)7*lY٧"Mmg/^^^^+ʶR<//j+&vT`7&~V nVkvMB?o[jVc!dcFu?I\o1^MNd5}(ePpU\Lz0,ڄh[ގJts%EE^A86`z%JH 2Lbd:!~fu tTd[?T89vj/q+Z!ܭ|-@Ӈ137crfJd_hWzP/HcL7L1vJ}(7}/\"P$7wz H}'5LM/ic|Q4@ ~JosJIujHƝ31g2&`¶^wHdL?)'}.>g~?Q?^ʨn 3jCJ. Pm[E/،P)G"T'A@n7RKq]f7^#JZr)u)I]XvEwG=ė7S) Kdk<Us,@ꡄy(F5p@@5ԩ+LEVi<,G4^4M{h9T:8j>%wҮ+yY1ǜbJMl^^^^+JZx x x 6nq|3%VS}ҧ8С>K謍+oWҼIeb9-ыiKxKOOF~r+#鏫o!jB8;-HIw=fr2=9ɀחp?@:⢈ړa9C\jNV-vj*rr&0YOx x x x x n w[U\­ruglv%vo-uI#nmW=OPR?6vsR?ì&J8J}U-mM 8r_;Գ]km]]#×/qH A5μTUy{c][D3_Њ*Q2q3MO8T+j>vY&F fQ*ѧp k~lŤNP//2 _?71uvFM} ۖAg4 ɨx*fWG3g [ ^u`̾ǘ4(Q$udP4@,ndGTpI,PC܇i\LC[Wԧ5G 8胄Ѥ̦IaF׭ffB vOa~9Q 3ޅcOVޱiLfe챌Z+X F ?g$늑CGǣB#"=B9-$lj*>Y{pNtÇCwr=G2=x 0 /%.7wøLdO>I%:GgtERf VXCTš2p$:w`XxcE`!{ ҈;[He20j6H1ׯ]Ǝj3Q٪HqrU`e5Ѳ=x x x x ( +B:^^^ D:tvDiK*S,~e`6\ 䰗~Cl${%PHxg<,Ֆ̮\DKF=&KfDlBG 6<Ak ٱ*dꪔhES@/BC`w mF]g^\M`k"OyRPLR[sX9G{u ;C"ޭo 7{Ѷ<*xcVl셭w6l)8ˮƱC=ބ-m&!hqƀN[,znڤ敿ݡ \p{x6 oG+ypH$r,Czf_@6=%xo+8;1sCy/hQYc+:%;xg>8U!ZbnȜ3Z._0GI qڈ4/Q ,s.4cR^]nhhkhm]֖vm@pp]=ݽp u~=a~6?GQ]~6S<. aBpsBe"dÂ5W;%)?Xj?xCKKKKPy8ډ½peYlMZï^"`(~5*Ӵ0{e>Yg! 7nBCM8ٜ?<=PC]wcXSv|zO!<*Cx#܆eF ge5@ˊdY٬z,Q+Ř}ƨWuA*82|<cVmVN_+MrК6=G!Vhk v[_e:܎@?`RuT_ y22J׎cZ?\/xLz`lWfiG>q#Ufya^ s= k{O9~ANYK'1@gUtČ l栻TM*Q#% 2hSs~T|:K^.+84^1G0 VJ{( L7r1+pD7H+j-t:[}IY-[! ] ps;>9,m8|Z<ޣ;t- ͟gS_!$ c ̢Nؤfz$<à-6*9!^#A%qaHd`QYsC:r`yBy8ۭBS_5%(}ϩ/H z x x ,#sSy]Cnc?+J"Rf 1vB:톓?KxT)|Tp>-=J[Fq' kyEzvM/U!+B~uVgC*hu5f ie'b_'Xn&X{C"/////$W[RV +\jׅ0]`l_ z+mFW>:/׻J* rL1+x; 6o$p51}+sN5~5ۂ4.l Z@ZaozGn"@M X vȘ9%p/kYW>^vL}yo![]^Cy9+r~ѻ+âqj`PƈQBO߉i@^lJϴq̽ 'H}s؂Qg@TIPҞZt5e+=x C$~w_2xд+Q:t9X, bTYZ}1|W0K%}6hRcVI ^AI9F]߬_ 8uF_tYr)c[ |Ϫ@2N=x6p9J;n yu-sb|#Ȯ#R/EA {{uw$bATLIݹd23L"Gf;.Ѹ0b#c9P^"G>A \_NR3!|qSvٱ䭦|gǎ@^ր[ Q>).% ҂_,o$9JNC7B%UDLG(e:4 $7J?:L?/iyʢ7iQ> 80 e K3<ȥIr/\fY%gProb`0滈7 F1RD+?̀" H2 䞈C<#@ : #p~gP7mYM soˁV9lShm N78ʸ^3{Vg,.8-bFw<qWn͙H׀j EXh)#7!&. 3 3֛#p B e%34JM*/# iӞ92=vL:(,RclKZXXXXafkhjCynۺ 8z9?ԫ`r 1 iyOU Qȋp{rbx,-Jawʡ@> `UMikAHߤw)U=8.%J_:(588]R۝L}@}ezqlёy ̗u77 jIے?0珼O= tƸLѓ#e0V2мo3je"n\p*`_?{إ9&rl*7m7{;j}$ػ-↗ٌ*r&TeTα]_yozGʇë*|MtŐhs7W#WP;ώ(@?E=IҘE!KP5*GR4.aO"h CDs +[ ]]i!T \>r!Sj7 0V }P)ÿ<1T,ZIrك7 8>*}7a/,(Os#n">B!:Yx&-ȇ!A!\R- QrXJ GSHP^% 5Lk0VQ^(☔}CqL =/ 8>8^q6;ZTN&c! iIG(r):Ɇ'ܩ3ʗ7j<-Y-? QMamHƥˌmkoT{d'ɵ+ϔBfOP@cPJHR]5*ȇJcOhx`Ԓlh:/*9й7=hb߫{N"5XZXͼ DG'$ ݓ0>ۍo, !>|V4޼=H7o ElBpTaXܙB ëL`,L 2m#WBJL28`f-XLjMd0#g#6[}N8B| [+r!-xF{,Ud9_DF3&#ڿ771n|#d& ~L$+Ds1@m,{ 8c䢘 kH__301+y\5  y<cb;S*3ߛ<"< _" ;ՙ~"qf؏P!0谼&^5a|;9 i1 ,׈ZL?}ߗ}6}e4zdռǪVs mZxS.3@BZO_~a;"ӸKӈ)pJhA$$$|K@<=xW ԗeHeY+q(֢C_޷+C\~En*gS3'krrrrlIxphiٴ bǑ%#RCTҔ%OTG#y>uY[B&, ˕BwᡪLG,:y壍\Oe æ/A13К: GWSm`H`-J&)slF@סt?F֕ f" rrrrrW8` fVeQk+< pDTvBMkp$$ߔ 0-[3v 䩒O^LLz">;^ٔ~B( azmfxS>趇iTf: M"= Bh'c j+u;R{e$I4>x?ڀ3O/&?';1_ ˻cÁwf z:lNEw0;]6@\k(uB0-qqqJ9m(\&\;jLP{~S'#`Ց muˁ_/N7uU:|9[O^[MSO> +WcsjrΖ6|_$ j~e,~eCsӂh-FƉDrcv}yFr9P2L_?>Er<幌,_C`w|\xKEpzy[AϸGF=ii\KWA-"]5D;}\vHąBK|X.%b9Fs#%uD)#oc^p#@L?j" ˸ݟeSjy0A60~_oDxpbˈ5[%"'1 TJNE,*ɛBzb j>D,01JB5ٌW,~O=oW5,,,,`Q{I{5ˁ́ze>Gq+A|088wٜXR#YP辋7ti*z (BBw|X<$@3ai\əau85b;j- *iGB-X땔1`V8)o&, e jk*Sm,,,,, x&AT,qay,R=7|S@ QQ7FrB9@qcj&R5ʰwMQף22]%w>̾xIn" >aEm84da:ƺRI>hs7(_ A Sn+q;{)?:0jXDǛ$:$FG&`z|> &5nDG_DBgאqWέDw xye`T%Vcl#Ja[.=X\ci-rr`gp@}i9cHF ++Q]FXD"~ٔq.L`)BpCpfʃAL=xw"cukgS{g/Dgϊ""EG6lofngFWҥ"i Ȱa$ISa$UGʊ|\5yD9: T䕒z'D:U ##koclSe(ݝO o,x]vgE:rzuxN^Us. 'нDv`E>cc$M@2z#:vV3aW + PQ?9 _ 6G=iv Z3/b_ƇB[/r:bz IiM$ ߑC% eJKh9`98` )TSڬ dp6d*M팇 eXk#a:p?Cvnt`r?v?r8cI\u6@>ś|Kģ8JXPyc;ܣ𑡎f4|xoVK\gr| c <Jt؀s]A4nAZG&2;B^b|H3*0^u幠uo/Eƣ vW[<="G<󵁿 ů}tD0jh~Θ9A}\g#؟)Ks_ ޢ?JQ-AG?iyد)Y +b+*>TLaj%$'"=O0 IEMRt?Db"(: YFrq@=޸9B,DD<|珟fϰyv^Ӷeˁ?YQ\m-rr]┠% \}OjA16h n7qkaDOpS4A \LC*Lĉm#>+V#鼥&+sA4t]rl`\ >h-h` 4?Lq,,,,,bԌiPFWT2㋇>R pg$q1p*q hj+j N?*6PZ96{g_#:7( ^I^RCTaՙgey n}Th)׎=x!t  ّ~ű#wǛFzbthD (`6opD_y+Ыe{f ~` Nu aj/_AR><(b<n`b̨=l=ӛp6mҊLy[bxkȢ駍a|I #F` Hi p4JQ 4E>#}EWƈ?L UQY g*bJvĹjoPr8ZE|zB,y+4b~LԳ怙o xdިïgA2@L Ht.~t_Sx?|BP*$ĈHd.ysx a(Lj9k?}?O (_t1Vw":(<`x!>W\E ðg`\ GxW6Ejh'Qv\1W9:aG[1]2[A Ur,̠,n9׀tsh*#KR-xYDY@BzKzʎVuL$l6YXXXXleUXVh؞^RYEfpn|)X*?<*)LʁHj0! [hYTi)6XgIb9{Lr1WKz ㄹ% aEw$s;Y! Y,d/w_O-?cD X)?ޱi¼A2a|: 6r=:hydC^1s'9B  zo z7iFEl@%8Ѽ\ (_ZbjZQyн/|d ڗ9#8Y9,M'$&vLt2 ^+iL/ _yR>S gOUS-: C~,7U{+j3RZ??dnu򇼎͈@z稰nbK/d;g;oSb"jr;Pb$?S2+BF1Y?O4L bc`W8dfx5cH6$ZБ *uDCSrRwj [6Srub"0G w"C`98P6?~|)FP ()OAD`D| |)0Gm%FhGK?SBOSfAw,HUF)z0f`!Hsk{۞4a;lϵ9gYXX78me)\K 磡]q/8,DA8 C`Ax\xN %y;O&3 Um{s}os5aʁ*l 0W@cWO 6O6;Tۻ;Z0rk|_>]+1ݰ_ZЃ&#c7F޲XƃS J.(~s>|œf8v0֡m0lq~a2[;a1*N)C*Ѝâ】ߍ#e$@)Wf|W[`qyv$[('a(.a 2+ DmЫWP\~ lr&b-&17 ou(۫V7koo3.dS;m^TzPVyh~FW VA;5"eBh!_iC%\F8mIQi5'RJ-\Dq\Lɠق_d\FL{A(;^ZIusFΤY /1+_Vu rq3:@ o쟾Qԇ_"ƥOG Lj:e]5rvZ6}=Þ\xB)DGˁ0-,ve8j¸=:I,kN8V폞a&фW{"><61_ˡ \,$!By_'IQ(EBXЏ=̢Ija:t eUk8@.#ab7wĶ6+6yiTȪ^AG_0Jtg`^thJ':7{\!+{v/ۂsWl:`ZHј)L!vLh>Tq(_<7 ma Wɖq0[嫭D Ljjܯg-?V-Cʉ^^-Eg2}I73Ve$]Xm+0nQoU جJ o\UZcߤ 6RJJ_ {~\|$=x'o[^[֧|9 d"|A#=aEgrD!n0Yr"g;hJ jU7a]O(tʤXVL:М? QnDs%,¤*4TFP2[SZ5MRD(i`9C9`v .VyID co MHHxb~kb>|٥:mv`0bhQbΈ 3o!}sEgxrr4:͝2bf>zF󐪹F7(/]}ٳ,,,,vmrrOs #qy9|f5o-'@3g~"؋/q%ٽ%Q@Nm~i4_CQ( +`#E*t?%0Bo. L13VP); Ho-Nx%N(nc MU94q _DR4C4+]m&14($8,,,,0Y_5Fe Fj6&t|^YjxKPjPN0v' ;mc}Vdo#ڟy0{CT/RGf+yJz Gf'}6ؒcV07T.'#_=|#hco[-%EFĮb|?/Jk)9lȏ+Kt^BV|dž3y):q!|q7P8Y`[|H481ITRj^kV1(tFFrr/ˮt5[uD̎C,JC3}J(zڌh8V~fQt rfʇt~NtK;y S2LCް6X:qt0ϝF(%5OW~Όoޜ*/[һ6{P֠ގ8[9ޔ8-1 L.f-;LQ D 3(Yn1]|!jI,"کNd|(,$iFp_Kx@m fjKsBQHk@(1I(5#= wQ;6|;7aXF}Pޏ܈fJЈ6~8zg/@Ĕ}> }:Ј@$1DfbTЌ`? 4lk4tdywi6 P2$w4>0i훕oy #8W=Ŧ ur?b6YXXX*&ˁ+VN/Is6e=}8`ȒQ70ĩ4EX>wJ\Ks1'5˶~.#r3P~I&YdK [êr-fH_ wʢ 8_5Ź?xq>P+ 󏂜!zHljGB:pRS\ִˁR1jd͊6ǴCK ^!ґj֩hJ6pC?hY>lJ^T`<*G wZfg|4=0{o]}$<\g^;䆦lo`iG[N`8LF?ޒw2*5LkYU|!:c8(cxts~e +A:TMpXD 'f| x茼:= QVxhC^{)BBqcq!ė+qs+ޡ6@d ^ư_nef145tpc`9`9?倒iu1|EWCCy 'yIf Tc~!FD Υ_JohG}#\x;#| ʸV;8.|ZKJ2|QLiFTmF5rtplk˵z,~/x wd[ʞ5@{yhx!&A@e+y3j(A1WoOo*D׻ LbrFi2xPP ͌7GXq Z\Hc$Glr^vQYD(,Oa/S^;`c6٬,ZT95x >5eo`X!oQ6!ҕDYC&}#~>I"}b"ie F، {pb4Z=󩙱/w84kí \:<67 xrS^xޟH's;Ni6j9`9`9C80zAӕ>T+\^{j^70;D#Do oE Uo#}hAaf;s 4VVdb>ӷa~G&ׅ%b4N}+PXԻ1,h"09_#bb*BD_Vcj4FeB\789d([l9`9`9ݍ]B܌FQj HfdJi@!(RVVwLX9AむP~,rwQyvclW 3$a[j('$5Nc@W`T0?^[+FO_Uȃ Gc(+# >Gu%y71?0vUisI-1 /h|mG?w^BB\1G>xlwky-vq/Nwg q=pz#A3Nwg^JB6Ee icX?x F!紮frr/N@NO1JЦ^+C?4[uqb8 D5*t(*T|Lh@4:4w47СoT3/:8{ Liy(?p7q3ߑ`r/?_[}=2 'LG`:J,DŽ݀0ܠ:7uF(_5dblчʝvI/fȟZZp֩ۋAGJe!spmDaAN)q1:r'oO:01| R'?ð!8|)*?Va!ک1Ty,Y)|Z_ Ezֻ[ zŸ\VaL`^&tD LdIUvS6mmd9`9`9`9ˍ.k`2$r\0SL;mX^ 5qD$<˅qe~C`\B=9'av$+j3]%u˕&H W sKӽ N":,Qm׏I5ǀB/\h AB7<~Ƞ+#Ht%3%bH!qy/Fo@_7rk| )1V{OG?#s9uh>Rotr{hB,Xq;ឡ|()ӎq7Ozſ114%}g3ڃ_c2ze3! [1e؇j!Ӎ㥉ܳ<@CesSy=2u\~ caZO9:"]zG7UHN>?r<3cN\) %kr<̈́-/ 3}3[|M8r#,q2rq06rQ).2wmЄ?\Y9I#X "~wDD)4?΢d'"'FP%"P)Eaz f &!=1 %Nk ?8 w;y+O?Kk@(WbQ`J?{o9_/ВeoO='s,,,,v&gg^m9`9`9XXPE^pv[$8S2Q^d*Lu 7'hI4L  tưZhiMCĿIOH鿅[pίho.y5lN] u pH,uby#XӔXͻ̈́TW+ G,Fwx=eZ@NW*)B/~`,p$XE*^ݳGߗ#ĞT],i`G'O3o!oVYU͊bs &ϔ[s Kgç'jC/]c fʁ3"rz 6;\6g\&9rJ^XByf?xX@, G2(qp1*6wArȬ b2Ib1ӷlutRڞa#Wc4[ȹ63LJTڱݨe%\C_2s˶A_3|7k!opD9_di$Ϡ.b1/A\_p)"LJ^@aǁ/mLQdhS Ⴢ ayBSaxϽNboKtmsAQY3czAИasxSq JEyا@$r ҏ~NHXD*, ѵ^CUi*'4.}p24V_x zZLM` Ơo5_;]}11Dw%lؓYS:pdy9A.P@nk|B;97rXqvwY^J\CitlT1 *9ܟ8'?VE08HR9 o1͓mVɡ "~ +~Q l_7_ L闐@7/bF-+܎R?b"%w!g#n0y#*ȤeܜXrKɯ|#aL◵nb)#`dJ(D*DžI{, .W3>l58`v} ˁ]nCq DM,ݪo@8~5c|bl]hB hx a DǺ%diy%:>#1DGF:O{5s!D O==w>)'A4ӳaZ7yJW@Fn~f=XM8Sc2[d{* jv[T9p **3w(q㜋y)1=O$ >%`}9c3`cAV4r^*QZ 15-r7 amx<x|%CwLj"Xe.Әy/R` V߹WZ~-24IЏ.S`hOx;E9p=zM/%Nvߩ66nX"B+QpUjᅓP[8Q]ĸgؓkLJUc3ΓK)xL?LbȠ*̗k{5q PD 7* A ֩N T0-6b#n"tؘT!Gor+-ҟ@ RAϯ*\,)hNJg WFl0RMGh䏞g[XXXDm'o|VT\HHVIMԎn.`ջn+& ԄQ\%2H|)C_=F sk=jqRV+EɢtM Q53aXf9;?w&,55`3́"TW!"ZH埄1%<&O>Ƙʟ+$Ӂ );)Ko=r@QP(2&O%oVj%RBDuCiR0H9E6c>$uM6 w=>tsl8aKzo{k "ņvD榇1ޜYC<qP #u \Vt#D(60. X^݉J( X\~ظp=;#Mchc+"7׆h0BXHEez< !* T[z)N9=Z7VHC=0+ް)fTG/]lrr/F <`k.QYCGNLaR 'P>TEfJ  ^HT`5׫/f71Fa_ga@ 9hgiU;Z<;y؆\/_ Ce<cPʡJ5n98izIӋ?5hj]ͼ'?T|M;#Q ϖDcܤa10geye9ittIKi 8hxWrLQHw)w#ҙ3.$W^xG8PtX#EO5˸@~Bg "qckiWoiI/#ו,0}yoSoc*~F^4$qH'C& $i,4@,^QUt XmanHoTr}&(bew)+X_@ǁ!s@MZ:y̘?O$;`6h9`98pdKJMsiF]_c ̈́rC} +Eg'ZAZbFR6rヱv.%Hg vϕv΅EN-J*aw 9HoK pw)ҋa /)`lTvm q=]57D_=h l4e15yQ*~31ex ܞ=XXXX0ݘ mµ?`9W\3OiWU][݌$wYr0q3 W`C ?8s/SG3+q~L˰Bao06,/R͎{bu q s;M5% Uq~B ^1|^RA,S c6ONs?c+;cW0ƃU9W)..sSy^'kdf@IDATc k;b( pք0X#oCB$oc@RZ(_c\2uJJ_ݶᖫك68ץ6) ,/{rZq;3LV WNvX~ :߈#6s=ՃZq?kK[ w nWTr|܊ȝ޻*yL'd4_H :#rjX(ݢV0{F;#qyBGrq4zS>gׄ]F[ 9g[޲ҷiy:?$z !k#4͔ցSB3.;riHoDG [0'd/Lqc$[ Dp _3% OnG|e.V{WȫaEl:\C.ݻv:CI!P04$0+hv3]r.O8yD&.ǧQ2T ݡM\Eg7jAS~p(!OVi4½0-+țg3/⨴ .W':88{l.2cf_dNOd _ot$ࢬ¬cQ4 Dc$X}`~>LLw##H.N6xUѥD#}._G\K4^d_1>W0ьE H) f )l F}ɧك?;J=D(D8|5^+82ʿUP Ung0BWX 2Ճ *$8 /BWSldV+ykӝ(i~I(:m%h$_UrSr)І×8XSDʡDÉ*4<)lOMK5|F2`z M`zVYXz9`V?~:SLvᐐ7S>ApX7;3l1O2 &k*J*O ҟ}.z9F}>D;58BYE8'˙n9[1WqC4{bj"@ -VQZ,v=ғD8MiPaz8 q6/Bp_"c\tgБ= M"4y锅S-,,,P=riS:D1U^Т]^OiCiJ~-+3}b803h?ke[^Z)ƍi6j2{x~*~9soȱB7x_Ga]Byix ᶒ,:PL<^@&&.ѡy<&E ",؃c m2^ן00V}6NmI(v~LG)g(K w@c|+~|TeJ__4{Gr@}q@|Ne.,S>&1@ PxX(s" XpqPԽU=\,_'`Qb ㈃I\0vP=g/#ZLw‘jk6X`8勄bdy{˶C5^48z߇ 2,vߖ*0MOJ3!l[&RK)떽0r~ei|9߼?F^OFE~y6ƠaY nr-\1(1dчhP ck(ˏ%;/bÎp`9@9ꈓ\*ʡU4MJ(M)z*S"I9>^.e\ӬLZgҿRL??t9 G]p~Ag!jf"stv.-BK[ׁHd0γ#PXV5I3#re -܁ѻ9mM}0M 9Fe5'ZrrrroowG,,,~ F~yH'r4ɧT<_Qf.` m56P0^,ðߊMy )4܂x  n/;8U VrCt[y+`aޓfH=LG#N_HT}1ܬb{!<ibJ1 (~F@P|,,,,j(x 2Gt_ݠ) *LBBl=BxHA^ @Ac\Atv~z)dwWLWM^xAj5anH2SHB 9Vo&m p2@im 3Йb;ki8=vadElatZ?ovDǜ;'z3nNhxjH8^荔YDr{26wXC-分TWGA3Vw%W^ZQg i3%vGq5sS`9`9MꜞÔ7frPxwxDtadbDCBqXH1/0E4zU\*8JG89C=\w;D;{{l8t_uR{#mugՃkuh/ƹT,/mHn^^Xɟ"qJ*x>.y| kT.obRE{6g`]1zJl!Ͼ?WˊԼ|4dCzx[p`y x^Hq0{@7CD-9mB+yi9,A P0"gV' n"oݳ #=6*@,WKcGsg8y!0} + ȯԖ#b,渢rCt>sT &U[<Ҡ}zτ=$ xuQU鯫T>r+W1c I&ᑈ.>M#p'"09詈G\5L4"~tϕ ʮn|sVL]`g S41X6?Q578*h)Vz^a>Lv4?ɏAI*-JJJJ'3JJJ`HLڷxF)'}p>MGT*' oby0x|!@UAX"փNNE]-׀?T~&fb6' `]TV@,o  Y_Cp p[ ^Sh 4o tRt& jLSďt̖& YUȎS_҂Eg6^C~[CAP_ `rf*ǩڛUҎpd@^+we<10A8"r-.{D we,qItN_~c*WQY][w{REQ{H9BG<#ڈ yx*7Eȏ k[΀2uá ց-QTbn@[NAL䃈,+:q+͐ `'sD.0P$>U{R1i"!>G{/gpx\ݗq3~pSPC&fc[x㛅Ƈz$hV B7M!tVNBA'(&G?ۼ-r e5 5uƸf jd8X X 0]c72IUX]tu 8@CNŞ vB/;awx/$vELo[ L~p8"NrQ~Ke#3gg4;}Ҋ@ΓpX&煗\X#ߍPT{7 :ycGֺ(S+7Eɭn,^Ett`G\{% l?3oV U~#_>VÆN8*O nd#U3PmGrF v:Ai^8Wob~8c v>w!_g^!:ms |hX| #ԼՉ-+|^4yr/7FR߾^U==%Ǧc7+b߆h:?(r4"urMCYqpm ڑ˘3T-RM-X X X X p 7V7scc4IB0{qęE Ƙ^8n'ZӆCv? s"H8t)el(;so2bބQpBYC]ܯע<ŕrwZR{!cw^]*llvTSlWRxCG`M pެ0Bww3{%NƄ!AO /fڬ}/Rr^&1D!h&5p{` =X X -%ߦ?7q_vN^P+h߾&Xe&}zb>c Gs6X j ʢ!:UF<.8wnڹx16`,Fxp=D| ;PDzp.]~x; OscDDS5^܂PQi&U `^b']߹Uּ_ w/ѥp1EHGE-Lo*3T?#.Wlw sz?g|=:l^TAe%XGbPiB܆QͿRd#'h DLofb2 |9hy *TE*!6V,f"MWUYt_3'ݳ Rpܥ3z- JO K6 ʧ;Voz\' q&0M|h%SI?u߽ɛv&P,hrqb8Hܼ bc% 'sюu1]9EeW4q*p*&o0c q;0'zCcܟodh֮ix%.uu'!!D[[jkh9⇻}`)8 o)IñKynsmO%[Q?m8մ]a^0:ė.h"O2q !!D Br(,OTbtݦb7UpqmL?Rk;{1g!4f0_g<9sP1+]h-1):`._33;||{[J`1?P#~nD3(|]C;X4"t.H7KO]"Ei^ Q'  Hׂ:!@ f 8Ba-q#p3aX+E*G3bo|pAYLo{O >zq>x!:053_;Q`o33ɴCCQ*qTxrrHˎ-)Tzـ RȉjX*&g w3"~#嫹pB?:~b]wy2សR%?ID8U\ul]Vm}9RBA KDnK2jJJJJ f%b fq4e,x6.b\W\.1'B<:_ ` aP'3y^"G)3v|.d%!i#5kO?P^:0v`]&*{Dco+&ĸel('Z<*XWD[9˸Ap/ʜL7uV:{;U}( ݗ='SWM0ߛFe*'83߁Nun&/ɵc_N{D;%nqPU z7HouνN0=N;tռ LUGqNqv" /xXՅlT )Ё=>Zj 11WJ_ ɚ~ȴgWǣ]MH\Ч_ҹ/1`7Go0n+0Yղblq#$1LTD9yP|VAxqA/^~>|*qDM&/Lu6`j'}l+%y`4VJJJJo)o~cb~KMC]z,d/"*)D%^w/~{w2:$^t{c:xr4oɱ7?I#E 6DYT9x9]s/!}Xw#0:;k7TLY9)tm搊AתA**TUMp3ZJJJJH+ rO^љՎ:0o2ʗ1ԌJ\*\ h41!;p~rgGퟓ=0dcVi I(hZXNL`Fm4~b%`%`%J?~x]ݭ4H;֪bM+nA(-֎O )客' 2P7|^Á\bO';7J-h2=8O:#0xonKj8?Cw ^zz_#lI;§?[ wDF{Ñ4wFrB4\nnx{zG)T^*[<.5:GK}쏞oϳ J >}$+++$9CzC4u8~g_K{F82LK &W M/15CI>}S8v:#&alx/O&w ʡ"!ɻR#sdF#.3 AG͓~bhy+zݑ68ݒQ uOhTrC@[0:qa NFTIɰ-OƒiOh%`%`%`%G$zS1BwO +` 9P SD?BX*g`J䱌 C>FJp\;'܃a8_Ky *ӉΟ0wU<<交/KMߔzМCtP%?0LdRHJSGWeL&t{ڄs 3 A|HH/b:ѿA{!JJR6ɉIwNqs;!<_=DӆbOfLp2-rXp3*ym067MdJJJ%`raٸ'{Ajr8'<h!TZ|@l[?˂[qh*@-1=J<8QD"-&,៫5?s[]];vaUøޏ9H|!xh/Etx~0:+܍P{cFD*  Ӣ/JA&+f06fzSlW`2Q-TL`Rq0P?m*ynU7J[WYj'KN:hJ4Tr&pV8{v68[^%?Zj; ]Tm8:y=@%ng &3MM\ʹg>ŲCeYxnֿD5OŸBO#Q^D3b!r?1O?Q@,Cb >t3<0s'"1 ^B] v E7GC ~8q98?ydejx `yŻSh˙7Eѹ`+++++#52E+++JoeCMIb+4|v `]FףIjCDSBV`*E2Fv$>gCM޸5a$y~xf ~.? C cR)_807'@ ]@983N?v6 =pW/J`1k2a; <$bHEٶxz1 Achs*N=ql01ܦXPNyIY9 )\D* ` ԓcBxI~M ?WmhLx &`:r Q.EWu&̟qC!UN}1NA-Oh/h>!XO: ݃cc(OK4)IE3XU1;_Btb—+SF'{zb}[(Qùz˵.1'Iw2}1+ÌXihU15`%`%?(_MaP|e $cb>1+۫Xghrbf|0;o|{T`7SWھ(Oa2 +>*`&#~PC|% $Z9k%;W(Bk13Fu owj|KZ*r4BpIgl2j̛l 6f΄=P `ŋlxv,sBzEG~bHq2RH;_94i$NP˚"b@Fc" /{b p/!68H%T hUx}`58B~{a-B{Bo U ILhNg|JJJJJ\^GJJJ`g`e By,5ec8,2V{& {k. Wh [^F+GyrIWed&aHҳa q7`@˾!Hq/x^[*| YIp 11up=X X X X =U UJIAN,vٸ D[њ22K ϗ"^Ьt|1 |vt}/2ߒDv3fw9%[݈,MDYCbK!~ÉVNzEdN {L "Pr'ڙ. u}/2J1`Gcn,r2pn4[\Ɯ+c/ JJJ` 4U;=V+lL,er#cwbv:ǙЉTfq.([ND]/6KI$3IҪpٟq^Mtf40@d?0"#VEjr87VxEG3:Mov<Ηf ~럋bㆳ]k.&[~Y?P H4ª 2}$< N7 >V )d-ٖHWIωD~@λ.xˉ=٫051' @ e:#enOʹ ƚ>oZJzxdQS" u8K# THpDaU@\m%H1,04b=p#n@!x E_4K|VVVHI*FU3&%!" PUWB_>Ӣ!atsa q}r>19A%? D\] ]2W ӑ?F\CUW O;ZSq̞H? 3h9B.uq%h^ %=9rR7 E"O E8/X̬p0_jKZ X X X ~:pcj2]W/6bn*(2-`|e~eIK 6dg1Pl:/6p uD/˞M?ǘA]aYp!fi8XsbheR:G?0vHyxÂ&Y\|1ѩS0WqEU  ƮIUOEpfy+AW.݈Us:Eʽ>FX:qܘLf9|>>F VVVJW@/d{g HH =a=ij\ t&]߉}eя1P\u;oIވ Vfd}J07{gԴЎ]D$&9vY.$0RǫaQDoŘ//v:gb)Ѹ3sAFeԕ0Z·:EI ht2,#v!yl F aNùQ⻰,@&k_{+#3&SWWr$,Hb!.#<{h>*̃/T bLR]6zN~6de5ĭPšC9x@IDATQ b *|An۷I847i<|X+ـ )a$v¿ ;~—~DGEr`ҭ9d퐻ԅk8= vWH]8O}*><Ac# 9lH 1LKnWcc&/#ĭbN&NL¨VЏ0|AseCP> SʷnC < ;f<1*;>iMbrF5@+^#射)uDG-kGm10}ZE?̯bE4H~#b@*da E.=V9%T*'RT83W V'bcytc?ys{)QM^85I#O/m[耥 X)_$ȥJJJJJ@')%pX1?bhb' 4C=6=cN=[b0L?{34Cp($A<M9R 8B޲Tå_#.̾Y΍97KGĕ#u\#bPXK!b1 9l!c kC SPiU&jAjgVVVVMfد4zhPSEDʱPq14}t\^O5f|$an2.q{T}b-7H6j_G29X*:}} q{q1F/gr,|SRlM$=@SQRsk1bן-N$tz;mWzwv|B87k?LyP]K^W"/?>iIer"GecZ*jnXrXɡ3ӗ  #>ҟ3CLgG͍Űu+L \o5q:IAv -">pw[Pq=0Y0tB`0s~WTjp`@^x:Etf:-N%¾ԕ|B7jt5F: Zԙb:Sqc{ءV#GMO4UMkWP^Oē$ysOЛ\1e# Y)c!T#(.݄iz3 1\ d/v$HR:#SEx::J8vnS0CD焣~OgX X X X %>@flT Khct/_|\O% 1Ք! 3;sG^7ɬapjy62A46lIȵ?=T%kD-Շ01UOR݉Z ^ʼbK68 ]G!ŸcWzڡzpH3[Ј}Qk9۷_L WFA%2zkܬdWSР !Xu"@\ 81]ČiLP 7cLEhbcr#tfq& d;P +;}0r8D"Ѹ'9?OQ`Bh0n`0PYyIr{#oS;90joQ;(pgfH g:؇Tmg+?.yF\x@e}߬RhECRZS< yjAߐkpcr_;'C/F'SBu#At$!쯷ԩCDgz%WRD|^@AXYOL @VL_!& ɻ &,~ "|6nzZxh S%&xJa8QB7E !kLWJ{Z)@PF c'@LWc@G#L~Cx wAl[}F.xulo)9XT`%`%`%`%`$$P lōj Z ARV@ו!ͿXC흑")‰eh2s|M?d0vwl& Vn%WG-9;q q ~:q\ɐ׊e.ҫ`G&כ-g$O],nNA~mn@H] * U\9 /lÝT@@Nah@* qxsk{(UY.dV-ZzOz,{kût@5b+|N#C5>aa0G/rd!~8=YF!e>g}0Jh/[lgE#4#G1%JQ]& &itxdSLc&0[dmlY3;!b[v{:U8G;x^o3|+8%ȈvLP;,rIu.r9YTYMҺ2UOoeIF(`Nu}3 \&Ng~Wg Ng nuZLAdG^N˟$4!sd0-Z+b_3]tNSR[D{I5N,A \+0o**yq"Fo3}C+ɼ7;{(P ^xu.E'hb<,a!IƆae6gl`%3CjK9 'Eg3vL2q#61=K'Tљ@-S i{(~˕ݪ#ku=K+xy$dhGPB _BCQ)b3(Cn](zTb^tHFP<l܈t/ K_gz7*3n[o_yj$z~X X X X vog@'So&X+{r45|ReH4, `WyBѐ\&sj/M\Ȇ-ʁ`+L ${jHw2TFZuqd/~m_`DT1Ec .fє,NT+*Bi9 {O y˲?Mf?皖=8!j$̏)[BI>axf Nf@ Dx\i?hxA'pJ TثqH(%~T/ɯ>'S?+ċ SGqT*B?gK6p^W{ˊGr!Ay7PO1w2jqfmzM4< m-Z X X X d¹tFӡ:u@; 1*iĥ8-QT`NqbǖCn?]/ rX(f4L: Ul"r$\ĸR9a H +uDy= 2Y0Tp{"j?_|(`=xPxUA% Ō&忦ELك˺ݱ?̛ĉ$jZK3ߋQMX@_L&?uADo f荊DQЅ yg!fSo3^5&%W%di[H=X2=%ȟX|RĶ4<̤ny#m.X­@\~W۾IH nv: pZ Y X X *Nt+N9ѩ."6 tc)A+i5`㊱T ޓ99|&Vr=HMf]@@|Ć+ @"U}q:Hxn (@!:^ Y*NE IЄ%r;4A! R?:ߤw/G{00~A&4@8N\ #>vc$;: nf 58˳9˟eh~4]F<&^xhىElev&yvDO-GTJu"/f,qA{ǥz3~ = &.ht,$sx ݮ1;"FB1}R3_ HP J *әs 1`fE,bF gETPrxgSwuݭ75q[$gO{p(X}Z9pJCZNB”*ϫ4;nX,2qqq`8 H)ơl+KKզ-wmi2 ;3I# L$fA c{xD% 9 `+fCVqqqo1%F!ԩcnt+:-z20B@,zIC8o(!+fHG;jtjfL:ӿ-:,:G Tq^ٝ6(Omw&zԎR#Mjluû>j$ԚyB,oDGCdƻ#x~7ʵ1%o~0B& 4X~O O8EF˽qL&XSI|3GV=MΓC:Y& sZAH(UHǼ 8|O4>Ms̡=q9P]ޕ3G{0%P~{8)E{%oP%R B2 y|Wq4c}/0q1D(5@rA`ȴ}n5<tT/O!f\J:\$ڧ,hqDiT- '@,+b##VB<nE݉-y SJPEZoo =P.ˑ)ER~WaΈ1\Yh8FNqpppb9?b΁Zg)^w3/ڙ Im$D1`F^h&mD.8#RD3O c%5><b[s&BG(#NP9,*+pUrKTp?EL`Imc)LX׆khϵX]NyЫubGj@0GJ+:Xmyu1r4)a@eV{Qd>CC2GAtnЉ?Wpu@pVV{(S3\N A0Ƌ +Qrh$!V(v܋:W ugJ iPH (EtrH 2R61WR#q`2g0IQ:khZ%gŅ0|hU?c;LM/ b~dd9 ZY91 __ޡBgMo/bO;iK98M6>MЅL( ~>߉>]\bye;K=W)ڮCo1nNm]OO[|{8Ј/h,GOS<3Sx 7i`@ݣ-zC;gB7,0,Ac']Kɰ1>6 ~jyB,ѓ#{ĝ_I wez{bƔ6xUN:^2e唘'p傯 ?Y9[e3a.?{?{[U_/W8ҷHPLg~E?NDgcͫ=2==^7>-~6{D$iҋFj-R[MZlΚ9={+DZawϲvYz,ZV{j!JPCeFܪCv0eBD̄YIw^aVbGudie_Z3 $!. { CS;b; @o?m8=Nٛy^P,v^on6twǁؖ7rpp\H.h*\7@TXcPlf4o +N\ ęڱ_#NT5&d"Ąu?@uoPahKJd4$*ѻqʤ@B j9D%$BLApkDL*3(R@gP'U;TWJd@ɰ`8Nv_vGM\SÜ27l&rccl*Ձ*Z?`]{FgdƂhT$ v1o-40`j\03Of2oX‹ \D[L( /'Tt*}qJ#zzLaDǖ%1>D JA_F5H5*'e |\*#M%LOoOf/pח1tƦ2zƙ; ep-1QP\' P l>J?;?;vuI4>S!#B6Ъ1G3im;"BO׎b;&Yj:…ɚCSϕx@jSJN]ʟ3OdO Ǔǎ`i<]L*׉0Ʊ[c026XmZ#Mi:<,Z3V7pqqqu(UGvqtlUzQigi ށa><#uR(gLE&0m9&ƦnTSkJĕ~P-ά"Rڃ-|X[1S%?2U|z GԲ|]EaW!ԶS/3VLG8r>MSST+Wr3}OXzwP7NN_*,Q?ia hju FVHWcՓu >B5 3I2AbfE䴒s+-c^(.+2}MĢvqBf_B Gm"[%`Iƌ"Ƒ h;JLjvZ6տuYG;[OvǁTG렷$I[dp=Tm-f@Кox},buu$v[Ưt3X>tLW7!zcNM`\ϯoRsw֙`8@<~{ЗcLNԴ w oo fkua4Wt;&Z<*Z2>OO%=Z),缃b,w|=vL!=:]Mpn> o%:jQ3ZMnJ_oV-WUkBxK¸8$5dM:hWRU}v-nu~իM[b,q(]FtPb!X呻AKe Dcx˼Q<~v?P,aV p C]Y~)ٸZ:gKhk{X,moUcUh(TҝvVLsT 5HWW"Ju/0-+HCȪu$!sZ0^4/ҕ KT QnUC̀4r]H.b)(븬6_{Wʤ^/9nkأ%^5ǁ"m+k888lqf׻#GʄnV<Mf\2mv,7 ϲR]3*ۈ'Ph ǫ x`B bXS u!v*QuUCԸSt싏`˜f2M7DX a`uK SQX% *#}󹋆.P46 `/?C:{qqqϬ`5ªԚwNtl(kR),~yd_Sd0Xqj|ƻ )ý 2}pW$:TcRBTV̎a2ۚ6:?^U8'889spQQ7џ'|jk̎Ef'j`0T =<!]1;IvG<> j׋@#gr4Jd}zD!$1,k c-]݀x[`y?35+]lf?r|Z)~[W@|#DG߈ZtEpQ aTx&ӽ2="XK(擄orzOڌo~ |Ŀ&?'ٸRq 汹12ztUh1AɃ'&(o2]spppp pTB mS>+ h'uے6p{888gp@uۮSqh2 㨩aVoŵX ?af4㰹bFUP%dH(DlA_B >7qT4l=;g+En\@ݒ% L~[1cR2AEi8{JP?kzg<2ر)D'JE_{L]G(:y?bEΌS!9Ef=㣌OIy4[Ct"I@6#wzzg4j@YTը'yL-qJ;^@7J5WCCWIt?xW~(.ӏK<WEٞߒ "}֒?8&gTZ׬׵Ծ4Tt;\5PtW8Pt4㳐Ԓ/ t~-'cWzj9! d gҊ@P3jw&nYPt RYLA`шT D/[vR "G| c46~#d. XtʵM$m/Gm=yfTKi)(t&AB,jr!:!KVcHsYAm5\e*tJ{1Y 2X6ĭ!'kx2T.lܬ+#B}ϱg_yAsY+'}_G8888?ˁ7w_qqq`8` ÒgvTy؟2amR/ufZF3` %V?!Vz>8oV~O篅՜_iR/ʲyR۪ Ep6Njq'q?mES6@;[YF% 4őU)Z%C-4A:V^988w9PN᪊-2fs]ќfb;Vņ $ ))uc; hO< |'2(58-㞙o|F#/" F MBxs`V^\ش;~◤{'yq)_?5l&է1wn)LKd؋ɿ1`- BoOf5=vق|f-;9e/Tt^ygY hCVdwppp9`3XqhTEٚtS8V2=\͎Y0J_s3ӄ*LaL&_s"d{$ϛ 1}lFy2!t0;mGICEMu* 2㿷 B; r۠c簾4ɨMyM!1^M /cI\$mѦMKTckAEuR+?6U?;wwK'Pˌ%Ty3ڱ-ob.Dã&~vMM<{c%6(& ĬAA'Wcu7]͝;\W.ۣ 9i#?67냷v8<.Z/V$gdk#P;IA~JD r(# j2w"b&"&P ]XVUz#Gv1iix, HDQñHϬEow88888ıqqqq`sHch+~Ħ(P ])*QT<5 0"ѩ0$#.%ģ04jFi *P =tc@dXXaj?Se1@,/y'R_FU؉L. =!{W5v1,PBx*NHW;@> ֡Vߎ;tppoqQC:c:5lgS):# 8џn2kMRͯ s X$)rbxިLX1{1޹GÿfH,)BU_]O0 6qǟߟLtTK%Lw-0ե9J#kKu,J^$L'ۀ%rj v,Cyt{# Vcj댣zHFNWwB;5kZ!L׆q(!a_n<5YY豎~k;Cc@NM-2㈪cvvjv"yfq0LhxgC*wp+ZɖeώǐayQȂF6m"vHݢDΫ\yTPvqN:g^G 1QlƂ Kb(Ӟ5\؊KDm$\h3Xy EٖPۦa2&F@㠩kf^{yc=vTcqck9o g#{']bH_t8K@.fæ1];#g1}濈a.Tw1} 0Vz-_y+80C8A8 OHryHKC1B;y0Hr9?U^j-Bw@胪(du@gB&88dkV6jv]NrqLׄ]/:#&Dv-w^!IE64pY| Cf+(3)<\Ɇ<0*3ƋeOdya1GHZ3C^%~tԟGt΄JsH:@w2vq7aJb|aQey'0~ě$5("!sKPk͐eoik6vy|;888Y$iv} 5& 7m24`RS,Kroe:|qlc<0:3]nW`&rC/,GdJvArk*Wzu\5yXb9&ރ{Ojq} ,Gpkc2,bԖ<&B-c:cR*gM &uVz^N8jp')Ӹ׳#zqoK0t;XY[mZ1"a BEKBS_+wMD# `=>DRBϫ^fq5zG Ġ DBX PF0dy5٬\r6{k8fO`kf{-N" yRZ9>X0XSC,hoi| =l]p;~SBu nCY ~K%b:P;&m.ML?0vЌBdi<get, G87@;FVTLW#2w b X0]VCM0aɈTj55*50% H $u8 G 3rz@)i/f^dUv ǁ 9@5ǁƒ6q]i|8&T54(|9C}U?$8I@w?܏щ]c_ОDCE4UrwلT s2d♡PL۰MCy$>5L4ˏF.PtխE4Z4Gu}5&3q8+k}#NY!2U4<_cuZrGǁ?6Pɦ;uȕ0֪5_U,4W+ԮC/a]c?2 `.lL^c'T"^U&"Ifz{rL%d:^e'nTu`VOS, jwS89:sԏ oaG{P6Ǥry5Vbh46&p k١R:ʘ뷂\K(;qvT1;BD</M{X'bb !a÷SDt)C$juƻl{nZ`3X}^*@ko8r`vM7M)Qa¨uuxbGBGKG荈s?y޹1yRg_yM3TЄ]M+{O.Bg&##v}<2}d"ajmiS)rHgIUjgIaj̞Ze?nF|%|Z|pAa u8œs]<,ǒx{f хK2l(-Gt_7T8⡄]ԎV4]&udBD't&L~ZʆԅeN/cGQrJ^D4 $=a,؊ПA(1%!sĵB_/33@wϚ QX8V~Suqqq }SkZ4;q`65Rc'YE]ThUItc."o=Q,hD>T<\OvFp)Qŭ)G3+cx߿xiꡦDcit)#5Ҙyeq{88888p\ǁ ]W̹IFv_&̯G&oddS.'m"3jj C7x'S}jss`³kaZMWKX뇴2[&eP%Q6&CCaGӑ8K&NJTib$k{V>HP˼W*8+28Ԭ&0)lMmۏr;FOp&:tp9]_!3ڿ)\P+1w^wZ0tMQu*E]N18:_F!:x!!lyMZ!p>y\~-a{F`<"ߎ0?b e WI4td#]xBoIDJ#~.['z-aGGrv %Hxք0ПD _"e4ab&!'Ngk gh4eq4QKExfliJ~ zKǁ?6\;1J0mM@T3pkV[As_3׎*uvpɳ9/ a X/C,:]xyAaeES 9PQt1Ld|3aS'K'rTHo-fkTʸ'v54Bw /W/.FB8ZgPm.#nWxKq&0&Ǧ88b.35LRCwϘdM( qDP|#{-?k4>ثŸP S_B<;M¨QTKGԯrB|oy,îsT;R%ѻ/#]"B/qӔ"Ƙ@-}Y߹ۿÔlmP?b@?pNrQq DGWF,M{q{y?J 34.+uF\Owan.lz@F=Ѓh'Lb>o~q CZ -{"J$EJ!8^7">iők"vg:⒗# Skt)<_1'!T+|xs-`Gespom /Nl+iyG6op,5#4he Ն&qlɎ2Jh]K nET4l9Qr 91]QJmNMgP1/b+8x5@ LKm=t[ѡ<,HVSfq|= afLJaQ)հ"~(~kkk`-=Y2Q%L@T8l94j2UI3zM<#9r,?-bk[B3hՠG>iⷶYww{ҰJIx qG tBhyɁP*ʙ.YLL-3>Ќr&H#gx}7PGի KǁM[$뎕WokicE|plx)}P`(((9gQĀ0`9`9(bB@@ɒ3mb ;=D|ٙڞۙC,fq|;3&O,E-2'0ng{-otzTGgYBމرϤ {3h֏h=WoEuvoEf X3#?|xktި:ngo`dv ~p"G75.L9%JS}]z.nL];!}NsTM]=1>={6DyPn_Ĭ17c/R̎L*m3Cx؀9TÁqYa=[όFjm;t+B\ۗi(f^g p=C2.W>\7҅vB}~0K;#`|9w =Я$-{ǹ+{c<(麺= n+ա˸qv+X`Z-lFi_r5~rzCBb.J5u_S\u$i7KѠ(>*:H}/^z3G3JWy1x|%J`!dv@3"eC\lz8rMwxn۞zF|Ľ6?kagc6!WacR̕uޚhz ޤ$H$H @" E BH$H T2Ic ]· ܟc{AmV^90 Q=e·cy{0 x^ j(fGԢ[@W!.1OߏN ^:|qer5,5?YXZgd5/wЀ_ߥL9GY-w)E`^^x fK TrPMliIgTO$Z.$H$𗔀'@uNiܐ(`iq㒺M -^d&Y8 4"Ց BhVT179vŐwzI|㜘 qU1!~;|{aq ';2x= #Xeq.ݨ_>??86>v@t'>nwL%2BL}|5ȦVC7e:bՄ%6eY!T8 _ ! lQ*2eQ. 3\*t:ۭPLKW39]qh_S#,}@Y_ȸa+O%{Д́o1l#Ɲlc0]TXL"BR}W9q[\fhPyicz ou͞vh"Ì9 7Qi@ݧߛ&Mgp6=&u|~2>>z證OU@IDAT+\B703"w=ϋ1ͺ@kh0x9?8?v8VH2H& T=,/&Y.[6tw[\?Nw8.)'?876׈/ Gvx^sik/=6` -\K`+=,P~  gp2BA{2:Y;cWFl{8Xk;ſoTe^vJwjm)jǚEo/#tMS) Co ]с1F88b1왈yHT_X0`bχ .2c#Wo|v>rA$4Cm5utm9q4-+a(4 {H @"D_Ij $H$H?L|wtovDR̍M؜= vuF0%`[fHthZSekF!nۗwBP7AlYoaxq |)ײ0'ùC8E~ PX}Ê'|ra!z~K "ϐ"&? ȓڐUhA'%@"J!8T~}GvQC p`)xSd$Zh4x"|7㖚fhyNٕnxU1;(tiQ!;У8ht?hoqza]3loo-& /O`w% -x}~ ap^?1g% ˱C8(p [c`}e1co-q6u+qWD vVч)v@{?Vw3BGl}A E9`ic݊N1o1!a`̇ glVp|Y/b;0,ϻf\02o~.6#kWC;51Do5p=g Khq am|bG?y/"d~ Lu{kgt)r=4?h[\T}l>pz, r OK}GTmLDg5G߿K/%/Yƾo# |[3r㇃6f6Է!MKq(fxqvp[~+fB~XrD"D $X֥6'H$H LdV9ҎY?=EB4؉S޹teЄH}3fQ_^іX1&i \ub4c'Z6~7|_ +Lj*=*%qHDp ,ևbBXy\2kLr.3@ Lt4AİTԚڬJYjH ALJ,]2yJj--+.Sΰ,)kTЌ1cW+W Gw"1@n7׭{!W 1;-n+nN.)t Ob47Re70N{3X D#9 0x6ve&1of.XfSCS )elpMmTv0.I{@:R]2Ø_,H远9S8#]H>;t|| eC:OóN·8m̢1|jqD*YPɬYɴvL/le޳CV"D~U,TO.=G;eBَ"?$u;c5٘ĚÎn\2bG O}Dg}/w2]V-ޙ}N옎;ύm\R5pّM)!0螊ϣ0>4d7v;ŗW=ut6se(`=hf=dG{VN]ڍ2løncl߱ ]ΠJQ| v_h?Nޙd v 8n]Ø7K{r4_:{iRljR؜zp#`ńf{vn#tv+Ld LsIwV 1+VVGp݌`\a#Kkw)QIoM2A^HƮeHI22᠜!s(LM<+i/Bz<ń5ƷR{qEY=prַXWYn穎TMab9*`+\ ݷ`&O\}*n7 UMՃfApY/D{ ٘YmaE ''G|G7 ^#y}ԯ_,l Ǐ|||Pt/zAl!hc\DV~oD&j+B|z8Id2tUUtĆ.HPOh K1[+LjTnXE+ID"SAdbLq`"WȶwS*:cq"3k.}1ʓF)݋Ѧ{#,4i'4ˑ ƪLv.]ٙ{ŋ1~ $H$H`}H"'H$H "ԈcߚhRcL'| wqnOu[ZS5qMPfs Bz(bJæ, U L MS/Ս<^35 c,DTħJ`q91rz^X}<B iql~P[%EmmbXi܄%ne-D ZZ?IE4I%II$H/,zUdw rsP PHcGLv.qcsPy #0:GلJ{юV6mDV1Xe+6 %:Ʈ aSXUwQ@lqP "/xg1u']Пqo=rBARCR7+1󦦔(Je࿙nn٩>Ԟj:M<6{2Q7fHx1v|=ӡB-E26U652pjS3]T=%;0D G$gd%sId* J2f^)UW+GZ}d.0Om<㟈$a\d}^_Dt) ag' .au-&:Lod|">rliv 0ߙ2B&wn HmøyTǫV7~/ |N.`o1pDjgG`/HBu::Rim].\x)7p S6BelL=Ca8 K{sa^ו{R'rMdW"tʒzJ]fG)yPE+@?E\G\ j+qKx;/כU4X AKsP?{bu /#FP- 1VgE4C!z.b= Tcvx'.ьk<%s4׏UjʇH> $H$H -ߣkN?@"DE ةai#&"!4zM=fFnZ:p,;008y2}L'\l1T.л믁©6tHIǰiWB\tM;m>(:,ǻ lyew)6H wV#fK!zC $H$ߖ8~J(L/{ʯh0ܰSoO]cx<5W@)r6I^w7F<>Gv7 `xe&ܝIu.6 k0^MhF+v{9 Z?azݺ,:ƽA]ď3!* Ðk0nr" $H$H #~s:D %pW.oe_3.k43TD>vg|',Ȍ$a<|6LZ!vPQJuNf>V5(ǀzGU~%?,[ʫG TIr*|Z'o`dCҤV_KjY%IGҥq}Abw9oIoz-=‘*-ωoztw^ 1VBt}}xPfމFT[f`z5?cTc?3Dc;5vto:6`(ȱ4Q~4Tg{__Te6zP;ܒW6cN|ܩ'x]~ j̫.{c5כbGGf \K`N17ٽ-iĶ}np 8qh=>^B|o0 Zqx͎1L|Cձ`XĽ|a6v'+]g"K`nżlr|mLV껕}."dՀ7-q?^*{]A>,Jh0nd3@WϏֽ>lȭ &BYgeB)D{Ak?d*AyS Eۑ pE?]Uð])!} 40~5ʳ8cjK|+Z!Nw NCL(* ȑ[GC\$V r\z!~ qS#ޙfU)f #FP S==sPrL"D $XRJj $H$Hϕy`vBH Nv2E$4ZnxX5LN>Kts3b uE!.4< 4h|szLj9`KW`"NԎcs)2ؓ]:EOړ,vƸrLs2i*U&ԲBD ":6TA"(N[k?esV?' l(c{K//N KbóA*XNa?XʕCq*eΐ]q!˸VVU=ouA[4ө.Im|v4}#krխ%zzĐVړw%r3! \?Ʀ5G0 aR`Fkv5^W4J~?u$F&DGG[1*X'zɲYSv ӧg, +]W%p`(>=鑹gFlN}ex}Tgjz +>^̿Lb<,k|2Rcx[ g|gkL?_ȸەP=!V= +`\ Fw!v`:!̶+q=$WI@[[NOH(9%0~)|9_Qi[:>$C-KJMXм ZAh۟eo T*2,QH<r(!F )5MKKϪChAUkE)>(wzKY_SQݎq_F,}5?doe98R)~ T3>j|^?qF/bSI,yy.a/x>ы5V]r?|ke#L{%f6ijng\jqoӭt[֡Kt|sa:lo;0m"°wK-0=C ͉lB2|Cİ~"bjv5ڕqm1p\܂Y\uu;D0tm,@GB8,ꢾ!4XǷzխuoaNv÷z~|Kh K}M^߾]&n]RTz]ޟkje9C 7|]f"G{^dK8sr>h&~SƉR';F1}_Hmdj7edn3c96ivbxI@WކTdzMvt!n鯪mߗB-F㖙3Mɯg1sȥZ}z0$=DnxӇF70!wG/1bd˙9\'Ƈ ec=og~_<fT"U#P7w;o|NAߓ8PG#~;"k-BoX$"0I^ESx2;Pz4_yհb ϡAgz#=jg;"5 t (+~[ިw%ǷG.xQ_*s]2(]nxh58(! $H$H %$drD x AM@1xyU|u0`8y0wg!f?u>`2#|^@Ǎln:5Az1O&SIY ͗087W}GZW`)z-))1 a&Z M_3Ts2J 1I8^&4![פl]<:OR %`{8-[I9+[I-:jct1D7fLׇ Ѫ34r+j:?Հ- leϳ# 3l]VT;5jTʜ>V| PP[*0s~(9 3PnV5tq+<.=s>7Z !Q'BH8C] B2kA80<8W}0,>QɆb&;ꋷdtŁ08>w7aUGcZE>\;ڎhئ>6uSav'RѦn=@|F~/>)vx;~ GXa2}ެjxǨؠ F:|os6뉄@ & \懒ck8êH`8*^#s$ǧTO8y.ʛ5~5 ~ _s/r;i,E.@eJO!b|\aDes.q{P)ɿjGȉWS⃒}!-7 "U@|\uֲ VlIlR7T--!4WL7v{.7t[u#spD*@ d.] X{ksxƧŢrϺ%ĻZcCmCnrLϲR hal?"kr>UPX ch:AH$O.~3:xAŸܠ?C 뭸ezIOSŬ?DyYv,~n1>bݻ=^W_z08qYQGܟ&6P+!0gTH:o$!{pxb=-<u7R;m?_R݋cOYqAQ]Tv ٰfTG7h`_8;RW> ״R9:"Gm~$~,eDS=TS"w i&Ϳs~OH":E&6P0:)LmCUB0As$R_'1No2A|q_2gigE,r;tZtRܦ`7盽~X}q=/X/ Y8 {_yJQL׍7Shѳqitah`=C{Fy__{% <ïȏQUyrE>DzNHSßD #cg414YWӛ?:+5 q5q%f jdD'M+z#*(Y[HV?nBTa "ffhjƤQ[{=ky0O (@O77PyQmTf (Tv+>wtUsĐPնv)w=5L3K1 V(L՜]] &XR0 ϴ&Z/cC4Ya"Cr .l :PP<2b\Klq [&gQ hmc2Kf>KX"+G;x#}>?;0~bȟ8{[oBu$6ǵD^/j!!;褬n*Ŏk,~J9ŐZݥή#7zW9 krVdN_=gG '—1f`K>N)y_Zqef63t]~2whYtSa{ⳃs~\_잫M U\/d;nh/%c#%8zח}J~~U9B ]2)_V .@sofЁ\mK*۫O>7y<|+3s ł:M\Z#[[%qLI7<*cy\f~tָ-Iٔfs/w)W-aaO<%@=ǯk\]4g3ٌ͓t#ݖ)c^1?;v̟x}Bt=y#/`:wGǣBOE՚7B1јZ!#89Ĭ:L'ԓ?rbfClF^%>.~ _z;.XvezȾ'jwg Tov[XCsP9bq}/¹7q2r( /-G8Hf`d S[e NE@xw2&CRS UGcs?\药>N hGj!;үXK(.RCx my(K[p {t}_퉎S7jG[0RD68b%FW񫅞F|?bI~t[4p y?e&/ڭGZ%.-pGU̗i#\*/4,O!yFBbL p}#Dt!R:. H3WaLIP3qj%l}߂]*i8rh)FuG\ !.xr(mZ|0sޛ4T}p|zsݸn>fRA}_ׇȬﰮ /@"D aW?lɉ $H$HOlxg0;܆%b1};4tJu7hѳXon(bðwYarz܎I;#;?Ap\֟`.(;VW03778竛 :uW"7DLN@Lῳ3.@ɓV8(rlՉIu"Y.ԧm/fF [sSI/8ܖ+kPL*]}#n#h|9&§ʭz1X{{uh4ǻ#tgzwu.%m(efΡ[i)^2PX2иŎq5jtuฅ!ǜdL!O:0` WY|pgd:Hn.ap{ OȜ-WF0_gِYۓgd|= g P Gvb錧~m?_>J|zhL ݔDJw 7zowӱ߃q2}P]bW@YދLQǸR=E՝!K廥Gj+нA_7nByМ:qSc_p*-\~1 L|EB q܋[􇬄p ۏ(ǎD,,RDNO32=Y¢:Y)W7#  *f鄴Q2q؄2^H&wtO ܟ -Zҍҏǥy.[J:0hFDz[ɼtdZ;+1#~_8L2lt]V9V̗SwfGoWqU9+܊5]2v,wbc]rifb=a<^[i/ZԞm3sE{g] 7֬WuzUWloEOP~5z0 d.(}6;~2a֑ws+D3SybB:ap7 xĿq'O̙.nQF6Cn%"7 =6B#iO|_x|;>F|^b|:ձ.m2 ">*c0z2-g^|fݠ[,N[:BJ%RG[L&y jR*c{Ծ[Z~[鏈l*aD=w>ken Lݐ2g*NtpA B?Ns;4g&ژ04)~Z/*vꟄL`WrCebP|;^ĥ/bixU/+,:7:uua|sgnEB~D0[[>ޛڙ1g/#4sps S>ڐƶ "İrƚ.3N5wt`p}!+?F2?؜zfE\0#ɹo~}O3hě<dBn!K  d|eYϔ$J@8dq)}X ĥ4#FR/w;8TΡ$p@23ްwmV.b|7WNh-1D@K蠙Kms(s)| 1q"+Ǜs=PohpT99R /ـ '*nNԷ+ k.Y95 r8az9]L?*׏q\>pda(~4C} 9?uWAԙRΤQ8DlcW>uU.cXO \mXT[2.T|bW '>axq ٔg7ܭLgZ0]i>sq+J\E`[5dLT2nLsq ۋC_9,=GkogI΀+<,Hh_GC99 8R Q2 nE4`mZusLN5MTK%hϪ͍JbUZn\ޟDȞIJYP.>x|*u<.]L=ǽlW=8 wqO_0Z^Oyޙ:FRqϕ-M3}"Ļøe9r\j3ѭ%`Wfzsr3ft)OܣY_3OڽD/2~F#\Ƙ /f|+lFCVbUt =3'T7"R7863Rv>|X{h}F^:,GwKyk UOaƾE}e/o 7jR}~qs,d\=%Hs[H>QRڪ\i-}ki<1B<xfEǐΡ,Vy%qu:#&t?U_Qw(y|D.uz]"\vІgt`\_Ƹ_x3qX"F>hƳp)3?k/tO?ڙ'TB}A׈k_V?bW'6#"=v߂!2YBu)]Wˈ6'M=nF݊S qO2IHCy&JpY X= َ ٳ\`̳}Bn^ hn1ݒǻ?~:7i~o͜tY}S˙^~ L}M7r<S V×v:9i}mG]hIN:ϟVDcW\5~u0a[:v%5Jݎ;y74cD?CLx>Qa3\Lv0<>)'>lcq h޽6q+ŋVOWe^%[HhJܮC?DWϏ+XeN#@PEcifkq|!V߈XWU,s mvg^ĉЂs iH?Wq]TXyoqE3bb &OTBl[ph/[ͳ-?0Vk_nAl2ǿn='D $H$%Im"D 衬\,< ttD;ÕӳSUL!ly/h–`M:"ٕ꧰$ujx48 ;h)_C7z sJ%Lӭz/0zs*m^Vj??]oM^ g%lXrKΑQ?22P c0'l&M5-x,II$aI@xQThXV/{c`4aȌý\ rܪۭr{^禃[1&p{ٳ|&52g@3g/n\8Cb9x+)I$I!q+t^^q;W+'M+hÊs]-ǎ±(UQk!,,|0b\5Þ ˘Gacb Ɨ>O<8l@tuhG6Em< 3ZrW &}Ւs.` "7{sÆm2m4I1'ė,  ^h< Tray-[%UwC!Q`:]Yy7KZ̏t{*A((|9>QMЉ˔ dT;rQY9j8CtV."OK>H.Xe-m!qLu{؏wT-{2B*3y\ɲ~5`C-Qm/k)Z=d뎌 T(w]Q 5qzvUe hOy,<>ݞb\H#\3^QiVP[*M~4S7Z&@C B?~ dk~_0:wP[0m}{~!<饡& yL_1V]@UP/*_ˌoxF޴>qCǟ2,peqS ?{z+ UM׌yc\=tަ0R8dpć1v%;Ϝ%8(D2hH?n7Ǽ!KE.l"v mFum-$TxgٌKab^!qSLߖxR1v'TzO2^haVjp 9;e.ﮣnC̮B8X=>o\:h0޶eOBsŒ., j!f7~5eyOp_Ihۂ+ OClb> `@[wcqs0/Oz*=0BG4uu5&X͘%zW-sDɖ!}^'jl" {-|"Ȍ񨾈VihD0?LM Nzi$vHA?iU>a&۝fCj~ 'j} 8ҙkUSo8m(s3]-qC(75ţ Ut=᥃QNϝrȧ`  ,f2՛SYVD}`ܼ"r`,B!9/;@"D $`K(@"D~;o8dm/{8epamNS܍+R?= f| o VBNVd9Vkōȟ( yܗ©X Z"!tD|Uij>&L,uZuY"k'ESJ,A.oϊE4OYE&cU/e *~!+}8KtO)X #C/=^Qt?_E0eȸ"WGt) J 7#5`Vn1U^3u߆R] ȭa&T>s)?:= qILf4 Xc3u. jDz9?+gtra4ьQM?S?itz[<WgFQfC.S3a1[sgLS sw%1Q[#01c2M eks "p>$H.',]{vQr>墨̲%/+Bڋ?cn^+͇!}l ö([KУ4ړ:)n=>_A+g%w$ j"1_rV>LCHq4N@~P˝ɮBƻ;,eC $! z_?z5~^CRLiGep~($S*$c|D\+Q pp 4%6$2ڣP%/{1ζgO34^i 7񱙧#Upcpe ]7ӘF =`|13^z,%)U/Qlmg>)n.SS" k|75f&N~= apj((FL멠Suk}菬/8`>Ai@@1ؔڋuqu#zr68\ᢠ ןNc|4ؑ1h]mw~hE9(ްGu4z8zi:x9`677C^~#pr_?8? 6L:Ծ~$,N7J?-fEJd+>y$Jq8+0_ "WPOV[ҬDx#vWɉPl#2jg,/DAxEf."zZ=xVrfxEj] U-+PlRMw䨧K#_uDݞygz<.@CDK˙OAt_.O$| k __R'?H5| j0I"<ߌ96U]\(jJE%T]"u3/3KK `_{ąވ$zacX*=(\ВiI=DZ3K"$ֲoȏpZnZr_ũT|57} 뫙Nğ@#ܑGk]*šëSUٮV w!P\٨WnQ<;@oޛWXxy =oVU݅&&q׀D*uCύRYk|ĮyAnѷ307 n{yb.'ci-~^d 'ckoeڞ)!.K()b {2!Qؼ)5}lζ7QS r xķ[0r$xQ~oYl Wd e0ر"GΓ~Kg gi_PT{M*; l;8{/sϦwT-sd^Q zES]Z#ctix_*Kފ3?}hNM6K0.ڛWFz^ͥ0v%kv219;'c09"wp^v*+ A|30јS2s@pIXN]_/p ĴjQ~w˝P/~=[L\H?G wegݟihڹZ-Ej=L?-i,'ր{? ln7{’eU.=k!^rlQ-is2#L((ڣkhG6پ%!`?92=i >CYNHSni:VZ({xjD☦];Z"t&QQW(׿wד?V?\<'?Q^?@ zeȥNK-KsF~jJb7c!L'?E]P><+0d'3݁fngKsO ݸo>3OI0o[p?2=lپFOt<8B{@czPAgL4>dZ%}#_k9̑q?=$8 "Z> r$"{V7W{uU#.u$bd 6JD?Zk_T3Y[;Ŧ>O,?Hd>@`zqoaLӥ %W?_Xؙΰ^c2_!i_W^oaP;^OҔnG͒ _{Soh /~hK-y>G72l^FpĮ2>߂z}GM?p#)y^6LO!3DѭQ57|@JrU?"ո5 }z>/#z#%M=_cxwQ>Gw1Y^xa1.2oKi$׊y^5| k5o@5X~D>,u@0dmN GgcSj\9=Jֈ0a&vc$]1[}D}!"3R#Z&TPoO3t^~Jx3Њp5m)'\ 1"O첂o[ {/yM~duH}>[9tV l( ڭ6Gp*-= R6~W>kR곒5{o^)^P5u+9"E ~{.=D? nPKZromg(@'Pxݵ*ڵ;/yB  ~U=+q'o뜠>!Ȱ |Y<-:En.[qbF:L<o̓lg{(I}E |SB:!>Q@ u Ed`tM g{t ,(`|BLPPqR?Ih3uGP~+$0ʓPf 盹Ƥ8Q,~RE8Deo)tfMlQMevc̾TAwD1?=1/rPh%E!2|9! ?v\HC"~aaڞc^)|7P讂ö)/,IlAS;ܔjt`^ה&ha4ߤZl1ؓT<( (!scǾ`waԽGֵgUۅ0 -E1iSWK.EР+>=Q"gם“յX 4ʼ3D!Q_}Ed*X\=(Pr78G}Qq(8TݒXW5Euh:Y[݀Yި~XF{8UFH@%16~|rW+(kw*ѽпO?_ހX<1LbjVaثb=e۞,btLHwwz i.?q 7R2pol(hO"d]h$t6 ֏q~EOH0s_5}@_NCN1:U]8_Hk:"=@ (с`^16-b("b|2#Zd@ c<;c4:"7<+7j.+]Y~$UdJ0F<<'~BLjfejgez'xIyt?FMQ0/8׉⾞Sȋ\c0ٽ>Vu%Wh͠?,OUV_ |Y<ޛ"I;ǣ! F G#/׀wG|?*H"̭<0>0oR/sӧ뿡DG &hNuK`(1##>n~|B? f M]C N8߾+/y%9]k%GG0}ƒw?Junݠ tQcM;")/+EO!2m_ԵRaLk#{s[?=9=s[i>DY_3t~8YA!,h~7 {iv j,FlvHLkH} IΥUbЧPaBw Wߋl3bcMcm%r5z0R| #^[і X ANO̪#E AU@XVUB f\rIojUkUZ&odzڱm9g ?W#zx}M2n߻jm>a]jx#Rf7=Qxv7^{^:F`UAN>#Gov)f8+| k _[~s"@5րxߒ3]"QKDAQ*^C!"<R!\*{^հ,o 2Wm֧,\s[Yq>-r:T r<+񗩟RNWQx?T?+jF\n3A*]3kWl<(2AsU$n@t^4wo~#M/nkzvٽ! iRSu\h`j;Zk D1QEj3bؒ4"P  ŐRaCbJE@=b0ҲDuǾa{1Mw+sxkX̨лvs::sp= 8@bFAfddC`.I \ )o$ o$t}-v4eV9ۊ!DLKL y,NF 7'N0:0A41StrTvC*"T >ro\\q3c<3spRFS$tṇ2?&X;M3ILGl߆J__{0n$.4~2BU06|xkxkX̧A.y2vId `+ҵOOa~#B0x?,ڕČu)P9-Rs1naT+"I !KgJovsZ(p}~l;DBtiĢ}}r>* O':}= 8٤X^C w*иr!d3e1h(͇B2@{]ԥ(xH'Tird^1SN3+}jO{ 3'#ϧ~!}(, =EqQ(F17@+9N_;2SbXvK#ɷIGFsnt1㗐?$ޚ`ϋK2d1# mm~51:{N"ׄ2o<)GyJ Ry7ucСx,|wu<_H Bw'dXW8 1P*GleL33\<9:>jq&>!d{1?$c3\uTtb6)}1BƨJfc,N>dJ07LӁ1+, 4[62n2#{b7*+-EB+4qܬN^c8dbgȢh7Ó8;Xvf"4t\'st` bq]|r^iޒs/|G+۫6O ÒB;zFhaփUCNOKMb . /~ $|Q_bԇ.I܀5j4X[w 6h5!#UFZx{v|Ho 5O'>/K;bNlCJᰵrJ>re*kOIT v'm^7)6 k;]) rc'!ù1/33sT{r +r=+" |_3 u|M^iԞ9$F{1̥(ĵUi\.|A #]H\Fn"PA֞#vn(˃ux_d@ s tL]t2p1hz3tsIj5{[}+Tչ.fCݑ~`T g>8_E~ټ>l&uŐse `%Ltn|H9\ɺЯݾA?ѷS %Jf7^r$;>Co|Cx5cxi?#ua4ګ>;@;Ӎ|hpM<ԑhשq1?Rؗ1ק '3ḂK ㇽέ mW1Ѹu) Jx~Xoܣ|Ov{evL/u:Gl:"90LWg3S#owIc=&mAOM8ޙtQ ۰\$}O0&. ZGa@i|n) N>[8CZnz?#IuM\{߿AoA6ϧ?7'.Q^.¡9ySBr2<_`?_N38GE 6I \ގTzg.4>3mN ŀy|4|"^Л9!~.y \½B+BgBn>7O"Prpz ).c:Ap^OrxO@1 KpԒQL'bIg)"T`)d*9`<ٝmە}nleF2rVtb%eW3Ӣx鑴di\Nfd񻣾ٹO~5 Iuஹ3:1ʬw3%2iO-œ:\0d益3vqGee62WIs˞'o')P HIHY)l ׋pi59t1zg( (>EYŤme^轝Kӈ|ڵkq?[<|UbvD6872#?; țQ̷EFV9CLbkEͳLf x;LWH?{<۩AMCmnÛ; ON"\"1)IzBɧj2䴉DȌj,zյ>Ť"G iNXIֹH'2'{q2t|h-^y:IE1mF$vFr+p).qB~~jH-T6FGL1>BYeu]WBk-AA9&=43ўI/Nb@s& F?ӏ-1|1ʕ3L^SXũ4 'NwX_.,@=_uTB{_|]PJE`Ž7-}\({%+߻k*zDp;MɷsuX O<#9?[01l y1>83upP%F2P=Q%AUiWyPE$7 `2 F8jx;}rƿ{߾Gl{DytUATETtGDU5yGV)\mpjv… #oljVvjW+tSrȬbC,&[NBf\>h;Cc{>r'۶v0}HF0+z~u)Yy@5| 5?9O| k _ƖWr?A@' g 1 `wV鑜SUWM4'3תAmx6 zHD"\S!T@ cE=&՞" T~R+FmrOG.jzT3BLK/ʆE\Rn 䟉 ?k)VG5ma! E 7s[n}~g59yw+^өT?K%ĎÖɴml*5J=yNmuP Z){P 0n( ȃ^|BEg/Cj$w2ߌwYH-G3&yIW`7 =ޅ5w!އJ[*݋iM@IDAT1z:8380XT#5蛲;0&މttA2~Q$2Q@qdpt M-zb&s*^Fx;DI)h[$eIX'zxBmF2pKFG_:ѐ,Ogڜ4gY K= O/8p2px讯Шw2:z{ՙBdHшB@WP;Ec3 -s1g.ֲ;X2Ii|z +v(׸H9vx쮷3q],ImXwЏS( S22~z`4ө>1&_vߕZm#u{L~%硬O uzES:ȳN@XN]nG\xx\d488F?2:S(bgfۧV#-6E(e$K;wS7d$,n|k3?D!@7g; o`$.=6Z9Rese|BӓA/MΧ:=s3z>z!3 ? ث ( ~gt`f8㳲W1&G>Uh6^{3UBS8>;Ųö÷ 5_2O b:葠͆$8F 9Y>)~)Q{rv4ʇ ~Qi{MMGrzsF 8Tf JWzWL:Qϫ]/#,@W8Z<яtkr3N9Y k?Cqi#h[ٵvw!p$ris04P LB(BHR7H/#zK\0jc"`]x{qmkЎcvqV NɬHH I׭4{3+0ƿrk6A?TqWp~Qwɓlˏo \1D{ H e~CF _ݥpZ$Ht?2cpgʵ]@~#xo 1dmƁ\\^U[|9ͯZ29}.?"docz%|$פVxL  aTA,(YJkxفp]ojjƉ%WW#V_O3J8[9s3SGbn&ͶaKXZ?N&-"yu7ٝBӾx|Sos=d.mYwnDK~5| k _pS_| k _S~c7"~7E/GD0:SdSCޓ/5pvw =T$}49(o_¾q/JGo_5]q¯glM V.܇F٪ڦERW^֋pkU_ԊLsKQ+ a#ݯ/#ڋpjLVb j{{=Y##H4dhU*|ՀWDvoӖhYlz H"dEp=+ֈz&&'pb(ԅ)Q HNN_ifHąN%A67D 3X<.E=Ij:bم$$3 HWj1(f!ذ%X+AdqbeO3&Q {ɌPG3K. 1W(]սzo:aiw=G@ t4׻1ӎi9Qԃ_/ n\Nu˒әͭ`L.X$uqaH@<{(c?Ħ "<2m3J ̷gw!ɡ=a$J=GP)g7@!'Jӹ\Dhb .c~m $h߅ PzIpY>TUϺ|pyK\܏Q wy|4GG[ub?uw!Mr}r)dZt-)s]evaZ}`FEj2zfmUmG1@ G>59âR\E"!]=_'ԜU&}9o>d7)Z!Tȿ܇'mIz`-Ɔ&삝S/NcL?^Uz]*Wxʍ.ßkSxޠ}ؘ`Swt-za% !zpEUݝz7ˌs~BiQ~!/j _o~o}iY(;G6x 8͆WݧԻϩT4X=EeUAY7Jr]ba_#zU)U٦ayӞUAF=弲x_On9ٿRp\;lv=MዦIRʶ`4i;ccotuR?h󇑿"ދ%+5jtR+tF@r*: Q5 zZQOinPچ6nՏZͯujYzau-oEsQg_gDW „TJ)4 QzE@8_M_, ҥ-ko*M?%>6!yp!a7Ό(b?#~oCe?.]cf`[l2}q:Nesg|xA+0/QS:M1\-Ay}KۣΓ{7m\HbߗiݒrꫝLpj2"{E܇1|s\ H;K8y5M Ks3&s$6!4Z-^KtfF: Sd:0qIʅO"3"ϸ\T%zJ'ZU3u2osN1HbWve~NΠ]T {H3ANOV@o+OmT[iQ`zE7Gqڏi?PčDR뎒jmDY( T\Jv['&9S#b^%y<:xv #MhsgeVɠ\<%ۍx QOGǴii13l q"`=j:$R¨EAN b2 1_$a}G=e:LoVda| YGUteki{#scE]O)rB1l5ƨMB?zI~`L g 6߿1,#F0m^rvlcq.1[}Z"zl/~D n=D"0D Tz@ƫ2ĵt,{t?`@8)\ʨ~n +F;ŸJǣ C"ZHN2ҭP?3>ʅ&?k'0: pMݙ}cdicaA{NsUyُ*UwjH55v5U"oᛪRC; XY5ٝ׫ A픦ZMVd:7]@pވ80B3!.lj~+\Ƞߪӗ x[zwGg)\=Hm6p *W9 mѾ6#ɝhA此Ңd{7q#M&lI;msR^{H-je1"'6 ^D{>([¨O̩w(E6jBCPN0QS"w重L s˦L9盎S+O}@O=::p@LiŮq-SU>S/) AmfLvaHGLGGg!(V@{Ι}Qr;2&{W2=ٌd>\'g,؛d#ʨHh@Z?M]'m/h=a2<cA.dM|MN0mw2Mx|ÏFco4"2mcх/өK]heMl;9jp>lRЍDNϨϏA1/R;oZΤ#t tQ~h2mN#('0ԉiF6񫠷+~0 r3Fd3W#O2S$" .L#׋ɠ?^gڌ?16o1mK.c4ϊVd!.. ..>2( \/tP5D;Пp_>ŨgA?Mg2_} 4b 4kHR{6~ >1#XQct uRò\aa`a)Qgg͇7Fr9J gCiU=nOVX_F9Rg;-Ѵ(zvpIa Wh3*<˙AE( VC{LMbNa>U!a5QkY/ß-~goClJusEQ}xT࡚vcԾa[jGM(Qug'%(wV}SQH %E3ij v's&SIdÙih ;2ӨTiLee άn8*C1Ƴ7Îᝩ\.x#Ũ}ڑzKcQDJdXcvaH"%@C;Y4@P_zw/fxzۓ3v9^p\O)?UNA϶3F8]یhO]:Ý!VEw#_@5_Qni_S?"_@JƖu&n眹T( &!TAS{NG^.gHj,T]V%mX{Pn'ޭ BśT57$lVٕp.ݓ{>>\$=f/AxK0njKG'_[vBL{pp(<o__|G6pv)^c{󈔴i^AQ8VGxOg*Ip#byD:O~GCnZQWGR-T<.=hoh$xdv0sI}mK8Oe Ô\H^k|=U<ރw.M v=_vX}sC\<@pt<9;,ѣZ^Q{dMyej&ݙo&1B1Ř H\CubhJ1]_ɮcZ4䐸m' ۻyfDVh[ %.mj>@~CRϸz"O@svۅkW2̍Gm$$DQsh:ՍfZA28/ PPmansS9`2Ǡ?ĵc}B{[)mOɺ(2=bse ;jAPutJ+N@,:HKS;78yQ58`C]2 $\ ^rJMd ɌqO_,Jxg9dtԄѼh{44KW:|1E6̟p"3:B<D<E)X\gX9t]CҎoKA9u2\_ tX/Q3BɵNq<#sG0?n[(~+~Ovm ecBQ0/ppT <9`I>ۂcgW̧rTFCA1q>y|RèvGdx\-X5R(ļmjF:JmeA}ЫbFXW:Z'4źv2s^qM0$;Gչe|@p&-UͅU0?p n[AE>/u1ڑbp[]QTcGɐhg;Ec<'L'9Pa[wV.׻dn{* QiP"_s;8ucxxA7VxPdS@ȫf$CӫOwvgsX`\3['LC.OGa _fNy?~ CVYz13ݔ1լkb_U9K> LXfUt+N_.c>fXȴDBM*hNIY耙?gv(Ho⢿ЛvޜdjԒ-~ie]+>G)QtļJQV:^ČUs΢&Ub"$)NHf\]߅?Kؗ**IX & TY™'LХt}+oCGWdGb߲?Rvqzʦ@3UEXtP+zmD[8hr=Ҙo| k _/)_@;k p4BUN FNT "hm!PsI`,rZwvoc~c,Pt}hL2cm;T0gece6]LP[jǂ;XFHړIMK58qj_][ހRkmUU}pEpU`¢-"x#u ƽX hs v!^ O)z3 $C'`!1k>Mo^AׯR(+P> N=r6HWg>HBPd${G0mM/62گkvK"x"2GP~] 8'8x9,(F*':@CjJY`Z3Xk;T<$s9{3Wow ~nIEJ\ѴKvd7q<y\# [oqx*Iym4u9ϣu7W { vt'}Q9&d1ՌjgGց#-c-]%4|WB!f> #h/d$Jw@2\],XoA3ށRYpUu*QA "`@Q U0b@,Ō9g0`$EAE%I2$\3;wN>Ͼﳻ}{G]cb_&Y|'w.b?=I-EmUDˣL.OωD-~;)26b_`&W$^zdI,㹡tw˜W/os98s/+AIMJkUx}zwû`c~PŁc|2.3%{IG QoΏ*ØL.bߐ. ZIO_1o[&L|?4G!!Lcuև?;S==\IICyWh9oQp1wW0kfO%Kd*Z3I)pk*WxM XC \Ys>BP͙DizD-FJdd2ټ)n{acUlګUrd=SPNW9Vv@<;"*E v`r8?Xl|ȓ+%V+Ȯ01,] Y'%\Ol4+ H]flqP% MX[]Iv l٪f4~~5!ydM=2f B[CqK?ԷMxOʓ9 77$>(4~c R&6Q )&W2e )f SKEJ(@J-PjU^O(@J--`Xzf NUJ;rxK%׶;zjZc2o@=9#Bq984*t#BKx mo6/ۉ>{؀ﰇى?;&z1_իx#y{۟ 0m$Xm,֞U Ac*)bm .u;ҟ]wq零w&(Sb%9孴{ $s_Urpo n w bo2;(UN Us4py-&OWK=N3 ~Wn' |rsSv7Q+f~(fXNL$?1ч _TƕH ߋl)簘R===S@F?vZ` 2\O4JKcL GB]{lEv(4)jOGŸi$!P6jqoPQ]Tavw놄xO9wzsO1F_}ftA X(4ɝ7)ØQWEEIĆONwx# qtѶcڿa3<ߴ@ GBa> ꅘWú|s.V`kf{); eUwVW91+c b F.fw7o9 @ I"HAdiw+nuYͿ.je52Ď edLvlEBV1s) \5<3@OXcVM!)l7IZ^sB x*Ҭ(ʷ#!uI7u/&t=*fO۴7l|>h Ӻw$/] @]?ۿH)(\q iT,}Z(@֛EJ-PjR Z`=m'ʏ {V S\]KX0@^2Ô4q&mj99*?n$VdҶfIDŽ M5C 1,Ю~tFX"cua>GyfKvaƤ*ɘvޕc$ bO"%x!K)K3$-@o-i#횠S駪XpGqgvHCP-k#8Ooע};T໱ z?@F~Vwt[>~Q~d q&=Jo|cD$c} ~zxGO$Un_I2u-_s\G=P#?ཙ菙H^=(5VmɶSh&fxy> )`k*@u{nHЎt[6L|1/OTǷco -Q\M\ww2L5 ͜oUWvWŒwl7> skuv9Uu}N"衈̎5Fm G--ڙt^G b7F~&PQ@x._oLwT`[!%r?$);>%Q\W jnL1WSh&2<-9ic<%C"|$KόFх&"ɯwP]yW#Qd #Kq2U,j됟>αX7K[B|嶵ya}WnⰮ-Ǘq9)|z_A;]߀Q"{{oRYȤ?X(Xk<}=}6?`ܧiqG}~jl7Ii/ }b'!,t!=<98H=WqBKΏ'3s@[$䟞_ΈRFzF)hl?9r`;U\VqyH= N@C1u`gAvL^$*_]sۏ7q ?5gf)eN|$'\OC~&##"s*"G*`._;?8"w cX1" ILaGFumQ:amZGC{3xiAh/eLn@ڿ4mqyZO= y~)Ξt,}e LDٌA3M&2:V͘o\YXIUzCTvb |8~(!w.cb4u@ /6*WDBa}Ѳ/ף.Q_d[:6lfu2:+o~[< Sˑ)D Y,έIF[*[-a֘ WW(ݾj=ˬf_B~Y\\IfZo|s3/J8vHR^yUgj7JMxyurm/0|&׷w:ßw ͞|2o9N6دQjR ZXZ \0(@J-Hak͐#$eG򩖽X-Vؗ*H mKJ9ou%=d5wrf/SDgFEBղhm6t"d-m/D^es,<˕愐u~rk6mza:`rs.h|D1퀞DCY>o̙^&Xhf;1cl |7Gbh_?pԿ@3$fl9-jzw2tB½ `,&Lm7ƨK0.Sf0>50щ숐~WFCIPbinU"6}H %4пa*؁aNrQu :/nR.w; xN TaMC|3А%s9P6߃@3"';ۃ^bCRcΏ|s9]tn-#zW!ߛi#=e'(2]'`qu*k2@cOZ2Me "C8,ڂ餫xHN1/6.oj(hHI|L3_G'ˤ~\:؃'|Snټ@Y. 4 @GJ-h?*Zt>ø3>/S]t3U5T=tK~R0sr߉.CɎ}md\H>e We .bG`~a^(R۔<h0|r 84<~`cwg";Ѿn&PPOrX호I$%i?5 |o.?1G+Se-W=t*| ӹ#+ e{syxX!hn4)h??/$&E(j pS+ #/xԢ ׬|YWo]f4+(##Ilz9U iGHxh#g{0$7Ak1Uum |R X0a֜HH\ABB¦fE]lǼμ|K8N5fĭC>_0O(פ4;͝+o|XlJ{HBHe{* O6:R?Z@jL؏V/0ͣ74.!a0MUD<"~&rN1Z̙1'lj-QZ2FfȤ6mL, Bv?#;e,Qգ 4k\,+G1'8'xV<1>x pDaKƨW]oӵjd,ضfg:?S1*®)y$~i?'zĶ z lXbm.`\Ϲ/@Wîk kPK 0/q(`M-nl;1wN1_iX窪{iuc TЉMbl.=ﰟ8'?D}U{=\nx·xW9k2)y$X+>>Ϗdtq Nyc?osWCAV[Gxce$QHӕ1_LqgopZ}RP&OKeRsyu^Ojm:uY l_J_=¿9+r=ehSkݯ5½㏒/yF嵛`4Aۀ7UJѲL.Ǽ{W 8bc8Yv7w;s8Ӷ+_e}jK9,Tԙ}Gf}]}dp]N5u2\WI {<~d92ѹ= BG׺c7weƭ]f5qmx#Y!pS5\:*B~(@J-޵@=QJ-PjR Z@[`m.4?#uHZ(9bo~kn <B8?"oF5 K,t,`Ų@љq_||9p)STjbӛDbfpZ(}-`2u}]_mFL?<~Kk_ҫq|z LFSAF]Vu:oܪ &޾*Vb ֭|Y)7ԝ"b`r"׳޾ \b2x16^n0I!o"꽭r˻Bc_q=))V~Q,^qEC{Әg<:6ǘi R?uߋz W3MJjouXWˀW Ox0Vzmz`׷-+f0px =챠VMd}ku]_oW64ID" i@.9~zJFRUX>a_B b`'ר`O`U\@a68F'wH09i?*m@JN'%OKA(@MṠ~/ d.GJs9b<pjl=*90 㿿 l_U0<Tǂl"UHU!`SolFCy~T!61ZF{En}AA?8\.Z H}2xwއm#?]/ηߐ9[778iE $1Xb\N6bL11W$Yi OJ A.S>OE d F`5Q^Wqhx.!!ǙOz j}bi>I mp}s~;=i9яS Ms>:2Sof:h|~Y0{9߰ݐ߸${[nfb+s…ex|˃9ܮ{sp-N L 8C`'3Sœuz,[APF "7@LtQ=D;hk0ol5rL&4nXBR X՜0o՛ꮄ?q )'PyE_KAZeTA򙵚"۵}ӛ-1([7w;l>B9OV5W 8x*yߨ7Oa?W.Z(@Z ?[jR ZS-@GU{ Vn~,S2!"LOO$ ;EK,b{vf?+R232do ,ܽx{nΜlG~ٮrcoVVr}^ ?o!=ٔW=I*eKt{3 WDos ˓MA6){0a2&I;MH)Xe 숙ܟl?3 Hǩ5)Fچ޽0n7#_{~ƿ ut k(0dz܀1ޥؒ1z`t_hЋhhacܰ@NވfLL/c߽N5&/(@/=?-gҞ҃EP滈 Gp9[8{ӆdwgqO0`{#+ # E-{pp>Y()D0Ȳ_wb~i5T!}檐& ƜZU|RiʠlI"X*0!@mWW2TȜ ɵk/4 S:CczMſ U8}+z4(*!߼M=/Ci~}ou }XN'ElC&"ƭ`Q|ӹэy%EM(_ 6I,Kcda7 ~8 Π^n8'Ţ7!% "fxeV]wU0oȿ9Ƙ }x49̕ji;[\ۍT!GAzL<;13XjLa)lXu=_W|D[Qs+0y{0~`.c^]g֫a@0 }a \=8G<+yε|r,{OO9X=B<%)F Na:(]ӋAwIzwNi_ߤԔirg(NBs;/WGu=@׵]dDMS:RNG=>,D=mvUy=o{nFZW;Ȏ| MLk+e3~Q"rze]gLQI__[Ew|d'$GTEEg\l ۙj7mbvB.R MQ\,}$^=I%赪iuc=}C.77zᠻv?BQTӔO2)ސO{\O9gx7X,BhYh+RGm3RR崥9`)7|wqfOsحDԹAd\^ec^ͷ6D%n+x뺉b?ܝC? 1Iҽ/bIڨ>Q/_r+1MS;EП%_,#t}PC~!>麟./s*J>QOC| M1 U\Lp)շ^Sũd0nP]HH#5ix쩢erh_=|_nE9kٍUgp~~ycsV~]~ rkY SSx/-v{nowwm_~f݆,-RZy*dQJOc# {id8:8R=}A rx?`1x&jv%LȒ5m%OW6ԫ!$OkCT 3Q uo60q+PO:h_ _N%es>YlJ>*pqL&ee:+F쯥d3ZNQVjR ZXZ[9JPjR ZX dW7;OR8pPW֑`ZPNMZ"sb-s}~=p E;xwp:L&;fNOgna$\`f? Ky<_CG~{fYb6_g]!d*ᙵYїBL zf"td,[>RVۄBDэ"'Ǹi1c| Ju9Qp5Wu2}t>_z;#_: Оj(Do\F&`<C7v^#q9/ 1]b'._ %FͶ| xwu݊un#1N !`!K6d bz\riϙ~[ܔG)<'V[ &60t8R%NB83P'{׀߉kW?Y._m+O =[=jaTKFtsY-檠{ZBT[*}itV&ӔAWf/AenM,vKRW;~l7Pscܗ.Urm=joôMQ5|%I<=a*L#8SrWޤ>Y ּ =\l|;>~u)rj)L=t*Q[:MX3 uqU'upa¯mcw#` -sCp$i$d/{Y}<#-@U⢊݊`1c0<l|jp}΁AM!g:94N/ ҿ^`>}2ɡT.' kO\ $vݖT8՚~[b}SI9 L&$a xvOU 52I\8.E4 N-<{zNn=m:av:̣,\菓+}^mgt1ޟ1>2O#̻q~5[s=P*'6=wV%YbNOJlۏ\dH_H'퐿 &D0hŘ'ȟ|S):K$xUm e!Z4$RS2vZLE{Ƣd>D!m.=mnWhrmDј9G>-TcE;6S\6qݎbAP>EKd)vC|7[:IP=,3gI1m>\m[nBp4YZ(yF{ /T|zKx!׭S`C QzzV,2jy(97Gvj7|=O*J'jNMVA&_YMHL^&J3HB_E13R~ڟ=JvDF(-~07x.7rzy)ʘA7a6*BHv/O4 #tr~NN.$^Ǥ> Qx%hdO䟠N&7-Gܴ r0su=BqoVEW#Ǘ*^* d+zvzHGK_+5L-Y|w1ͦ#. Yp¤zLPgp yiK|KqL߮Ø˗c;)td:x!ľu^J'E˭C⽘3LS!ŷjYh5Z~GL釬r~O+o/2^#Odd66} s`5AR En &mr[3~wOV|q*ev`B d9M7O!$kMZ#Yβ}]C=xOWJ/gĩ9Ds) y"Jѳ{t(=%(@J-PjR W-%szÔZ(?Pa7~ĪcW?A*T'ًEyf=#jg:AJ=ʘ@ |/Dwq(w-yhB}ag~4/%ݱ5 p~P   x[#o];a@?R-l1r~1O\79Y-o [*~E= T(1%R]',e{C˹ܤj9M KAWĒZFʈۀBvp\/L]$c3Jc,,1$4@opFV Bi Ta Y򾨱exP5B#:T `4y~r<*c4f4uT"8]_cHFҼ ;$t p#u~{J3+Qz)_>.v$>)ٓ챌u5cxt\20=RA]rٌve5qFsz9DGI] q8}SAaZ#<"Zݙi!4]n~?1UK/L!bQH( lVeJKTQ3[_(7cZ_پ"RC.2N2{6L󧒈} \h[א1*<SW>b:$z1=#~x@-H~WYG}!UmBZЕ2PwMzj8urܛv (R}[?a'Fr=Zcaqx*FA+T!>fO:ϐ ] {P/./tt<#Yyuݝi( ~żeSۑŢev{r>LB;C#? 1ڮn]&U Hd% Ho1Ed:e!72x&(\gx79dg9~iΜpF.<d"eoA ų}N|ur;G-١S=m '˘v_Cq!O|zYwŧ"dH_F%\/.=/<%>A_|!9@OMd9+zn"3bC:->M|x|7d:?,AMoO}g9Ə]2|X)f;nlE(٦!` /ܶ9% |5nf2[P 8@\WU?w_a:rWٶʞj.r߰``Dq|*tv9wldN>kfz><|d\8^7p2]\b\)<M^@}0 ބR06akClgVsyS\Ԭ W‰VGԭiNH&򈣐fLw /QK¶fvR|R b_4?_G/9N=8v-#@H9=# YS"ì,;(@J->@>?\J-PjR ZW jٲZO5"ɮ~6~mH=`SݖQhH_(I;g @XDtpy5Ϋ q z?Sx-va-9~Da][GصMrbؽpSCY Oxf8{?_M=ކ)~Mb|W̲eA[aK]o Za㯡h{qve3MHOAO`'g`;sx:0Y;BPW|nۦzmƘz#}ֽdp}(HG7.ಀzu+A481ȁoC!G15 ŵAb˓;8wI.ƪ0P/n0ݪ`.w)~oS0]r&O Fh7ER F^#vɴ.{ңmԥq(oȆ߫ANIѮFtraC jef${lr˩F\rCfKeNv!/axN8~-܎R}]\Ě'U'<3uwZQq=eelJ}bнH1{ mѯmGwUQGZljuեD ~ُ'0eUR] k+ UŰ[wn׊<b%e672V1W j\}\݃L{lKF4W#6μ~?:J,t/E-_K2t,ƻ{76~y䨘Wcrm.12U^=4r=R 8Of 0\3*>e-: e?fiQM3tqv Yb<&0MxLS[1(Ph (Ɯ N cC Y7y\^h^=t0(c|a9cZmfޱ|{1͟zV _~*g,FG8`:nS}zu0Dck(kyxcmA C,)~tId_TKH2+ Nv (Y! sAkw WGB~ۆy܅a?Bu 2mwh=iܞ!Ixncv^/Kie`8W\D;Q@پ͑}b$ň9ߌ4&Hh5467] 됽bb&'J17Գpg0(i~.4V=$_%W3r>sl @d~eK~$*d2/. TQq+ troϒ {[gK+Ǽ{|4T1mU}`̯ Q72?ڇ_G9\:v#U|{r<]I}FS@uE3T8e cjr#Yld3IIl5 IC!TҬ%؉=Ǜ\zqB[jQu&^=ԮIW_JҬ]-/Z=w y*VC=vI~RA|LO6'̛DװʠVJ3/r"3Vb Vj,@J-PjR NQzR Z[ ;#ΟNlyKe`Dbblw!gt> GF1Χ) jwq!O@c 9|Zv?§+5|_K c{W?Dto_%2>2jʿ?N'HI{(уn*HQh,Uft!JhBG׉RviAYg53kSgPE2Uh; chvG#uGSf; VE0芝_|v3.x$cf1='`~s@!w@?wdpW`u83Sj2w V %H.҂6;MO7B t}$9i#nl+NζwxiiKNHQcl ƛ;4`}=zo]vHCQMf W+Ào`̤ϥb}*`cyDC|$+f:߇"3 jz$vv.&q6އXb&F(o.wr^-lO`KJ)m_F-4WKlnQo1P/kaEO壘Bצ#,(_e$Y $E!_P[Aߧ ib:t<-*vSדɲ+`Cu}{ڊ)fuC*?fƟ\B&$tyLfOlW\wzUpEgD!ACy mB fA.71cVϪB8[1>-r` Nn:e(LI񌑶HnQt!:3 Ʌ?;R$6VyXN`v+]7>ьTFv] V%ǩ`<Ѫ34/BfRڷpZGUTk6gIhGv#zjf;ԭ|w{ppi֜L/c̝ft2/ޥŮn9G'C> r(h>HO䒨(|P$(AܫE% ƣ&@qpUc'cXV,ktShu'3M!zbL1}0[b]*6:˂#Ub7U ߒô?j "iHIR i lbn:jm'Xbg:86` ~ '_ʽ l! c\dc Kc6 ht=y85<@>bpB\\BdKBj! 1{g%Zo`4 ZTDm^b*-r灞nuyFwüZ1J; ^+A?η8S6v=s3f Zf*f5o_ο>{[Qd&p@IDATUս>sQ`ŀ1`:f11L` 1`@EA@E EATDɒ9p{wտֻV7};s]2NO}yC 󋻎|Qp]>t&.vܴq&$JDSW* E(w-}hD[%ضzV_ZO-sN8 _};ŻS`;/dr-S',0$(BNG]>l5`x |{xTV=x޴> JbT m>HP"nưUX ,ZFpS(zZg,62U=H lq]k=@10tx]?Sׂ b$_3xl\ c`!p c\?m=-i@=(v+r' <2ד9V{FSƣ-MDNF9]0&}ä823Budsg~A}^=ٽJw)f줡XWAC)$5yԣ70^S =9 ѯtyPuY|,3Z.ӽb.]Z cnJEwƲgYtfm Ƹ<c"_ȴhTEh5Qɏ|%xjg5Oe[EQ+` -ųoO\.`<3͡ iKKB[.gޠS+4&܏MJ5z`P(TuH*(BF9,dَhCZ?:YkF8.PϫڑkGės~tsvOƸ"h^ŵLeȈV]T*+3 /gʙҡ\IxLYtqr>fkeyjLT0sqy+gVп1a 2o[jyχr/p~2h[;5d:I22& e~d 0ǣ~L)qd.pz֗xNvh'.u2w:3!YLGf<ݝiL=7c~XؔϢDC0aɿǂ?L-L@Väa:= Mq""0i(B@S~|C&ԓylg٭ɞL*c2X+ڜx?иN0>T#/`.l+jy-u%hP\f˔^9@U?{Kbʥ jTAL#( Cj uPb(i]gKDR4~ :n-A"aZWAZ|mh'D?B8 e Bg.G*.5l.<¶bj~د:OT}[ig q# gA^U*@#yC TJzۼ̪ņm|_^8[j߹wyyW~͎AE])cYYC"LXMfkІݺ7;,ie>ޜ/7K#݈LAi6wp1|Fƛ't01 tpSܵ%$ϔQLR-v1)rĀ4qQ~ӹtxR8WCFT9F̓Uffn2,dSKsC2&H#w?}\ut )b BFj1~6c&Z t [O zm8~I,)m^4-@<}S0( =POtv/ꑎ unhg.<% |ۄ D}mɴcg0WQE@2 ~Oes4a(Bn.WEd } ]* [{ԯOVw6s?~D ϓ'u54]Mh(f2s?[_zU\H!ILEKNEts1!Vik"t( ύQFdT=!9yI<eW3085hvVۃ6= RK@,&/{I~E.Ud@&=x7v=8D@ǘ_WÉO4` }ޔvV۸\,C? |#Em [!w8cf^Я=a:{Bsw۳bf{_t

    8̠ݲXgDg:![&ft' ໆ]=އ 6aǾ(W~^ bD5!U3Q~t]%ree-ioy\ X/ar0?W|4PF2=8@Xh0m{/4"ўLYO`܋=IqIQ1M> Ӥ68]jR1rZ yl~ %V1II&킙i.q:# ?}tI=S~FDXwICG,23^lSkH qw 9N4"ta)G-QKĠ^`ExC 2l Szn Gc&p9X &@(lX\Y5Y[xL.<<WaP(WϩE?֢_Gq}M592-w8Kd1RG /h"5d[ryn#FwtMt}l߸AD2noW<X?>1jX'pE ,Ɲx4fa7εvåhY|=4e.SC8,<8M!<5DsJZQ6mש#R*۞At@M:x}vSNzW@eL$L}b]$ .k ]}7 `mW‚#%kMRu3rjj.$hVь zR8͌[G#ax3<]6ݪ'tߣ@=a {do6hq? "cʗv"nKu_FAw(iumhOBD(@J5P䫗^T(n3֫^pav_EQjٌn컱C񕴽RpONΤ>D=}|c 1.1WY0|U)3EٶeC^0a{P~?%}6}!QYȾ;R!ft WC(<=ME5U lB ʑSN ҈iml>)P7YDRmi*0H7)-e<0}Tb^#l*d-}N۩@9B߯(D_<щ!#t',m['/.]x p( wĞ!O>,kؾ)}v,)d)O$pv\<^MAwPQLwG36"{qW%Q!>h*TNv?`V '(4cTB2x׀_ ȴ=>J~bK<{!gȯш5@w3p÷scB_3ص*^kw<t5@K#%H!oe*{ 4PZi ^\zAFJa9r}zsp5=̊Y 4Ń5YL8A]a{2iW<[2XWOi~iYHg`L)su$?$1qbX`̶910j`d+M?JT'OwԿo33wS _Qd_*U 蕡#94h;|2θ2l\Y_9SkY`:݁G7bIN5j Pܡq93Wj, &0ILOvۗi:z2xCe [ gA/ZW\δauwLEY$ а(="!xiDž9_F|\1RdǓZn&pǼDo4,!ߍ<1_eblE _4w( VC̖LR䥺q.~уYCt\LW_cl6ؖCLu5E#,3Ɨʾ 1{BjPt?3}3]bP@ϱzEl&>["2Qi["outăFr:rgK|ItH&O *d>oɘ/,g+=5;9J,8=}@ t@ Ziv,NNc:,ND@3$.-V/-<>lG,Vr Oˆ@X"k\<t1P|ܛhf<dnE]7;1q{s}w])2)7hgi|C#yF/G͚Sjgnn9HUi8%]z%6镕B3_ ̴d-<<’@#_s 'OBE^UBZ_a5!߹5UKv"RIaH+~xU@t"*v 3)C%$-H,6]WV$Jgsec xAa R\9@ `,-rZ) =R#|z,4!H=! z\;AΉfj|=$ <8|X}}´۔PB>Ŵ}b {u~ߤ%~'Ltq]k5UΊ`˕^q= M"]&Cs5hV (Ŀ;jb29tU8)($3Ta,/LK W&n&cpj:Rѿ96P voI6L`:Uf윊W˜{'cA%u;ٷt}'j>eӘƹ}M6Nb g$ah+ e.fO(<0i!ߴ)K2c٩{1ڭĝQtxj*('A4=b}* j U~zd_3eEaEgzk5Zb93ü=z/:?|(=@]%BcDAΧkwhvgYQLNW7Q/~RL5{nɴ`gE#L'. v&B7Va|t.H?oɢ]"'ŗOnEY8qn϶2nV0`L)T0{?q2|Z0mfx7yCJ(=Ga\r{2â. eƗk2OQ`~_3D3m{7o! E?Y$t7A;VIB#LmyF EȈ ޗW>晦_A h2Z *­\?2lH1Ro@ϸvOEG2Rd M`IgbiIDjxF_M1h,8M!kNI̩J iO'd]᫥ 4L9>k}.%`V ㈪]GC) % T 32 2眍rĩŸEIlGPl+GP韽t"×+ǰkTd:^ i|xioZǂ>] nL'Sϊ2x-c31&'?)u}ַ؏i1Dt2ҊTEtp·/:;b0>nws}$ZH#h)pQWW@x*ctMb7㾠ȠƏg0NF'e_3ȏNLAR>:y'|Z-uڿumQCe(Ԁ?ImTGuPiC~J"AT j`+ MV1f0)ѿgu lys zjOø06"L5Sq*;6~XLOFOd!x?G۳pT:n?~gRE;#c[˿nlkm)g\獲,zbCNk $ՙZޒD0P-sux  ۏؐTB9kڶ䒇o_.a:Ӏe 8Nb_+!gI}1!p2%ĵ]|.-Dd/`:w%_K Y=D< }%q%&w1fc ?GvsC[9 H 2t8ˑHAUd=!җy@=i6}Aw4,6䧋m@vϿR4T؜&K  3޺.kk}: vdtfLG2g0!}aڗ(Zm=םiH 1)_zv|]0"%z(s2Ӯg~/)ô}?F)cNLr_2ϖ}}?4vlqg3l#n}ٝaDx 8ZC_ GsnkS/0|a 舓gr <7'U2%c'"ГrØホjG_0FdxGAI ne>)~.H䨢c unBKxԷzDUjh0g+FȸBG,φOGa4ϋb<4Y+O4t7a p3I{ޙ=C=Ƈ>c"<:RLۋ-#FLY(d13R]Հ0U8'2W4 FTK9U엋!V̀Q~S4OpV6頑4v}ZGZqG*UkZqGɇAbWHd0;|{]bcwDnnK2w"Ǻ@1t{QduF2%zGNZdGO+$Bg$tq#ٜ~ZԔ[vU\ o8w0dXШ֏pgdt.z8=ߢ}HAz n`5)^ttxn>wC =QGj;`|7'z8G eSN xHtOC~evi{F C3">sZs|1bx!#SV@H%[DHNKt KMͪn5krDNN5jF4saO30M%2gN )Qnk$/k9דynt意[+C]Re{RJ5PR jTtV鿥(@J5PxӆHZH6'Խm͜HH9>$DOyj-YQd>>3w԰b}Aܴ,cx8~$zYV cXf2ߤ |>O枦r³e2QG97жI,=TJg{ګ7 ߯h Ϣ@CUQh?/4 6[NzſSJ ؐ/ {nzIR_'y{Y,cšߢguO2dMXxD3Z׻G¸FoRA࿹s3I5`$jHM) !U *wԳI/߹>V#T @͆#G~@Z57h$$' R+b?FN4*{NU00_SUv: .%ΆaY{nN N]u<N#fS|U$"5 ZəM؋ia_ ¡^b( quiREKG;|;.PfJ ,^R׿tx_#a/|jr#p;z^C@'p>dA¢JGbAz&*8^nea$ i?&ÿQ͜oN{3D;3U+3~1n*"F]{hV"^2.P<T b`j MZ Ȝm?/W=Jel%QK5#㜛 SbuF@ö*G#5H6oEs920 8ǡ?R{Mt9:Wۜi'jl&o0rDg6ǽ2\~xUG`4e\ vN;|4ʤ+^q>ם.YNN}g|ds'⸑6,G9ra\"E[#-7"iw%phG<1jT+*g>]q#&Kn8>9mvGl_dv.< l(~3: 5 (C|-Z(D#T4hdU16rnfsyj0W /}E\#'G*xly>qsfgdޔ{ 0{cT̼h{c jG?{1d%$%.Xuo7M?V3R?a@*r+Ġ_#B=m#]u]ƫ"Q":ٽ4A= At8&r ^~=5d3scywݢ?C׭, Eq1-0bt7;1x(cr]&Fm}Y/5(tߋ1\9 0m.H?Pϙca7AGWhEb;U"01r#Է}>=HGe_EeQ7v2>{\Ks);\62h((IQߗ2^Yg.1LoICe:_j7ma/˝~^/,E4H22lq*-̽ x7nÿ'a) 6?22%u$zY[,:n ͢Z6bbg M5aomo'#L}Fc/a!92!0xJKd%mfsy(d(^LӬs#)L1OAѧLSėYdNp6p#Qan{e15nWwQ {iAΆmE>wh4npNrp'K<cr1s{Ƽj4c'#E|i3ߌ  Ս^b:jǘ,.[?gu~c=V#bfTbAM\oTcQ8SD|m)t 2w]CQ5sU^ ?D43on>牡bX0N}%"O8©&G=e>""? MnJ"5 )SI3<**+@WD!=JSO8c>!{Jd3.Ԉy|pg w6cv4!#w,7:7ә]vq(oӊSqT_k=C֯/AJTN g'RlR߼e`MvQ j3=zf|?(TFm4V|'#!gVN~i;#-[E20:oݱ΃Gw HN/ R$&0NqGוd@Gvj3>Ţwc[ӓ &b@KgPpvK)K #)ﯲNޘh7ߩaTZ>v;* ]A ,'kM ג?zQKͺef֭JkY͚N1+v.^_jW=,,Kߧ߫fЌ yF60(COs.r0NCn:+ѥ(@J5PR *@J5PR 5n (\ڍ] Q _ v O7]h3І2k&yy̾Л}BⓀ0iQ`]kOS&#ԟ螦zZނ ƾqsMs*{D4-ה)"6}̍"IZ31[i{D:[Ua!yog[VOD1F/ "uNKQ)(pHx_]44ggsWڭa/1wH'sm2 a̧[H*^!> ymQ $3[DN6L'K3ݨE \O+̴ol@I $Ҁy,p+xs}Iwh-Uaw]#(bt ʍoULۓ5"`#AULS?:cKHxR>z v;>ۄp'r=jL@@IDAT; ~^`q ׊6B Gz62hQ:RV鞜ZEKf7w;W=ih(yYMT=u&g|x 9WǘE*]iX|f].tp.Ajy>dw"S 0ZsNј舆Cn%YNyGGcgiwA 3U~ @dq C/n'3,J10'G֠ݓ _gi ;þ|2 "G#7li?<+Յ1 W0/_zjq؂ˇ1N`Pۘ??I#,*@g=Gk23wȡe6*tvZ9cva9JD91soyjϳ cC sݎbdv1MKhFzaםx1შc,3 tG9la0ȿF 35crG@ >3q"n۟YQnxhQ^fH .p>?. >g+793ҾQ_V[8EZ~TʀD!h_w1ԯl[ ]KL/p3ߓG{ô. w\[`-2307i2D8(>1.R>*y?{k¤vw=4~gA`\v-/)LqyD<{EÙ:ŭ㥹OT }t-<%m9Caiܜ~HWd#HC 򢨷p!5^ȗ4ެ}kH <E18ѣ`yEg߁oģ=(zX _9ݦ:n(\!wS9<7S 뼺(:m O2;TR&ˑA! <0o~;xd(c~`{iI=8zTʌ`t]g^oӤ?Լ / =Ѯi!gH) `(B9in:f%5OWPؓy)+߄ǝmn]ǍQEwuGTJS0ۊ'h-!˩t+S3FWYR|At}iڢ0MR؄q3do(1J,;FnǡǺĿjc<ƫp)2v+4`0Dt_"ݯof+p}~~L5|X-c(ź ,ǁϝR O|7tUN?MkzøZQ4Xv9 wF(?B#P.L7wZ԰D#QW`^iZ.ݗ!\^{Jk?.:İ2&|e ZovBbpdiN&B(OKLf!I5GG%f5˖D5W.'zYP_̲5`U5"oUoL妘JOK# #flְ3R]b,H\ht7XlO=Y#.瘉4a-J\(+JS1~O9%(@J5PR j@E(@J5PR H7VnRMM7jt7 XHEٱΐRzpl."QB*r!C0G'<Լ4ϵS 1}6'<^| (?6׬ڬsN6!mH37Pvቺa%nՓ'ؽkHG!ۣC7^a_ RY XfO}P9]bnT@XC{R{ξ!z q]K} RErГ`4?^SΔ$M "cPLGG2O;nɔ͌:ٕvg i`} aUhe1lcjMٓ EWҼ0<^W4پxiVd pp\"GPgGk}mGh.Q_ wtE-!}4 >ff}Ԯ5]Uw*\<ChD=؞'aN~B=p!SdF\ WGi| EOj(W1PX2[ }E>՜30^v3@3!7G*ƶ4wn|2$UW?h8j~5P"5L&[?K#$DB cLVBË(EyJrه-Ebo\$]!>$u4?[<&v{wJW@d9?k}DAb@FgV)6\$hџ淐#a$4<؆1TX.OxxzS̳4Z.e}ޢAt=\F$9ȶdI:-˘W^gO1/a<^>L׫&9h3x5^,Xnc^򴪖NfaP2No<14 OKFy5 |eoݭ 'zaF8K֋i CspZcST] Щb;t=kL'CMyPV"ߜz%V~jgط߫G { bbXQu2͔})C ޠ9-[׀u'?޼Ta-C y~Stp/3GЉ'\kYsŻ m庼ġ[\Ba#,j.a5MW+˧+N% 0tv4wfKaFE0ͭ4ߡ~ɓp!gۛH,MV" _Wvѳ1Ybœ<?zg7ez)=Z1TT<ܵe:K 7N ^Gѯnh); ̙K"N/Y ;cMjCJz Rj\rGN[i3T0]]pDg ~Ok%4+yDEeQE' +jGsu;Ej_N2S%^Jt*`>GH#d`'PwU4cgse2jyg2@ p)Vy))gջ"~H$tI"ܐIxXvcUYj谔L8}kUzxVy[ ȼ ._ PL;G,ʳ@_mo`_AyK 1rϪ!㪨\ Kp!N[ ӎbIƀcFn#5P$GԐ:SaJ34MMt}X\obe<c-^[3?4'(/]?l\?Bw[OW! [r7K xSjϐX?cAu:>+/뢣>u0Hj_ȯ-'"vxݔgh|"'k/Ď<$L*ʕ5j~$Ԯ嚢] יd=+Mj|r3ƙyE2WK8Lz&/>LCxY?pw: /7ʦ'\ Ȝ=G\2h ݀Vt?U`ηC5 )E%)`%J(@J5P^UguK5PR j`} \7}=ߙK,J6("pVR1NB9y\m>D CGȷ-5MXS0F@龄LY6opkӾh̙ʺ'^az ~O'c:*}nO/R RD' 6!tAQADDA@A JSB ^Nߝ{BAPg嬻kO]m"5wi90߀Kv+8Ih`o7"-`) ?  ,e( c@iop4XpHcv#QZh|R,`U#~OtqYzWH{o~*Ous X`|i۵04`ݍu,ou^h+o)Z}RH KqPzg !x >A6+,v pI pls^paT=d ~eMR Ώ io hY-!!-ag&gkOK.(6U1xV 4X+ ҋƠEX߉bݨ4l|c>jweW{=ʥ#Bl;!?:;=>2fg R=-{ʣ)U4_u3oR!Z$W㕍h^V(6%> :2%m6o4|LhPɆN24-<փrد[!mkWB0;_@ƣ@'m `_y`lA'-TP~=o )ac_Wv 7 T*;įiWp^|8?|ʵPv0FOty 䣇%23T ׷EP nW`5j&k?MkuۏL0WcB'z摺s<:Y-sux# ,w[>,ݦ#\w 7DGg? jﰤ/fqīO t74*Hee?dj|a!MF7^!UۚPN1Y!˦YL?oºz:+~@q)dSXYd "o&X>|LAw)̴V(o }*4i)Х=Y>߄sB~N96B ec0}rʍ4Tl]]1s/s/ _[Vy`OG]ҋSD ;{兲rxꥥ3VzWWmFlVFR;׵Bξq>;ĭG) 3\ʵI!Q Q Q Q Q QH׏?V)xzEzh! g 3 x9;[t%@gdP`7X 5x de* {Emϩ3djך=^fv=xgfMv=~@tul?-T@byWdf*ithPTp:='Ϲ(-ڻ?#[A-.o1[Q_o V2-T2e A U*8|[,lB432],P@#n<[NaG?8 x,̞\^fwr2 }_PX8,03|uP7A"p@^4`woJnXvF 3fݟf_e}Cumڑ[2>=S6N{9:撳Y bK|YL.a7lH'P{YAx1`~]7EzY5`~l8h a9 rKg @_{PGB5:QC:!-,)x!EPf%2YDEȌ*"]d,,H:R`+~} 豀}8>یQac|Ct[;5t Hؽ=rqHZB { a6q~nRܒa[Nx̚hn~rߪ~@arq0s W)^^PvՏW. buL O M6~?2!ࣳ*~Qu- gԅ.̪[+ğ\>YG%;3\m4QErL76 "!>.?%ZBqx#'b d.'kOW'@_>?/ ?x]Ls:(6gw"dN?r ;p/B7-zP((6`]3,\A{^&)*}B!6o0.e+lY+}07Kᦰ v;3uѣMAu>[jKM4М/U Z;v2Ÿ)q2ņCFKk{5+h{~QPWqMزОEQa).tc.[Ltq[q'+|/zL2:Fқ$P/3 6CP)JzTo(q=O"p'?zw}J Ϲdw¼*cɮ<cZk)U]Uq; -*ԁ8^i9l}5믹N܏S mWgq~b6me  !Ijx!_y>Ϥ }!!}s1d-Yy8tOEV* A`yy ]6uAaS;

    3>Ҡ2Lw67e];T| s?9݌4T)5B]+5"IG6ήA~F^^G4=YIVxUhPe'a {/O`G٤tGAާt-xX}_vbq35mnQ0Ў7a<GV`8!ǘY :ۧzO`nԽ, , n٥iJVxח ]=a ȩ~8/{N5D"|)`Z6D3֛Tw䫛V\W\^|`pXW)Vפ&,}$0cE'A9 8C T֣4P#Bnzz0tel t %;&!PC}*G#o. h=ҬV՘;xZkusc^Г5߫n5c7}P>'Yp{k@NNǸ01?+@a]+/:{2} kx(hd>3#P[nQ}F 3H0i k}Vx*SÁt\~>1`/;,O0*|{(9ws 2yǂՉ7}b(WCXaWe!?i9qZֈ./v=lӧօ-O1S &K] 4*P$ŇW7\n*~h(!dK'Yl ||Gi}6w~*1,i3Q~#1Q/N? ;Hz b+S0Vp?w__g{0lB6[L=&^K#~_.up!MLGzD3[ݛctNTdKVݽc)бi=%o8 ,}]}kt6򿈃&O6C2-'|=Oe5bxiHXNE樦)zͪDL$Nt\-q !ʕ9:=XW7_|R< f)p@ T_PMꞆ^]1@~w ݧOFv(0 Q$*PMf)#b4,߫L-cSU[~"5AOaH>C.IL]J߱"p7uDUKDyQRn`>8ћZ|vׄX@ק6_6ȏ|Ըߟі!R07 g$mDz_P].fVW²3+ԵyǰU h=xވi_J[. NGEy{5|}( wlq~ ^|ܻewڻ:y,piB>b ,m+8ם_6fŹ/j'o2~ ,!2̦ȴX|ʸ߿;ȿ] t6<O[sɃIv\&fG36 `s|s{4T%m ML9W (-ا'St )Wv>y ZF#n]C9?4|:˄=papMʟ p1MRxro|^Vܬ­b 7їkʚt/7Ծ 0K~0KdH2&Ů55yuZj̧| k[d\هO~O /g<(LAubȊZGKO эLy!38C" J, *ׁ޻1L%v }z |4$ڃXH_ R¼}`g9 ݕkkA8NNLP0{_V'SZ5ӱ OvkkҶ&ؙ86D`֪h7RrK0w; w-ˋ.3A6ZDgw~ZS/eO3I̿=ӽUǩs4ZҌ!it}9z.wv^!yU.7K(~M\ }LE3-^asal鹣̓۳xn/IP0:W7\Vna1 :}t9T26Ċxb7!QטX&ra42w]zVF(SUSO)2͡\F ͭ!^nfiipN%%0G@IDATS@gV`\Pji(u'6J2;3B>/0^>%Jrۡ_tؚPEA(nYx}j=:=3']hg,y"EgD_\M+2)DFdy 77[lgtZYv]fh .57ee+z;9S 7827f)QM11%LZ=G^,_"_g5| j 2Dw=o߲Y3)iYQ)hp~-䂱F\Ϥb>˶hzøN͌JXW_[Qc#XeWi'`ه닁UJY5ه7znQl}lkfj}`;y@}D3Q4MšWD՝,H*ˊ@Ӛ'꾠 K+ݙ<|a.3hZ[͂.,07D濠4OddE[̠ZCZRKFZh{\ICjjc|8rV栕˧ XOvqxS=|}1}8(jj: 8"π0K"qmEWr'sȎ&y8-_(d;P'?|yo= yۀ/.2~$ sen}-pH;s;*K)%U|3Ak@WM^e՜Uj0Xd+~96`es ь SÂ&&-9Yw/:\-@q&0imC%Y;wʅ:E 2D+H,"z2V/+91G*UvX5[GXiל}zί6ŏfC`&_Z^W/|>Y R=#E [7f< [SvL}Kso"?nQJ+O|mڷ,%[d1`/Qwx%OK]'@I&7p\YbuX2*o+;78w1~OK_}|g+bU*;{ڶuhY@}t}oѮ ђ5˹P)~X mPrۿ?H?OL/^ ~ڍk ,:ލj7'[ؒNvw:c?"$?ke%zS;E횠`#2xIۀ\ WN$D/ElL{M[_xP<_ua1KO;ѻ3ŕe `B_`b\z:/҃ F@fro3{=nᄃCDu hfO Tvm_ΚLʠ oF)h~FLȝKIB ]gA0wQTTmX^`*3>|^*V s2PN x&R3k}2W2.43NHhoK3$<~ {3,+tVS{x\x֥6 6jD͂;V`)fqm[a@8i_;TZ 峻q73cM+g \0igL?km?X6ŊmȬٵ5DA# 1.67\_"YM2V}tUϲt1 Gәr(Z7+rZwhgr }kxϩ6`wڮ0G\2s}kH8J[_cb̚x2o!KHW~mc|vY*DDW&(eŸdW5E@'61>23c@㾖v6>64CArЩp/q{?hRj7`8tԬq>SU7A>0}73q]&ץ0 ,9g{ub%M?pTN7?:QXPY]嵹(|6o,y bOyo/y2$&*JQPi#E\tty)s,\Tk=m[G5 '^ߌpw,$/Ϋ r\] R->ד~ }-qEѨ3HXv:D+5???h yp0瀮>(N.h|HlJF T4 m@p:*؅ƪuD vNry $>"]붧ʒM.ԟ;5 ޠAT^w~+~Ϥ9T@U+QSSX0( 3zC' A-\|q0GKd \N 3r-9)zJRo`ŷJ^}':}YefE'Cy|O'=UL_f{?ya12`vIvb;ՠYto71k4 nJ:xQ|ďG]O3qƅ֕6mu3}Qt0n$?$i΢/gcRL{(&8u'i_Gg]GX\_$--331ɂ|9|̸7>Z_ʙ_J!Vab2uϋFԺM|y: ?9ɊCI5k }Y@V=|Kb>/z^Y] dρ~ `J`#z^tl`OhG_yD٠rMBI)im:gcπ$Vq;ur-wsw#Snп"a1qVTUur m'.{Э^iS!;>}~b ͊/j0啕8rqEqr?<pEyApgUŅZ(V;GmT㗦@~KÊo%έs">izxS{*hRcz2֓( stQLi72'-q=nbv}88>2S2YwM{;ϝsnO榦^dLyt] A,?=(d옻.g ̎dIEgwChm!|yŝ@D`ux.n_«jJt(~ӫ s6??}0w$*d)aJDv4W`F4 'ԷE.jmFZr]  )$a)JBW|DG4 /~RȡaƐ\6;QU_#_}Es<)"QF#đT '(REaJW ݍL`(jJq>{1@._#ы$ rkIx|:_(<"ׁWD&.8s ( R?ZIIlTr:6x RSUJVu05l>0;z"y&1x"rv2O89s p]jfBb["cA OIt>˳@{:B~zJx$P09f-j"t1IfƤ Fi;5S_kV1(/A> -\p!C۟h(Y`&OkB,H5 2ெ\ȊfftR]z^ $Gr$pYgeE}cͶLݓkZ#hZj a@>4`c\v:[͛Kq߁jSv(Wpj O ψ.'?6t株.ؐ_&j 4 hQ}d *O&zWŞ:߸ (>1NRԵׇC$ Ty8<<8Ρсf>I@{x'8kw9P*0RzL/1$~Zdu0$0 ,Z=6s4*q&։l&}Q9Ft9 L[{w@70d =dwcyctdj0.QT.G3UkZC#~ *es!.߯wv{˙?T`$ɮ5x.nR Z$6.v5n?o&PKOr 'XCb$eMY%&"*z3t̊rpGGD.R"ZփJnU~'M>ҳ֖=Gv'kVbHI+)lg Ÿ:cnoc?e@5_Z4Ѯfjb(W]c[<|i, aFPu8aDl/-Į nD/^?eax} f/Ok:4TRH= y$d7wJ03t4OG5h^)|IChJLS`fUc`ÊZc* IZ L3.@^J/fHl퍌\c+lo\eٹL͚Y [x (tam,ڝŊt x/<1tZ3r2vXWרAj,~>y-u`˞sw/c=Bݹns&AS{TO2ޣЪ>\8$B|]sy1xf<}?^cAH 'eiCgвmtI+?wM,kn끶;> E`YfA ՈK%܎ ͊RI,8',m2gz/r֕!UÌHqE#6ZhM#f|1E}C5|ov5ЯCc^&7 2֪5𓗔p^ݎ ]x&FFz]&U/0{Fs b  VۺcKxUc<8}bݐn u-ŊXnޓfv9=LrGyqXӂ 0~g!?/s@;=ӟw7 ]/>4ׄUs+L % .ފ4q{hyVYI_He"k"d=X~xKq?Luv;̷v[ɌTd튅6h`9Y/f;DI -T}G/Vc^Wʲ&WZ :,u*W3](ҷmA3c*eߨbMnFʓ _8;@;'ݓ^Y=]8/Ґ|$W^ ު9JI;:y}[a4Yx͘s]/2{9[MECp"c<}(!A \Cyr;eZ*_|a0asq&zJE҃ZEK!iT*O!a*bK׃>ܒMET5?Doa@Z `oVlß _ѐҀ{4h@lm%Aul1\^ ;]QWbA0 ŖO)QZL& uIrP@-!x92>pq ) &lWNXDk0$Aph?`M54h͚\ w)i~8 vsnb&Лeg `2@N["zA b{&Yp+d_o~cЎtis2Vd)fWW? ~+Sr[19ۑnJ}[3huO/g~ܲ@s= '||5dY55^=  ^u.hU5 r~<({FnX, g?8,c :|Ψs|_v24Kb G `#cs1Nj&uߣ\| uX`,ٟ).M5Tȗw5!|8 4tF/9 )&A-ƥ6x?ks[Ћ`):ƙ  6;Cbw XWÍՆc6֨`s=k ٰu:S@Z"VbZ|^4U$҉\c\2>cW(۔n'M.+rt62A!S@^o砠5G蝁 b5tq )/If*ٰE=Ovz1\9ٖzK@;C5=Zx7|9H Z2MpL'>Q?Ŀq /O[)8my?ss>ezL/1N޳KZ]3PmMPl_?[RNU|^g:}glYJ4[Ke[dmb8[rξ ?>kǏV$q(Rtb7{^,VK/$nŇ(Gs5c4GA\i!y?7]/ CXn ERœmJ:լAͬu '6nC8GLF#cnZ6ˑ>]beC>H4E;]E<;v&G=05AGHv\d)_ kؿ?p D6M03Z zq`QC~Ƽگp*NWϥр_4"J@Ԭ)ڱ걧UX 'N'RwĊD k/NJ.@;+%lKA 2Ϯ '= Ôk4"Z`E?!sKfEf0Ǚin+7Zp,0T% ޜ@x?aU!F_\ȊZbL1'z赈6E@Lr8q  f|zZ/.@ PC,G&̠9/2.ϴ/ӃPkvQlq1|"Fbùs@\fB(0!1#>Lgsr "? |x,dDl$:o <jT1 S?>{ } m1Md!q-Y>}"b\0`Em3 3M;zfk婝ۯI,M7}A;ykd 9F89Ǭ(N ]M!߯&xKÁ@=P-2h'-$4yh-z HZp{5M\:~]N@o ttf6c6 4f H!<"'UEMkƲc{(C3Fx͒vyx|n8eڭSt21(mcc; _|Z*W ~d|}]lCJwyyc?xw.Jvwb~'&aǿ< FsŲ> lsHULGM;ADSpqhz@:`鱔RfD{eGV"9jY֕.@l[=IJ--'Wm&9=SÉ~ȫvd݂ᐗã.$BA7{A{q#|@!/k࿻WF|uYs,\˂_h|Yߒ=Kx-ř]Da(fhS u;Cv~rv9Ð#t 4ןH0.0,' DXfwXqpYJ~OktO.*'S gGc h'trEg.b8[TMI}K̭7PTOsՋ@3  V`hFM#yC )̚xb>|=P bG_c5ԁu+('16A se'rYnUHc2 FI,rԾX@Rv.zv qQ(zM$~=c3gP,^vU0hu n!6 q7Qo@2|m@ON\\_)kxiMPCA;ި4Ѕkպ,XsO ڝ#ʝ@$1}-"^s'JlHddz]6\{+̶r0(CwHn澷UqZu >,qwI}ju4= -?:S@2t[}R, Ê1V܏c{ᅲ~q?Je}gS:^Z LB-MH^$x,۵9wjy܏;y@1 z%@."<_W&0P|+ņ}6̫`4Er=%'zb~?Tꄐ*\h6&iO5e7&dKcؠ<ȧm A%5g~k\ vQ̀f ^dbP6o]JBBN{-F~cb8{#ㅜf{+;( kUQGA6D9,@~-c).'j^q?w2}qWwx/ Nsq! FꞬMfdTkw.􋃑ȒnzcOI~|ZRVQʊbcKo!kbJ ,dP{HmKh~ (Vסo=#d:T(O_^y_^Ԁ9$#:KX78x;,Ҍ(PtK&!W-ϩC-3g$T脛biu?}v,5@ьwV$?P\]ӄEc ؾN?澩km,Pl;qUٌ"DΩF0OZ#Gc7&v;@'t?YAwSA74+'@M `ZAE[| $•@ L7)8hLxف1&O[Xjj~oHݝW_w4Aě&ȟ (B&ɱmRG8M1B\ZlfHbf[@Bōb[Jy3x("HZ<(S&vU.7\/b1`о,Z1&H; ZOI~bSj3+I `J~ \sYxj(0qG a@_&YAu$]>O/*@~Q]`|Ey(O33NOw h:E@LZ]ks-o_o+l@niξx& z*N(_)vz0V;.03ZנvԧI9 \8~Ud٩$w+64t_j]}o;` bV,\W,wc8ϐY(. ޣE'f7kXkkpH9=,w&Ϫ@QB d 1,XC9x8(3 wb;[ƣCKB 7[2m<h7`dꕹ< =V@x]ghTDs&׻ig?kڋ% K¯O4yleش Xl,c+? t*PKqς +\D\gv:wo{>$_)*1d&|rFjg_Y`W>K5o`)יbR~dɚnR3;z]O;2[Kf`.^FoW5C9yӰ716M(ᱲdq'i;'xsKF%4@dMccޝA85ݓ/|p=rģ];}$W@}ٗڠjp )Ri\t}S#EGgn˽r }s@9 I3'!C|jyJK>HYkJ[:jriDPt$V!Gg~4CF0ƨF": E΋<:a0񔝹ΏBί+3Zi=BM1ht#bg `l=9̠0^Z=  2 8]V(]h? }ib8{'F:M^@Pf+ Uo;p0 ]ʈǶ?Shcw_<)FǍ"H"2R%͙u>Z?>ٻ!*X( AQX vD{W Ea XQ+Cz%i|ߝ߻y͛c`w}݀l\$.ae8q=^Rn nϵ)x} 0# z ,&;{@xے-\`@]7\`*wx꫰]x`|:Z!lp| o>(}:Y.3CY|. ߕy#<f&n(_N5$2'_>gmps çp:} oU;t+~x> B9T'c>:syg3bMui}-as"|c8?28y}Jp0ߛΫD&)h"{#Lҋ&|6y*;~{;~f-7F穞):zLA2 uCR2hYRA2RO_M֞=J/7f9O=ʗkS0#&х.]s~К~0Zr1#3n8|*s^ Cq ΀nPZ=SCCsJ%:'29t\=GCO, }aT{~}rY$r+47sZPoѱ^ .G"*̶ jYUmA(X~E=Q7#,a+;/ Ȃ7s3?G eQO}D!#{)A2ьLk q!nkq_/Ϲ,`u!b9 Uxvus׫2HN!6+E~Kgc1M8(즧r8,5waj])L>!8T"Y]'sU鵞"(Rn^%Spk\y=ۛ}4#{aL/ gaM ,=%N?q+=ʛglZ>-yDA)*>y B+oXg 7EPqd9ן;vxNŗy;*BWfѽ6ᄉ^ݜڊ* ~!!E.T* =EA&kqӝ7}͌Y&]A/ n)=!֛n(}mDڭ$=S4ݵ'WȟA+2M {>r=Wʉ `L1$v=FT 6򰩇 E(NGFV> SUl59Ty-y7Џ%S0#ܩy@ɀҮe S |!6"]`Fǽ9J(`@F4Pw Wќ}͈mW8^}ǡSx7ТcZ#oAׇc  +> -^3l>?unuЭ>h,2)RWy߷BVCi\ 4Iޢn\5I}Ozw |PK8l<DZBFq9| Oo)lf:er^vPS ׆ VrJE.SXތ6Ug0/ӛ(s0LVkrrjSc}Lf9{<k"hka>[􏷇`e٥wkk-+r0c0 ITп9+i :H/v)>`` 9ai*=#momM ALj~E_WzCiMX].B PP/ aNa u2^,􏀅T~`.ezn`e}-Ԣe,p/aT^hS7/M* ?uV9btzѼ y^vSe /-h/B2H{L5  ;.9~v<3pg +=ވṳ8Eo^XCod(/*lP ])1@?oEbURqc0.ErsJL;gc~@}\wh o_-~.MYR6ݯa ´aq/Abޟ,vC M\ڍ 0GgM[I!#J7?L;at1C0S<.3,XfJ1 /+ĵ D|`P$x`~6 Z{M}Ϣ ~rg e{ZQ$oC{oX=A-,ms`F[~#֫G}Y(G7Fh<"X ,@hP5_i`.V׻(JFЩK37ݔ7lp375 Ȍdho*y(1St@icFf? 9vAן4 F16I-zcdTU(f{d>Gy%̔ c1dSLM=|̜r2Lά`\pg԰keҞ,h"g^]4Ӟva15Q~m9=ti>AcRk 2!܏٪QÁ@E5ȣ r \GÌO|@WʱS>Ԟ8sj)Vs)LP\3m> Ok)TD- V-'620`FπQ]C<_RCS݋4XqQϻ^}&YZ .Zr7@GLSm׭"}7\ڍ@R˂QxnǸJlp0QLFqkXfDV`XH-(8>^z$L84\m#RhC2AwH *Lvaatkh*qS}I0J5+kB3fF쌁'ٸv\皭?mt(VԇRϕݼbl*q>߭AËQ,}˿YͤWnb F``WtL{W0|` NlNTeZ x08PBNCi~kQ}?vvşG9h_:[BkY_.! Ij|Ka\)pI;X]˹ H)gUʙHaL.Kؗj ڂǶ%,.A*b\z/ъ?\~嬢qc2hF؊5.!_\V, '#&n͸ӵ0Zv+\j\U?9 Rg;7YL @b,F`B7(\fָoVsNj&zs_bf2ǻY M""¨"8 Φ^&gwGF4kJ6燽KjY "] 㢧S3 *?[|_*vkC_hi-hTU4ZJh>@`@e L&''"㖹V6-:rv/:=D: >\| E_Lwel2`h X@#`lv5 ,Z|(=pi߾xlv;x}t|尢OP B}c#_bgaE|/EJZ#UO-ۏ;{xƬaDk11xcRV{0m7u4 5{-c}pOE\PT^@YwDǁ>: GQL&DS^Qeಾ"x)]XqV̋ txCIcj>4l zK#Oö\' p0q:-F_+Y-蝧Dr./7'b}r8Y/:*hr/C%C Wk">旡.Spt&o|;#h}\;{VN#&%b&e\(e"~c@;ꢖCT 1j3EtF0\p9N5y:0Eg%+(pF20u37~<Q̈QI7_۠Y䧦_D_֟ L~kkwT=@S?[dڷ:o1U׿_/|_>uln@ 潡@,Z _ ^̶6$J9dD pQ9<ɏuaƅܸkSm88v"ѳCYqljx20.ˀe3` 02wQ9HɳY؆b,v<~OdLB`[ 8׉p&ATtyZ%oA {\ p!6e_ձSc 8T{cWo6pXгPY JaX}=k XEq~.VV9h"Ku`y/ݟz V j~ǛS]!{4}(?m jӕZlD=u*ؓ&`2U2|:Rɷ2yFz*~p8Z)0cA3ҏ|JU@|ˀe`Wcw5vl}-7 hhh'fz|bfIӿf7k? z,;g{ڬ/6s`77ӯrO8 ȫ}!`\JU;ןyGˀe2` X~_6J3P#.{)*#+KHpee2` Xvw?14xm4LT?uT+x; XKV˿BEI Lsm gA0 D?NNW_ "a}S^65{~t #~bOg6~ ޯ0ݔug;B,` XnW'xu\3ҏ+U> Kettӱn ,Yn2kj?)Ά|p( ^(+CX?:׀GVh3rX"6bQפk~(.p@r1sϤ3t`[, A@C8`#3 &HgӞ(2` X,Fosos襱g5{F&ͩ"s0JQVV҆tVrx|rWn_8k_-bDuk3 1\_.IiYjwpbn<ǻwܖ7e ߐ j }We`Wf;,txCM'{12'/2?}-$ti9<(q xar~FiZJk`! b/Ѹ yL}Ng"[pye2` X~3ȋ{v< Rn СꊧMi[@`g%PZ t, yq1} p + 仵3qyR\Gi\ժcл`Ms%Em vE=X,ǹ6-ޕcdşYVzp?`2l|1!*Ԍ>6_d>$9w65y5ȹ?$2(Xh WQ2`-c/xx@Ʒ߰fs幜<xdC `pB9-=hyⒶN> _.V~A]kCfDD2{ X,@cÎV9W^TOǞsl&~VzeHqlb:(epqEA|E|UI[OE|3mx-,YHw]tʺB5T3zt*{5v.ͅb;WACS;u}17K9߾c<$a` |}Ab14D=j4hD( E8Qt`Gp.9 x7ÁeânOmt xx8pۈ9^);Txw)t7g5lxb[hЇjY$0Vt:w F2SX,ˀe`b@f`S^r=:3?-7?x0u$ aJOrïd?B%[ ~7$DyYV|D_7r]ȳ~<0&~D7wd Ll3l X0{׵ !]9ϝ54仗, (.(%3 -*u|Sr+ Ek:(/EFzqpL%) (wЇgSH }E_: ,,ttDX|E/D/4HϥKYGW=v Ne.cRy w_rp_,@c?Bie/P7軫(Fo7,+[T;W# D əKhf'S#F,=kS?yލbVoX-7Db ?7=Vx5|53|]Q4>,'3@t)F72`s﹯n2И0u&v՜&r=W$oQ!Vёr_k%_WXer8w2~_oF<)é:ZR oB^~EQxTi_U8}1Ks`7@ >22` X,lSi o|j^6Έljھ@ޗ\$2]z ]@?p DwjQY[}GglF:א_}䟈ya :p7oЫ׻ \g]z,X,nl X3#Ȧ-a4^G 9D_ c vb|zB% K#;jU#=J8䫞Dr\"9n :I X#H}^yJo}{AS & @f{@HRLjʤX X,?ɀV챪F8?㟧uFz`hO-+?Shq.Mۀm:}B*{,Ԥ)&M䟋!4EpJFbz93uc ] F?uA O.zuT/}E)Q}؄rSG6CgnĊ_M-xˀe2` /="9~h,3I~OBo <ˡUFPe~8 v`lfGDJȀFe$OL$30vo{^AtjqK /y|џbA"Gz9sy -+8}`e2`h54 F-c.Mܝ K'U&攨CB.i+ Pl.w}g1^8R]HWBs.Fev|o"vd$zngːVZ ~7x]ia:'TQLk!us~Du\[_"Rz?D9yWF7kكe2` Xm_V]3͞i\4qM0m-ˀe`b3ǟߜUdgRhCד=dȍ8_G*È NYIKrlAм4幍r0pUaYPI&W6Gn O97Ebg!3vld^I{(Fmd1@ҤY X,=_{<7@ 0@g>1LqWHm.VPlZYO)iP;{/Q<Y~NkIcbXsG+_Ǒ| }?os0o!zQʐ6X,΀5ulIƀQimŢC%t3>X6WM5<*Of;n[xmdR}.FNx\p1Y9~dcdZJyU0S[}#ߌa@&'s6c@+ S ǬJaIx `ģ)PBGˀe2``%9J )G+F1_W@$WCE6{mTN=yNA?fd-_cNxeW ;d|Y*ޔ0|{q(7c (F)BWe Z X,g @ Y5~1v@amYwɄ0l}:}}H |q߂$x(:/xzaH#&ų C(OGgc` ?ZD"`Wn V *-6$z,!-UF,nɀn?:#%_x-?r30Bn0d"UR6(2KgG_w7|G_p*p ϓSlP.<2\S|}$>bə4qRu'y0CE9ak~jS,_eaW,F `*ysz_), qge`-< vyϦ1{BxT^ tNݻXn WѸ̖7&HK?8O }=K9 m<,/&@}űA<kUpICj0ӁIl0gE$`Mܢe2` Z posqtG_3m?׹.VR 6 vFQmŋ8,fx \SqT>()>cps?p#r5+gcPGx~]/i~T `| T /NԻs"&,Z,g h$ qX-}3/"EsX;z x䶣#C"IC@ w(gKJaSqXԡ6؁>50B1., O,a^ДZ"n,E{5j=/ȁ6X,ɀQusIޤ0{P\zT60j3ƓoK0HӺ,6E(>{[⏋Nlj#Ǝ6$R|4%L=;t6gAa]-ko1icu0'j t *s+,g9>%@EǢ1r"n5Mt_#:o)HEZ,K1#)P`*~@;86 e2` Y,B͙gvwan %dUq_d!0LQլQT1]R~"2ɔ4_겸)s5F S1Q~@X+;],<$ch X X\{k@#gȏ]ŵFQfn5H>찓=ŏ(߿˜~JyC뫗 CPE܊?%!¡(Dt%!gk"~|:!x ÀX?+Dt+&TGGD>MS3[Y#@~>=f2?6" nFD d`b-ˀefmny$c>VȽZOMP~$`+)NjxmJc@ Ud$ܛVMռ p/3'_KKoUb@JŪ9!B&d=P0m~jS,ko1ic`řV3Ŝzc|x$ 0^#`0@0-1`6?徍U Ѳ_ѻ:wsT20S#A~ԼI^Th z 狱 䧨MҏeB DAp uk#\ ;N7#32` } ❃1vZG8:Bgh `! Tq 0 hoE"5<6ŭNcB~ `͘tiq/2Lx5< x.|7'=t4{]3j*:7=A~c 9L({g` XVo>2K0.\istg[.\<i4oػJR jp&+w¬w󀂺c$F~/ą%bQ*{u[s^ nG q7fx7sɥ Mc60(p܋ κY?wT oe2` رڇ nu;ήhLgח&ί/0Lj`% }Ӝ6o}\OǥvpO3 'fI7kdMs'^*aKđ $/=i3QN8fe2`h X@#l,6iK1Y~ǵtl5Rã EKekh-$%/u 0fa,!@ghY\[{!8")rhߛNQy$xd ވY#v\#n\ˀe2`1i[վ\z\,zPr # c([>s%ХSEw_O2A# 59bIF{%_Umޥ&c{.vP+!\OJ{\ y?CO(sfuʀ.=W$` Xx> [?CsQlZ*!K9^|D,7,<<\Ql5WX)Auz_QL@~F;!HM]5x|~J,( @8'ϙEY.B3ш?F$t@)X,$:* }M0b[0=9; #!hg*uXa#$٨e2`l(n€X3(2ʓfuԒSOtx 7oCn*nvxԝ^B GjP"([Jjx6W*ų5?'ɇʳ hMNa(whIF{xDh( yyZIǽP=_1*hT6GM`@iÍ\ۣe2`h X@l%,F7*X#;1dS{cI$!v(G˧>?6]:(~0m_Hy./a8x)W BćP4[S+y$q0S,r~o_ge2`ؓ0#;̴lDs] κhCRl4#Rpu:j˩K:9=H2)] sUbJv)Bn?\"F;VzA[}Y_j_丘KGll X, GvۺZ,xA"gUy,vG\ h+S,EEY}\yA%쾙0ӗf#}/NijpZU1j9DrB.f3<A|2[ž kC)7\SX#ZM0 TEih1pY~Gh> @s ˀe`wgaV^ҏ+dW|mP^W חQ=XC*.9c׌MKq3y}Z7tH\q\A/`8CM! ~n3˅X,'?Oa &DQ@)($,Ljcx? Gqͱ X,4- ueX v@IDAT Q1,mM*57? ڶ%ebRȍa-M9 J&/vb5tP##FUl`]\|Tr|,@2:/ ] k,bi"@B`FjL llˀe`eagZ7ǝѴPl+1V:uG 0 -(%s0:f:p6iۀY 0ˀytg[hHE1L$(C?SF*8e(__!A>wa0@GJ9̃ K6X,&fdGV8jб!8cdwϽ [3glJjBJxs~+h\C⧻Ɂ?GP$'d&ߋ(o>8wyg/yU赴VV)bMg6`T҅!8pQsl X,/ZOHVe7 ?Ov]?r;:XU{J;XElz QeA+`,ɌW(eUh_SͣGṠ}cBS)> n>M5<(E qVnX8$/ F)5x> ^Ăe2`ؕ`ˀe2o21s;3$$N=M"ֹlGQ yk @vbDqb&-1sB3)w?#:k݉u+P~Xw9@H(]<6ܹXLM|^N皾rŌ8BP-R,j=9DS簪%L U37ɷh X+~'S{]?> skQЇvj< ؆nPE:*w&ԬVٔVz }%ə.FxvC j&qݹ]P'oWC E\.G)6‰ ˀe`wb;}ˀeb +!ޢLgedcn~s5'j#F柦M۟wNTqC"I8&p ghY4*ܠ#BBmqkh^Y3'QǶ-V?~LAqy&'gAWÉ`GyQǪڳwCPWpXlCf$ =50 6X,j2QMAV9L⍑V=B{%8*v3bSt 0fomxl'jb`2`:"˨'RVk}* RDyUfUI `CbNKT01{f Xv5L2`h CuiW٤hLΊz*Ux3@ɗP)Up>MiћۜꍋKp( ˷—cōGE$.'WAoo1DvDPyb,~Lu$;BXqu'aR,X,]NWW1dF5SJy=B%K*KEE<g X2[y‚+mi}!`}n<0b ZА'ӵ5ǣ}X@žt3}w!Z[8c yc蟮ˀe2[1` i_2K0`Z,t"tySw ܧs|pbӟ֎eN'" Ѡ(gU,XJ@irz^qSX@r9qr=ZKϦC}L.p?8v{;9 pm乭zB;cĞ[,FȀiʇw?1MNW~TaX aS` +F+e"Gy\9]Cl ؁sGđ}J~^x/SR:@2ָKP-|AL;#{W ˀe`aa}Mˀea8iDكU[K,9xl)ed*bRcz`&|忒uVEn=Jِq ~ '&!?%bT8W)S"~-ń(d] MĘ$5jU;cÁ ˀe`aՎL[=vA[wQg]XrCKˀ3XI%`HCM}䆭ћY#~}[0". *Kwh/@|Qt' [[ 'z y\SqQ9nˀe21 ˀel{BA4)Q&DZ٬;a? -}@-nRob=|[]]0y5}QRK(r_*…謌|1>D`oy AU&*6rNHVHP{+เ] +4lT^<.Ů yke.tZ 8cXop$=:1*߇6:g;{xE L_0|9h Xv?`LY1а_QL3es^]~gǍb+:XɀQ vɴ Qn`ef**cM4Ne3)}>0`i'ݔ)Y!Y$\#T7EX}ͻsTTd(Q@P1P$9a@RD' 9[=-+O}>*~ۧoUu:Թu"=۷i:& ]OeMނka<5!^o9e=T/t܅@?ՌmutPdAH,zI_9"u6s>16@w x -#'QI3 Qa9췉5?^}$7C@%EaؑZah8Ut<Ca(k}MeGc¿9 d^ !?-tv]KbűF*QvL/b?eȎjz h4̀f`[\[qT..@!7w;hH!PCVSv!=[¢ zCZ*dJp%LYgcQV, `|z]ԣ zVM`>ФIۗl\c08݀ꩆk5 C*Wn<.r# nGV;{[Q/0` d|[o|^MV%,A& +'!?ޯBjx?qJ{xQES 86G'үUSZ|M@wd_k< h2`',abJV-G{9#,CT\ 7GO]&:aA,uϪR)SWZ&ڡ6' FV"1SFl;!bj h4_ck:_3 ؎fY֛1rK/eەἕ1ɢՌ$!hyk'pr)pqϸgCBq lPna/ޗ:g!DЅ/c6vBuv!&b< ,=7c)3=jr3:[_j:0DsH@` pLɍr{(4U sI32`l!l_ݞrc b6P ܭ^$ V4bUt\wt0@{KECia蟋}Z$fo@4J@UopQ|F`߄cɓr-.H,Ueȷ' a  7&yz]38c{L=pL,׳ZR9]s?8^ z+w 2K/F@qxJV9,S # _VqQy{Yx;hE<&5eZI }F,n1{N>,+#ƪqe<&K7tދZGР h~Mztf@3p3 c!BcXJ˜s)'B昲֏-{MإY5B\[}߉q m*Z6GO(OM~Rv+}VnM=b`,. ,w ? G {}T=1d}XHv_u~"j]2ⴃ/5Ԏ^ P٬[*WK+Jy̾rDMy1d4yj;}7!8E>?_益z]3 h~'; 5n]9qY /XEbFn`0ܫp.0?c~^^*2f@3f{zC̀f@3p3g7w)k,Q~^ਦ, Y=od5`Ϋ\Bd-'N¤~-}瞱\ђhEGllO;·GDSU7W[T`n`;Y3xlv0K̀f8ޖ;NKF,yva !<# (y_!*DQTM@QGnJ2sP<j"jb7Ft&D?R cR, bf펣qS)}irVGu7ԣ3{Qd41v$8"bq5,8(hG CNTd #rpr@'|XP 2piN8N,9`Eo"8̳arww]0 &}liX Ty#^|R}:{zTY\9腨q7;Dm20S/SvE%JFqZ%qK21ӕ{_cpreϲ^h4_ˀv|i4'$7z_NW#UϚxP ݞg蘯߿!mѷ>=L "2? ?(g̾' y^ωeߡ3x}BJjRB\6πQwmvoruPÄo$(۾bd= ̀ؑ3sK[ZV?u 9BOrgew` 3N9:X֦ 2"J ;}pEkJ=z0="`mof@3p3` 5Wc79cY7#<\~:#\ƔBqŏƠsI"Z}B|<A~4+NA(XD=AeAD%V$ϑ~bQ. neXlE27`A|7/ J:^of:[3 h*bZG30`7h 鳻~7e͈`kr?PW;8Z& ŕY$z#|yk#$\EA]3,qrEmgi7PJ \!H|tCib @\D v$ԦJȧɄB7C2^`k=[(ZǢJQ,8a}'̂4v/2'8C1I`cz1?|?uJaQ@ 75ȼ8ejGT?)?8  0/}}>a?D /5yU҃+*tÙf@3p3`7TOԧ h ؎W.'sxaH9tε0Q]яR6f}1k++=Z4W1%, iky/ /@_ne od {P<:H8ZF+ V*Ndu#],tT!uvvd=ƙt L TmmٹڥVt CX P+&+/eʑ\S,pg7֢SPD*,61^7 l6-79V]͆OzsޗX~[uxv\ЅĈ0AǸf@3p2'OO\38AVFΏ%e8|5MYѷ\-p m=5>N5БT$RZcYh*[+wW(DLiS]tIBeKz'9E[CThˡ&vQ3%3(/1zFuFy,9 *sǿ+c!6AD@ ?:iN}['6 z,pn2 فmmn~~n0b0*J8r:l&9ԃu-)m?k5.;50(WPےRz_#P 7 8o1{S1Ǯ⧙.Rвdu=5GA2-W4f@3 hI hN8l9MG? 0gFf,ڋψscu@̓c} zǗ_zحă}ƒ>3#4}z s!W 3@=%86/q1wd C4 /plY#j"@F]1Dko~#kiپ1Y!+YL~R;@8L!GcZ١Z%էw-|{*2$GE7:z>cǀCxz.Wb8h>"n'p5 h4'9p5%OڹB԰nֿB: )ao ʗI5g&>A~wZ/{3ʰyR&BS~X\:8N9 Yѝ nwX*v[J?wз|9RH/`:$&Lt6I ",X&GDEH dK(vrb>8^# 8X^jXlql;ZYV$KI8۾'1i~qVD]?&XF^VjUOiH˥ĜALJV 9ӕf{ЃE 8UMSD*sv^^80;a*R7;<<|DyxqE& k#fL ;|\7Ca7z_^h4IȀv?>èfDcvy!4',Y\T5]'zAOݔh6+`QlTRٚBK™;QU4jNW Sy)CO$&|7%M ,~XS_' ؈zmyQ"9ɂf2z6YLEHhp p|TЎU`?ydΰh:0Fų.$T_ LR`!.O%grMhLÏ~WG8" 9 1@7-. zcre/E\~R{EbOR /N0xblnýHtvSQʍ #r/ojY:Fω ž#o}ڏF6quu,݊)!uh8 q-N!XcYq RS:ic׫zp}?v$"]piBi.S0B7m. ~X '߂=Y ? aҠksxb{v6˨_0\y7'g44C]S'<QyZcnpQOc?/fWWQ%g̗,#O\:V1Ki4ߋ{j4C['fUj!/fZ:?冻q!OQ9U]zYׇ8b:ʎy%\^fWZlr97|fYOO5C׋x\QA尧Ⱥ+Q VrLB:~?ת~rfAϡ>Ǡ.A̢!SJ'gkȿƨiP# "3TDB,B304!lPI3` *<}‰^(eVj!fD ]^@*]4QP 覸F8J7 @5|#sKpO__'TxcoXqP$uV>o1l) 8̕F?|e^δ C-;3m̀f@3wd@;&̀fo@pTnh"Fn{c|q>_F Ȁ[?ƨV" ja4Q[S&W¿ oE?f~#gL ΢,OJf!C,k]/{,]"Sy#ڎXghMʦ2,ccI*zŀt|O*uhqi_' hq h?' $ TiGw681Y" EUDqU1Nje[q0Y%FD׊yA ]> 6z oCy||*=jjX8*<܇y倫IԂ ΢dfbQV"6uC~U@ YvџVv(7B:7§;ͦ/ \zXDCon~S1Z)81Pz$P0@|^tv#y3x@\1J Z[b⦘IOӢxdD.` LYIU'Յ\u 9d9`HKv t0`i"l~|ox?$}M( +W?Bo}dbx9{*05O(F=-ilI6lhy\/ # ^@!s66/NŠfzm9/b _qc2Q<\ x>7Q|^ؼv-] h48f@3  ؎OfCɎڌOi2f@3 h~tf@3 /XX❓o&Vb`' F z๳k2uwu +Cg2>Z,Skf|z JXNׁ"L&ggRgp|ȿN g?B/~|C;!t $5K"6&?׊<ޟ>of%c%Od6U]`!r/S9g?x PP|86 Mɗ:EgݗK s6IA{`h] 1hD1 ҤeEy<Q~ "@[¸+-ny&OR ew=:trs+F\G:8xd[8rSf@3 h~VSmkk4ˀ-#} 2tΝos'FQO:\!=(gCt/.UIDAT{oQJqOgM2C?*&ty/X{=OYEaN+I-D3knn5 Pj#NC'BFBرq*LQD @.aJIВ~L?ʼnfN6\*$5i">ݰ+KMYL`%l8yX~g5]ʎ Q r+?bJ fzx᢭ \IA/iF Sn$̃^==PGߣ-b W83ːK\O"uFgH5 R3 h4@ h4[(U+]*?J;\=^ bmF~xnp&.fh pG15AM㹩db?DcdT),x:4n!?wIKDZ&<#D\H׌F\:i4̀fb@;+ƚ̀f}N4WNƑi8%C~6,XpPop 0K0WB 2@&y~v2_L>-kʘ+P/Q7\QPRLř _29DD̴Ӑ?]{sSL RYעzI!u[4ɀb80 vSqs BrA Y!L6zy7敓ͣ--~m:v(?~J+#wa/&< QY?|}dxje+I$br[;C[v9d`$3. Y4g#|Ѱڝ x5خڀQ6b `ĭ 1!s <ym>g;sm\!3i .0b t h4ŀvW5sdsVfI +4>=j#:כY"-1m_ /%l2 !PQ9 W$>Y !w9"߅}jL"#r$\>w_6U,Eg{ks#Q̺=+Cf #ʘx񺑫3dFbbuAfajC !9j̀f@3?D ̀f@3p1` pm\ 'T٥Bmfq+di4Z<H,-Cx ٱ=,p?t!mQ>gGd\^k-hg" .&"t%1^mv={6q` 6dߘ &{zt {lly{߃ d'5B[|/C(v`1U^,7aT*5 :kEESP6E>SLewޥS"4c̳$Z-i܂pou>W3J.^=]EJ=A!vs>GW+.'9V.U5TIUUrf@3 h`4̀f`čH-"9cY(;:ph)2y콲^BMt w!F96tc"o e:VQnH˜;q@]h^1R|,N{:u}bZ(Lԏd CE;&S`)V1QGHœ)t@mih`j kY؂:{^bB(UܩPg}-$@?y*++ ,@B C<ٸ0sTLg2!gOa凨Ϣ~o|uvi9NI' Ni]) 3\9ׇQѡն~vq J>lBB_Ỳf@3?D ̀f@3pb30} BT"H23EGa?*a7-e'J̇|cwPS^gC0ͨ2scq Z u@[D3(`- nEôcEk@;EV.VxPM$8/؞:& v^=D/x$Ї?Ma/'d!T|Azp98/73 >)|d+sl B> }Bl=l-++[уdi*B<ufPl! h4g h d @^/A40KC)\ԋ*zC,)Y7Cϻ=ҘWzmyTT=pWc 0ٮ&q֣^`Ĩ~Z/c7Q7qk kw왘jXyBv DL,|ptp!x`ak =[ĂذPMN!4 _hC^&g.MyLƪg-n-ހzyTQI*!}̠g2k+-vTŇ*lRݾVSWG ՃuN\/Qۊ[<{  h4?_ٟ| {̀f@30` TXʰ FT/~hmש́7pL~6|>*>&.N~mEw>SI}XEIeSRخh\.Vt84c%p0Mr |Usmݒֈ\P-P 5o;On .".z~m:U|R.+Sgwe{9#9%V`E&AbGIe^ " ¡m5S*`%}a#j|}[p;O1^݆bϠ8-_NY헉 N9%Y4GN |=M&7b-0$tQ,x*8; cgl[QÜl73 psJvOS&\pkԛJs0%.\C#,8+/ 4'_#R%>kVz?rpr-s3F.bH w= $8~!̚͡Ǹf@32C5nWW)lY 9]&Т=fٜlO@= =fBCt7BiV.Kq>DG3bA鰯4f﹉S=4DJ\A"eФocŤ-iBͅ}f`KdlЍ99Gqʲ"xSȻ%YPۑAF8;7k׶9 _vdX}FW@]lǵ gDQYUCQ@8PJ>hQȿx(>U*[r?Ȭ|Dd₢qBpvVӥ:&ܶNLG-@LlJ }9S•- JD;#s:Xה3c56TQ"Ϗh'-m&4j4ǀ8Lf@3 ؎_;٩G[zN!܄)/Ǫj iV-[ZgL߇4,Vr0iOv)+KЭwɤSX Rao<#vyS MuYHM/և`gSE]nFkv;'10Q"9XUc2bIE>^vDSLIB> "&1bnN{+0 #@(zVi5RD^q(oMt?'+)] N&}5YR^ѭ;cVeFΌ\k/lU,_ ̀f@3 h S h4'!.ίwSۏ!=m/KҺ~B1x)°'끊,a%=\S\($|]v9N9fO2#=^+cE) :Z SF9%\/† H!@c=@q!$[t!W).8B>$C C@磰<@/OJշNbO"y3 Hq8P\xf=SL)L}WbE5?o_$x 1t p',ڊbۿǼv=].s|ajQT F m/d ~ld,S̀f@38 hNla{w݌Es-u+`9Y/Ă) X_w@ gbFx wnݕ&UֈfMdG%E\*1_>[U9 v?XI؏|O_|:uS4sR+bd7j֐")<1w_pd@_%Ssd͆[r_=q~Us,[J\\Q ^ R0tG ™`)~s`}WʦD`D6)& `hu$FGoj\[k\Z3>(*4}ab9u쾶/g4ƅGѵ_Οx}C׉1Ľpr sz h43h4_BÎ rG9& K#zNnyhbli ԃ#2c5 !j4 ;Q1Jb#&W;Yp@, YByKm$m K{r7=&JYێkȈ~[f?A| AqMsIT*)eSTye@? 1s|nn`4-.Cȿ-VwU $jaCV8OY^&Q1BS?ɽ͟nT NI~?\lVM CǸf@3'0_Y_f@38yEk)C,~!}ptnv8у@-@..xMaY< zCˬ( 2އNv2`%xH H[;JѣO_˯*_2|ÁJ/[C@;#'|-oq}P/֪!Hn$u*Yމ |N~%{ ; O== \dƄ`lAl`AȬl y5~'7G#<=zz%~T<_2Bƈ3Yz0eSNI=BZ !ggF=o!)&\Cb!y$:;Br%lK +'Mf^ke֜03E]߻ύ1: 㶨/깄¶Ǹf@32^_f@33P~5NgkuBP%|KCv`ZoU=e uAœ@+!ǑЋc<;Ћ <FFtK1< m,Bp4pz⻋Q# _$/EW ;x_̆pV͓be<6\* Sr^C֧9W>f9"@Ap1yP"p2lE2|.3) ȱюQ2G1s:VMŹޙ@WQdaVHI Q\A6w@uuP\p\pGQAkt}ApGaMJPQWYB yy53 \0N{U]]=΁{Vլ3gi ~J"%ӓoW2HH.p:GN$@$8mf;^[в~m`. "Yc8M5>+WM*2pH0oH)32F;,۷G$*8H_Rm2)u_eoJ= OڜIM Ht@@W98T|3 <=Br3;؟9Z]8 .GnG9Y t^.tLK?hʚ-:H|#I<Z(C?:Z.oQeBQ d.A-Rsn&CbIe9' O(B+qT'jVKͬŐu{X{ۡ{oB$@$@M@' couɕK Mϵ2ilxMj!qpز #qu>Yh8LvĊ嘹6]CSflLzj]K=4SFY Z7@í]zD3&q' @3 Z$C<h:jhX,MhH>ܤ~nQlh' \gܬ/á vn3%ҩ>C Y낰9}n{Ft< w#8"/MS)=8cxʏlC? z׫dHHH>`HHE`;_0o;{M琝f:T̙^oc t<8_T"i fܿ:Iеࣞk/*[6ot/G*9.f_+ZN{̀DJ ljEQ)2"gg̛f{gtU17'x=L^˛j~cڏ*6;.ׇB3$hJr6r'uH1Y^+%Aq@_3|s*8Yp?tV;UdՊ 7>k;/HHV :WZ;u}QVuZb !lL>I`|3ܷh8 F'#g^lMBYQ>SV'hjb hjv8t}7q_&_񮕨PvQyΤj`'cCeiSB\ya[~($PvgAɁ5ЅrzxIKo`OTGfmڔ([~um@`jIHH~M 4,  FD ~hw pDwpCeVK "ׄ[˽(^f<Ɋ!eܯ #eyMclpjp{ [e_n{aRo͌?vU]P써v}ݎ]z追߮Wfd :_3f,6Ú4 <)sOs8:PS{?ZQksoB$@$@$dC6   ?6u 3VkY-C-l['R$ f`>lbRcUt+|a>QGU; $V EPzE,$"l -4=,&)>zNjq ਿ c[aIAQetsЌ|r|q0s8T;^=dl/ɹx?pKzD`5P{_HHHv>v>sHHA@9ܷ\TSk~Q)nAmM/z RQ_M$@$@$v/'  &B p?pw[Mg0IHHi`i5 K pٽ޻ '0 M:rFic083PNG  IHDR t%sRGB@IDATx]xE>қH""Xް(v'bG bO K %[wKk{d=3{w)S!G 8p$H`عaG{n8oVs4p)Wȑ3zMە!; 4  Fp$а${=)~]AG uӑ_#q4W֙ё3.I . u$Hn|u>jèzuJпg޿fT#k#DV2ꖺ=^yl9 8[G!>U~A{R!vzgDAkֲ)`\Zj-m4(\:HL?F8b$-"7Mz*C8K%yO JS|Q{=q 8` 8Suw\r(AYLE 'c(U#|`C}8j1e ojg}Pz :1k!>32l:_@TgtaCWi?*($;҇2vqg3 6Q~>s83_u_F13]r7gS!GXP}iu}7qv x#{=:Ë=ADQ\)} 5gW]}T0$)vCDυ3i4 $PQ(wZ3ǽ;dN.7Vd+?_, 44 L-P^mPq^6LTѫҀY3*nht D+[z!v1BA&R#8@t=EEUeR5TVzq.# y7 UQ nJPN.R.8\T%_ ~+1zTT7PI5ItY5AЬ *']gW5GPJU~'˽NNQWM&XGkB~_5T#hvA?>&kK҃I]lʘ1y=ߨa\-q,vAn)u:5Yޯ8="V8:X !GC{RuOeRZIcΚB?S~kʍMHFԁCq>u/0dF 9*x(eƌGcE(w i=}t` s)3Z-O{ڞ *> >j{p(=]Qh#p!xc( M}n݈`@=(YC& V3>`:^uTv@3UfWr ]=Y* \=(y2uāJh=QOÁ}!yOBF)JF(rAc0T+(\9%􉻊rmE_oj$1š2IhU cQt! u Y,AYQ1-~s!$䕭5=˙ Pl^ bdG3?#j5ؗg w_M WHjbp @{0 @Bw@&(Zj(/R.|~wYo6*S6;1ԥ))}xŲ7"Z_I7Cq!̒/ދJMA֮>L}}Qn.u7}lz{e\2ϛʂؼ _#zGhUrȔC\*r1/rܦ/Ӟq'2Z21-e0wC&KNK0 dN3ncՁ!n)fClFB-!PmjJY|S-󶢞:O/a+p JxD VT kt>xXh( T<&EN38yc6Q>ʱHäٟE$Ŀywב*cpJg2whq6KjFhI?3_D"hR"%yXeiPi3R1Ȋ}6)??o$pb8JjKߢ<p`]^$]p45:Զfӭc[X[qEh(fe<< esH]*cF | m|< `"xr?,[O|kR*)~<#CIi6Ӵ,qȑ_!5H scqq@Cչ ސqdzOh*^Thj7.d^#--\O'` ^GĞn8K7y#h n;5XBF@Խ[cCj olQh5?={UE<"a8:]+3cѰޏrT@8d~R =ɴ=w>+bDgEm\"]߿޿EiE53z8C@}X,%K.$dPQK'S-DrGu6D"1$҉?EK7!ݮҔX*\gWj a]#9]9jvbz!HWE^46}b/:>emb0pu}į~i!4Ba2`ӹk^F3/ɘvD Z at'(ϋT楧cR[Nog:-NTotrW-?ҳ$K]9 M4/)`wj_BS>t-mpRj6 nSyvN ;Ela ۄ.$x5.6կn+mPC-PVȏ=OB =(?I%!jEy?e]&$%u3C" xc9$0fC~Ǿ g7ְ/U~C}ࢸ'}#60 h'<'J Aj,IM?B}\2cqlܜ xU_dK)|3BO[~B2x\XU g:XG0ϟGo {,kv}~7nO0l$J6_M\E;b0x2/-!}!}x̶0;S w1SE);λ!]vI"Pg0hj8W:[u q^&z@ @gWj8%pʝ.0̛G|>y=Wm^ 4c uٕ-o^ff0vït/$;I Z}w%EzCѸ 5NB9䇃?Z't3r:e>48(󀇑>tS\4jjD1H˩\+4``cz34(-TB!; 4uxXDͨ@ČV;WpHZڅ#T9jޗVs..8&ЦEr]kmJ?ue!Tz sSFH_IY`;tep$C5D1woCܣ=Jo8ҡ}NPoL/nc{jH 4yՒ2rC%4-hٮTݪI%G*+/Y՜y 8ejϮ.7zfA27G%uCţrm}:77@AcmѠ*"Qz Rr~yiaĞdAS{.p5H뀎 37\Vbx-{;%KnZ]$:8]Xw#(`o>\O񈵱O(Rft! =^]ފy3ޯ Eќ;NJjY?x[*`+H}Y a([`rc-_;H טyjc=K\+O}ew]C Iu_to{ݚ!7h͌ߟṬaG7cvɡ#03z2VBc6o_;>&oѣ_vMW>3 Oa84T%ftl: _nid`(}k6ٻT&^in N#Lj셗v4yV x؂vcyʆBS5vfzm6`EVg-?L[};fiEb`;Q?.P^!o6v_5Ϫ9?_pY f<1ˊ-unJdq.I嵯2^3aMp iYևf2>9unR;v 6yf]nV[x?QGxYj 0EFUwpnP>MCT:״F^}de{I$gpCIM6PcBP]R+裄Gs "~ Qd;G V!T@NCĞc^Y:-Oi>B_ G& +tWArɃ\F$Z#LePx!=/b Uc)]w06@q< qxnu>/{aY?+_sy{S"/tn׼:@W]ɝxyl\Ʀ0)C̯ NM?[?8Ɨxa2.I} /%io:aS2ht8t`Z25$ew#up ?n97MN`& T`}t+u1:Og@a9iPq/ ߞ# әjnOn,dKfJx*C-ujcjl `*:+sG 2Y5w$H'_zK" m΍XnPLj"6X(!2XHͳ h |-ڛTMB;22r:"qC:1=AJD ya1U\9JR5B}}oe`wn:K^1c _ iN$vVWɺ_<8_m}V8NjZAe?nv}km>B^'QWJ+5]?vZŝSċ.5ˆa@ R`X'0Cy 75zM2<_TS.c7:#GGn801pז?!Pܑ%9bH`CeӮ\J;)kű.n!ޥҬw@ΏkU 7\r/[DŽg9Xg(aM}ci/B>#dIsi{Q|gXx{>. zW@)},~H2 .8>ʻMEzyXX s#تLC|4 0|Hʅ]eAJbOO/dδ_Hv:{ n~CdʺHy\-/Pǎ@~%Zh>ۗչitǬ> s@zH1oZA }1݈qh(6+H]'+9 3"Řh\"hTHYRJ4  Uˏ'5oMy~hIl|r'Po Q_S#8guxYBWn㸣ZRWtg^gP(8i?!PpG(g~OlJ 8^t8z6=gnh 5[pܡ\ V6 ,iMT.pn܎|K?-?zMB?NDSU~tvq: IAX3u ;$!Pڡx0ɳ;1~M2&݉~s&` ug }2:Ժi݉-u|T:# ܝI7g!B\AY#gFk~Ѯ/ET=^z >'>+Gx+`ӗm-/y].r$HHs"-|53CCF `I,aUO#J~ΆEtM.c'J aO6B50"-ڈ\7T(HquW̏GKxZ7g# }hcI'4 G֠}|C Bikt/1B}ç)p?cOU:58Ӏfм.D9ƛP6~Y<ćyNƖcYɏ¿N~r6 8#]nG?#;g5M cB-}+9F{4{u[T%,A9mcVyU0$oh'P<}'n@|.4SKD+sbx,t.\%b CsM鍍/ɗ~OKtUUլmtM咫6^X=0 ^3πA7B72nPx>Z> 1s|W7hXkJ*rLuWNTS|vc*ragF]ޠ4@|+S 'H LHD4JuE{,(`#ԇ8GyOSǂȿFM'ẁ2 iȥܾq%."tG+Hg;ǿNFTg=R X UMup? ԔWڋ9țoדYhBHRК@_ kɵ໴d)珣%} c9NSmB?I8*p1m*\LZ>l@y9'%Ѐ ֙qTЛ/Djd[ıbf,[j竇T63W҇B y""sr#s UvԧH5R,8U8#}Ib]N%2;~ݛ|;CrQ)x4)4w>b Ui SFZNUnV 6IbjjGn"5ů1EH%OS6˧`vϾ"FOLq3uߒdF7J{{._lR'=^ВOF ef+3`|rM10e4Or̍ES \%j1蛑ٙ5K= cKOmU]2v'&P&zgԋ^N0&?ڐڣkxBs1? [Q:`Jj `AU! Hi5@TqwKC*Sz57VWCCG!y1vQ"R')4eAIqy\\~?~D}RstE5Fk}̩hY*bХNa# hnļQiu`Z5Skrʐ3V"Oxr}V';Q;eQtr9qBydu񛰜äZE؅JZlAU+FR @] pd蜍s1pQEm3LԐOFa|I[das_dܠ Ms h5,J4^0"J{XEjs{(| BšUŪ3z[= j [+b~Cu;?TbУUg0<rS[pcNc,{>FpFK(tFj^ɨ1~dЅ`y0Nf^.8e46gB[ɊmMo'c>.|"ci/vdty? /f>\&r_DG'ç nXAX<Qp/|@YMo2Bg{2t ~et\-x F1Ɍb0ޱҳK]l1 @Gd@r&`f@i'd)"W\N%i\S }zbkX`5׭a'1&}3gr#vCp J? ٜC1עBmYwt6.= ݸ^;!{-nO*3T$5bܢZTvCh29ٗ -؃F4crRym CwŃ/ mEU{r<71|yTF]iuv$h|u 49nn @]dōF-o{bcO1t֧{̸In1bWT=X;7c1r@~dS. tQ[ v!W|uϛ/xm\M]!b3$n&cL<)bx$L柒it+ǶLz{1:Ռ;h-Lo&sv+q ONj1a~yŊ>6Q7SA_Ҫ-ljJUcaL%QpQUh6c %:vf-J;},_m{]o,we?|x,JPiuOW/]jI[=(/p z:Q/)M_y$9/KCdd/ r*+ ųJnhsnV}XSc Gҭ%h?,s ;5|)1Z 6c S#~g zIbjew;Nb{ YwmB{N"[Tg\y'ͮ2F^_'DcRhgQS: o8ழ"w9Q +'k5"@JG.2&{ O͖l{ݳÌ<ƨbhFr8z!3Yh>0o0e=Z֍$&W;y6#P0T'bW^ppv7%Ѐ 뵒v/7DDϘyq0񫁽SQxKOib\zvGsIVusdw A?( 1_ Ÿm}O1F2 bȾ_k]p[6~돠#Gnb7zh`ytC$#$r\Ї/p:mD"1lMc ^@r"N"hDD~ZNuu=ȈZud%a w 1pA`jͿу13U#،$1\i:?>}%,(S$J68dj5mm Mo^^A y?"[|ɞU CѨ#]Jg!*ZnG詻3ki#i#G%`v-&uL ԃKW2x xnLvf Hol t=`~f_`c 9(ly]09"OB+-cI9DadƖbܽ2o5H32bx1ɱ ie W2LflXCږ&Oqvrl/ FW2f*K qe;kQ5+L-Q6E=ˢ|ԳA+GAU CRlFZl]eRH0xS:H@?]!ɡz,9H{u\F|/r*dx%5yo1vƼJ6]0Pj'Nq} <)X"_i.+~,C1 ql'؇6:bK ʴJ󘧛'qr%spd,VM>Agp$uڮ .P2,动X&x o8-}26=MY& @a,ü0"ɡz%[!Y].6LַIe~XՄ~ 3M=;`Av|P.V+D@.i!Y]c Pjtp:X}<}Z $ci3;Hz/WBk 0z>rnbǐ\Q5ݪ71AKPt귟YL9pcC U~ }>wz(m4o9hFWӻ|B2Aa#aٱ Wt!4\]nX g SŘ:Xo! >1):Γ4=?}).UpU|&{stOǏ9#/wֺY,mq!G?qs#RgJzN?I.o!铛JJ%OmsaS 6}N`iĀ䮰8,=GB'J 6`W+M0kje|YbPtY*7 UsmJ~{o!cDgi3Vw>Fk,EnwL%njtQj^5͢+4^Iy@IDAT(ðLclt<{q$Ke_#6h,c 2Ϋ\W6?NF})1;8d{;NjݘQk:83< gjs:ucLVFk)u>ZޘEbQKcBFC>t{ޖQ 8TΏ }hXu` g}#e~`a5-s3;Ȟ-#a]EW'ƌbL}4cΩ%^7!!CsoQ S&Suu7c{u=|)l 8?p"Y8W¾ùIrMPMͧ8wCt>AAvwj@;!UT],2ǵsG//j'@'[8]%"F=Ҕ.CǴK ]l 8p"9 X*Ȗ)|Kvk'U `[q8cuxm H1gH"[Ծwv}燨3eƚt9Ғ0Z}icؾ<ލ[cs&ui}Ib;x[pHe;`5=P#G HЀfh9&љN|vU0V dV@U⏘!Z}`cFgZ_?ejߵgjFI*1{[\<W z)YL! q$HHpeC zcp>csJo. ̇"v(S݅ wfT25iΘvy;ϔ4- VJT$F`X]& ?)l 8%{3l(wPgau ķ?bS~Q`Gd-+2]-ߎynxg+.[IG2b|_r-OoԬ363zkHGʌޖX#' =ӽvW57VQ'FzcDpWW:*mMwD&{=XJm#|ޢwSsEܞ#5#+Ͳ>,i)IΎ#G QyOϼW(0}y3P rXPc-LQ\FȎ(h7t&g$[sJ'ϸd@/}'r:[9DgH@Õc4gY.uKo 5o?Xv_v(`kbNOH)|fIE5(ZKD$)ө%,菊G1ʓi 2Ζ\12b*d0_a2_]["je^72ep >fkasL0I ҽբ#^SFT^ “BgH!'o<|'S.:1Vi[+Ckr g%kމT]Z)'mTBN' :G1 8}ף9*2Su]엾/ $D]-HSb6X#G ON=ӽ,?{-dǗ3bjWXXٮP泇~<}_t6K`chdE+[#M4J|)@".H= P 9G>~gh{yՌ/YO2/tymJt2-㷾B-Ց&)xZM|}5g=zb?ɂY,w6 4` 8@~i3|^Z_?ƪ#J:0Va O `oK lvH`=ikEHJ͹eq*ɏ$ N==&Hq$HIrG(vڮW%)5V|Lo1O1(l, ؑǂ>"?*=OX~S ݲs]~IRK(Wugh888h(p" IMa)t\t w#eZ`Ok:2 t;n4@5;T)a$(0Z<?`xW$jit52O穧wi%D Ƒ@Cj7'ZRXMS≚Š@F(@Yy35| #-Жbf[ʾ+h;zwo%RKO͓kJ%1x ѺZfHW Rq$H`/cp|ՑOFn g3#j2cW0mlbDJ`{Xv/g1f @?/b`jQGV 8vG'7JV`tX<@黜1r{.w!G"_D$Յj濛ʶAV1ncEs.Z3./60P!|tO2LgH@3=}:#VS5`|XIxZ^$.%<2w;h]̼ lMƚչkg]ն cf\+pY̫cCP0Le`A'B~5 ؞)vcT/fpC[ dG" l~F}n|-2_>b?^cӗICs~ʡ_:rFy0;D>ez;#nGfD0!G@=|( l`Tu(P Z utTV':G$`?/$(bpNt<VKdj@gFV ̝TO[TbICx-z01IEya#GGPECxJ[F1olZK~R+%8fVDe"-+: ly.+2XgW}'ߴRKpSDb"SBUOYeaB<.}*!Lc${5LkBЎHq$H D͕L/=r6GEdZ_(ߖ-M`,0D |3OAgWI! *'~:`Kk'2Vyjc^o&3*eHj4KLq 8p"@h!"KQD=H5ru%?\{)egm[XaٛϸrṫR^FORNͿ)Kf@,];If HDfA\pNp8c͑1l~Ԏbd~$SF3z?F$-*t%BJ;cbpcY :pEzꧫɒ)m]Y|A[%ۇpz.#ӟ ?&;ߑ~_gљclS댵C+ų?^5MG=ɵ K^;3^$r 86%%XpDƑc~Y9%[)$kSf3Mӷ1շfܶa:*DQP{-$,^8h?L5Yn*|SXe Y1vb0$U7u[q:FkBQҗ~6p'mlthU2sVU2$ozػ*&>{$/KMEQ{Ŏv 6w "*tDz7r_W曗YGl 4O7e8![%t[Ӡ=o|=71FS3yh֝wߕwPG@{xY~g͑{nHCxIp8/2%8T|mӜ2@qun$P AwVYu1H/gQ-٭D%O3hdR[U$Y[+n, r ޤJJ0'n i F2%q%r%! Hۑ9zyIE<lU0I^@gZ]O6 =5qy%e-~9V}<,}n|^eD|iPꐌi dɪ:@.ZVS' “V'<sjt (0(r|o XT508tPO6-4@ilk@7ٍ$`{y%g3Jy4PZ޿qn=|uq3֗Bz9hMY׉Gp}I\ Nw,`Տu] lp`8X`M|{V ,96w<04%0b92HS΁:,AGrbyÍ&8˥mI)N8t'JPLR/hӂ b5d KQf>D9?Ma;.7q%XaytzLB}sqn{G#TJWl@T{V˨" @_0+4׉ ESx"w7]9+Faa]"cB4 \ҮhDž,iy I!rr=1*ۖ{K DqI^:`1{ ^Qs( B,c& @gTpX-G PGKwڍ?:a4W}5VMz~F_Ji=&cдʀ-*lGrV;M#r*W @; &SR:^YA?ѣ65<9kDa஀fȯ]^Q.88ݑjx]gK9?[:>)rqiht+,]|0PDf]%Pn[ZQRck=o,gl+;W[Ό h 5WEO<$g92 ȳ~ v Q duUn@=6džǸS1'utjZkdRxzDX}4T&<&I]h#4J.V[Z7Kv*jh*+ddJ`[pboj 85سL Ck/l䇺 ˵ p]wPQg b }wjo2Ӏ.m5LIzܻVKO$)Tg_Wu9LA7q%o$0JK9 V,1=_,sX;.[o(_'ף< {@Mjw žY}>}ޅVLP7zqMwW! D.nKJ@x }& 7T!(w%P&xUpQY'#eXq'Kur,y+GN_NLؒHt5\ף5R6šKcYkl^%]9E 42l(`drܑE]m]KޖN%5}&ρy^qzOy1U-R{]c1H:cҵ^48- !@78d<}%,}݂&׸81XwZuU8]ĶԸ9yVyb\7q%h@7>L?zEQ[_}C4Bp_F< ~@K^=K~XA7q%w$NBu<2+nMp]^ wF# wXtvK"vvvT]]Rl >˘~FCK-gaѰ.5vW@!ݽ%/+(tiʒ',ŘL,ԛͮ@n D,.Eؚ 518]E 6Cպg7T:HYd=5xK&#>Zj鍕ZX>ܩ+S^'ث.qoJ} w[&+/ Zb*d_Ty ɼ(d"p 4S:>͆~Uu4O@C? W])%.JݡI]!UAP%hP]ںOr吰ؒZeH9˻Yxo;󔿠%tj}øPM$if@qq\`{EQ`ybeKW\4,EUG1ےtx?0uf=)x X]YMjؙԆe6U#*aĞ mK]5.x3},fO K?Ya^T"gD|jM% E 1bJf5L|k@bS%XSUinгհXR82~Cҵ=%V>P?JoH`6@8ǼŃ7'}A#+fY OP t&| <5x?1 ѿ1+Fs(DT۞VO]REl ۫i: TN.mMzdDzu4mw0iƥM|bM}.Xp.wM ݍ/ "eYQxǨႎY7%PF0 Uz: ±FO&yQ?^0cb*᭫g =$X%_UD\Lcrk8Q tOZ$;gttC1qɕ_K=zS%-qk%֤ _YytjxnDЬBqZ%WeSNhr ]RcC$XZuߵf@iLۨKhuGoUzaB~T p$ Z wH&I2%?<Qq!:`@psSW''Z,q25sp>*[ڊ9^P29qˡ#Vv xϰFy+fVH~5mer7RuIIM| >[)l ]"C+6E8\`>i3W% 4^Tk ]xY&bpmHt_ӷy`ɘ!+a t_!"X-f'oG&w1 g.I)i<޺'n8_ץ@R( SXo-.^x!Ey )cՠmߵYI:WK KUf2>Y%5&!㲓>PR 4fyRG*baĕ?|KDd|EJnrY89QM -V `o%P:x=c6}~˶Gy!է>iN`]RZVxO*5JnxF-iӟnEW7W[Arju$ߑ6j,]Wn!0<\fius]{nr&[f}*F>,?P`tp?w ȶؖV ;-90 2cg? ޗKMvL[Ղ @3ױ#xxMj  @uP%ߨf3hO.v][h8ޠgMv-q_I %-820{-3ŷϤl`C?6=<&K<Vh;XU8,r10|cϔ== X^JPS&;O0 9m0DO`m(( KTg.m@Mu?uHA MAXX'̻M%,gn4L(oyBr+HjrqM_x "M*>魬qd+< vNK}0e;[;*c9Œ\C D3X7;Y1:1z6X,vVYrR/ Ͽy|| /0)#_ 4JVm͘tɕdB52,{'e,0$JLKe_'PJʹ'g?VhtBeKXkQ~=q ԡOe3Dnm"T(嵈d˿y wV0 K]y>3?Nׁ/~)g`sA`34FLdI@eʳ'Pxx^':5ޗx.ALB03F87PbWأP˒GyQ$FtxFз҄{V=tߣ :ˈ&q M3fX)oYT]Su\!.>lꆋ|0i7 >tLI䠓bݒ:}{LM;7 )DG7Ebz+6%MvÛPxj=-szXClܭ.C ;Lb*܋Sco}2,pzA&\QӆrS9 I>E&;@rݯ>=>~#g#_ʑXWS*rVssZݨS(ɢA-9K|xX,sWAݧ!kҁ+z9\bԅNv8رX]ZϗN4Y|g:8ڮf v̹$+5M8xsO| qԜ7.LV =q-RИ c'$Vj+Z#U~c%0e@%J=`UW1grUKu+uBz \0@` +JwJ3@߽G. lNCR3dlAa`{SJncgә“|N]GC1yW<]9oiT_5|`3DB1vi_0f7: ZLg7 ލC WTrOOnJCBʥk,S h=)?*qvßNMp dH󮀐":#1bTjF0ޜTu0yߕ@hӖQ|?o%o&[qL\'h>1ZPyvX ?wRz¥);͖>c:aYUߪDGo8.e]B[Xa ,QY* o>|e|1jzZ:K,bA`5ŠDDxo9-/_BB|~EHߗ>Ջ{Z-Q0OiV ?&sqb%9Tb-?&ot>/m1yUt%$[7 :2Xn3EC n䨍ÏWGP@cI#TҰRQB:'Fp y"Vu-[SnyXFfs3TFjB"8i.\ (X$/r1@@g`S E1d Fo eG/XS _A<RӲK_{]{:35& gntnL7ТD)|RFC0/ a@w&JjO MvR9aeoބ9p9Ad,js=ϒ W%>'K,ޜ{biT]81݁\{XmC2DGbY7)8 %T ɓ & Z ]{px|!4O6r5KAɕw/+c.# 8$}>O>@-qg4s]xNjXzѪ@6lPw.OnPGPOgI[`͝4*<;ɂNEL=8h7`K='9}l91;N{]Q$>FXŒ}cyMz^t^)n%|=8sIGg\K RE\Y3ѥ(,H ɍ紐JģV"C9˚%vCK 8 4BJ(W7O-6}ƨ&_H'2;;OI:?E"[SD2S$. ƥ"50iHNzX# %)RRMWҎBi/Tj+X"tyt >ʥ$(p OzT0ώ.~J:0-oؾl- ?Ɨݒ2 'q}ܝ|9 cLaEm c,va$P6tvS]Did3Р[3N8&wIDœfz>Z]};K<+Sb<-*14]@~xJ*`躊υB!yQsjba#g4f?Rt<ox^o9L+/]q%?71&=+,dёG F> % OWIW9ʲDyIAyԲ 21X;4#K(w|`4ytղݷcV=BKZ@_?GNN_NEr|: Ǖtzs][ ^SORc$ q{N[׏mx} 4ɼ㌚ W[l^ηqcVOh8EwC!M[h=+oϥ0$M#X399\ /:|E^/{ʏ/L+C 9s h=%\=Nۓx6)q(.z( %j^%_VM't.$]L.O5 `vQ'U)k[?+FJ)!!ҷYWپ-C918|4PuaQ,"CK$,:;/b)>>ndyml_'쳗_"ؔx7,Ock=lvJ3qĀAn]0죠q :W(K*/fE@e랑ͷ^aA0f>Dn2܍?@Rj>drqₔmFqpl)df#8>:J?l4Du{f}ҸK^NCecDe)`y+B)g mv4n1~Ta% LK7G>{ƥ+߱<7!$Xs0SD1;Qk7]kZ:_ OCEXA޲}]w`BQ0Xxz@䗞o w(ςh}*'ԭ . X=Pi"?v*?=x7ʜE7]W[(rH-W"ȳO-x "Cem]!--6TfVC0VP~aSF/RbٽTfjǙo2GY\i&KֶngG r/@G5~a' |Zձ~TJU8?㽡ϥ#KƩ]n.ZX!!GPч$7^*ot v>ÎX4(qcD 'U4r}\ >kG}Cj4޷j9Bߋ}~H\y0mz#Q(2i"'dtkv''b- <qf`d z.L]]> ]-Ns'AI#ꌧ10 O>=J_yi^#蔷 t* Tϩ[AyVӴRѤ 0#rZy:omKIܲE.zz|K[@eZkUG.}}+(H]\6% )d<<g!oT{$s9w~A6mK՘ Q4i63: (XƧ Q KVH! y7/߀BG1&Y '>0U͝i9i mp@5Xb-W ?UHJgxI>Xu_g >0Mj`ҝ$4u^X]Q[`@%Sfemku0 zA2E@53@/8J u.[W0TBN6H_o"UC70@ҫk|ERb XDlQWAnU3:6~ꛍo0IvB0nRK%PPܺ[uIXAͣgUCc1jZRW}tF+VYu ^Y#KWq@wHIhݟvJG^pEҀ2_W_ 61^Fk*$hxȑ_&f~W&|r2`ʜ>`n3|+q"x:I/J*On9Kn,!K58Gx ^'#|5CpKb2+Eu:JYAƢxc/q)|d\(De9_|8h)K;lE#X\*UốOkZȥuRm_ڴޛ3Ȩ v)՟`UG=l@,u[X}B.;ˣDZ[T ?z}B8`L5DOx̹$PjW۽O֯q6h&k$8.Q8XIjT2Nͥ/p*9 pnZebxk ȏ&znR+ali֊7cCv4Z)^+6疷- [QtB|NeJ{P*,QjR`m IeYWs4V2*Xr4mʾgLoPF ,.$0zKԡάsTf{ZY3Vūu =^Lݸ>}OczkRun8u՟]_e.>G}CodA MD^#7^!VčqsЩjX 7\bY!ӂޑ>QR -E`²,`: O+\y6w^ƄI߬;́Sp X5Q?0i$OnJ {,Q<#}WMmV-o Yz<6pߑ1 ;}֨pNWWT0yTijE Ncg27S KT選,1W$`Q. a@M <oI_ɖ:6~t &4N7sTz>B-@ؕ/aI}IߗyC<1c`Fj*ɱ~bۃI@Zn 4KAe+IB0G<<($@zrGhxV=d˲1i<- ~(>7Kr߼[:~A[G/ <N8f& #$[ʩ-SNwqCB'6B')?kxc`jE68$IP nΘB+R{ub{ [sC9hL$q"( Eٍ:<[c٬[&jW\Sy}@ps wi$r*yp|uo.xG7U4g_p&n ͮkydܰ=WlIFʡBY>Eal-W}FW< Fg< 0(|m9 zMg mp1Q0foֽ(mWST 4.<: 3A2kQncc3* ǬqӮODB9`so/L;FBNzRGzR:8| jC}W/e<.[tcÌ',Lq2֮,Eu=:衂&Zd/s͋婖cK\j4Ovz 握SzҽG0Yú#څ' *s``T `BTi=g;4AkTLٝp ̤;vD@!%@hUȷK QZǓ2)XOoL$0kJc5LWb#9.wV` ^AƼ ,J )aE?}%||9S5[ J}Wb%#Q9%ڗE;0q 36석fy;f-]UV1w=FkblJ g +z_nF\)[$.[^nwn{o0?SSzFU:TnŋG1<\,=z| P `)>tLqb6h*.|B+8&~s%g;>{ {&]DъOԷa?+dKwux"u<Nmoql^|-0/B*]J 7;A)0_W~^yUt6KRAZְ-b-IM[%p@  3`tHdONzVx+0 '}&NK2kebk>}:{ w4#vo8C{`K9qI:&jl>K>+'u4΍͡/iΈ] , ,XFFI] x.X%AOk7ABɔ\C$$q<}Mfxaqm ƹ ؽOޣ=3"-`ң a.J˾SL UWݍ# ӲX㽢fC%lҠ'˜|o7}b4e̪v_[%,Վl0CBOR"ήr Z<H*brb0Ú|3*#xUi'IXskf;#V'kcĺ7>BIHI2ccZU/؀JX%R]yS?VWq.zr-WغDJ^œFYN+&8".+'Ry7hGM0~aC@VD4PnFۄK'[(VO avyG56g lFe9q9V?A?^߮LX_T'G4Kqi` sm`fQ|_{+(8K.&V^%1l-.1DIxt NA9gͫu5: bhYKǭ\tQxf7_za@3fʠ9֘lU2ZG]>a܋ᩌ](>MYt 񘳌SW粞׳<1;UBB|KDK~ȣ9=~["w0u0gﴍMc<8&`Dˉ6uK)X̖%kfpCGVp4z`6ݑ/xQ8ruo-s[ÓErǔ]qmq>2։6^$Xqj#@u13F`>-kj^od;T.~O\j^pojMpUZ =`=x zRV o/uTv{/ltobm5E?zsx85QyIlr}YSL˟ L).W(4DCkǞagůW$ Ds0Jȳ*qye/sRnxˋzÒwc;VT;s&!},E}uiJlUeby2EJEJQ;=;.ދqr~ ^Kئkާh0酌գc@˥](|9+5-{Q_67@cS;+뱺aU)WpTeE8 l5`ꛇ'6 ~j8ћ 篌?Enb ԆNt\Ԣ4&CD`pPD`3kn4DKr? .Wl~T#%!r2M-:R7(a{)*jzUh!g}: Υo;V臁IÏ<`֭%-Qv…wK8 OqYS~zv+OŽa7VfsӡNT\뱎EiQtĆc!8n%P"VzeIF EK,k_Ժ] y!e rES>J@uzۛ҅[^5`OeLw£eLs`'GP1^HWjQ#~\XĞ=b# nn%;NODŽ" ƿ9px5s9 y}RSΝߓ̝X%7,)=5y-˻^nYQ@ϛަ@ꠎu\KrV:k4UĘz/n Y%SR&]E]w2"Z[+yDrA|vN*-S6zcPiCעpVyL'G䫶<,l g0G_\OfɧE|4TЮ<6< ϝ/*"^~%YSG "1XQZ i=qK{6H1Fg+`Bt47op+0~ `$+t=0v@7)<6AudW+g}+#cEl\: amX W 'ANtǖ-[t]LgQN*Ƶtȼ)%to{1 }hy0 7o&a])4X \|?ye|N'z,{/(+olVtcO6o}i&gdt~z9%ʞG1@W++ϩo2W-Ek: rZnO2:pr) Qaֵs{%/] m;lcuNhXM#]T %gM)\isj\k |^vg9t"$8[ʓ'}qHlAJۯ&U/s5 V[S|`3̬EHv',$;DxBQvB+\)ɘ$,hy0a9cr^զUTEܳ5L~국_ zJZEW Rm)f`%"LOoĐ̈5v3d%υQ3`k9{s9̧U[X%tq̪v?CK.K*bT3B,"z=<3xm!na'=фYE'D̫|?l}ZbB11;wwk3h/t,= Q$%i7U롺]f4Te=T?|@֜` ~ûaf- Gޒ/>1*(*1rCk] L`9V.NŨQkLxWx٪PDG,Z-3/-~1%hVH$o;1i2mq(d\=72LΕ?pQތ0RzP dϰgg*-Ŀ,)_)C0__: &r_R|؝5l=Xݔ]$J3_}ȟ7l624^YuG8izY\0:9tHq1.cZ"`|NF5Imn.jjBkykhGcJ-DEF3 +ς {E lFwBA;Sqb;nh](Ϫ`c+cٌØd;+Hc!iPʺfѕֺc߱d1*#yVG˱-7>X0o;>o%٤ ̥-iN=5p:L;JWpO9iN/^||r߾2)v>J 8-UΰuEd"m!1 *fʰ3Lgե1_MrZ^*p}uUF&𛣋pE׫2B בcoGwXpezZf(mU "w1= }sJaUɒw>U9_1].Tsm5v^LGe)a߇}>USRe^Zw|b 1zzǴ`9e^Ꮨ(?$L9@9fTq͙F=F>lS~䷾YO V;5 W ?CW| a9+?m{fxs C''U͋j)b ~Q#y=/]1wcDqj_:*PMJv 2'+yv+}ğ_ͱ#B5.R3"yM˜zoW]>ᓉD:ü[0fs`O̧$Q!clq͌ϔ{Kc+2*Ѽ|[ 50̂nBo)=ҀCzT0m?r9ёznv<֨`XƠ!GY 7MGMK|-Q~],nuzֲٴ9$M-\x0cqb fq-.q<3`G5]R+|&yFvzdT mc`~v\Ƃڇ[0c47FF1&INW.@t`!ixԛtުt!u ()ٞl<3[1V *ٻw* 8Rrrŋl7ُ&UAw./l aTQlCWՠFZjl:L3tDYv[߲.2 _:X3O 2_Rp|ĠF{E.xn q=T-z7)a#O<&Q.[j<ߚ{`py'/ W;v~Zw^iV_2VL5th\zi9@\k_"_ygyvAƢYl60E>%#s?a>`D}dc ,q<|빘Qu{h 4 ?c2>teLۛ?/u ǏHx{Y%uTR/[hX6~ %|^sC<@KK+3 ^TQ ؐ`HM`!$3\wvʫsh 5-\5ݎ;*qJS77+R| p Q6a}'l))H;Zg2h|w\Uiy,POؤWQFij ,&q@JjT3DŅ?{@۠ۑML4.r"s|jܒdyq|B" + =ғK#kC!A  K:/ FJpvp1y~Ô;=!~9״.&]K̇/}yۊE$y>&yOOS`wL4QG'"P?D#D̓VAP jꈌ  Vϼ8"zxu c FCF}C\]6cW8g nA+GՂ`udwG~UfLB'ZqS>v+:$8'qpg1lw\񌯍Ƈ^FܑQPxoרh%j+f=v;6V]5#DI8p²;ebqt 趆ePe@4Lz͛*(dK~'l_`,42/bmup c3ׇ2FD/ΘzL⭹Hdg|]]S?Y]?OW!M lVSwsg=8]+kb=wB\%9|4$bMTDv:לե?BzxNOsRյ9CpTZ 31h@HW6z1kCT8窙zG@ o݇XE6FRzZVAY&TǎCT#U5?&M;~;:>2Z3-\\y8#fAXݖyUոDѭ/Wb,:3FhcaǬ %+Y+8rO9G0 3hvrNY|#skh#z: ~nvdM=Mj.xWZv2͞/ٜ+{}ʮ|Tym$v8DoxoDzf(@;7*QoPLZ*_8Qg4[R~؜uݚA-V}\XOίj mL0Ea#9ՖjtpbJZo,UPnQGbftgNSI3YDءo.lk'3%;oA8ކqb`Ѷ:єmϤ&LǽOb"̻Ĉ-ۢ`1\NY%}/Yϖ.Pfߒb !o7w.1d4>:alK""O uO:FU1zψk0'gpZy/a~|4->.?6^=0ݐdԷ̻GŒ 9n)$qR>g]V[x(SP@. Y=(Jf>_1riHWU11UQM62z[qv ~F)WTcNmʈ yeЯ+ s9HG#~UM脭r`9r-lD-iR:?³1SWw0%dhg;j{hNj 8 {< z T1ȩ7sxDJ@j9(KހhwP{uMo8ԡThW*PUa8G`)LrSzZKg->6k>*^yׅ1eR!!T͇g0lb0'6~ij!&Pc$ogTb.KrUB4ڸEGyeEjɛce \zl`??FԽvI UO5!fUtf+n; j }'|(xO粞`;ѕ`7ˡ[OXw&ho`aEΪ5a^B].e̿8M !k|*k#C3ކ1o!qWJ">&{Ghd1z2'!F y\jaD~T]ey0e;J{X=L$";]سKJ 1U3+P!iQ3/z8s7caLqaE618}09XESZU1 ֮KGOC,A{I9TS ~y,m_;@ 3??i\_mq\A'edDXrC=vv?4Euّ1R|U}$,tġo닠xJn@yyf㕺!V&[%ݨ~먏O7EU@0ybVh|]dO0@1 +wb4=IUb={. o0Ywo-}pVhce0,5r#9/s"WK:ڮ .iMAjְ暏 u+-Rs.c|Y<|'<~i7B<<XT~M-_ qXו佂[xq;2M].9/m9ߟN&IS't`LS2ƄA:m0|^dT3'T4!M˓.Ln8yih&W5e1#u/949 庍)0r qqL-gHBMNspN;k"iWk0ДIr$ԝF.wtk!L+ޢjű*OSQJv޿\1.2arN=J}/%I=:U~75eGsUG;vuhtg9qp W釭4S͙y7᪆AIc{o,9}C~ (:tjI@^SOgqft MN{.7.5r0t}haZ~cl蠿1tR0x]X1R)X~ j)]14S=>gicLYM ^GWXb#Z23:ˈ僌ܖ¾VA~ZݬKid2 YLւAc(x#;թf-HTK9kpbY35{[Y.мR1Xd#UԐ1s+jUj+]w.c~ȗbL\5ޟkAHÏQR'}Xfa|tT.k\wV |䷪Ȩӭ+S0by}!oDg0P p#GZho̷27޷xQo5eQ&feD3h!"<4T\ӈ1b0Fk5`6;dQSlVZ NRUe%Sz}|J#bZ+:(~ѵ#szp5V4Tv4uɀ-;Ӆ>;>~X@[khOY5 ~!>Ǽ KŐ>!s3K2aqMcь&3"T)re2uvXm*CYG(rvB]qRTjEw9zox-P3`T,.h :T_ /5.׊|#&)wwZrp{ӊ3Fbu~!Fxmu)Y@4}$i-!/Rnrѻ>80^<2hV":{-QrЀҋx܃ 0+xs.ഠ%\FPDיDutgmˁBvCikˁD5 0nXQ !gl#ES]E` mMM6Yq!7qPFtb2nt]ק)1Gy K6r/ YQ00]7%Svt>M)fN&{Q`dEg,LnΘbmtjKjRn5! Vb4V1CN\}1!lgl oST:U]+c.ˀZk$W_Oގ:%jqdO٫نCt1' ˑ@}*r11S]W'/fJ15Syk:&ATh$;SI 婎l!\`X$%'x y4ugێei1;=#sQIE;3KtqCbtLեH'd{ˡ[k9Hm*`q3H|3keP3X_0vL ``|p\ڭ~jOPҺM&FfEIx#ph)c.wT꞊^Ʈ [2b@ SB=Qw۸0})q>Rq\xZ{=b2~8] ~GĜO:TS aEڎ2Bh]gg7$MLUn:[mUmeGȏ$F#Lᓣ(d==5 ;'d_=,D1r*v_W}]g#)ҿۏG8>oǟϖdgB从=׉,yڑo:ǃ߭IsۼH]E &s}ϤUKSSj` y}ԈB#Ly|EXw!j28<.1mUV±SvJGmtfF<̏NS{1S(ZnUW>~Kmhooa@qaȫ(D툥Iʞ8qTybA V clFF~<Ò{w3*lJ,w$nԿ;߱o7U.^dW@N<+іDZq~i 3r.9w`6[F:5Iesmq6X.3w2cs6xr]ypxa~WY:%8'֠c@̏\]!7!fSh-}1:pTF4{Ņ\O#cW%Q-e)\ͩk! ] .xtD8ۈC!{!k<1,VpV686GSw=՜=;0c#iCÙ:P}]-),F ]~<^y珕щD#=[(o=h'NlG``1yM=x6_x`uw8+WVnC n#984Bˑ_틃S9TV$`)a >נ y:::mzA.8=S{8| MfCQ>G/؄>[Aq hM! xOwfݗ-\ʜ#p\Gȣ-P,D[:|vovu1r,4F5M$EEd'lI ]ɻc\?<}}fO]!(aDOG4swBg6@c; KVsUĨj3|j/ݸ-ߋRhqȑ э(vrꐘi((S `"eFl}a'D=#{yʹvs4RpՇ5:IT9)D _#ފQP. !uom~#AfI@Ene XYu{/ nB3X6@eWq$γVx7E`+ [!GB pB*?x ;kZeA _;Zlڼhz{n)Xd֌F̍3sPʶ}6}q2|dW诸k}jn+Α{z(\-cXު7G_G@7<]hý+Ut_9](ɏ?!|8-  j]Q OYUpou3OwsiYq T~Y0'"@HzqK؋ cE_Բ|WcsyY>C 8)G^~Q{@1Z3<_,f %W׼`'FFlHɡZ/8fgD&u]*+hG̩HgO-l&G.q HH;rYHs΅x4Ǔo+"&Sh1B9Y? 1y[`A>t1\KC&zA\n|]&`P.§ hA^d,a3bgD}pv$^v(+b{1`JsQ?TC̾4ƞk%dڳRi25OBJFgzk N9*=;_w=kn`0m 9h-}薽U8"J3gk `C8zP_BH.u:"ֹ\긔 hM%WnCvzŚ-Yyo U@T2^c!G*'2)%9+}oSBY`fc#nDŽ nQog]KFO)s@ 2qz޸zN-=pz.dhHWcpo#mϡ7G.FC{U)#crX3jM$)}}znjn+&5o?DKQ۸^ꇤ)AW=0/[t`tȑ 8 ,ط3^#!rdblJzuVpyч*A`.ņ6wmlE_Kr<bHrNFpo'v|Q50+qWz>#=*XXVxx}vs+2|-0 ?[yTNvEy\ ӑw:ێoM}%z3k&l̗7F1vYwpu =™H=tx ݭtˀ_0zׄSϪIq<%#3Tx3cA8Tf$}6^0mB-7ekyea;ԗ귷g$oKO 1OfRc^~u%j/] ~ wWXÑoJh+MyX5Km(W333 A$uѬu"v0P~<HIF` &92{؆  ة~Tϝ^W.g̥+NW,~Nw/D B@!7矕zH>l΁G3y cr!G $S|u1:Z=lQ"Tⷓ'h,0y/ ,852/+f-i1si?mP$UXNq^FN&*L<(v Lw}f@CaRf-Q:չ F~|@~Jr902safܗ&Sr栣 aT `\)>'wB>͉E*ۻ3sݣ"v8͂y+c,ʫIb?$"8 JȜ,4zZ(0s#0 Щ}u:5aIr(G>p/r$pI0UHMt=SRJ5piu̹@E.yjEUUN'ӢNle~˱n9RN?*|8%dk'?ebL\әOV3gr''n0x-.NMf5Zj 79bIvq]tSHm҃фؿ?,ь_*3RK j0Љ Z`I#tZdưzg%@/UhE>z{Iz)I~lЩ YT2D^rzo$dcuCz]ntG@j@Y0\V,Cpiu#`^0GkϴTO:c7F8w d>*#psȑ vo elس(02]֗m`[j=ׄ.;fP˭ԫ^ oQ7^WhHO": 8hI qf(]Em%Pe8#@mɮv>2]vw+̃[,(Iwr{?Ba@jP>!dGbc΢c $磰2KqՔv/V+Z5 XJ۟z.=s#uٮ3Dޛ] 1 v<]嫨5JIߠ3%(?Se\3%AF '" tga¾xXeSnDh0wL_ϩEPlt)|?.WYqS@36ZΧ#?W~N&!BH Fl 5u.EqxC:s-?PM {3me-ϷV\vr$p$j'@ȧO󺣯'FKǨd·F p^骖5HK##OH۰r"(JQ?>NNDe,hԪMӡH( |ۋj D3%0B!G[vF 0+vyDƨk,K +QDЫ\cta16~@s%O_4?Σ ݢK^ Tg{/AG o~9knd-?RH#i0b h]Ы~FKqihmü-ƇNj>8hj s18aλ_rpȑeٸ[ĩx&6n*1(]7los)jS6[?~_(ck~3]vVazG aEH[{p ;;HHV'ǜ9%0qxVLa3T%z󃺞Sg|zөׇriztk[.\cN,R͗RtN@~ Su!!b[ q5F8, ގ)UǷ0_aG3w5V?OC?^֭ newkW3 BV+&30VZjta Eq_߸{WG'LP93$ຕXM{^wZ͚0Pd[ܦ:jf9F;]л0zJ(E4kG_Ap_řx@bb ~n`oGv`r$#x&n?N{p#rX/4*kvig_aMj:njjΞ~V5y(n>Eh"dſ{OR)IF p238E`};qB3^,l`IDԭ+KsƴV6?]mQ FQ]R@GK?zs?kFЧ( OhDkn50VLhq刏#;V<`}??{ooG&Md`v`*lQ%WKi&n>Tӊ;AV6SZw{My06vYkP9 /Y|8$`ep][  P#nݛr%00*h2ó4V}i̬_#m| m̜yuSQ id,?Ql1dx){h.*.~M{F(g1t육v{?ڶaxߞr{oFkDDvǣ d.S?"Y cr$p2J}2^sMlG`>| v6wS/MSÈFoژ{I8+e$\H7`=HX_zr]j)F*WO?zU#'?Ө`(يgdFFs>Ov ϾN~gF?Чt pһn&[ƒ*8Mg^d~a|fG@s95'*(ߋ/!G'w$ Rʊ^֭܌]mNT]A%=G KA>,'ڭOPF~iy28# x,oKWM>w4>Dv= C?E8~6Ug #2f?LUx˔f`zkv0oVN6lݫ*/P/(+h6'п'dWle-˫J.sȑ-x9_J_ͪ:f~nE6yE12*2LMwi5jkQw꾂/s(9|0_ \tz dUR]8 /82`KCl7#{{ISz=<QeJHL:US߰R=nx/bvS]R⟇ů0mwz6{.~ c!dzh3ډ-8'w>2{eVw2NS-%AgT[HigE_h$07`uv^GEB=swW2\C>#0=JZ 3W'O2g|L8t< ?`;oClL'SnvRaN307oؽtU|7Ud[?[ Q.PbĪ팘'S51tF Fs#SGp<2v{#sDRC3Z 5 Z^zklnMmeE$1Hlb_Kת8 uSn6S"ff]D~tWCPzBzkh3!`A:m3y/-@5"w8mEV >.>`TKp *iw=j_)iO"N$MO=PɎggKh*P57qy ;0p̙\#[}y%P/hXj`)ÈkއLB`W}?fNv}nV0Rdt/>1KR9pA= K,rE@S~_$_gN@iwJ.6mvK/P?R 58ӻK:inK\Ϡ<W~[j՘K،)MTW>2Wvq p2']ְ/}]?3ha4P9w@|w]!l?ϼV"(czN] R|`f"1m\K`W[HkZW{Ϥ^dT_6\L ߤ5X8i:8J-?5gv~!_t^{bTNr4ua*vza2}׮?'0!,?@O!S=G^/dR?d<(QTkAFgƼjg)8T$pt+[wMau3s7loFnzVOdoT=XziX4a7\ }95OEPNQ>;D`#a1!H)Le!|ٙ/?XD#Ci3uݲ?+vORmy(?.9<mMSȹ?s?}u&SZ-M qۑ16#0ږZ1\x9(p2XM OL$pAV[v?7lܔ 01J}FMoBi-7Cvc9FU}\ *?hZr?=5o8vhZ&7K_N8 y{uP`n ZLd4`Ahi;XsthEMq`31sns|@ݪa{;h/O{Y{̷8-͋"Yny^0qȑ@W@ }\'܅ v:] N"?#Dަqם} @QRFvټq0:@3y h0ກnmq6og h!4&G6CUoQTy:jw*}s bՃ.'ʂ< &"cu w3ppoz@\V¡^TXJIbJQU#Ex݊YGFyf F*.'.rd pnKXi;.p˓.4gB1-tw|#_QW>՗C  ͻ-4x0./j [F5uTC;w%g.U:u稑Ok_:l8%G2IQM]rF`yّL|LȟۛѡuH]O+nZSUml\J_ bGUpTis]¼xćxrskF&U:(p2hn76jjG+ޜjCufYcw&%1z}2p!¹<^%3s= |%x=ډ%;Dgx*3`~\*DoY P~)i5, }r \*J/#)~}@ ˉÌMtڐFX|灞i8~maÏR~~YQh I;HId8~횝2GC/3s{{8kl؀Y-0LI1R%OZYތз~w%UY{??! `˰ >2eX@A(du("lfEqPYX 2A $${z)(CeEZ^'ܥ7ki ߙ'R?QE\HE9XY6+(W&N4Ŋ1a 8Ok#ؐ67YN7Gga>ϼ0Œ#}79 '] 4 `>RAзӁPt~%QYM^b-imKe楃 VWB%3*2?}:`.n%jWܛEf@33 hgHїEēI{;ƙVN-Vrr1=[z`F/R}K[Sa /"nanG*y(_!RKTFVO0T1|`Ue2= nJ>J(\20 r`44rggҾ1|]哐1<0=FX(dtLN,;O[9 wf`Hl/`Ԣ \-Ztz~I#/ժ`S-m\c8{h?$twtf4a# 3 Ks:SFLD?"DuD%sof!c]<lZs=bX } H, \riA(I!! #t6hoS~ir>7w0uyHɿE`e?Sޱǔ$90a+G-=nOyHP?8AMk•.= ${z(M8pvA{E\ݨMpd(^vދbg-W>e=N/NFm]2{_?7 Gz[1w@f@30p%ktct3RDaˬFI9tje`!:iɭZd3l0Y9p2mf@_, ~1nM9C0@(f \8A&! o^CM/Pq`qU@LQLFG2EPQos50@}InDi[ԙcA Y'NkC̀f@]1g ,9v<ͬX6 &Y) {y?'`qZmz; 86cD U52g.sìr&Ggѫq‰ 4" ~Uw"G7<)tS4%7/EDqFVlh}2ԩ?",`QbGfs$rp95x^Ra>Mj2XI1j hӺc$p-Dd`)yV}ϫ d qqF 6-&5=`0yM*Zu&[w;€cgBQlr1py}`ƒ_/ kM#7&4Vw޳vlec'/4N6[qƇ`R|q!v8$mnL*tǺW;ϭyL)^𾙲un|5ksmힾ P! klw^:GPG 2vNjb >KƬt4O7)h7lشlEJg8Lj J.VIRGh'sZ5Z4π+]{ I߉}"cJkm2nE$<&}9N1 pGr5wړ=d:+`倲{ȨsXl8-c+U3cm!5ԇߒnfqқH""Xް(v'bG bO K %[wKk{d=3{w)S!G 8p$H`عaG{n8oVs4p)Wȑ3zMە!; 4  Fp$а${=)~]AG uӑ_#q4W֙ё3.I . u$Hn|u>jèzuJпg޿fT#k#DV2ꖺ=^yl9 8[G!>U~A{R!vzgDAkֲ)`\Zj-m4(\:HL?F8b$-"7Mz*C8K%yO JS|Q{=q 8` 8Suw\r(AYLE 'c(U#|`C}8j1e ojg}Pz :1k!>32l:_@TgtaCWi?*($;҇2vqg3 6Q~>s83_u_F13]r7gS!GXP}iu}7qv x#{=:Ë=ADQ\)} 5gW]}T0$)vCDυ3i4 $PQ(wZ3ǽ;dN.7Vd+?_, 44 L-P^mPq^6LTѫҀY3*nht D+[z!v1BA&R#8@t=EEUeR5TVzq.# y7 UQ nJPN.R.8\T%_ ~+1zTT7PI5ItY5AЬ *']gW5GPJU~'˽NNQWM&XGkB~_5T#hvA?>&kK҃I]lʘ1y=ߨa\-q,vAn)u:5Yޯ8="V8:X !GC{RuOeRZIcΚB?S~kʍMHFԁCq>u/0dF 9*x(eƌGcE(w i=}t` s)3Z-O{ڞ *> >j{p(=]Qh#p!xc( M}n݈`@=(YC& V3>`:^uTv@3UfWr ]=Y* \=(y2uāJh=QOÁ}!yOBF)JF(rAc0T+(\9%􉻊rmE_oj$1š2IhU cQt! u Y,AYQ1-~s!$䕭5=˙ Pl^ bdG3?#j5ؗg w_M WHjbp @{0 @Bw@&(Zj(/R.|~wYo6*S6;1ԥ))}xŲ7"Z_I7Cq!̒/ދJMA֮>L}}Qn.u7}lz{e\2ϛʂؼ _#zGhUrȔC\*r1/rܦ/Ӟq'2Z21-e0wC&KNK0 dN3ncՁ!n)fClFB-!PmjJY|S-󶢞:O/a+p JxD VT kt>xXh( T<&EN38yc6Q>ʱHäٟE$Ŀywב*cpJg2whq6KjFhI?3_D"hR"%yXeiPi3R1Ȋ}6)??o$pb8JjKߢ<p`]^$]p45:Զfӭc[X[qEh(fe<< esH]*cF | m|< `"xr?,[O|kR*)~<#CIi6Ӵ,qȑ_!5H scqq@Cչ ސqdzOh*^Thj7.d^#--\O'` ^GĞn8K7y#h n;5XBF@Խ[cCj olQh5?={UE<"a8:]+3cѰޏrT@8d~R =ɴ=w>+bDgEm\"]߿޿EiE53z8C@}X,%K.$dPQK'S-DrGu6D"1$҉?EK7!ݮҔX*\gWj a]#9]9jvbz!HWE^46}b/:>emb0pu}į~i!4Ba2`ӹk^F3/ɘvD Z at'(ϋT楧cR[Nog:-NTotrW-?ҳ$K]9 M4/)`wj_BS>t-mpRj6 nSyvN ;Ela ۄ.$x5.6կn+mPC-PVȏ=OB =(?I%!jEy?e]&$%u3C" xc9$0fC~Ǿ g7ְ/U~C}ࢸ'}#60 h'<'J Aj,IM?B}\2cqlܜ xU_dK)|3BO[~B2x\XU g:XG0ϟGo {,kv}~7nO0l$J6_M\E;b0x2/-!}!}x̶0;S w1SE);λ!]vI"Pg0hj8W:[u q^&z@ @gWj8%pʝ.0̛G|>y=Wm^ 4c uٕ-o^ff0vït/$;I Z}w%EzCѸ 5NB9䇃?Z't3r:e>48(󀇑>tS\4jjD1H˩\+4``cz34(-TB!; 4uxXDͨ@ČV;WpHZڅ#T9jޗVs..8&ЦEr]kmJ?ue!Tz sSFH_IY`;tep$C5D1woCܣ=Jo8ҡ}NPoL/nc{jH 4yՒ2rC%4-hٮTݪI%G*+/Y՜y 8ejϮ.7zfA27G%uCţrm}:77@AcmѠ*"Qz Rr~yiaĞdAS{.p5H뀎 37\Vbx-{;%KnZ]$:8]Xw#(`o>\O񈵱O(Rft! =^]ފy3ޯ Eќ;NJjY?x[*`+H}Y a([`rc-_;H טyjc=K\+O}ew]C Iu_to{ݚ!7h͌ߟṬaG7cvɡ#03z2VBc6o_;>&oѣ_vMW>3 Oa84T%ftl: _nid`(}k6ٻT&^in N#Lj셗v4yV x؂vcyʆBS5vfzm6`EVg-?L[};fiEb`;Q?.P^!o6v_5Ϫ9?_pY f<1ˊ-unJdq.I嵯2^3aMp iYևf2>9unR;v 6yf]nV[x?QGxYj 0EFUwpnP>MCT:״F^}de{I$gpCIM6PcBP]R+裄Gs "~ Qd;G V!T@NCĞc^Y:-Oi>B_ G& +tWArɃ\F$Z#LePx!=/b Uc)]w06@q< qxnu>/{aY?+_sy{S"/tn׼:@W]ɝxyl\Ʀ0)C̯ NM?[?8Ɨxa2.I} /%io:aS2ht8t`Z25$ew#up ?n97MN`& T`}t+u1:Og@a9iPq/ ߞ# әjnOn,dKfJx*C-ujcjl `*:+sG 2Y5w$H'_zK" m΍XnPLj"6X(!2XHͳ h |-ڛTMB;22r:"qC:1=AJD ya1U\9JR5B}}oe`wn:K^1c _ iN$vVWɺ_<8_m}V8NjZAe?nv}km>B^'QWJ+5]?vZŝSċ.5ˆa@ R`X'0Cy 75zM2<_TS.c7:#GGn801pז?!Pܑ%9bH`CeӮ\J;)kű.n!ޥҬw@ΏkU 7\r/[DŽg9Xg(aM}ci/B>#dIsi{Q|gXx{>. zW@)},~H2 .8>ʻMEzyXX s#تLC|4 0|Hʅ]eAJbOO/dδ_Hv:{ n~CdʺHy\-/Pǎ@~%Zh>ۗչitǬ> s@zH1oZA }1݈qh(6+H]'+9 3"Řh\"hTHYRJ4  Uˏ'5oMy~hIl|r'Po Q_S#8guxYBWn㸣ZRWtg^gP(8i?!PpG(g~OlJ 8^t8z6=gnh 5[pܡ\ V6 ,iMT.pn܎|K?-?zMB?NDSU~tvq: IAX3u ;$!Pڡx0ɳ;1~M2&݉~s&` ug }2:Ժi݉-u|T:# ܝI7g!B\AY#gFk~Ѯ/ET=^z >'>+Gx+`ӗm-/y].r$HHs"-|53CCF `I,aUO#J~ΆEtM.c'J aO6B50"-ڈ\7T(HquW̏GKxZ7g# }hcI'4 G֠}|C Bikt/1B}ç)p?cOU:58Ӏfм.D9ƛP6~Y<ćyNƖcYɏ¿N~r6 8#]nG?#;g5M cB-}+9F{4{u[T%,A9mcVyU0$oh'P<}'n@|.4SKD+sbx,t.\%b CsM鍍/ɗ~OKtUUլmtM咫6^X=0 ^3πA7B72nPx>Z> 1s|W7hXkJ*rLuWNTS|vc*ragF]ޠ4@|+S 'H LHD4JuE{,(`#ԇ8GyOSǂȿFM'ẁ2 iȥܾq%."tG+Hg;ǿNFTg=R X UMup? ԔWڋ9țoדYhBHRК@_ kɵ໴d)珣%} c9NSmB?I8*p1m*\LZ>l@y9'%Ѐ ֙qTЛ/Djd[ıbf,[j竇T63W҇B y""sr#s UvԧH5R,8U8#}Ib]N%2;~ݛ|;CrQ)x4)4w>b Ui SFZNUnV 6IbjjGn"5ů1EH%OS6˧`vϾ"FOLq3uߒdF7J{{._lR'=^ВOF ef+3`|rM10e4Or̍ES \%j1蛑ٙ5K= cKOmU]2v'&P&zgԋ^N0&?ڐڣkxBs1? [Q:`Jj `AU! Hi5@TqwKC*Sz57VWCCG!y1vQ"R')4eAIqy\\~?~D}RstE5Fk}̩hY*bХNa# hnļQiu`Z5Skrʐ3V"Oxr}V';Q;eQtr9qBydu񛰜äZE؅JZlAU+FR @] pd蜍s1pQEm3LԐOFa|I[das_dܠ Ms h5,J4^0"J{XEjs{(| BšUŪ3z[= j [+b~Cu;?TbУUg0<rS[pcNc,{>FpFK(tFj^ɨ1~dЅ`y0Nf^.8e46gB[ɊmMo'c>.|"ci/vdty? /f>\&r_DG'ç nXAX<Qp/|@YMo2Bg{2t ~et\-x F1Ɍb0ޱҳK]l1 @Gd@r&`f@i'd)"W\N%i\S }zbkX`5׭a'1&}3gr#vCp J? ٜC1עBmYwt6.= ݸ^;!{-nO*3T$5bܢZTvCh29ٗ -؃F4crRym CwŃ/ mEU{r<71|yTF]iuv$h|u 49nn @]dōF-o{bcO1t֧{̸In1bWT=X;7c1r@~dS. tQ[ v!W|uϛ/xm\M]!b3$n&cL<)bx$L柒it+ǶLz{1:Ռ;h-Lo&sv+q ONj1a~yŊ>6Q7SA_Ҫ-ljJUcaL%QpQUh6c %:vf-J;},_m{]o,we?|x,JPiuOW/]jI[=(/p z:Q/)M_y$9/KCdd/ r*+ ųJnhsnV}XSc Gҭ%h?,s ;5|)1Z 6c S#~g zIbjew;Nb{ YwmB{N"[Tg\y'ͮ2F^_'DcRhgQS: o8ழ"w9Q +'k5"@JG.2&{ O͖l{ݳÌ<ƨbhFr8z!3Yh>0o0e=Z֍$&W;y6#P0T'bW^ppv7%Ѐ 뵒v/7DDϘyq0񫁽SQxKOib\zvGsIVusdw A?( 1_ Ÿm}O1F2 bȾ_k]p[6~돠#Gnb7zh`ytC$#$r\Ї/p:mD"1lMc ^@r"N"hDD~ZNuu=ȈZud%a w 1pA`jͿу13U#،$1\i:?>}%,(S$J68dj5mm Mo^^A y?"[|ɞU CѨ#]Jg!*ZnG詻3ki#i#G%`v-&uL ԃKW2x xnLvf Hol t=`~f_`c 9(ly]09"OB+-cI9DadƖbܽ2o5H32bx1ɱ ie W2LflXCږ&Oqvrl/ FW2f*K qe;kQ5+L-Q6E=ˢ|ԳA+GAU CRlFZl]eRH0xS:H@?]!ɡz,9H{u\F|/r*dx%5yo1vƼJ6]0Pj'Nq} <)X"_i.+~,C1 ql'؇6:bK ʴJ󘧛'qr%spd,VM>Agp$uڮ .P2,动X&x o8-}26=MY& @a,ü0"ɡz%[!Y].6LַIe~XՄ~ 3M=;`Av|P.V+D@.i!Y]c Pjtp:X}<}Z $ci3;Hz/WBk 0z>rnbǐ\Q5ݪ71AKPt귟YL9pcC U~ }>wz(m4o9hFWӻ|B2Aa#aٱ Wt!4\]nX g SŘ:Xo! >1):Γ4=?}).UpU|&{stOǏ9#/wֺY,mq!G?qs#RgJzN?I.o!铛JJ%OmsaS 6}N`iĀ䮰8,=GB'J 6`W+M0kje|YbPtY*7 UsmJ~{o!cDgi3Vw>Fk,EnwL%njtQj^5͢+4^Iy@IDAT(ðLclt<{q$Ke_#6h,c 2Ϋ\W6?NF})1;8d{;NjݘQk:83< gjs:ucLVFk)u>ZޘEbQKcBFC>t{ޖQ 8TΏ }hXu` g}#e~`a5-s3;Ȟ-#a]EW'ƌbL}4cΩ%^7!!CsoQ S&Suu7c{u=|)l 8?p"Y8W¾ùIrMPMͧ8wCt>AAvwj@;!UT],2ǵsG//j'@'[8]%"F=Ҕ.CǴK ]l 8p"9 X*Ȗ)|Kvk'U `[q8cuxm H1gH"[Ծwv}燨3eƚt9Ғ0Z}icؾ<ލ[cs&ui}Ib;x[pHe;`5=P#G HЀfh9&љN|vU0V dV@U⏘!Z}`cFgZ_?ejߵgjFI*1{[\<W z)YL! q$HHpeC zcp>csJo. ̇"v(S݅ wfT25iΘvy;ϔ4- VJT$F`X]& ?)l 8%{3l(wPgau ķ?bS~Q`Gd-+2]-ߎynxg+.[IG2b|_r-OoԬ363zkHGʌޖX#' =ӽvW57VQ'FzcDpWW:*mMwD&{=XJm#|ޢwSsEܞ#5#+Ͳ>,i)IΎ#G QyOϼW(0}y3P rXPc-LQ\FȎ(h7t&g$[sJ'ϸd@/}'r:[9DgH@Õc4gY.uKo 5o?Xv_v(`kbNOH)|fIE5(ZKD$)ө%,菊G1ʓi 2Ζ\12b*d0_a2_]["je^72ep >fkasL0I ҽբ#^SFT^ “BgH!'o<|'S.:1Vi[+Ckr g%kމT]Z)'mTBN' :G1 8}ף9*2Su]엾/ $D]-HSb6X#G ON=ӽ,?{-dǗ3bjWXXٮP泇~<}_t6K`chdE+[#M4J|)@".H= P 9G>~gh{yՌ/YO2/tymJt2-㷾B-Ց&)xZM|}5g=zb?ɂY,w6 4` 8@~i3|^Z_?ƪ#J:0Va O `oK lvH`=ikEHJ͹eq*ɏ$ N==&Hq$HIrG(vڮW%)5V|Lo1O1(l, ؑǂ>"?*=OX~S ݲs]~IRK(Wugh888h(p" IMa)t\t w#eZ`Ok:2 t;n4@5;T)a$(0Z<?`xW$jit52O穧wi%D Ƒ@Cj7'ZRXMS≚Š@F(@Yy35| #-Жbf[ʾ+h;zwo%RKO͓kJ%1x ѺZfHW Rq$H`/cp|ՑOFn g3#j2cW0mlbDJ`{Xv/g1f @?/b`jQGV 8vG'7JV`tX<@黜1r{.w!G"_D$Յj濛ʶAV1ncEs.Z3./60P!|tO2LgH@3=}:#VS5`|XIxZ^$.%<2w;h]̼ lMƚչkg]ն cf\+pY̫cCP0Le`A'B~5 ؞)vcT/fpC[ dG" l~F}n|-2_>b?^cӗICs~ʡ_:rFy0;D>ez;#nGfD0!G@=|( l`Tu(P Z utTV':G$`?/$(bpNt<VKdj@gFV ̝TO[TbICx-z01IEya#GGPECxJ[F1olZK~R+%8fVDe"-+: ly.+2XgW}'ߴRKpSDb"SBUOYeaB<.}*!Lc${5LkBЎHq$H D͕L/=r6GEdZ_(ߖ-M`,0D |3OAgWI! *'~:`Kk'2Vyjc^o&3*eHj4KLq 8p"@h!"KQD=H5ru%?\{)egm[XaٛϸrṫR^FORNͿ)Kf@,];If HDfA\pNp8c͑1l~Ԏbd~$SF3z?F$-*t%BJ;cbpcY :pEzꧫɒ)m]Y|A[%ۇpz.#ӟ ?&;ߑ~_gљclS댵C+ų?^5MG=ɵ K^;3^$r 86%%XpDƑc~Y9%[)$kSf3Mӷ1շfܶa:*DQP{-$,^8h?L5Yn*|SXe Y1vb0$U7u[q:FkBQҗ~6p'mlthU2sVU2$ozػ*&>{$/KMEQ{Ŏv 6w "*tDz7r_W曗YGl 4O7e8![%t[Ӡ=o|=71FS3yh֝wߕwPG@{xY~g͑{nHCxIp8/2%8T|mӜ2@qun$P AwVYu1H/gQ-٭D%O3hdR[U$Y[+n, r ޤJJ0'n i F2%q%r%! Hۑ9zyIE<lU0I^@gZ]O6 =5qy%e-~9V}<,}n|^eD|iPꐌi dɪ:@.ZVS' “V'<sjt (0(r|o XT508tPO6-4@ilk@7ٍ$`{y%g3Jy4PZ޿qn=|uq3֗Bz9hMY׉Gp}I\ Nw,`Տu] lp`8X`M|{V ,96w<04%0b92HS΁:,AGrbyÍ&8˥mI)N8t'JPLR/hӂ b5d KQf>D9?Ma;.7q%XaytzLB}sqn{G#TJWl@T{V˨" @_0+4׉ ESx"w7]9+Faa]"cB4 \ҮhDž,iy I!rr=1*ۖ{K DqI^:`1{ ^Qs( B,c& @gTpX-G PGKwڍ?:a4W}5VMz~F_Ji=&cдʀ-*lGrV;M#r*W @; &SR:^YA?ѣ65<9kDa஀fȯ]^Q.88ݑjx]gK9?[:>)rqiht+,]|0PDf]%Pn[ZQRck=o,gl+;W[Ό h 5WEO<$g92 ȳ~ v Q duUn@=6džǸS1'utjZkdRxzDX}4T&<&I]h#4J.V[Z7Kv*jh*+ddJ`[pboj 85سL Ck/l䇺 ˵ p]wPQg b }wjo2Ӏ.m5LIzܻVKO$)Tg_Wu9LA7q%o$0JK9 V,1=_,sX;.[o(_'ף< {@Mjw žY}>}ޅVLP7zqMwW! D.nKJ@x }& 7T!(w%P&xUpQY'#eXq'Kur,y+GN_NLؒHt5\ף5R6šKcYkl^%]9E 42l(`drܑE]m]KޖN%5}&ρy^qzOy1U-R{]c1H:cҵ^48- !@78d<}%,}݂&׸81XwZuU8]ĶԸ9yVyb\7q%h@7>L?zEQ[_}C4Bp_F< ~@K^=K~XA7q%w$NBu<2+nMp]^ wF# wXtvK"vvvT]]Rl >˘~FCK-gaѰ.5vW@!ݽ%/+(tiʒ',ŘL,ԛͮ@n D,.Eؚ 518]E 6Cպg7T:HYd=5xK&#>Zj鍕ZX>ܩ+S^'ث.qoJ} w[&+/ Zb*d_Ty ɼ(d"p 4S:>͆~Uu4O@C? W])%.JݡI]!UAP%hP]ںOr吰ؒZeH9˻Yxo;󔿠%tj}øPM$if@qq\`{EQ`ybeKW\4,EUG1ےtx?0uf=)x X]YMjؙԆe6U#*aĞ mK]5.x3},fO K?Ya^T"gD|jM% E 1bJf5L|k@bS%XSUinгհXR82~Cҵ=%V>P?JoH`6@8ǼŃ7'}A#+fY OP t&| <5x?1 ѿ1+Fs(DT۞VO]REl ۫i: TN.mMzdDzu4mw0iƥM|bM}.Xp.wM ݍ/ "eYQxǨႎY7%PF0 Uz: ±FO&yQ?^0cb*᭫g =$X%_UD\Lcrk8Q tOZ$;gttC1qɕ_K=zS%-qk%֤ _YytjxnDЬBqZ%WeSNhr ]RcC$XZuߵf@iLۨKhuGoUzaB~T p$ Z wH&I2%?<Qq!:`@psSW''Z,q25sp>*[ڊ9^P29qˡ#Vv xϰFy+fVH~5mer7RuIIM| >[)l ]"C+6E8\`>i3W% 4^Tk ]xY&bpmHt_ӷy`ɘ!+a t_!"X-f'oG&w1 g.I)i<޺'n8_ץ@R( SXo-.^x!Ey )cՠmߵYI:WK KUf2>Y%5&!㲓>PR 4fyRG*baĕ?|KDd|EJnrY89QM -V `o%P:x=c6}~˶Gy!է>iN`]RZVxO*5JnxF-iӟnEW7W[Arju$ߑ6j,]Wn!0<\fius]{nr&[f}*F>,?P`tp?w ȶؖV ;-90 2cg? ޗKMvL[Ղ @3ױ#xxMj  @uP%ߨf3hO.v][h8ޠgMv-q_I %-820{-3ŷϤl`C?6=<&K<Vh;XU8,r10|cϔ== X^JPS&;O0 9m0DO`m(( KTg.m@Mu?uHA MAXX'̻M%,gn4L(oyBr+HjrqM_x "M*>魬qd+< vNK}0e;[;*c9Œ\C D3X7;Y1:1z6X,vVYrR/ Ͽy|| /0)#_ 4JVm͘tɕdB52,{'e,0$JLKe_'PJʹ'g?VhtBeKXkQ~=q ԡOe3Dnm"T(嵈d˿y wV0 K]y>3?Nׁ/~)g`sA`34FLdI@eʳ'Pxx^':5ޗx.ALB03F87PbWأP˒GyQ$FtxFз҄{V=tߣ :ˈ&q M3fX)oYT]Su\!.>lꆋ|0i7 >tLI䠓bݒ:}{LM;7 )DG7Ebz+6%MvÛPxj=-szXClܭ.C ;Lb*܋Sco}2,pzA&\QӆrS9 I>E&;@rݯ>=>~#g#_ʑXWS*rVssZݨS(ɢA-9K|xX,sWAݧ!kҁ+z9\bԅNv8رX]ZϗN4Y|g:8ڮf v̹$+5M8xsO| qԜ7.LV =q-RИ c'$Vj+Z#U~c%0e@%J=`UW1grUKu+uBz \0@` +JwJ3@߽G. lNCR3dlAa`{SJncgә“|N]GC1yW<]9oiT_5|`3DB1vi_0f7: ZLg7 ލC WTrOOnJCBʥk,S h=)?*qvßNMp dH󮀐":#1bTjF0ޜTu0yߕ@hӖQ|?o%o&[qL\'h>1ZPyvX ?wRz¥);͖>c:aYUߪDGo8.e]B[Xa ,QY* o>|e|1jzZ:K,bA`5ŠDDxo9-/_BB|~EHߗ>Ջ{Z-Q0OiV ?&sqb%9Tb-?&ot>/m1yUt%$[7 :2Xn3EC n䨍ÏWGP@cI#TҰRQB:'Fp y"Vu-[SnyXFfs3TFjB"8i.\ (X$/r1@@g`S E1d Fo eG/XS _A<RӲK_{]{:35& gntnL7ТD)|RFC0/ a@w&JjO MvR9aeoބ9p9Ad,js=ϒ W%>'K,ޜ{biT]81݁\{XmC2DGbY7)8 %T ɓ & Z ]{px|!4O6r5KAɕw/+c.# 8$}>O>@-qg4s]xNjXzѪ@6lPw.OnPGPOgI[`͝4*<;ɂNEL=8h7`K='9}l91;N{]Q$>FXŒ}cyMz^t^)n%|=8sIGg\K RE\Y3ѥ(,H ɍ紐JģV"C9˚%vCK 8 4BJ(W7O-6}ƨ&_H'2;;OI:?E"[SD2S$. ƥ"50iHNzX# %)RRMWҎBi/Tj+X"tyt >ʥ$(p OzT0ώ.~J:0-oؾl- ?Ɨݒ2 'q}ܝ|9 cLaEm c,va$P6tvS]Did3Р[3N8&wIDœfz>Z]};K<+Sb<-*14]@~xJ*`躊υB!yQsjba#g4f?Rt<ox^o9L+/]q%?71&=+,dёG F> % OWIW9ʲDyIAyԲ 21X;4#K(w|`4ytղݷcV=BKZ@_?GNN_NEr|: Ǖtzs][ ^SORc$ q{N[׏mx} 4ɼ㌚ W[l^ηqcVOh8EwC!M[h=+oϥ0$M#X399\ /:|E^/{ʏ/L+C 9s h=%\=Nۓx6)q(.z( %j^%_VM't.$]L.O5 `vQ'U)k[?+FJ)!!ҷYWپ-C918|4PuaQ,"CK$,:;/b)>>ndyml_'쳗_"ؔx7,Ock=lvJ3qĀAn]0죠q :W(K*/fE@e랑ͷ^aA0f>Dn2܍?@Rj>drqₔmFqpl)df#8>:J?l4Du{f}ҸK^NCecDe)`y+B)g mv4n1~Ta% LK7G>{ƥ+߱<7!$Xs0SD1;Qk7]kZ:_ OCEXA޲}]w`BQ0Xxz@䗞o w(ςh}*'ԭ . X=Pi"?v*?=x7ʜE7]W[(rH-W"ȳO-x "Cem]!--6TfVC0VP~aSF/RbٽTfjǙo2GY\i&KֶngG r/@G5~a' |Zձ~TJU8?㽡ϥ#KƩ]n.ZX!!GPч$7^*ot v>ÎX4(qcD 'U4r}\ >kG}Cj4޷j9Bߋ}~H\y0mz#Q(2i"'dtkv''b- <qf`d z.L]]> ]-Ns'AI#ꌧ10 O>=J_yi^#蔷 t* Tϩ[AyVӴRѤ 0#rZy:omKIܲE.zz|K[@eZkUG.}}+(H]\6% )d<<g!oT{$s9w~A6mK՘ Q4i63: (XƧ Q KVH! y7/߀BG1&Y '>0U͝i9i mp@5Xb-W ?UHJgxI>Xu_g >0Mj`ҝ$4u^X]Q[`@%Sfemku0 zA2E@53@/8J u.[W0TBN6H_o"UC70@ҫk|ERb XDlQWAnU3:6~ꛍo0IvB0nRK%PPܺ[uIXAͣgUCc1jZRW}tF+VYu ^Y#KWq@wHIhݟvJG^pEҀ2_W_ 61^Fk*$hxȑ_&f~W&|r2`ʜ>`n3|+q"x:I/J*On9Kn,!K58Gx ^'#|5CpKb2+Eu:JYAƢxc/q)|d\(De9_|8h)K;lE#X\*UốOkZȥuRm_ڴޛ3Ȩ v)՟`UG=l@,u[X}B.;ˣDZ[T ?z}B8`L5DOx̹$PjW۽O֯q6h&k$8.Q8XIjT2Nͥ/p*9 pnZebxk ȏ&znR+ali֊7cCv4Z)^+6疷- [QtB|NeJ{P*,QjR`m IeYWs4V2*Xr4mʾgLoPF ,.$0zKԡάsTf{ZY3Vūu =^Lݸ>}OczkRun8u՟]_e.>G}CodA MD^#7^!VčqsЩjX 7\bY!ӂޑ>QR -E`²,`: O+\y6w^ƄI߬;́Sp X5Q?0i$OnJ {,Q<#}WMmV-o Yz<6pߑ1 ;}֨pNWWT0yTijE Ncg27S KT選,1W$`Q. a@M <oI_ɖ:6~t &4N7sTz>B-@ؕ/aI}IߗyC<1c`Fj*ɱ~bۃI@Zn 4KAe+IB0G<<($@zrGhxV=d˲1i<- ~(>7Kr߼[:~A[G/ <N8f& #$[ʩ-SNwqCB'6B')?kxc`jE68$IP nΘB+R{ub{ [sC9hL$q"( Eٍ:<[c٬[&jW\Sy}@ps wi$r*yp|uo.xG7U4g_p&n ͮkydܰ=WlIFʡBY>Eal-W}FW< Fg< 0(|m9 zMg mp1Q0foֽ(mWST 4.<: 3A2kQncc3* ǬqӮODB9`so/L;FBNzRGzR:8| jC}W/e<.[tcÌ',Lq2֮,Eu=:衂&Zd/s͋婖cK\j4Ovz 握SzҽG0Yú#څ' *s``T `BTi=g;4AkTLٝp ̤;vD@!%@hUȷK QZǓ2)XOoL$0kJc5LWb#9.wV` ^AƼ ,J )aE?}%||9S5[ J}Wb%#Q9%ڗE;0q 36석fy;f-]UV1w=FkblJ g +z_nF\)[$.[^nwn{o0?SSzFU:TnŋG1<\,=z| P `)>tLqb6h*.|B+8&~s%g;>{ {&]DъOԷa?+dKwux"u<Nmoql^|-0/B*]J 7;A)0_W~^yUt6KRAZְ-b-IM[%p@  3`tHdONzVx+0 '}&NK2kebk>}:{ w4#vo8C{`K9qI:&jl>K>+'u4΍͡/iΈ] , ,XFFI] x.X%AOk7ABɔ\C$$q<}Mfxaqm ƹ ؽOޣ=3"-`ң a.J˾SL UWݍ# ӲX㽢fC%lҠ'˜|o7}b4e̪v_[%,Վl0CBOR"ήr Z<H*brb0Ú|3*#xUi'IXskf;#V'kcĺ7>BIHI2ccZU/؀JX%R]yS?VWq.zr-WغDJ^œFYN+&8".+'Ry7hGM0~aC@VD4PnFۄK'[(VO avyG56g lFe9q9V?A?^߮LX_T'G4Kqi` sm`fQ|_{+(8K.&V^%1l-.1DIxt NA9gͫu5: bhYKǭ\tQxf7_za@3fʠ9֘lU2ZG]>a܋ᩌ](>MYt 񘳌SW粞׳<1;UBB|KDK~ȣ9=~["w0u0gﴍMc<8&`Dˉ6uK)X̖%kfpCGVp4z`6ݑ/xQ8ruo-s[ÓErǔ]qmq>2։6^$Xqj#@u13F`>-kj^od;T.~O\j^pojMpUZ =`=x zRV o/uTv{/ltobm5E?zsx85QyIlr}YSL˟ L).W(4DCkǞagůW$ Ds0Jȳ*qye/sRnxˋzÒwc;VT;s&!},E}uiJlUeby2EJEJQ;=;.ދqr~ ^Kئkާh0酌գc@˥](|9+5-{Q_67@cS;+뱺aU)WpTeE8 l5`ꛇ'6 ~j8ћ 篌?Enb ԆNt\Ԣ4&CD`pPD`3kn4DKr? .Wl~T#%!r2M-:R7(a{)*jzUh!g}: Υo;V臁IÏ<`֭%-Qv…wK8 OqYS~zv+OŽa7VfsӡNT\뱎EiQtĆc!8n%P"VzeIF EK,k_Ժ] y!e rES>J@uzۛ҅[^5`OeLw£eLs`'GP1^HWjQ#~\XĞ=b# nn%;NODŽ" ƿ9px5s9 y}RSΝߓ̝X%7,)=5y-˻^nYQ@ϛަ@ꠎu\KrV:k4UĘz/n Y%SR&]E]w2"Z[+yDrA|vN*-S6zcPiCעpVyL'G䫶<,l g0G_\OfɧE|4TЮ<6< ϝ/*"^~%YSG "1XQZ i=qK{6H1Fg+`Bt47op+0~ `$+t=0v@7)<6AudW+g}+#cEl\: amX W 'ANtǖ-[t]LgQN*Ƶtȼ)%to{1 }hy0 7o&a])4X \|?ye|N'z,{/(+olVtcO6o}i&gdt~z9%ʞG1@W++ϩo2W-Ek: rZnO2:pr) Qaֵs{%/] m;lcuNhXM#]T %gM)\isj\k |^vg9t"$8[ʓ'}qHlAJۯ&U/s5 V[S|`3̬EHv',$;DxBQvB+\)ɘ$,hy0a9cr^զUTEܳ5L~국_ zJZEW Rm)f`%"LOoĐ̈5v3d%υQ3`k9{s9̧U[X%tq̪v?CK.K*bT3B,"z=<3xm!na'=фYE'D̫|?l}ZbB11;wwk3h/t,= Q$%i7U롺]f4Te=T?|@֜` ~ûaf- Gޒ/>1*(*1rCk] L`9V.NŨQkLxWx٪PDG,Z-3/-~1%hVH$o;1i2mq(d\=72LΕ?pQތ0RzP dϰgg*-Ŀ,)_)C0__: &r_R|؝5l=Xݔ]$J3_}ȟ7l624^YuG8izY\0:9tHq1.cZ"`|NF5Imn.jjBkykhGcJ-DEF3 +ς {E lFwBA;Sqb;nh](Ϫ`c+cٌØd;+Hc!iPʺfѕֺc߱d1*#yVG˱-7>X0o;>o%٤ ̥-iN=5p:L;JWpO9iN/^||r߾2)v>J 8-UΰuEd"m!1 *fʰ3Lgե1_MrZ^*p}uUF&𛣋pE׫2B בcoGwXpezZf(mU "w1= }sJaUɒw>U9_1].Tsm5v^LGe)a߇}>USRe^Zw|b 1zzǴ`9e^Ꮨ(?$L9@9fTq͙F=F>lS~䷾YO V;5 W ?CW| a9+?m{fxs C''U͋j)b ~Q#y=/]1wcDqj_:*PMJv 2'+yv+}ğ_ͱ#B5.R3"yM˜zoW]>ᓉD:ü[0fs`O̧$Q!clq͌ϔ{Kc+2*Ѽ|[ 50̂nBo)=ҀCzT0m?r9ёznv<֨`XƠ!GY 7MGMK|-Q~],nuzֲٴ9$M-\x0cqb fq-.q<3`G5]R+|&yFvzdT mc`~v\Ƃڇ[0c47FF1&INW.@t`!ixԛtުt!u ()ٞl<3[1V *ٻw* 8Rrrŋl7ُ&UAw./l aTQlCWՠFZjl:L3tDYv[߲.2 _:X3O 2_Rp|ĠF{E.xn q=T-z7)a#O<&Q.[j<ߚ{`py'/ W;v~Zw^iV_2VL5th\zi9@\k_"_ygyvAƢYl60E>%#s?a>`D}dc ,q<|빘Qu{h 4 ?c2>teLۛ?/u ǏHx{Y%uTR/[hX6~ %|^sC<@KK+3 ^TQ ؐ`HM`!$3\wvʫsh 5-\5ݎ;*qJS77+R| p Q6a}'l))H;Zg2h|w\Uiy,POؤWQFij ,&q@JjT3DŅ?{@۠ۑML4.r"s|jܒdyq|B" + =ғK#kC!A  K:/ FJpvp1y~Ô;=!~9״.&]K̇/}yۊE$y>&yOOS`wL4QG'"P?D#D̓VAP jꈌ  Vϼ8"zxu c FCF}C\]6cW8g nA+GՂ`udwG~UfLB'ZqS>v+:$8'qpg1lw\񌯍Ƈ^FܑQPxoרh%j+f=v;6V]5#DI8p²;ebqt 趆ePe@4Lz͛*(dK~'l_`,42/bmup c3ׇ2FD/ΘzL⭹Hdg|]]S?Y]?OW!M lVSwsg=8]+kb=wB\%9|4$bMTDv:לե?BzxNOsRյ9CpTZ 31h@HW6z1kCT8窙zG@ o݇XE6FRzZVAY&TǎCT#U5?&M;~;:>2Z3-\\y8#fAXݖyUոDѭ/Wb,:3FhcaǬ %+Y+8rO9G0 3hvrNY|#skh#z: ~nvdM=Mj.xWZv2͞/ٜ+{}ʮ|Tym$v8DoxoDzf(@;7*QoPLZ*_8Qg4[R~؜uݚA-V}\XOίj mL0Ea#9ՖjtpbJZo,UPnQGbftgNSI3YDءo.lk'3%;oA8ކqb`Ѷ:єmϤ&LǽOb"̻Ĉ-ۢ`1\NY%}/Yϖ.Pfߒb !o7w.1d4>:alK""O uO:FU1zψk0'gpZy/a~|4->.?6^=0ݐdԷ̻GŒ 9n)$qR>g]V[x(SP@. Y=(Jf>_1riHWU11UQM62z[qv ~F)WTcNmʈ yeЯ+ s9HG#~UM脭r`9r-lD-iR:?³1SWw0%dhg;j{hNj 8 {< z T1ȩ7sxDJ@j9(KހhwP{uMo8ԡThW*PUa8G`)LrSzZKg->6k>*^yׅ1eR!!T͇g0lb0'6~ij!&Pc$ogTb.KrUB4ڸEGyeEjɛce \zl`??FԽvI UO5!fUtf+n; j }'|(xO粞`;ѕ`7ˡ[OXw&ho`aEΪ5a^B].e̿8M !k|*k#C3ކ1o!qWJ">&{Ghd1z2'!F y\jaD~T]ey0e;J{X=L$";]سKJ 1U3+P!iQ3/z8s7caLqaE618}09XESZU1 ֮KGOC,A{I9TS ~y,m_;@ 3??i\_mq\A'edDXrC=vv?4Euّ1R|U}$,tġo닠xJn@yyf㕺!V&[%ݨ~먏O7EU@0ybVh|]dO0@1 +wb4=IUb={. o0Ywo-}pVhce0,5r#9/s"WK:ڮ .iMAjְ暏 u+-Rs.c|Y<|'<~i7B<<XT~M-_ qXו佂[xq;2M].9/m9ߟN&IS't`LS2ƄA:m0|^dT3'T4!M˓.Ln8yih&W5e1#u/949 庍)0r qqL-gHBMNspN;k"iWk0ДIr$ԝF.wtk!L+ޢjű*OSQJv޿\1.2arN=J}/%I=:U~75eGsUG;vuhtg9qp W釭4S͙y7᪆AIc{o,9}C~ (:tjI@^SOgqft MN{.7.5r0t}haZ~cl蠿1tR0x]X1R)X~ j)]14S=>gicLYM ^GWXb#Z23:ˈ僌ܖ¾VA~ZݬKid2 YLւAc(x#;թf-HTK9kpbY35{[Y.мR1Xd#UԐ1s+jUj+]w.c~ȗbL\5ޟkAHÏQR'}Xfa|tT.k\wV |䷪Ȩӭ+S0by}!oDg0P p#GZho̷27޷xQo5eQ&feD3h!"<4T\ӈ1b0Fk5`6;dQSlVZ NRUe%Sz}|J#bZ+:(~ѵ#szp5V4Tv4uɀ-;Ӆ>;>~X@[khOY5 ~!>Ǽ KŐ>!s3K2aqMcь&3"T)re2uvXm*CYG(rvB]qRTjEw9zox-P3`T,.h :T_ /5.׊|#&)wwZrp{ӊ3Fbu~!Fxmu)Y@4}$i-!/Rnrѻ>80^<2hV":{-QrЀҋx܃ 0+xs.ഠ%\FPDיDutgmˁBvCikˁD5 0nXQ !gl#ES]E` mMM6Yq!7qPFtb2nt]ק)1Gy K6r/ YQ00]7%Svt>M)fN&{Q`dEg,LnΘbmtjKjRn5! Vb4V1CN\}1!lgl oST:U]+c.ˀZk$W_Oގ:%jqdO٫نCt1' ˑ@}*r11S]W'/fJ15Syk:&ATh$;SI 婎l!\`X$%'x y4ugێei1;=#sQIE;3KtqCbtLեH'd{ˡ[k9Hm*`q3H|3keP3X_0vL ``|p\ڭ~jOPҺM&FfEIx#ph)c.wT꞊^Ʈ [2b@ SB=Qw۸0})q>Rq\xZ{=b2~8] ~GĜO:TS aEڎ2Bh]gg7$MLUn:[mUmeGȏ$F#Lᓣ(d==5 ;'d_=,D1r*v_W}]g#)ҿۏG8>oǟϖdgB从=׉,yڑo:ǃ߭IsۼH]E &s}ϤUKSSj` y}ԈB#Ly|EXw!j28<.1mUV±SvJGmtfF<̏NS{1S(ZnUW>~Kmhooa@qaȫ(D툥Iʞ8qTybA V clFF~<Ò{w3*lJ,w$nԿ;߱o7U.^dW@N<+іDZq~i 3r.9w`6[F:5Iesmq6X.3w2cs6xr]ypxa~WY:%8'֠c@̏\]!7!fSh-}1:pTF4{Ņ\O#cW%Q-e)\ͩk! ] .xtD8ۈC!{!k<1,VpV686GSw=՜=;0c#iCÙ:P}]-),F ]~<^y珕щD#=[(o=h'NlG``1yM=x6_x`uw8+WVnC n#984Bˑ_틃S9TV$`)a >נ y:::mzA.8=S{8| MfCQ>G/؄>[Aq hM! xOwfݗ-\ʜ#p\Gȣ-P,D[:|vovu1r,4F5M$EEd'lI ]ɻc\?<}}fO]!(aDOG4swBg6@c; KVsUĨj3|j/ݸ-ߋRhqȑ э(vrꐘi((S `"eFl}a'D=#{yʹvs4RpՇ5:IT9)D _#ފQP. !uom~#AfI@Ene XYu{/ nB3X6@eWq$γVx7E`+ [!GB pB*?x ;kZeA _;Zlڼhz{n)Xd֌F̍3sPʶ}6}q2|dW诸k}jn+Α{z(\-cXު7G_G@7<]hý+Ut_9](ɏ?!|8-  j]Q OYUpou3OwsiYq T~Y0'"@HzqK؋ cE_Բ|WcsyY>C 8)G^~Q{@1Z3<_,f %W׼`'FFlHɡZ/8fgD&u]*+hG̩HgO-l&G.q HH;rYHs΅x4Ǔo+"&Sh1B9Y? 1y[`A>t1\KC&zA\n|]&`P.§ hA^d,a3bgD}pv$^v(+b{1`JsQ?TC̾4ƞk%dڳRi25OBJFgzk N9*=;_w=kn`0m 9h-}薽U8"J3gk `C8zP_BH.u:"ֹ\긔 hM%WnCvzŚ-Yyo U@T2^c!G*'2)%9+}oSBY`fc#nDŽ nQog]KFO)s@ 2qz޸zN-=pz.dhHWcpo#mϡ7G.FC{U)#crX3jM$)}}znjn+&5o?DKQ۸^ꇤ)AW=0/[t`tȑ 8 ,ط3^#!rdblJzuVpyч*A`.ņ6wmlE_Kr<bHrNFpo'v|Q50+qWz>#=*XXVxx}vs+2|-0 ?[yTNvEy\ ӑw:ێoM}%z3k&l̗7F1vYwpu =™H=tx ݭtˀ_0zׄSϪIq<%#3Tx3cA8Tf$}6^0mB-7ekyea;ԗ귷g$oKO 1OfRc^~u%j/] ~ wWXÑoJh+MyX5Km(W333 A$uѬu"v0P~<HIF` &92{؆  ة~Tϝ^W.g̥+NW,~Nw/D B@!7矕zH>l΁G3y cr!G $S|u1:Z=lQ"Tⷓ'h,0y/ ,852/+f-i1si?mP$UXNq^FN&*L<(v Lw}f@CaRf-Q:չ F~|@~Jr902safܗ&Sr栣 aT `\)>'wB>͉E*ۻ3sݣ"v8͂y+c,ʫIb?$"8 JȜ,4zZ(0s#0 Щ}u:5aIr(G>p/r$pI0UHMt=SRJ5piu̹@E.yjEUUN'ӢNle~˱n9RN?*|8%dk'?ebL\әOV3gr''n0x-.NMf5Zj 79bIvq]tSHm҃фؿ?,ь_*3RK j0Љ Z`I#tZdưzg%@/UhE>z{Iz)I~lЩ YT2D^rzo$dcuCz]ntG@j@Y0\V,Cpiu#`^0GkϴTO:c7F8w d>*#psȑ vo elس(02]֗m`[j=ׄ.;fP˭ԫ^ oQ7^WhHO": 8hI qf(]Em%Pe8#@mɮv>2]vw+̃[,(Iwr{?Ba@jP>!dGbc΢c $磰2KqՔv/V+Z5 XJ۟z.=s#uٮ3Dޛ] 1 v<]嫨5JIߠ3%(?Se\3%AF '" tga¾xXeSnDh0wL_ϩEPlt)|?.WYqS@36ZΧ#?W~N&!BH Fl 5u.EqxC:s-?PM {3me-ϷV\vr$p$j'@ȧO󺣯'FKǨd·F p^骖5HK##OH۰r"(JQ?>NNDe,hԪMӡH( |ۋj D3%0B!G[vF 0+vyDƨk,K +QDЫ\cta16~@s%O_4?Σ ݢK^ Tg{/AG o~9knd-?RH#i0b h]Ы~FKqihmü-ƇNj>8hj s18aλ_rpȑeٸ[ĩx&6n*1(]7los)jS6[?~_(ck~3]vVazG aEH[{p ;;HHV'ǜ9%0qxVLa3T%z󃺞Sg|zөׇriztk[.\cN,R͗RtN@~ Su!!b[ q5F8, ގ)UǷ0_aG3w5V?OC?^֭ newkW3 BV+&30VZjta Eq_߸{WG'LP93$ຕXM{^wZ͚0Pd[ܦ:jf9F;]л0zJ(E4kG_Ap_řx@bb ~n`oGv`r$#x&n?N{p#rX/4*kvig_aMj:njjΞ~V5y(n>Eh"dſ{OR)IF p238E`};qB3^,l`IDԭ+KsƴV6?]mQ FQ]R@GK?zs?kFЧ( OhDkn50VLhq刏#;V<`}??{ooG&Md`v`*lQ%WKi&n>Tӊ;AV6SZw{My06vYkP9 /Y|8$`ep][  P#nݛr%00*h2ó4V}i̬_#m| m̜yuSQ id,?Ql1dx){h.*.~M{F(g1t육v{?ڶaxߞr{oFkDDvǣ d.S?"Y cr$p2J}2^sMlG`>| v6wS/MSÈFoژ{I8+e$\H7`=HX_zr]j)F*WO?zU#'?Ө`(يgdFFs>Ov ϾN~gF?Чt pһn&[ƒ*8Mg^d~a|fG@s95'*(ߋ/!G'w$ Rʊ^֭܌]mNT]A%=G KA>,'ڭOPF~iy28# x,oKWM>w4>Dv= C?E8~6Ug #2f?LUx˔f`zkv0oVN6lݫ*/P/(+h6'п'dWle-˫J.sȑ-x9_J_ͪ:f~nE6yE12*2LMwi5jkQw꾂/s(9|0_ \tz dUR]8 /82`KCl7#{{ISz=<QeJHL:US߰R=nx/bvS]R⟇ů0mwz6{.~ c!dzh3ډ-8'w>2{eVw2NS-%AgT[HigE_h$07`uv^GEB=swW2\C>#0=JZ 3W'O2g|L8t< ?`;oClL'SnvRaN307oؽtU|7Ud[?[ Q.PbĪ팘'S51tF Fs#SGp<2v{#sDRC3Z 5 Z^zklnMmeE$1Hlb_Kת8 uSn6S"ff]D~tWCPzBzkh3!`A:m3y/-@5"w8mEV >.>`TKp *iw=j_)iO"N$MO=PɎggKh*P57qy ;0p̙\#[}y%P/hXj`)ÈkއLB`W}?fNv}nV0Rdt/>1KR9pA= K,rE@S~_$_gN@iwJ.6mvK/P?R 58ӻK:inK\Ϡ<W~[j՘K،)MTW>2Wvq p2']ְ/}]?3ha4P9w@|w]!l?ϼV"(czN] R|`f"1m\K`W[HkZW{Ϥ^dT_6\L ߤ5X8i:8J-?5gv~!_t^{bTNr4ua*vza2}׮?'0!,?@O!S=G^/dR?d<(QTkAFgƼjg)8T$pt+[wMau3s7loFnzVOdoT=XziX4a7\ }95OEPNQ>;D`#a1!H)Le!|ٙ/?XD#Ci3uݲ?+vORmy(?.9<mMSȹ?s?}u&SZ-M qۑ16#0ږZ1\x9(p2XM OL$pAV[v?7lܔ 01J}FMoBi-7Cvc9FU}\ *?hZr?=5o8vhZ&7K_N8 y{uP`n ZLd4`Ahi;XsthEMq`31sns|@ݪa{;h/O{Y{̷8-͋"Yny^0qȑ@W@ }\'܅ v:] N"?#Dަqם} @QRFvټq0:@3y h0ກnmq6og h!4&G6CUoQTy:jw*}s bՃ.'ʂ< &"cu w3ppoz@\V¡^TXJIbJQU#Ex݊YGFyf F*.'.rd pnKXi;.p˓.4gB1-tw|#_QW>՗C  ͻ-4x0./j [F5uTC;w%g.U:u稑Ok_:l8%G2IQM]rF`yّL|LȟۛѡuH]O+nZSUml\J_ bGUpTis]¼xćxrskF&U:(p2hn76jjG+ޜjCufYcw&%1z}2p!¹<^%3s= |%x=ډ%;Dgx*3`~\*DoY P~)i5, }r \*J/#)~}@ ˉÌMtڐFX|灞i8~maÏR~~YQh I;HId8~횝2GC/3s{{8kl؀Y-0LI1R%OZYތз~w%UY{??! `˰ >2eX@A(du("lfEqPYX 2A $${z)(CeEZ^'ܥ7ki ߙ'R?QE\HE9XY6+(W&N4Ŋ1a 8Ok#ؐ67YN7Gga>ϼ0Œ#}79 '] 4 `>RAзӁPt~%QYM^b-imKe楃 VWB%3*2?}:`.n%jWܛEf@33 hgHїEēI{;ƙVN-Vrr1=[z`F/R}K[Sa /"nanG*y(_!RKTFVO0T1|`Ue2= nJ>J(\20 r`44rggҾ1|]哐1<0=FX(dtLN,;O[9 wf`Hl/`Ԣ \-Ztz~I#/ժ`S-m\c8{h?$twtf4a# 3 Ks:SFLD?"DuD%sof!c]<lZs=bX } H, \riA(I!! #t6hoS~ir>7w0uyHɿE`e?Sޱǔ$90a+G-=nOyHP?8AMk•.= ${z(M8pvA{E\ݨMpd(^vދbg-W>e=N/NFm]2{_?7 Gz[1w@f@30p%ktct3RDaˬFI9tje`!:iɭZd3l0Y9p2mf@_, ~1nM9C0@(f \8A&! o^CM/Pq`qU@LQLFG2EPQos50@}InDi[ԙcA Y'NkC̀f@]1g ,9v<ͬX6 &Y) {y?'`qZmz; 86cD U52g.sìr&Ggѫq‰ 4" ~Uw"G7<)tS4%7/EDqFVlh}2ԩ?",`QbGfs$rp95x^Ra>Mj2XI1j hӺc$p-Dd`)yV}ϫ d qqF 6-&5=`0yM*Zu&[w;€cgBQlr1py}`ƒ_/ kM#7&4Vw޳vlec'/4N6[qƇ`R|q!v8$mnL*tǺW;ϭyL)^𾙲un|5ksmힾ P! klw^:GPG 2vNjb >KƬt4O7)h7lشlEJg8Lj J.VIRGh'sZ5Z4π+]{ I߉}"cJkm2nE$<&}9N1 pGr5wړ=d:+`倲{ȨsXl8-c+U3cm!5ԇߒnfq}<`%c\I_-'rd饋Zc>蔠A<26BKn"*TR]:œ L|GmǗv۫mX|ժ3+@S%`AK g32.qFy{st"I4cz)EFMjc-ϘG<5lad#"zLn6PQLʬ)Ƿ>u(=#A?2e9GcŖ]$rr*qIԈZ U 'Yr(ׂ`V&k<%b*5K%c 5ј1NcL4"s8eM + )t@'̲-6~ϣ:nli:D`73 V\T*w# SS,1DagtFFi#yni6RS1^FyLWΐ)+Y]Gw"X(i{:-,JE `NZ*A>k<BN;LAqpPv]ھh70lwp`yyY0i&#j@"Z#=[VxBB3CD"*wk"1y#)h U<}*G2sҔp1ńP SsZSo@n:/93Z %s7jq]8u})E0PӘk~B8m}  ʦP3^f*Bv_,p%& Pg9_Yqk)m9IJ5of) nC9#\ya(*ꡬ,cRUXY?RT)UXn pu!fÉCwL#PG[^WVdoUx_dyIgO> . .o}Ń~f SsA]9e Z&ՌSaM%r8Y5sm}GNǖɸ<Õ)zjIyRVu! 4n,KPZ7xVǁwQHhקZ.e^ Ӎm__̟$ \6 F{BĎ(VN \cmMKvTϷЇG ?;ɖfRLm= xPZЂxiB40.w=JhK27f+nk&'baTOzV* 9ן1#?Vf?AYrg.^r\ KE>XFøL>P0NY!_78l1nQqz"e}d 7krn2܈~j_sLYlZD @5 E/MPS-M/fU `+AmVq/U`YQ)bt}6;>:+싓^jd˯˪)<ߧi>W-)E Y g)r{+8 ~){+~y5;EagEǏoo dCHN:?uz"yyRds߰!6r:p8{9Z\ wZv~fW\*xRCz[cB)zwbCe)bV^h|xJS`9:麟 X=^P%+CM!9,ݗx_s^e>A&`xV}O0khvs.t=Z*RfQ!bH=fzeOkl%M\8)eu5:ƫ?\VE 0}!ނs;u6{/)W+ F0RCݜ˝ԑhN^[)tQTUEy:l+0s-Zk.$fvmǔU@w$U-1d(8Oa3t NP+W'HO\& Oޱq 9Q|ZiTb͌>+}R3KRR=l~zXvtKh jL?,f?PMD =GcAwɘIW>c} ?|1ނa Nm;za&}cM"?Ic2O e)c9B 2gdN1yHO!,;&C/<=D]=ם띃%I_9 uxSg^MmLR-X"#flЫ&~ M 'ֳ` y %ȔRl&[)25rF;QV>8VIdQi~bɥD~i"Hrr YΆ(r:te ƽcy*KW3=NVvrrc1VTpwG-+:|nof4MXRo8& P|кt<3;S1Q%bqz{[o/t[0IENDB`info bplist00X$versionX$objectsY$archiverT$topU$null WNS.keysZNS.objectsV$class TnameTiconZ$classnameX$classes\NSDictionaryXNSObject_NSKeyedArchiverTroot#-27=CJR]dfhjlnsx}il32msxrijfmwy{zz{slkjk@p{z|{|tlkkljjmyz{|}{|umlkjffz{|yM-1;5:XlklUm{|M .Xlk`m{|}t Plmlk`m{|~['lk`m{|}>`mlk`m{|v%Tlk`m{|}S Flk`m{|};aml`vz|~>Nml`vz|~D=ml`v{|~Z!hlkIf{|x3 [mlUm{|~^ YmlkUfz|w&@mlkUz|}^)-ly|};si< dmllkkx{|~Q,xulP /gllkhz|zGc}tlj-8klkwz|{\O{|tkc==dkl{{vZD%4VztT8%]M'dljzyomnkq{tgbcimhgk`wz}|tlkjvz|tlju{|tlhpz{||tldqyz|tlklUwztkjmkf»Ļ€ý ĿyGM`X_‚z Lķ-Ɛ Aa%ĺ:2ƃs^ bke€Ǝ 7€ľQƕ Ļ<iŔ"AK^0d*ǀEMqŻJ \}Ļde$ĺk;R]>3@ÿ»Ā ρĻûûis32wy|wkll` x{{|ysijlkkU m{|}j(5bllkjy{|}=[ljs{|u Jkl s{~^Hmls{~Y&kly{}mbmljp{|}AVmlk f{|}n)=Anlh {{}xSt]Xlf t{sUYvX@"Bm wvorvefhef{}}xmlkmw{wljfztj¾ þ ŧ?2Xaĸ.z Ɣ wƍ?Ŭ!f ŭ@b'l Ľ# öj9o ſý¼riseup-vpn-0.24.5+ds1/providers/riseup/assets/icon.ico000077500000000000000000000102761461742244100226650ustar00rootroot00000000000000  ( @  yytkltUz'{tֲll'llyxzc{|tllزlcl lq{y{|||tlllllllv{z${||||tllllll*llt{z&{|||||tllllllɲl/llzy{}}}}}|tlmmllllòl#llyx {yonnkq{tgbcimhglllvͅ{k|vZiC9$Q4VztT]8<%^M2?&emsllzz)|||}{]}O{|tkdd=e> %emݲl+lwP{|||||zpGc}tljJ- \8lllllzy"||||||~QD+yulP M/glllزll{zZ||||||}^</tjd= *dmllllSluӋ{|||||}^ "A)K-llllllllxt{|||||w<&j@mlllllllzz|||||~_  Ymlllllllyy|||||yQ4 [mlllllllxx ||||~Z 6!hllllllllxx ||||~lEe=nllllllllxx ||||~a>Onllllllllxx ||||}^; amllllllllwx {|||~T sFllllllllllwx{||||w:%2Ulllllllllllwx{||||~a>$anlllllllllllwx{||||~\ A(lllllllllllllwx{|||||u- Qmmllllllllllwx{|||||}yM  L.Yllllllllllwv{||||||zyMF-M1_;X5_9Xllllllll{llyxzL{|||||}{|vmnmlllllllBllv{xzR{||||||tllllll߲llHl llp|wz*{a{{{|߻tlڲlͲlllWl#lllvrw y{"t#lllll?riseup-vpn-0.24.5+ds1/providers/riseup/assets/icon.png000066400000000000000000000152361461742244100226750ustar00rootroot00000000000000PNG  IHDR\rfsBIT|d pHYsetEXtSoftwarewww.inkscape.org<IDATxx՞$E:ҫ^IH =me`A)d\a%KI2IH{׽wWz~eEE8;3FSfo;{yTb&{sAAAAAAAdxNw(ٹ gQJ^QoSlnbqyȒM7b&RL@Jpt ˾&BP0NkJ)KIEJxs(3W|I羥7v+;6WR/R\nb*^I1(_}(pZ{ʬp >NqǕQ AA@P]JvCESj%(.G2OT#5L47wҮ \o(=7J殥͎xH *<AٗYo,Pu$vu[K`U}SOv%tnshefЋb9ʟi<(xyf2?+]+q4G @,J,h dg>e_BP:`s4&28ш^8ǯs{F"Y6g])e"_Z 錺aO?7aԡ ~Y+_`4}+1u{עe^F@=kp-husgLw&.7lȨOQ(Ѥ֝@F}'0RFK&lVZ; fgg]pFMuh6 4}0Ѻ7i bY8!sEA//{Qb?$]!>hd~G)4sJ>h; \300nnø0aݜy=6b[a ;dܡ\+ mOGH@ ???E?%;-wtcdA׫3Xtw'jAtpNխ;P9?{.tX ; `4A)_'RяL_0K:*/ 6Qa̭rz3ZAvQH38}eZ@=]2n-hS#flG'og4t{LeFǚ+U&tsA]RFMݦz &H~uۅ)Q\.dz}nq)? )21 on*09De'rod^? z `Z~+3',]3~7yP1ZǜH<`%#jA@<8O {j @}Z7mh~`-l{U(=%E}db ׋%b`IWGv5!@U)I!^ :k5l` ACZǭ7j0v&;{-0@G F]!abȼg?1%l y%\CX;{Vevx;RvmwiQ{Tzc":Cx]VQ״F=7<p O*>3%?]@:Ch\Ay!OL ޅ{Ջ:a?4@f^ܫ7>p\ Zނ 4Fʗ4@;w9f^Hp< wN)ůcy{F}J1Aխ(d$e]e:,WƗJ]; O.hsw;.CqQc%N1Egk,}ߠNh`40Bh-rsuG#|n=0rI6 pS3fzoF߷8)6XWOC0 7L4'y|~=0 sLI4߀o :o͇w`Vr-ve]AKCk/(vG >T{"k&|AR`s2(ۆV_5d9k{k4nxtޚuϞ K;m(Miks'XF3LFS3зdYr TjI9~J6|UY׭?{`_"}IQۯ˪kX#_f_{,;@coNE@˶?`A灁@QZ!q@zufF;Q/w h^az/-|gbFf)k'`c6*Ә5}&+܇mufthY_EC[ UYt59Th}Or0~bW6u.2#ao(5&&`-Z<Ǫ;?Z#Ůp89K'ʂowj~?5nPF@7ak #zޣ5nb/_mt V=~f,__ډLK}Hv@Yz]UW.smw4CXdC;VwkA vp~ӫG_ۭ~'?jԫS<!Y駺RI. q`!mOA@̠uwpO|79" )UNśf0`f%&@}^F bK:Fx!|0-Q+zƢ`ٻbCj%vC+ 2*\CO rs$l{29|!ure]BlA~lo/5! I y.ih$LZP_9BC0S:iVH@rCwC <(z0PR7(%`=,t@,9m0BAZ8ͯ G| # K76d5BQqM 2y/Y쁌g+7)ξ$`E;8frǃ##'!p6tѫw!@Q .T*ZP9u{oQlXQ%p@*) qn22ɺ@X0N}dF 0߇+H`أ@W͠ <8"KS6o/veJZ.*?y=%(Rś/ HxPz}͛_$*kHC}I$RAv S(sGO/ шRs4B]p-aEAJ:1Ab (J)w;rb)L  v%kه=BQo(P}?CdsRNt2…dt%Ԓw*'fO?.A, +(ܗ~2Y a!DYnP} k IpJ):ZQC / v image/svg+xml riseup-vpn-0.24.5+ds1/providers/riseup/assets/installer-logo.png000066400000000000000000000042671461742244100247020ustar00rootroot00000000000000PNG  IHDR22?gAMA a cHRMz&u0`:pQ<bKGD pHYsetIME  ")~JIDATh}lWym/ڂc` n`l,t$$&8vjg":1٠Ęܖ PdŠn"RziKoomRz{dFy99+‚E(Z&DKp݅ p^`-)h{ ^!RZRw RB ( wph0H'*p" l @$o $ /-`* ,y?L*qO!+l` W(ȂaơiG ;k@{1"{ zĿGrUn= ʿB2~dL.7Ȟf(Pjp/ ێ$K!8ƠaWOn2|aVܶ-}Սz0ω7^mH)XPN&Ӷ2e3|辠0.`cI,AwR(E!.?< k jaE,L &e]@@ƌo`\H)|~X,XYB EC{*[?u>2S(8ˣ `]DJS{N™2˽I|DR}t&a27?}ݰ*k @K]8w]fFPQ.Ax]+=o?o3-M-\Xɫ  0N?A># \/$ڋ]N'v1-k#h8 8!R"`Ӳ @2hgHM "v#Dv <1n ́1l,ZVd NSi%!@0` K4/;ry53@HpZOl,)q0 s4 ɂryxL$WPnxxwε2l~aLW ۠fم$Ռx@_B)` (v)<|~OZLڞ_쇀~Cȯ`L'AhXs#6]};l"l:0T.9g g@ @ `)RN8j#l} 9sڃ/_0񌏏a^0I@)][m\ٵ}FWl37`{.! $*ٻjZA;uAMIc١ͥKH\vo)ڣq_p) Wn*wE{=KPQ3Y8Lk%$M+fe҇1YPVfcV$vԥz%liiWO‹V#*ơ 1Jf=o`bX Xzsv|N޷(lx㿵ȤĞo HB9πq:ߴ噔ՌW`=L_Ś4]{\7PS20dG\w5gN ò1S< ϽLQ2q8%tEXtdate:create2020-11-03T11:34:41+01:00%tEXtdate:modify2020-11-03T11:34:41+01:00MtEXtSoftwarewww.inkscape.org<IENDB`riseup-vpn-0.24.5+ds1/providers/riseup/riseup-ca.crt000066400000000000000000000047361461742244100223420ustar00rootroot00000000000000-----BEGIN CERTIFICATE----- MIIFjTCCA3WgAwIBAgIBATANBgkqhkiG9w0BAQ0FADBZMRgwFgYDVQQKDA9SaXNl dXAgTmV0d29ya3MxGzAZBgNVBAsMEmh0dHBzOi8vcmlzZXVwLm5ldDEgMB4GA1UE AwwXUmlzZXVwIE5ldHdvcmtzIFJvb3QgQ0EwHhcNMTQwNDI4MDAwMDAwWhcNMjQw NDI4MDAwMDAwWjBZMRgwFgYDVQQKDA9SaXNldXAgTmV0d29ya3MxGzAZBgNVBAsM Emh0dHBzOi8vcmlzZXVwLm5ldDEgMB4GA1UEAwwXUmlzZXVwIE5ldHdvcmtzIFJv b3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC76J4ciMJ8Sg0m TP7DF2DT9zNe0Csk4myoMFC57rfJeqsAlJCv1XMzBmXrw8wq/9z7XHv6n/0sWU7a 7cF2hLR33ktjwODlx7vorU39/lXLndo492ZBhXQtG1INMShyv+nlmzO6GT7ESfNE LliFitEzwIegpMqxCIHXFuobGSCWF4N0qLHkq/SYUMoOJ96O3hmPSl1kFDRMtWXY iw1SEKjUvpyDJpVs3NGxeLCaA7bAWhDY5s5Yb2fA1o8ICAqhowurowJpW7n5ZuLK 5VNTlNy6nZpkjt1QycYvNycffyPOFm/Q/RKDlvnorJIrihPkyniV3YY5cGgP+Qkx HUOT0uLA6LHtzfiyaOqkXwc4b0ZcQD5Vbf6Prd20Ppt6ei0zazkUPwxld3hgyw58 m/4UIjG3PInWTNf293GngK2Bnz8Qx9e/6TueMSAn/3JBLem56E0WtmbLVjvko+LF PM5xA+m0BmuSJtrD1MUCXMhqYTtiOvgLBlUm5zkNxALzG+cXB28k6XikXt6MRG7q hzIPG38zwkooM55yy5i1YfcIi5NjMH6A+t4IJxxwb67MSb6UFOwg5kFokdONZcwj shczHdG9gLKSBIvrKa03Nd3W2dF9hMbRu//STcQxOailDBQCnXXfAATj9pYzdY4k ha8VCAREGAKTDAex9oXf1yRuktES4QIDAQABo2AwXjAdBgNVHQ4EFgQUC4tdmLVu f9hwfK4AGliaet5KkcgwDgYDVR0PAQH/BAQDAgIEMAwGA1UdEwQFMAMBAf8wHwYD VR0jBBgwFoAUC4tdmLVuf9hwfK4AGliaet5KkcgwDQYJKoZIhvcNAQENBQADggIB AGzL+GRnYu99zFoy0bXJKOGCF5XUXP/3gIXPRDqQf5g7Cu/jYMID9dB3No4Zmf7v qHjiSXiS8jx1j/6/Luk6PpFbT7QYm4QLs1f4BlfZOti2KE8r7KRDPIecUsUXW6P/ 3GJAVYH/+7OjA39za9AieM7+H5BELGccGrM5wfl7JeEz8in+V2ZWDzHQO4hMkiTQ 4ZckuaL201F68YpiItBNnJ9N5nHr1MRiGyApHmLXY/wvlrOpclh95qn+lG6/2jk7 3AmihLOKYMlPwPakJg4PYczm3icFLgTpjV5sq2md9bRyAg3oPGfAuWHmKj2Ikqch Td5CHKGxEEWbGUWEMP0s1A/JHWiCbDigc4Cfxhy56CWG4q0tYtnc2GMw8OAUO6Wf Xu5pYKNkzKSEtT/MrNJt44tTZWbKV/Pi/N2Fx36my7TgTUj7g3xcE9eF4JV2H/sg tsK3pwE0FEqGnT4qMFbixQmc8bGyuakr23wjMvfO7eZUxBuWYR2SkcP26sozF9PF tGhbZHQVGZUTVPyvwahMUEhbPGVerOW0IYpxkm0x/eaWdTc4vPpf/rIlgbAjarnJ UN9SaWRlWKSdP4haujnzCoJbM7dU9bjvlGZNyXEekgeT0W2qFeGGp+yyUWw8tNsp 0BuC1b7uW/bBn/xKm319wXVDvBgZgcktMolak39V7DVO -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIBYjCCAQigAwIBAgIBATAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxMRUFQIFJv b3QgQ0EwHhcNMjExMTAyMTkwNTM3WhcNMjYxMTAyMTkxMDM3WjAXMRUwEwYDVQQD EwxMRUFQIFJvb3QgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQxOXBGu+gf pjHzVteGTWL6XnFxtEnKMFpKaJkA/VOHmESzoLsZRQxt88GssxaqC01J17idQiqv zgNpedmtvFtyo0UwQzAOBgNVHQ8BAf8EBAMCAqQwEgYDVR0TAQH/BAgwBgEB/wIB ATAdBgNVHQ4EFgQUZdoUlJrCIUNFrpffAq+LQjnwEz4wCgYIKoZIzj0EAwIDSAAw RQIgfr3w4tnRG+NdI3LsGPlsRktGK20xHTzsB3orB0yC6cICIQCB+/9y8nmSStfN VUMUyk2hNd7/kC8nL222TTD7VZUtsg== -----END CERTIFICATE----- riseup-vpn-0.24.5+ds1/providers/riseup/vendor.qrc000066400000000000000000000001661461742244100217350ustar00rootroot00000000000000 assets/icon.svg riseup-vpn-0.24.5+ds1/providers/riseupbeta/000077500000000000000000000000001461742244100205625ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/providers/riseupbeta/assets000077700000000000000000000000001461742244100247512../riseup/assetsustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/providers/riseupbeta/riseupbeta-ca.crt000066400000000000000000000047361461742244100240320ustar00rootroot00000000000000-----BEGIN CERTIFICATE----- MIIFjTCCA3WgAwIBAgIBATANBgkqhkiG9w0BAQ0FADBZMRgwFgYDVQQKDA9SaXNl dXAgTmV0d29ya3MxGzAZBgNVBAsMEmh0dHBzOi8vcmlzZXVwLm5ldDEgMB4GA1UE AwwXUmlzZXVwIE5ldHdvcmtzIFJvb3QgQ0EwHhcNMTQwNDI4MDAwMDAwWhcNMjQw NDI4MDAwMDAwWjBZMRgwFgYDVQQKDA9SaXNldXAgTmV0d29ya3MxGzAZBgNVBAsM Emh0dHBzOi8vcmlzZXVwLm5ldDEgMB4GA1UEAwwXUmlzZXVwIE5ldHdvcmtzIFJv b3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC76J4ciMJ8Sg0m TP7DF2DT9zNe0Csk4myoMFC57rfJeqsAlJCv1XMzBmXrw8wq/9z7XHv6n/0sWU7a 7cF2hLR33ktjwODlx7vorU39/lXLndo492ZBhXQtG1INMShyv+nlmzO6GT7ESfNE LliFitEzwIegpMqxCIHXFuobGSCWF4N0qLHkq/SYUMoOJ96O3hmPSl1kFDRMtWXY iw1SEKjUvpyDJpVs3NGxeLCaA7bAWhDY5s5Yb2fA1o8ICAqhowurowJpW7n5ZuLK 5VNTlNy6nZpkjt1QycYvNycffyPOFm/Q/RKDlvnorJIrihPkyniV3YY5cGgP+Qkx HUOT0uLA6LHtzfiyaOqkXwc4b0ZcQD5Vbf6Prd20Ppt6ei0zazkUPwxld3hgyw58 m/4UIjG3PInWTNf293GngK2Bnz8Qx9e/6TueMSAn/3JBLem56E0WtmbLVjvko+LF PM5xA+m0BmuSJtrD1MUCXMhqYTtiOvgLBlUm5zkNxALzG+cXB28k6XikXt6MRG7q hzIPG38zwkooM55yy5i1YfcIi5NjMH6A+t4IJxxwb67MSb6UFOwg5kFokdONZcwj shczHdG9gLKSBIvrKa03Nd3W2dF9hMbRu//STcQxOailDBQCnXXfAATj9pYzdY4k ha8VCAREGAKTDAex9oXf1yRuktES4QIDAQABo2AwXjAdBgNVHQ4EFgQUC4tdmLVu f9hwfK4AGliaet5KkcgwDgYDVR0PAQH/BAQDAgIEMAwGA1UdEwQFMAMBAf8wHwYD VR0jBBgwFoAUC4tdmLVuf9hwfK4AGliaet5KkcgwDQYJKoZIhvcNAQENBQADggIB AGzL+GRnYu99zFoy0bXJKOGCF5XUXP/3gIXPRDqQf5g7Cu/jYMID9dB3No4Zmf7v qHjiSXiS8jx1j/6/Luk6PpFbT7QYm4QLs1f4BlfZOti2KE8r7KRDPIecUsUXW6P/ 3GJAVYH/+7OjA39za9AieM7+H5BELGccGrM5wfl7JeEz8in+V2ZWDzHQO4hMkiTQ 4ZckuaL201F68YpiItBNnJ9N5nHr1MRiGyApHmLXY/wvlrOpclh95qn+lG6/2jk7 3AmihLOKYMlPwPakJg4PYczm3icFLgTpjV5sq2md9bRyAg3oPGfAuWHmKj2Ikqch Td5CHKGxEEWbGUWEMP0s1A/JHWiCbDigc4Cfxhy56CWG4q0tYtnc2GMw8OAUO6Wf Xu5pYKNkzKSEtT/MrNJt44tTZWbKV/Pi/N2Fx36my7TgTUj7g3xcE9eF4JV2H/sg tsK3pwE0FEqGnT4qMFbixQmc8bGyuakr23wjMvfO7eZUxBuWYR2SkcP26sozF9PF tGhbZHQVGZUTVPyvwahMUEhbPGVerOW0IYpxkm0x/eaWdTc4vPpf/rIlgbAjarnJ UN9SaWRlWKSdP4haujnzCoJbM7dU9bjvlGZNyXEekgeT0W2qFeGGp+yyUWw8tNsp 0BuC1b7uW/bBn/xKm319wXVDvBgZgcktMolak39V7DVO -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIBYjCCAQigAwIBAgIBATAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxMRUFQIFJv b3QgQ0EwHhcNMjExMTAyMTkwNTM3WhcNMjYxMTAyMTkxMDM3WjAXMRUwEwYDVQQD EwxMRUFQIFJvb3QgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQxOXBGu+gf pjHzVteGTWL6XnFxtEnKMFpKaJkA/VOHmESzoLsZRQxt88GssxaqC01J17idQiqv zgNpedmtvFtyo0UwQzAOBgNVHQ8BAf8EBAMCAqQwEgYDVR0TAQH/BAgwBgEB/wIB ATAdBgNVHQ4EFgQUZdoUlJrCIUNFrpffAq+LQjnwEz4wCgYIKoZIzj0EAwIDSAAw RQIgfr3w4tnRG+NdI3LsGPlsRktGK20xHTzsB3orB0yC6cICIQCB+/9y8nmSStfN VUMUyk2hNd7/kC8nL222TTD7VZUtsg== -----END CERTIFICATE----- riseup-vpn-0.24.5+ds1/providers/vendor.conf000066400000000000000000000066631461742244100205760ustar00rootroot00000000000000[default] provider = bitmask [riseup] name = riseup applicationName = RiseupVPN binaryName = riseup-vpn providerURL = riseup.net auth = anon apiURL = https://api.black.riseup.net/ apiVersion = 3 caURL = https://black.riseup.net/ca.crt infoURL = https://riseup.net/vpn tosURL = https://riseup.net/tos helpURL = https://riseup.net/support geolocationAPI = https://api.black.riseup.net:9001/json askForDonations = true donateURL = https://riseup.net/vpn/donate [riseupbeta] name = RiseupBeta applicationName = RiseupVPN binaryName = riseup-vpn auth = anon providerURL = float.hexacab.org apiURL = https://api.float.hexacab.org:4430/ apiVersion = 3 caURL = https://api.float.hexacab.org/ca.crt infoURL = https://float.hexacab.org/ tosURL = https://float.hexacab.org/ helpURL = https://float.hexacab.org/ geolocationAPI = https://menshen.float.hexacab.org/json askForDonations = true donateURL = https://riseup.net/vpn/donate [calyx] name = Calyx applicationName = CalyxVPN binaryName = calyx-vpn providerURL = https://calyx.net auth = anon apiURL = https://api.calyx.net:4430/ caURL = https://calyx.net/ca.crt infoURL = https://calyx.net/ tosURL = https://calyx.net/tos helpURL = https://calyx.net/support geolocationAPI = https://api.black.riseup.net:9001/json askForDonations = false donateURL = [demolib] name = demolib applicationName = DemoLibVPN binaryName = demolib-vpn auth = sip authEmptyPass = true providerURL = vpnlib.bitmask.net apiURL = https://api.vpnlib.bitmask.net:4430/ apiVersion = 3 caURL = https://api.vpnlib.bitmask.net/ca.crt infoURL = https://libraryvpn.org/ tosURL = https://libraryvpn.org/ helpURL = https://libraryvpn.org/ geolocationAPI = https://getmyip.vpnlib.bitmask.net/json askForDonations = false donateURL = [floatdemo] name = floatdemo applicationName = FloatDemoVPN binaryName = floatdemo-vpn auth = anon providerURL = float.bitmask.net apiURL = https://api.float.bitmask.net:4430/ apiVersion = 3 caURL = https://api.float.bitmask.net/ca.crt infoURL = https://float.bitmask.net/ tosURL = https://float.bitmask.net/ helpURL = https://float.bitmask.net/ geolocationAPI = https://menshen.float.bitmask.net/json askForDonations = false donateURL = [bitmask] name = bitmask applicationName = BitmaskVPN binaryName = bitmask-vpn providerURL = https://demo.bitmask.net auth = anon apiURL = https://api.demo.bitmask.net/ apiVersion = 3 caURL = https://api.demo.bitmask.net/ca.crt infoURL = https://demo.bitmask.net/vpn tosURL = https://demo.bitmask.net/tos helpURL = https://demo.bitmask.net/support geolocationAPI = https://menshen.demo.bitmask.net/json askForDonations = false donateURL = riseup-vpn-0.24.5+ds1/providers/vendor.qrc000066400000000000000000000004671461742244100204320ustar00rootroot00000000000000 assets/icon.svg riseup/assets/icon.svg calyx/assets/icon.svg bitmask/assets/icon.svg riseup-vpn-0.24.5+ds1/scripts/000077500000000000000000000000001461742244100160715ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/scripts/ansible/000077500000000000000000000000001461742244100175065ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/scripts/ansible/README.md000066400000000000000000000065721461742244100207770ustar00rootroot00000000000000## Ansible playbooks to setup build environment for bitmask-vpn on macOS and Windows This contains two very simple ansible playbooks to create windows and macOS build hosts, We used ansible to make it scalable to more then one host at a time and for easy extensibility later. The `windows` and `macos` subdirectories contain the playbooks and documentation around how to use them. The following sections provide instructions for installing Ansible on the control node and testing these playbooks during development. ### Installing Ansible We need to install Ansible on the node from where we'll be running the playbooks, we'll need the cli tools `ansible`, `ansible-playbook` to use these playbooks. > **NOTE:** Control node needs to be a linux or macOS host, we haven't tested from an Windows control node. You can follow the official documentation for [Installing Ansible](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html) Or if you already have `python` installed (which is the case for most linux distros and macOS): ``` $ python3 -m pip install --user ansible # Additionally `ansible-lint` is another useful package to install ``` ### Developing While making changes to these playbooks its very useful to test and verify new changes locally, for this we suggest to use [`quickemu`](https://github.com/quickemu-project) to quickly spin up macOS and Windows test VMs. #### Installing `quickemu` At the time of writing this, `quickemu` only supports running on _Linux distros_. There's on-going work to support macOS but not available yet. Please look at their [README](https://github.com/quickemu-project/quickemu#------quickemu) for specific installation instructions for your OS. #### Testing workflow with `quickemu` ##### Creating a Windows 10 VM First we need to obtain the Windows 10 installation ISO, run the following commands to download the ISO: ``` $ mkdir win10 # we are creating this directory which will contain all the files needed by this VM $ cd win10 $ quickget windows 10 ``` After running the above commands, the contents of the `win10` directory should be similar to following: ``` $ ls win10 windows-10 windows-10.conf ``` More details about the `conf` file's and the directorie's contents can be found in their [README](https://github.com/quickemu-project/quickemu#------quickemu). Then start the VM and follow the usual windows setup process: ``` # ensure your inside the win10/ dir $ quickemu --vm windows-10.conf ``` ##### Creating a macOS 10.15 VM Similar to the Windows 10 VM above we first need to obtain the installation image, the following sequence of commands creates a macOS 10.15 VM: ``` $ mkdir macos-10.15 # dir to contain all the VM related files $ cd macos-10.15 $ quickget macos catalina # download the catalina (10.15) macos image # once the image is downloaded the contents of macos-10.15/ dir should look similar to following $ ls macos-10.15 macos-catalina macos-catalina.conf ``` To start the VM run the following command: ``` $ cd macos-10.15 $ quickemu --vm macos-catalina.conf ``` This will start the vm and launch _macOS installation wizard_, follow the instructions from [macOS Guest](https://github.com/quickemu-project/quickemu#macos-guest) section of the `quickemu` README to finish the installation. After creating the VM with the desired OS, follow the `README` for the specific [windows](windows/) or [macOS](macos/) playbook. riseup-vpn-0.24.5+ds1/scripts/ansible/macos/000077500000000000000000000000001461742244100206105ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/scripts/ansible/macos/README.md000066400000000000000000000040461461742244100220730ustar00rootroot00000000000000## Ansible playbook to setup Dev env for Bitmask VPN development ### Prerequisites on the target macOS host Although the playbook should work for any macOS version >= 10.15 (Catalina), it has been tested on macOS versions 10.15 and 12.6. - SSH is enabled, go to **System Settings > Sharing** and tick **Remote Login** - Ansible user for the host should be a sudoer - Public key authentication for SSH is setup ### Playbook organisation ``` ├── inventory.yaml # Example inventory file ├── requirements.yaml # Collection and roles the playbook uses ├── site.yaml # Playbook ``` It currently installs Homebrew and Qt Installer FW on the target host apart from the various development tools installed from Homebrew. All the dependencies from homebrew are defined using the `homebrew_installed_packages` variable For installing Homebrew and packages from it we make use of the `geerlingguy.mac.homebrew` role from the [mac ansible collection.](https://galaxy.ansible.com/geerlingguy/mac) The included `inventory` file is just an example file for easy testing during development > **NOTE:** The playbook doesn't add Qt, QtIFW and Golang `bin` directories to `PATH` on some macOS versions. This needs to be set by the user before running the `make` targets. To get the needed filepath for Qt and Golang `bin` directories, use `brew info `. QtIFW gets installed to a directory named _Qt_ in the user's home folder, filepath to add to `PATH` is `~/Qt/QtIFW-4.4.2/bin`. ### How to run the playbook Install the required collections and modules from ansible-galaxy: ``` $ ansible-galaxy collection install -r requirements.yaml $ ansible-galaxy role install -r requirements.yaml ``` Make sure you have a valid inventory file, update the provided `inventory.yaml` file with your VM or remote host's IP address and run: ``` $ ansible-playbook -i inventory.yaml site.yaml --private-key= --ask-become-pass ``` Or to target the localhost run: ``` $ ansible-playbook --connection=local --ask-become-pass site.yaml ``` riseup-vpn-0.24.5+ds1/scripts/ansible/macos/inventory.yaml000066400000000000000000000001231461742244100235250ustar00rootroot00000000000000all: hosts: localhost: ansible_user: testmac ansible_port: 22220 riseup-vpn-0.24.5+ds1/scripts/ansible/macos/requirements.yaml000066400000000000000000000001411461742244100242130ustar00rootroot00000000000000--- roles: - name: elliotweiser.osx-command-line-tools collections: - name: geerlingguy.mac riseup-vpn-0.24.5+ds1/scripts/ansible/macos/site.yaml000066400000000000000000000032311461742244100224370ustar00rootroot00000000000000# vi: ft=yaml.ansible --- - name: Setup go and Qt development environment in macOS hosts: - all vars: qtifw_path: "/Volumes/{{qtifw_exec_name}}" qtifw_installer_exec_path: "{{ qtifw_path }}/{{ qtifw_exec_name }}.app/Contents/MacOS/{{ qtifw_exec_name }}" qtifw_installer_name: "QtInstallerFramework-macOS-x64-{{ qtifw_version }}.dmg" qtifw_exec_name: "{{ qtifw_installer_name | splitext | first }}" qtifw_version: "4.4.2" xcode_source_path: ~/Downloads/Xcode_11.7.xip xcode_dest_path: ~/Downloads/Xcode_11.7.xip homebrew_installed_packages: - go@1.17 - make - gpg - qt5 - wget - create-dmg roles: - geerlingguy.mac.homebrew tasks: - name: Download Qt installer framework get_url: url: "https://download.qt.io/official_releases/qt-installer-framework/{{ qtifw_version }}/{{ qtifw_installer_name }}" checksum: sha256:a635013bcaa7e518400ea1acfc07f7467f60a6e3bb3e3774c9889ccc73a28c13 dest: "/tmp/{{ qtifw_installer_name }}" mode: 0644 - name: Mount the Qt installer dmg image command: argv: - hdiutil - attach - "/tmp/{{ qtifw_installer_name }}" creates: "{{ qtifw_path }}" - name: Install Qt installer framework command: argv: - "{{ qtifw_installer_exec_path }}" - "in" - "--da" - "-c" - "--al" creates: "{{ ansible_user_dir }}/Qt/QtIFW-{{ qtifw_version }}" - name: Unmount the Qt installer dmg image command: argv: - hdiutil - detach - "{{ qtifw_path }}" ignore_errors: true riseup-vpn-0.24.5+ds1/scripts/ansible/windows/000077500000000000000000000000001461742244100212005ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/scripts/ansible/windows/README.md000066400000000000000000000036511461742244100224640ustar00rootroot00000000000000## Ansible playbook to setup Dev env for Bitmask VPN development ### Prerequisites On the target windows host, we need SSH access to be enabled, default shell for SSH should be PowerShell and the user account used for Ansible should be an administrator user. - To enable OpenSSH on windows follow the [Install OpenSSH for Windows](https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse?tabs=powershell#install-openssh-for-windows)guide. - To set `PowerShell` as the default shell for OpenSSH, follow the [OpenSSH Server Configuration](https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_server_configuration) guide. - Then to enable key based access follow the [OpenSSH Key Management Guide](https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagement) The playbook has been tested to work with Windows 10. ### Playbook organisation ``` ├── inventory.yaml # Example inventory file ├── requirements.yaml # Collection and roles the playbook uses ├── site.yaml # Playbook ``` It currently installs Chocolatey, Qt and Qt Installer FW on the target host apart from the various development tools installed from Chocolatey For installing Chocolatey and packages from it we make use of the [`chocolatey.chocolatey.win_chocolatey`](https://docs.ansible.com/ansible/latest/collections/chocolatey/chocolatey/win_chocolatey_module.html) module. The included `inventory` file is just an example file for easy testing during development ### How to run the playbook Install the required collections and modules from ansible-galaxy: ``` $ ansible-galaxy collection install -r requirements.yaml ``` Make sure you have a valid inventory file, update the provided `inventory.yaml` file with your VM or remote host's IP address and run: ``` $ ansible-playbook -i inventory.yaml site.yaml --private-key= ``` riseup-vpn-0.24.5+ds1/scripts/ansible/windows/inventory.yaml000066400000000000000000000002661461742244100241250ustar00rootroot00000000000000all: hosts: localhost: ansible_host: 127.0.0.1 ansible_port: 22220 ansible_user: quickemu ansible_connection: ssh ansible_shell_type: powershell riseup-vpn-0.24.5+ds1/scripts/ansible/windows/requirements.yaml000066400000000000000000000001131461742244100246020ustar00rootroot00000000000000--- collections: - name: ansible.windows - name: chocolatey.chocolatey riseup-vpn-0.24.5+ds1/scripts/ansible/windows/site.yaml000066400000000000000000000026531461742244100230360ustar00rootroot00000000000000# vi: ft=yaml.ansible --- - name: Setup go and Qt development environment in windows hosts: - all tasks: - name: Ensure Chocolatey itself is installed, using community repo for the chocolatey.chocolatey.win_chocolatey: name: chocolatey state: present - name: Install Golang 1.17 chocolatey.chocolatey.win_chocolatey: name: golang version: '1.17' state: present - name: Install Cygwin chocolatey.chocolatey.win_chocolatey: name: cygwin state: present - name: Install build dependencies and other tools chocolatey.chocolatey.win_chocolatey: name: - qt5-default - mingw - sigcheck - wget - qt-installer-framework - make - git - curl - python3 - cyg-get state: present - name: Add cygwin, Qt and QtIFW binaries directories to PATH ansible.windows.win_path: state: present elements: - '%SystemDrive%\Qt\5.15.2\mingw81_64\bin' - '%SystemDrive%\Qt\QtIFW-4.4.2\bin' - '%SystemDrive%\tools\cygwin\bin' - name: Install python3 for cygwin environment ansible.windows.win_powershell: creates: C:\tools\cygwin\bin\python3 script: | cyg-get python3 ln -s $env:SystemDrive\tools\cygwin\bin\python $env:SystemDrive\tools\cygwin\bin\python3 riseup-vpn-0.24.5+ds1/test.pro000066400000000000000000000007471461742244100161130ustar00rootroot00000000000000TEMPLATE = app TARGET = test_ui CONFIG += warn_on qmltestcase SOURCES += \ tests/test_ui.cpp \ gui/qjsonmodel.cpp \ gui/handlers.cpp HEADERS += \ lib/libgoshim.h \ gui/qjsonmodel.h \ gui/handlers.h LIBS += -L../lib -lgoshim -lpthread RESOURCES += tests/tests.qrc DESTDIR = build OBJECTS_DIR = build/.obj RCC_DIR = build/.rcc UI_DIR = build/.ui Release:DESTDIR = build Release:OBJECTS_DIR = build/.obj Release:RCC_DIR = build/.rcc Release:UI_DIR = build/.ui riseup-vpn-0.24.5+ds1/tests/000077500000000000000000000000001461742244100155445ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/tests/.gitignore000066400000000000000000000001301461742244100175260ustar00rootroot00000000000000build/* *.h *.sh *.moc *.o *.stash Makefile test_ui moc_handlers.cpp moc_qjsonmodel.cpp riseup-vpn-0.24.5+ds1/tests/ciphersuites/000077500000000000000000000000001461742244100202535ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/tests/ciphersuites/Makefile000066400000000000000000000033661461742244100217230ustar00rootroot00000000000000GW_HORNERO=212.129.4.141 OK="Peer Connection Initiated" SLEEP_AND_KILL=sleep 3 && sudo pkill openvpn & certs: /usr/bin/curl -k https://black.riseup.net/ca.crt > /tmp/ca.crt /usr/bin/curl -k https://api.black.riseup.net/3/cert > /tmp/cert.pem test-hornero: ${SLEEP_AND_KILL} GW=${GW_HORNERO} CIPHER=AES-128-CBC PORT=53 PROTO=tcp4 ./vpn-connect.sh | grep --color ${OK} ${SLEEP_AND_KILL} GW=${GW_HORNERO} CIPHER=AES-256-GCM PORT=53 PROTO=tcp4 ./vpn-connect.sh | grep --color ${OK} ${SLEEP_AND_KILL} GW=${GW_HORNERO} CIPHER=AES-128-CBC PORT=80 PROTO=udp4 ./vpn-connect.sh | grep --color ${OK} ${SLEEP_AND_KILL} GW=${GW_HORNERO} CIPHER=AES-256-GCM PORT=80 PROTO=udp4 ./vpn-connect.sh | grep --color ${OK} ${SLEEP_AND_KILL} GW=${GW_HORNERO} CIPHER=AES-128-CBC PORT=1194 PROTO=tcp4 ./vpn-connect.sh | grep --color ${OK} ${SLEEP_AND_KILL} GW=${GW_HORNERO} CIPHER=AES-128-CBC PORT=1194 PROTO=udp4 ./vpn-connect.sh | grep --color ${OK} ${SLEEP_AND_KILL} GW=${GW_HORNERO} CIPHER=AES-256-GCM PORT=1194 PROTO=tcp4 ./vpn-connect.sh | grep --color ${OK} ${SLEEP_AND_KILL} GW=${GW_HORNERO} CIPHER=AES-256-GCM PORT=1194 PROTO=udp4 ./vpn-connect.sh | grep --color ${OK} ${SLEEP_AND_KILL} GW=${GW_HORNERO} CIPHER=AES-256-GCM PORT=1194 TLS=DHE-RSA-AES128-SHA PROTO=tcp4 ./vpn-connect-tls.sh | grep --color ${OK} ${SLEEP_AND_KILL} GW=${GW_HORNERO} CIPHER=AES-256-GCM PORT=1194 TLS=DHE-RSA-AES128-SHA PROTO=udp4 ./vpn-connect-tls.sh | grep --color ${OK} ${SLEEP_AND_KILL} GW=${GW_HORNERO} CIPHER=AES-256-GCM PORT=1194 TLS=TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384 PROTO=tcp4 ./vpn-connect-tls.sh | grep --color ${OK} ${SLEEP_AND_KILL} GW=${GW_HORNERO} CIPHER=AES-256-GCM PORT=1194 TLS=TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384 PROTO=udp4 ./vpn-connect-tls.sh | grep --color ${OK} riseup-vpn-0.24.5+ds1/tests/ciphersuites/vpn-connect-tls.sh000077500000000000000000000006071461742244100236470ustar00rootroot00000000000000#!/bin/sh set -x sudo openvpn \ --verb 3 \ --dev tun --client --tls-client \ --cipher $CIPHER \ --remote-cert-tls server --tls-version-min 1.2 \ --ca /tmp/ca.crt --cert /tmp/cert.pem --key /tmp/cert.pem \ --pull-filter ignore ifconfig-ipv6 \ --pull-filter ignore route-ipv6 \ --pull-filter ignore route \ --tls-cipher $TLS \ --remote $GW $PORT $PROTO riseup-vpn-0.24.5+ds1/tests/ciphersuites/vpn-connect.sh000077500000000000000000000005571461742244100230530ustar00rootroot00000000000000#!/bin/sh set -x sudo openvpn \ --verb 3 \ --dev tun --client --tls-client \ --cipher $CIPHER \ --remote-cert-tls server --tls-version-min 1.2 \ --ca /tmp/ca.crt --cert /tmp/cert.pem --key /tmp/cert.pem \ --pull-filter ignore ifconfig-ipv6 \ --pull-filter ignore route-ipv6 \ --pull-filter ignore route \ --remote $GW $PORT $PROTO riseup-vpn-0.24.5+ds1/tests/providers.json000066400000000000000000000022431461742244100204550ustar00rootroot00000000000000{ "default": "demolib", "providers": [ { "name": "demolib", "applicationName": "DemoLibVPN", "binaryName": "demolib-vpn", "auth": "sip", "authEmptyPass": true, "providerURL": "vpnlib.bitmask.net", "tosURL": "https://libraryvpn.org/", "helpURL": "https://libraryvpn.org/", "askForDonations": false, "donateURL": "", "apiURL": "https://api.vpnlib.bitmask.net:4430/", "geolocationAPI": "https://getmyip.vpnlib.bitmask.net/json", "caCertString": "-----BEGIN CERTIFICATE-----\nMIIBQzCB6aADAgECAgEBMAoGCCqGSM49BAMCMBcxFTATBgNVBAMTDExFQVAgUm9v\ndCBDQTAeFw0yMDA4MDYxOTA3NDRaFw0yNTA4MDYxOTEyNDRaMBcxFTATBgNVBAMT\nDExFQVAgUm9vdCBDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABIG5POr4cAdK\nkTavKpSJr8nW1V7HLpr27qKaShpk1TUy5ipaAlusmavGLxKsPE+i3AMlvf/f6ch3\n1MjAtIf5rYujJjAkMA4GA1UdDwEB/wQEAwICpDASBgNVHRMBAf8ECDAGAQH/AgEB\nMAoGCCqGSM49BAMCA0kAMEYCIQDXj280LNZbSbi0Y2WvtQrJBUw4wdm8qAeOeuH7\n6XiLEwIhAPBRsmst/ujcChsG2t6LpG+p8s4rfIfh8YLo/4qrcc5p\n-----END CERTIFICATE-----", "timeStamp": "2020-09-25 13:05:47" } ] } riseup-vpn-0.24.5+ds1/tests/test_ui.cpp000066400000000000000000000041011461742244100177200ustar00rootroot00000000000000// test_ui.cpp #include #include #include #include "../gui/qjsonmodel.h" #include "../lib/libgoshim.h" GoString _toGoStr(QString s) { const char *c = s.toUtf8().constData(); return (GoString){c, (long int)strlen(c)}; } QString getAppName(QJsonValue info, QString provider) { for (auto p: info.toArray()) { QJsonObject item = p.toObject(); if (item["name"] == provider) { return item["applicationName"].toString(); } } return "BitmaskVPN"; } class Helper : public QObject { Q_OBJECT public: explicit Helper(QObject *parent = 0); public slots: Q_INVOKABLE QString refreshContext(); }; Helper::Helper(QObject *parent) : QObject(parent) { } Q_INVOKABLE QString Helper::refreshContext() { return QString(RefreshContext()); } class Setup : public QObject { Q_OBJECT public: Setup() {} public slots: void qmlEngineAvailable(QQmlEngine *engine) { QQmlContext *ctx = engine->rootContext(); QJsonModel *model = new QJsonModel; Helper *helper = new Helper(this); /* load providers json */ QFile providerJson (":/providers.json"); providerJson.open(QIODevice::ReadOnly | QIODevice::Text); QJsonModel *providers = new QJsonModel; QByteArray providerJsonBytes = providerJson.readAll(); providers->loadJson(providerJsonBytes); QJsonValue defaultProvider = providers->json().object().value("default"); QJsonValue providersInfo = providers->json().object().value("providers"); QString appName = getAppName(providersInfo, defaultProvider.toString()); InitializeTestBitmaskContext( _toGoStr(defaultProvider.toString()), (char*)providerJsonBytes.data(), providerJsonBytes.length()); ctx->setContextProperty("jsonModel", model); ctx->setContextProperty("providers", providers); /* helper for tests */ ctx->setContextProperty("helper", helper); } }; QUICK_TEST_MAIN_WITH_SETUP(ui, Setup) #include "test_ui.moc" riseup-vpn-0.24.5+ds1/tests/tests.qrc000066400000000000000000000001521461742244100174130ustar00rootroot00000000000000 providers.json riseup-vpn-0.24.5+ds1/tests/tst_smoke.qml000066400000000000000000000011651461742244100202720ustar00rootroot00000000000000import QtQuick 2.3 import QtTest 1.0 TestCase { name: "SmokeTests" property var ctx function refresh() { ctx = JSON.parse(helper.refreshContext()) } function test_helper() { compare(Boolean(helper), true, "does helper exist?") } function test_model() { compare(Boolean(jsonModel), true, "does model exist?") } function test_loadCtx() { refresh() compare(ctx.appName, "DemoLibVPN", "can read appName?") compare(ctx.tosURL, "https://libraryvpn.org/", "can read tosURL?") compare(ctx.status, "off", "is initial status off?") } } riseup-vpn-0.24.5+ds1/tests/vercheck/000077500000000000000000000000001461742244100173365ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/tests/vercheck/.gitignore000066400000000000000000000000111461742244100213160ustar00rootroot00000000000000vercheck riseup-vpn-0.24.5+ds1/tests/vercheck/main.go000066400000000000000000000005111461742244100206060ustar00rootroot00000000000000package main import ( "0xacab.org/leap/bitmask-vpn/pkg/config/version" "fmt" ) func main() { fmt.Println("Testing version upgrade (checks network)") fmt.Println("-> set DEBUG=1 for details") u := version.CanUpgrade() switch { case u: fmt.Println("can upgrade") case !u: fmt.Println("no new version available") } } riseup-vpn-0.24.5+ds1/vendor/000077500000000000000000000000001461742244100156775ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/0xacab.org/000077500000000000000000000000001461742244100176235ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/0xacab.org/leap/000077500000000000000000000000001461742244100205445ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/0xacab.org/leap/obfsvpn/000077500000000000000000000000001461742244100222215ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/0xacab.org/leap/obfsvpn/LICENSE000066400000000000000000000024331461742244100232300ustar00rootroot00000000000000Copyright (c) 2022, LEAP All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. riseup-vpn-0.24.5+ds1/vendor/0xacab.org/leap/obfsvpn/client/000077500000000000000000000000001461742244100234775ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/0xacab.org/leap/obfsvpn/client/client.go000066400000000000000000000054311461742244100253070ustar00rootroot00000000000000// Package client exposes a socks5 proxy that uses obfs4 to communicate with the server, // with an optional kcp wire transport. package client import ( "context" "errors" "fmt" "log" "net" "sync" "0xacab.org/leap/obfsvpn/obfsvpn" "github.com/kalikaneko/socks5" "github.com/xtaci/kcp-go" ) var ( ErrAlreadyRunning = errors.New("already initialized") ErrNotRunning = errors.New("server not running") ErrBadConfig = errors.New("configuration error") ) type Client struct { ctx context.Context kcp bool SocksAddr string obfs4Cert string server *socks5.Server EventLogger EventLogger mux sync.Mutex } type EventLogger interface { Log(state string, message string) Error(message string) } func NewClient(ctx context.Context, kcp bool, socksAddr, obfs4Cert string) ObfsClient { return &Client{ ctx: ctx, kcp: kcp, obfs4Cert: obfs4Cert, SocksAddr: socksAddr, } } func (c *Client) Start() (bool, error) { c.mux.Lock() defer func() { c.log("STOPPED", "") }() if c.IsStarted() { c.error("Cannot start proxy server, already running") return false, ErrAlreadyRunning } c.server = &socks5.Server{ Addr: c.SocksAddr, BindIP: "127.0.0.1", } dialer, err := obfsvpn.NewDialerFromCert(c.obfs4Cert) if err != nil { c.error("Error getting dialer: %v\n", err) return false, err } switch { case c.kcp: dialer.DialFunc = func(network, address string) (net.Conn, error) { c.log("RUNNING", "client.Start(): dialing kcp://%s\n", address) return kcp.Dial(address) } } c.server.Dial = dialer.Dial c.log("RUNNING", "[+] Starting socks5 proxy at %s\n", c.SocksAddr) errCh := make(chan error) go c.startSocksServer(errCh) c.mux.Unlock() select { case <-c.ctx.Done(): return true, nil case err := <-errCh: c.server = nil return false, err } } func (c *Client) startSocksServer(ch chan error) { if err := c.server.ListenAndServe(); err != nil { c.error("error while listening: %v\n", err) ch <- err } } func (c *Client) Stop() (bool, error) { if !c.IsStarted() { return false, ErrNotRunning } c.mux.Lock() defer c.mux.Unlock() if err := c.server.Close(); err != nil { c.error("error while stopping: %v\n", err) return false, err } c.server = nil return true, nil } func (c *Client) log(state string, format string, a ...interface{}) { if c.EventLogger != nil { c.EventLogger.Log(state, fmt.Sprintf(format, a...)) return } if format == "" { log.Print(a...) return } log.Printf(format, a...) } func (c *Client) error(format string, a ...interface{}) { if c.EventLogger != nil { c.EventLogger.Error(fmt.Sprintf(format, a...)) return } if format == "" { log.Print(a...) return } log.Printf(format, a...) } func (c *Client) IsStarted() bool { return c.server != nil } riseup-vpn-0.24.5+ds1/vendor/0xacab.org/leap/obfsvpn/client/hopclient.go000066400000000000000000000251701461742244100260200ustar00rootroot00000000000000// Package client exposes a socks5 proxy that uses obfs4 to communicate with the server, // with an optional KCP wire transport. package client import ( "context" "encoding/json" "errors" "fmt" "log" "math/rand" "net" "sync" "time" "0xacab.org/leap/obfsvpn/obfsvpn" "github.com/xtaci/kcp-go" ) type clientState string const ( starting clientState = "STARTING" running clientState = "RUNNING" stopping clientState = "STOPPING" stopped clientState = "STOPPED" ) const ( dialGiveUpTime = 15 * time.Second ) type Obfs4Config struct { Remote string Cert string } func (oc *Obfs4Config) String() string { return oc.Remote } type HoppingConfig struct { KCP bool `json:"kcp"` ProxyAddr string `json:"proxy_addr"` Remotes []string `json:"remotes"` Certs []string `json:"certs"` PortSeed int64 `json:"port_seed"` PortCount uint `json:"port_count"` MinHopSeconds uint `json:"min_hop_seconds"` HopJitter uint `json:"hop_jitter"` } type HopClient struct { kcp bool ProxyAddr string newObfs4Conn chan net.Conn obfs4Conns []net.Conn obfs4Endpoints []*Obfs4Config obfs4Dialer *obfsvpn.Dialer obfs4Failures map[string]int32 EventLogger EventLogger state clientState ctx context.Context stop context.CancelFunc openvpnConn *net.UDPConn openvpnAddr *net.UDPAddr openvpnAddrLock sync.RWMutex outLock sync.Mutex minHopSeconds uint hopJitter uint } func NewHopClient(ctx context.Context, stop context.CancelFunc, config HoppingConfig) ObfsClient { obfs4Endpoints := generateObfs4Config(config.Remotes, config.PortSeed, config.PortCount, config.Certs) return &HopClient{ ProxyAddr: config.ProxyAddr, ctx: ctx, hopJitter: config.HopJitter, kcp: config.KCP, obfs4Failures: map[string]int32{}, minHopSeconds: config.MinHopSeconds, newObfs4Conn: make(chan net.Conn), obfs4Endpoints: obfs4Endpoints, stop: stop, state: stopped, } } // NewFFIHopClient creates a new Hopping PT client // This function is exposed to the JNI and since it's not allowed to pass objects that contain slices (other than byte slices) over the JNI // we have to pass a json formatted string and convert it to a HoppingConfig struct for further processing func NewFFIHopClient(hoppingConfig string) (*HopClient, error) { config := HoppingConfig{} err := json.Unmarshal([]byte(hoppingConfig), &config) if err != nil { return nil, err } ctx, stop := context.WithCancel(context.Background()) return NewHopClient(ctx, stop, config).(*HopClient), nil } func generateObfs4Config(remoteIPs []string, portSeed int64, portCount uint, certs []string) []*Obfs4Config { obfsEndpoints := []*Obfs4Config{} for i, obfs4Remote := range remoteIPs { // We want a non-crypto RNG so that we can share a seed // #nosec G404 r := rand.New(rand.NewSource(portSeed)) for pi := 0; pi < int(portCount); pi++ { portOffset := r.Intn(obfsvpn.PortHopRange) addr := net.JoinHostPort(obfs4Remote, fmt.Sprint(portOffset+obfsvpn.MinHopPort)) obfsEndpoints = append(obfsEndpoints, &Obfs4Config{ Cert: certs[i], Remote: addr, }) } } log.Printf("obfs4 endpoints: %+v", obfsEndpoints) return obfsEndpoints } func (c *HopClient) Start() (bool, error) { defer func() { c.state = stopped c.log("Start function ended") }() if c.IsStarted() { c.error("Cannot start proxy server, already running") return false, ErrAlreadyRunning } if len(c.obfs4Endpoints) == 0 { c.error("Cannot start proxy server, no valid endpoints") return false, ErrBadConfig } c.state = starting var err error obfs4Endpoint := c.obfs4Endpoints[0] c.obfs4Dialer, err = obfsvpn.NewDialerFromCert(obfs4Endpoint.Cert) if err != nil { return false, fmt.Errorf("could not dial obfs4 remote: %w", err) } if c.kcp { c.obfs4Dialer.DialFunc = func(network, address string) (net.Conn, error) { c.log("Dialing kcp://%s", address) return kcp.Dial(address) } } obfs4Conn, err := c.obfs4Dialer.Dial("tcp", obfs4Endpoint.Remote) if err != nil { c.error("Could not dial obfs4 remote: %v", err) } c.obfs4Conns = []net.Conn{obfs4Conn} c.state = running proxyAddr, err := net.ResolveUDPAddr("udp", c.ProxyAddr) if err != nil { return false, fmt.Errorf("cannot resolve UDP addr: %w", err) } c.openvpnConn, err = net.ListenUDP("udp", proxyAddr) if err != nil { return false, fmt.Errorf("error accepting udp connection: %w", err) } go c.hop() go c.readUDPWriteTCP() go c.readTCPWriteUDP() <-c.ctx.Done() return true, nil } // pickRandomRemote returns a random remote from the internal array. // An obvious improvement to this function is to check the number of failures in c.obfs4Failures and avoid // a given remote if it failed more than a threshold. A consecuence is that // we'll have to return an unrecoverable error from hop() if there are no // more usable remotes. If we ever want to get fancy, an even better heuristic // can be to avoid IPs that have more failures than the average. func (c *HopClient) pickRandomEndpoint() *Obfs4Config { // #nosec G404 i := rand.Intn(len(c.obfs4Endpoints)) endpoint := c.obfs4Endpoints[i] // here we could check if the number of failures is ok-ish. we can also do moving averages etc. return endpoint } func (c *HopClient) hop() { for { select { case <-c.ctx.Done(): return default: } // #nosec G404 sleepSeconds := rand.Intn(int(c.hopJitter)) + int(c.minHopSeconds) c.log("Sleeping %d seconds...", sleepSeconds) time.Sleep(time.Duration(sleepSeconds) * time.Second) obfs4Endpoint := c.pickRandomEndpoint() host, port, err := net.SplitHostPort(obfs4Endpoint.Remote) if err != nil { c.error("Could not split obfs4 remote: %v", err) continue } remoteAddrs, err := net.DefaultResolver.LookupHost(c.ctx, host) if err != nil { c.error("Could not lookup obfs4 remote: %v", err) continue } if len(remoteAddrs) <= 0 { c.error("Could not lookup obfs4 remote: %v", err) continue } newRemote := net.JoinHostPort(remoteAddrs[0], port) c.log("HOPPING to %+v", newRemote) obfs4Dialer, err := obfsvpn.NewDialerFromCert(obfs4Endpoint.Cert) if err != nil { c.error("Could not dial obfs4 remote: %v", err) return } if c.kcp { obfs4Dialer.DialFunc = func(network, address string) (net.Conn, error) { c.log("Dialing kcp://%s", address) return kcp.Dial(address) } } ctx, cancel := context.WithTimeout(context.Background(), dialGiveUpTime) defer cancel() c.log("Dialing new remote: %v", newRemote) newObfs4Conn, err := obfs4Dialer.DialContext(ctx, "tcp", newRemote) if err != nil { _, ok := c.obfs4Failures[newRemote] if ok { c.obfs4Failures[newRemote] += 1 } else { c.obfs4Failures[newRemote] = 1 } c.error("Could not dial obfs4 remote: %v (failures: %d)", err, c.obfs4Failures[newRemote]) } if newObfs4Conn == nil { c.error("Did not get obfs4: %v ", err) } else { c.outLock.Lock() c.obfs4Conns = append([]net.Conn{newObfs4Conn}, c.obfs4Conns...) c.outLock.Unlock() c.newObfs4Conn <- newObfs4Conn c.log("Dialed new remote") // If we wait sleepSeconds here to clean up the previous connection, we can guarantee that the // connection list will not grow unbounded go func() { time.Sleep(time.Duration(sleepSeconds) * time.Second) c.cleanupOldConn() }() } } } func (c *HopClient) cleanupOldConn() { c.outLock.Lock() defer c.outLock.Unlock() if len(c.obfs4Conns) > 1 { c.log("Connections: %v", len(c.obfs4Conns)) connToClose := c.obfs4Conns[len(c.obfs4Conns)-1] if connToClose != nil { c.log("Cleaning up old connection to %v", connToClose.RemoteAddr()) err := connToClose.Close() if err != nil { c.log("Error closing obfs4 connection to %v: %v", connToClose.RemoteAddr(), err) } } // Remove the connection from our tracking list c.obfs4Conns = c.obfs4Conns[:len(c.obfs4Conns)-1] } } func (c *HopClient) readUDPWriteTCP() { datagramBuffer := make([]byte, obfsvpn.MaxUDPLen) for { select { case <-c.ctx.Done(): return default: } tcpBuffer, newOpenvpnAddr, err := obfsvpn.ReadUDPFrameTCP(c.openvpnConn, datagramBuffer) if err != nil { c.error("Read err from %v: %v", c.openvpnConn.LocalAddr(), err) continue } if newOpenvpnAddr != c.openvpnAddr { c.openvpnAddrLock.Lock() c.openvpnAddr = newOpenvpnAddr c.openvpnAddrLock.Unlock() } func() { // Always write to the first connection in our list because it will be most up to date func() { conn, err := c.getUsableConnection() if err != nil { c.log("Cannot get connection: %s", err) return } _, err = conn.Write(tcpBuffer) if err != nil { c.log("Write err from %v to %v: %v", conn.LocalAddr(), conn.RemoteAddr(), err) return } }() }() } } func (c *HopClient) getUsableConnection() (net.Conn, error) { c.outLock.Lock() defer c.outLock.Unlock() if len(c.obfs4Conns) == 0 { return nil, errors.New("no usable connection") } else { return c.obfs4Conns[0], nil } } func (c *HopClient) readTCPWriteUDP() { for { select { case <-c.ctx.Done(): return default: } fromTCP := make(chan []byte, 2048) handleObfs4Conn := func(conn net.Conn) { datagramBuffer := make([]byte, obfsvpn.MaxUDPLen) lengthBuffer := make([]byte, 2) for { udpBuffer, err := obfsvpn.ReadTCPFrameUDP(conn, datagramBuffer, lengthBuffer) if err != nil { c.error("Reading/framing error: %v", err) return } fromTCP <- udpBuffer } } go func() { for { newObfs4Conn := <-c.newObfs4Conn go handleObfs4Conn(newObfs4Conn) } }() go handleObfs4Conn(c.obfs4Conns[0]) for { tcpBytes := <-fromTCP c.openvpnAddrLock.RLock() _, err := c.openvpnConn.WriteToUDP(tcpBytes, c.openvpnAddr) c.openvpnAddrLock.RUnlock() if err != nil { c.error("Write err from %v to %v: %v", c.openvpnConn.LocalAddr(), c.openvpnConn.RemoteAddr(), err) return } } } } func (c *HopClient) Stop() (bool, error) { if !c.IsStarted() { return false, ErrNotRunning } c.stop() c.state = stopped return true, nil } func (c *HopClient) log(format string, a ...interface{}) { if c.EventLogger != nil { c.EventLogger.Log(string(c.state), fmt.Sprintf(format, a...)) return } if format == "" { log.Println(a...) return } log.Printf(format+"\n", a...) } func (c *HopClient) error(format string, a ...interface{}) { if c.EventLogger != nil { c.EventLogger.Error(fmt.Sprintf(format, a...)) return } if format == "" { log.Println(a...) return } log.Printf(format+"\n", a...) } func (c *HopClient) IsStarted() bool { return c.state != stopped } riseup-vpn-0.24.5+ds1/vendor/0xacab.org/leap/obfsvpn/client/interfaces.go000066400000000000000000000001551461742244100261520ustar00rootroot00000000000000package client type ObfsClient interface { Start() (bool, error) Stop() (bool, error) IsStarted() bool } riseup-vpn-0.24.5+ds1/vendor/0xacab.org/leap/obfsvpn/obfsvpn/000077500000000000000000000000001461742244100236765ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/0xacab.org/leap/obfsvpn/obfsvpn/dialer.go000066400000000000000000000113401461742244100254640ustar00rootroot00000000000000package obfsvpn import ( "context" "encoding/base64" "errors" "fmt" "net" "strconv" //pt "git.torproject.org/pluggable-transports/goptlib.git" "gitlab.com/yawning/obfs4.git/common/ntor" "gitlab.com/yawning/obfs4.git/transports/base" "gitlab.com/yawning/obfs4.git/transports/obfs4" pt "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib" ) const ( ptArgNode = "node-id" ptArgKey = "public-key" ptArgMode = "iat-mode" ptArgCert = "cert" ) const ( certLength = ntor.NodeIDLength + ntor.PublicKeyLength ) var ( ErrCannotDial = errors.New("cannot dial") ) // IATMode determines the amount of time sent between packets. type IATMode int // Valid IAT modes. const ( IATNone IATMode = iota IATEnabled IATParanoid ) // Dialer contains options for connecting to an address and obfuscating traffic // with the obfs4 protocol. // It performs the ntor handshake on all dialed connections. type Dialer struct { Dialer net.Dialer NodeID *ntor.NodeID PublicKey *ntor.PublicKey IATMode IATMode DialFunc func(string, string) (net.Conn, error) ptArgs pt.Args clientFactory base.ClientFactory } func packCert(node *ntor.NodeID, public *ntor.PublicKey) string { cert := make([]byte, 0, certLength) cert = append(cert, node[:]...) cert = append(cert, public[:]...) return base64.RawStdEncoding.EncodeToString(cert) } func unpackCert(cert string) (*ntor.NodeID, *ntor.PublicKey, error) { if l := base64.RawStdEncoding.DecodedLen(len(cert)); l != certLength { return nil, nil, fmt.Errorf("cert length %d is invalid", l) } decoded, err := base64.RawStdEncoding.DecodeString(cert) if err != nil { return nil, nil, err } nodeID, err := ntor.NewNodeID(decoded[:ntor.NodeIDLength]) if err != nil { return nil, nil, err } pubKey, err := ntor.NewPublicKey(decoded[ntor.NodeIDLength:]) if err != nil { return nil, nil, err } return nodeID, pubKey, nil } // NewDialerFromCert creates a dialer from a node certificate. func NewDialerFromCert(cert string) (*Dialer, error) { nodeID, publicKey, err := unpackCert(cert) if err != nil { return nil, err } d := &Dialer{ NodeID: nodeID, PublicKey: publicKey, } return d, nil } // NewDialerFromArgs creates a dialer from existing pluggable transport arguments. func NewDialerFromArgs(args pt.Args) (*Dialer, error) { clientFactory, err := (&obfs4.Transport{}).ClientFactory("") if err != nil { return nil, err } nodeHex, _ := args.Get(ptArgNode) node, err := ntor.NodeIDFromHex(nodeHex) if err != nil { return nil, err } keyHex, _ := args.Get(ptArgKey) pub, err := ntor.PublicKeyFromHex(keyHex) if err != nil { return nil, err } iatModeStr, _ := args.Get(ptArgMode) iatMode, err := strconv.Atoi(iatModeStr) if err != nil { return nil, fmt.Errorf("error parsing IAT mode to integer: %w", err) } return &Dialer{ NodeID: node, PublicKey: pub, IATMode: IATMode(iatMode), ptArgs: args, clientFactory: clientFactory, }, nil } // Dial creates an outbound net.Conn and performs the ntor handshake. func (d *Dialer) Dial(network, address string) (net.Conn, error) { ctx := context.Background() return d.dial(ctx, network, address, func(network, address string) (net.Conn, error) { conn, err := d.Dialer.DialContext(ctx, network, address) if err != nil { return nil, fmt.Errorf("%w: %s", ErrCannotDial, err) } return conn.(*net.TCPConn), err }) } // DialContext creates an outbound net.Conn and performs the ntor handshake. func (d *Dialer) DialContext(ctx context.Context, network, address string) (net.Conn, error) { return d.dial(ctx, network, address, func(network, address string) (net.Conn, error) { return d.Dialer.DialContext(ctx, network, address) }) } func (d *Dialer) dial(ctx context.Context, network, address string, f func(network, address string) (net.Conn, error)) (net.Conn, error) { if d.clientFactory == nil { clientFactory, err := (&obfs4.Transport{}).ClientFactory("") if err != nil { return nil, err } d.clientFactory = clientFactory } ptArgs := d.Args() args, err := d.clientFactory.ParseArgs(&ptArgs) if err != nil { return nil, err } if d.DialFunc != nil { f = d.DialFunc } return d.clientFactory.Dial(network, address, f, args) } // Args returns the dialers options as pluggable transport arguments. // The args include valid args for the "new" (version >= 0.0.3) bridge lines // that use a unified "cert" argument as well as the legacy lines that use a // separate Node ID and Public Key. func (d *Dialer) Args() pt.Args { if d.ptArgs == nil { d.ptArgs = make(pt.Args) d.ptArgs.Add(ptArgNode, d.NodeID.Hex()) d.ptArgs.Add(ptArgKey, d.PublicKey.Hex()) d.ptArgs.Add(ptArgMode, strconv.Itoa(int(d.IATMode))) d.ptArgs.Add(ptArgCert, packCert(d.NodeID, d.PublicKey)) } return d.ptArgs } riseup-vpn-0.24.5+ds1/vendor/0xacab.org/leap/obfsvpn/obfsvpn/framing.go000066400000000000000000000034721461742244100256560ustar00rootroot00000000000000package obfsvpn import ( "bytes" "encoding/binary" "fmt" "io" "net" ) // ReadTCPFrameUDP reads from a tcp connection and returns a framed // UDP buffer func ReadTCPFrameUDP(tcpConn net.Conn, datagramBuffer []byte, lengthBuffer []byte) ([]byte, error) { defer func() { if r := recover(); r != nil { fmt.Println("Recovered panic:", r) } }() var length16 uint16 // Read the first 2 bytes from the tcp connection // These will be the length of the data _, err := io.ReadFull(tcpConn, lengthBuffer) if err != nil { return nil, fmt.Errorf("read err on %v from %v: %w", tcpConn.LocalAddr(), tcpConn.RemoteAddr(), err) } err = binary.Read(bytes.NewReader(lengthBuffer), binary.LittleEndian, &length16) if err != nil { return nil, fmt.Errorf("serialization error %w", err) } readBuffer := datagramBuffer[:length16] _, err = io.ReadFull(tcpConn, readBuffer) if err != nil { return nil, fmt.Errorf("read err on %v from %v: %w", tcpConn.LocalAddr(), tcpConn.RemoteAddr(), err) } outSlice := make([]byte, len(readBuffer)) copy(outSlice, readBuffer) return outSlice, nil } // ReadUDPFrameTCP reads from a udp connection and returns a framed // TCP buffer func ReadUDPFrameTCP(udpConn *net.UDPConn, datagramBuffer []byte) ([]byte, *net.UDPAddr, error) { var length16 uint16 n, udpAddr, err := udpConn.ReadFromUDP(datagramBuffer) if err != nil { return nil, nil, fmt.Errorf("read err on %v: %w", udpConn.LocalAddr(), err) } readBuffer := datagramBuffer[:n] outSlice := make([]byte, len(readBuffer)) copy(outSlice, readBuffer) length16 = uint16(n) lengthBuf := new(bytes.Buffer) err = binary.Write(lengthBuf, binary.LittleEndian, length16) if err != nil { return nil, nil, fmt.Errorf("serialization error %w", err) } outSlice = append(lengthBuf.Bytes(), outSlice...) return outSlice, udpAddr, nil } riseup-vpn-0.24.5+ds1/vendor/0xacab.org/leap/obfsvpn/obfsvpn/hop.go000066400000000000000000000002151461742244100250110ustar00rootroot00000000000000package obfsvpn const MinHopPort = 49152 const MaxHopPort = 65535 var PortHopRange = MaxHopPort - MinHopPort const MaxUDPLen uint = 65507 riseup-vpn-0.24.5+ds1/vendor/0xacab.org/leap/obfsvpn/obfsvpn/listener.go000066400000000000000000000103261461742244100260540ustar00rootroot00000000000000package obfsvpn import ( "bytes" "context" "crypto/rand" "encoding/hex" "log" "net" "github.com/xtaci/kcp-go" "gitlab.com/yawning/obfs4.git/common/ntor" "gitlab.com/yawning/obfs4.git/transports/base" "gitlab.com/yawning/obfs4.git/transports/obfs4" pt "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib" ) const ( netKCP = "kcp" ) // ListenConfig contains options for listening to an address. // If Seed is not set it defaults to a randomized value. // If StateDir is not set the current working directory is used. type ListenConfig struct { ListenConfig net.ListenConfig NodeID *ntor.NodeID PrivateKey *ntor.PrivateKey PublicKey string Seed [ntor.KeySeedLength]byte StateDir string } // NewListenConfig returns a ListenConfig and any error during the initialization. // perhaps this is redundant, but using the same json format than ss for debug. func NewListenConfig(nodeIDStr, privKeyStr, pubKeyStr, seedStr, stateDir string) (*ListenConfig, error) { var err error var seed [ntor.KeySeedLength]byte var nodeID *ntor.NodeID private := new(ntor.PrivateKey) if nodeID, err = ntor.NodeIDFromHex(nodeIDStr); err != nil { return nil, err } raw, err := hex.DecodeString(privKeyStr) if err != nil { return nil, err } copy(private[:], raw) s, err := hex.DecodeString(seedStr) if err != nil { return nil, err } copy(seed[:], s) lc := &ListenConfig{ NodeID: nodeID, PrivateKey: private, PublicKey: pubKeyStr, Seed: seed, StateDir: stateDir, } return lc, nil } // NewListenConfigCert creates a listener config by unpacking the node ID from // its certificate. // The private key must still be specified. func NewListenConfigCert(cert string) (*ListenConfig, error) { nodeID, _, err := unpackCert(cert) if err != nil { return nil, err } return &ListenConfig{ NodeID: nodeID, }, nil } // Wrap takes an existing net.Listener and wraps it in a listener that is // configured to perform the ntor handshake and copy data through the obfuscated conn. // Values from the inner net.ListenConfig are ignored. func (lc *ListenConfig) Wrap(ctx context.Context, ln net.Listener) (*Listener, error) { args := make(pt.Args) args.Add("node-id", lc.NodeID.Hex()) args.Add("private-key", lc.PrivateKey.Hex()) seed := ntor.KeySeed{} if bytes.Equal(lc.Seed[:], seed[:]) { _, err := rand.Read(seed[:]) if err != nil { return nil, err } } else { seed = lc.Seed } args.Add("drbg-seed", hex.EncodeToString(seed[:])) args.Add("public-key", lc.PublicKey) sf, err := (&obfs4.Transport{}).ServerFactory(lc.StateDir, &args) if err != nil { return nil, err } return &Listener{sf: sf, ln: ln}, nil } // NewServerState will create all the state (node-id, private-key, public-key, // drbg-seed, iat-mode) that the OBFS4 server needs to function. It will write // it into the passed stateDir folder. func NewServerState(stateDir string) error { args := make(pt.Args) _, err := (&obfs4.Transport{}).ServerFactory(stateDir, &args) if err != nil { return err } return err } // Listen listens on the local network address. // See func net.Dial for a description of the network and address parameters. func (lc *ListenConfig) Listen(ctx context.Context, network, address string) (*Listener, error) { var ln net.Listener var err error switch network { case netKCP: log.Println("kcp listen on", address) ln, err = kcp.Listen(address) if err != nil { return nil, err } default: ln, err = lc.ListenConfig.Listen(ctx, network, address) if err != nil { return nil, err } } return lc.Wrap(ctx, ln) } // Listener is a network listener that accepts obfuscated connections and // performs the ntor handshake on them. type Listener struct { sf base.ServerFactory ln net.Listener } // Accept waits for and returns the next connection to the listener. func (l *Listener) Accept() (net.Conn, error) { conn, err := l.ln.Accept() if err != nil { return nil, err } conn, err = l.sf.WrapConn(conn) return conn, err } // Close closes the listener. // Any blocked Accept operations will be unblocked and return errors. func (l *Listener) Close() error { return l.ln.Close() } // Addr returns the listener's network address. func (l *Listener) Addr() net.Addr { return l.ln.Addr() } riseup-vpn-0.24.5+ds1/vendor/github.com/000077500000000000000000000000001461742244100177365ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/github.com/dchest/000077500000000000000000000000001461742244100212105ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/github.com/dchest/siphash/000077500000000000000000000000001461742244100226475ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/github.com/dchest/siphash/LICENSE000066400000000000000000000156101461742244100236570ustar00rootroot00000000000000Creative Commons Legal Code CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER. Statement of Purpose The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. 1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; ii. moral rights retained by the original author(s) and/or performer(s); iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; v. rights protecting the extraction, dissemination, use and reuse of data in a Work; vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. 2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. 3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. 4. Limitations and Disclaimers. a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. riseup-vpn-0.24.5+ds1/vendor/github.com/dchest/siphash/README.md000066400000000000000000000034761461742244100241400ustar00rootroot00000000000000SipHash (Go) ============ Go implementation of SipHash-2-4, a fast short-input PRF created by Jean-Philippe Aumasson and Daniel J. Bernstein (http://131002.net/siphash/). ## Installation $ go get github.com/dchest/siphash ## Usage import "github.com/dchest/siphash" There are two ways to use this package. The slower one is to use the standard hash.Hash64 interface: h := siphash.New(key) h.Write([]byte("Hello")) sum := h.Sum(nil) // returns 8-byte []byte or sum64 := h.Sum64() // returns uint64 The faster one is to use Hash() function, which takes two uint64 parts of 16-byte key and a byte slice, and returns uint64 hash: sum64 := siphash.Hash(key0, key1, []byte("Hello")) The keys and output are little-endian. ## Functions ### func Hash(k0, k1 uint64, p []byte) uint64 Hash returns the 64-bit SipHash-2-4 of the given byte slice with two 64-bit parts of 128-bit key: k0 and k1. ### func Hash128(k0, k1 uint64, p []byte) (uint64, uint64) Hash128 returns the 128-bit SipHash-2-4 of the given byte slice with two 64-bit parts of 128-bit key: k0 and k1. Note that 128-bit SipHash is considered experimental by SipHash authors at this time. ### func New(key []byte) hash.Hash64 New returns a new hash.Hash64 computing SipHash-2-4 with 16-byte key. ### func New128(key []byte) hash.Hash New128 returns a new hash.Hash computing SipHash-2-4 with 16-byte key and 16-byte output. Note that 16-byte output is considered experimental by SipHash authors at this time. ## Public domain dedication Written by Dmitry Chestnykh and Damian Gryski. To the extent possible under law, the authors have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty. http://creativecommons.org/publicdomain/zero/1.0/ riseup-vpn-0.24.5+ds1/vendor/github.com/dchest/siphash/blocks.go000066400000000000000000000042661461742244100244630ustar00rootroot00000000000000//go:build (!arm && !amd64) || appengine || gccgo // +build !arm,!amd64 appengine gccgo package siphash func once(d *digest) { blocks(d, d.x[:]) } func finalize(d *digest) uint64 { d0 := *d once(&d0) v0, v1, v2, v3 := d0.v0, d0.v1, d0.v2, d0.v3 v2 ^= 0xff // Round 1. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) // Round 2. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) // Round 3. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) // Round 4. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) return v0 ^ v1 ^ v2 ^ v3 } func blocks(d *digest, p []uint8) { v0, v1, v2, v3 := d.v0, d.v1, d.v2, d.v3 for len(p) >= BlockSize { m := uint64(p[0]) | uint64(p[1])<<8 | uint64(p[2])<<16 | uint64(p[3])<<24 | uint64(p[4])<<32 | uint64(p[5])<<40 | uint64(p[6])<<48 | uint64(p[7])<<56 v3 ^= m // Round 1. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) // Round 2. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) v0 ^= m p = p[BlockSize:] } d.v0, d.v1, d.v2, d.v3 = v0, v1, v2, v3 } riseup-vpn-0.24.5+ds1/vendor/github.com/dchest/siphash/blocks_amd64.s000066400000000000000000000033461461742244100253110ustar00rootroot00000000000000//go:build amd64 && !appengine && !gccgo // +build amd64,!appengine,!gccgo #define ROUND(v0, v1, v2, v3) \ ADDQ v1, v0; \ RORQ $51, v1; \ ADDQ v3, v2; \ XORQ v0, v1; \ RORQ $48, v3; \ RORQ $32, v0; \ XORQ v2, v3; \ ADDQ v1, v2; \ ADDQ v3, v0; \ RORQ $43, v3; \ RORQ $47, v1; \ XORQ v0, v3; \ XORQ v2, v1; \ RORQ $32, v2 // blocks(d *digest, data []uint8) TEXT ·blocks(SB),4,$0-32 MOVQ d+0(FP), BX MOVQ 0(BX), R9 // R9 = v0 MOVQ 8(BX), R10 // R10 = v1 MOVQ 16(BX), R11 // R11 = v2 MOVQ 24(BX), R12 // R12 = v3 MOVQ p_base+8(FP), DI // DI = *uint64 MOVQ p_len+16(FP), SI // SI = nblocks XORL DX, DX // DX = index (0) SHRQ $3, SI // SI /= 8 body: CMPQ DX, SI JGE end MOVQ 0(DI)(DX*8), CX // CX = m XORQ CX, R12 ROUND(R9, R10, R11, R12) ROUND(R9, R10, R11, R12) XORQ CX, R9 ADDQ $1, DX JMP body end: MOVQ R9, 0(BX) MOVQ R10, 8(BX) MOVQ R11, 16(BX) MOVQ R12, 24(BX) RET // once(d *digest) TEXT ·once(SB),4,$0-8 MOVQ d+0(FP), BX MOVQ 0(BX), R9 // R9 = v0 MOVQ 8(BX), R10 // R10 = v1 MOVQ 16(BX), R11 // R11 = v2 MOVQ 24(BX), R12 // R12 = v3 MOVQ 48(BX), CX // CX = d.x[:] XORQ CX, R12 ROUND(R9, R10, R11, R12) ROUND(R9, R10, R11, R12) XORQ CX, R9 MOVQ R9, 0(BX) MOVQ R10, 8(BX) MOVQ R11, 16(BX) MOVQ R12, 24(BX) RET // finalize(d *digest) uint64 TEXT ·finalize(SB),4,$0-16 MOVQ d+0(FP), BX MOVQ 0(BX), R9 // R9 = v0 MOVQ 8(BX), R10 // R10 = v1 MOVQ 16(BX), R11 // R11 = v2 MOVQ 24(BX), R12 // R12 = v3 MOVQ 48(BX), CX // CX = d.x[:] XORQ CX, R12 ROUND(R9, R10, R11, R12) ROUND(R9, R10, R11, R12) XORQ CX, R9 NOTB R11 ROUND(R9, R10, R11, R12) ROUND(R9, R10, R11, R12) ROUND(R9, R10, R11, R12) ROUND(R9, R10, R11, R12) XORQ R12, R11 XORQ R10, R9 XORQ R11, R9 MOVQ R9, ret+8(FP) RET riseup-vpn-0.24.5+ds1/vendor/github.com/dchest/siphash/blocks_arm.s000066400000000000000000000051111461742244100251450ustar00rootroot00000000000000#include "textflag.h" #define ROUND()\ ADD.S R2,R0,R0;\ ADC R3,R1,R1;\ EOR R2<<13,R0,R8;\ EOR R3>>19,R8,R8;\ EOR R2>>19,R1,R11;\ EOR R3<<13,R11,R11;\ ADD.S R6,R4,R4;\ ADC R7,R5,R5;\ EOR R6<<16,R4,R2;\ EOR R7>>16,R2,R2;\ EOR R6>>16,R5,R3;\ EOR R7<<16,R3,R3;\ ADD.S R2,R1,R1;\ ADC R3,R0,R0;\ EOR R2<<21,R1,R6;\ EOR R3>>11,R6,R6;\ EOR R2>>11,R0,R7;\ EOR R3<<21,R7,R7;\ ADD.S R8,R4,R4;\ ADC R11,R5,R5;\ EOR R8<<17,R4,R2;\ EOR R11>>15,R2,R2;\ EOR R8>>15,R5,R3;\ EOR R11<<17,R3,R3;\ ADD.S R2,R1,R1;\ ADC R3,R0,R0;\ EOR R2<<13,R1,R8;\ EOR R3>>19,R8,R8;\ EOR R2>>19,R0,R11;\ EOR R3<<13,R11,R11;\ ADD.S R6,R5,R5;\ ADC R7,R4,R4;\ EOR R6<<16,R5,R2;\ EOR R7>>16,R2,R2;\ EOR R6>>16,R4,R3;\ EOR R7<<16,R3,R3;\ ADD.S R2,R0,R0;\ ADC R3,R1,R1;\ EOR R2<<21,R0,R6;\ EOR R3>>11,R6,R6;\ EOR R2>>11,R1,R7;\ EOR R3<<21,R7,R7;\ ADD.S R8,R5,R5;\ ADC R11,R4,R4;\ EOR R8<<17,R5,R2;\ EOR R11>>15,R2,R2;\ EOR R8>>15,R4,R3;\ EOR R11<<17,R3,R3; // once(d *digest) TEXT ·once(SB),NOSPLIT,$4-4 MOVW d+0(FP),R8 MOVM.IA (R8),[R0,R1,R2,R3,R4,R5,R6,R7] MOVW 48(R8),R12 MOVW 52(R8),R14 EOR R12,R6,R6 EOR R14,R7,R7 ROUND() EOR R12,R0,R0 EOR R14,R1,R1 MOVW d+0(FP),R8 MOVM.IA [R0,R1,R2,R3,R4,R5,R6,R7],(R8) RET // finalize(d *digest) uint64 TEXT ·finalize(SB),NOSPLIT,$4-12 MOVW d+0(FP),R8 MOVM.IA (R8),[R0,R1,R2,R3,R4,R5,R6,R7] MOVW 48(R8),R12 MOVW 52(R8),R14 EOR R12,R6,R6 EOR R14,R7,R7 ROUND() EOR R12,R0,R0 EOR R14,R1,R1 EOR $255,R4 ROUND() ROUND() EOR R2,R0,R0 EOR R3,R1,R1 EOR R6,R4,R4 EOR R7,R5,R5 EOR R4,R0,R0 EOR R5,R1,R1 MOVW R0,ret_lo+4(FP) MOVW R1,ret_hi+8(FP) RET // blocks(d *digest, data []uint8) TEXT ·blocks(SB),NOSPLIT,$4-16 MOVW d+0(FP),R8 MOVM.IA (R8),[R0,R1,R2,R3,R4,R5,R6,R7] MOVW p+4(FP),R9 MOVW p_len+8(FP),R11 ADD R9,R11,R11 MOVW R11,endp-4(SP) AND.S $3,R9,R8 BNE blocksunaligned blocksloop: MOVM.IA.W (R9),[R12,R14] EOR R12,R6,R6 EOR R14,R7,R7 ROUND() EOR R12,R0,R0 EOR R14,R1,R1 MOVW endp-4(SP),R11 CMP R11,R9 BLO blocksloop MOVW d+0(FP),R8 MOVM.IA [R0,R1,R2,R3,R4,R5,R6,R7],(R8) RET blocksunaligned: MOVBU.P 8(R9),R12 MOVBU -7(R9),R11 ORR R11<<8,R12,R12 MOVBU -6(R9),R11 ORR R11<<16,R12,R12 MOVBU -5(R9),R11 ORR R11<<24,R12,R12 MOVBU -4(R9),R14 MOVBU -3(R9),R11 ORR R11<<8,R14,R14 MOVBU -2(R9),R11 ORR R11<<16,R14,R14 MOVBU -1(R9),R11 ORR R11<<24,R14,R14 EOR R12,R6,R6 EOR R14,R7,R7 ROUND() EOR R12,R0,R0 EOR R14,R1,R1 MOVW endp-4(SP),R11 CMP R11,R9 BLO blocksunaligned MOVW d+0(FP),R8 MOVM.IA [R0,R1,R2,R3,R4,R5,R6,R7],(R8) RET riseup-vpn-0.24.5+ds1/vendor/github.com/dchest/siphash/blocks_asm.go000066400000000000000000000012051461742244100253110ustar00rootroot00000000000000//go:build arm || (amd64 && !appengine && !gccgo) // +build arm amd64,!appengine,!gccgo // Written in 2012 by Dmitry Chestnykh. // // To the extent possible under law, the author have dedicated all copyright // and related and neighboring rights to this software to the public domain // worldwide. This software is distributed without any warranty. // http://creativecommons.org/publicdomain/zero/1.0/ // This file contains a function definition for use with assembly implementations of Hash() package siphash //go:noescape func blocks(d *digest, p []uint8) //go:noescape func finalize(d *digest) uint64 //go:noescape func once(d *digest) riseup-vpn-0.24.5+ds1/vendor/github.com/dchest/siphash/hash.go000066400000000000000000000067311461742244100241300ustar00rootroot00000000000000//go:build (!arm && !amd64) || appengine || gccgo // +build !arm,!amd64 appengine gccgo // Written in 2012 by Dmitry Chestnykh. // // To the extent possible under law, the author have dedicated all copyright // and related and neighboring rights to this software to the public domain // worldwide. This software is distributed without any warranty. // http://creativecommons.org/publicdomain/zero/1.0/ package siphash // Hash returns the 64-bit SipHash-2-4 of the given byte slice with two 64-bit // parts of 128-bit key: k0 and k1. func Hash(k0, k1 uint64, p []byte) uint64 { // Initialization. v0 := k0 ^ 0x736f6d6570736575 v1 := k1 ^ 0x646f72616e646f6d v2 := k0 ^ 0x6c7967656e657261 v3 := k1 ^ 0x7465646279746573 t := uint64(len(p)) << 56 // Compression. for len(p) >= BlockSize { m := uint64(p[0]) | uint64(p[1])<<8 | uint64(p[2])<<16 | uint64(p[3])<<24 | uint64(p[4])<<32 | uint64(p[5])<<40 | uint64(p[6])<<48 | uint64(p[7])<<56 v3 ^= m // Round 1. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) // Round 2. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) v0 ^= m p = p[BlockSize:] } // Compress last block. switch len(p) { case 7: t |= uint64(p[6]) << 48 fallthrough case 6: t |= uint64(p[5]) << 40 fallthrough case 5: t |= uint64(p[4]) << 32 fallthrough case 4: t |= uint64(p[3]) << 24 fallthrough case 3: t |= uint64(p[2]) << 16 fallthrough case 2: t |= uint64(p[1]) << 8 fallthrough case 1: t |= uint64(p[0]) } v3 ^= t // Round 1. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) // Round 2. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) v0 ^= t // Finalization. v2 ^= 0xff // Round 1. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) // Round 2. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) // Round 3. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) // Round 4. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) return v0 ^ v1 ^ v2 ^ v3 } riseup-vpn-0.24.5+ds1/vendor/github.com/dchest/siphash/hash128.go000066400000000000000000000113251461742244100243560ustar00rootroot00000000000000//go:build (!arm && !amd64) || appengine || gccgo // +build !arm,!amd64 appengine gccgo // Written in 2012 by Dmitry Chestnykh. // Modifications 2014 for 128-bit hash function by Damian Gryski. // // To the extent possible under law, the authors have dedicated all copyright // and related and neighboring rights to this software to the public domain // worldwide. This software is distributed without any warranty. // http://creativecommons.org/publicdomain/zero/1.0/ package siphash // Hash returns the 128-bit SipHash-2-4 of the given byte slice with two 64-bit // parts of 128-bit key: k0 and k1. // // Note that 128-bit SipHash is considered experimental by SipHash authors at this time. func Hash128(k0, k1 uint64, p []byte) (uint64, uint64) { // Initialization. v0 := k0 ^ 0x736f6d6570736575 v1 := k1 ^ 0x646f72616e646f6d v2 := k0 ^ 0x6c7967656e657261 v3 := k1 ^ 0x7465646279746573 t := uint64(len(p)) << 56 v1 ^= 0xee // Compression. for len(p) >= BlockSize { m := uint64(p[0]) | uint64(p[1])<<8 | uint64(p[2])<<16 | uint64(p[3])<<24 | uint64(p[4])<<32 | uint64(p[5])<<40 | uint64(p[6])<<48 | uint64(p[7])<<56 v3 ^= m // Round 1. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) // Round 2. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) v0 ^= m p = p[BlockSize:] } // Compress last block. switch len(p) { case 7: t |= uint64(p[6]) << 48 fallthrough case 6: t |= uint64(p[5]) << 40 fallthrough case 5: t |= uint64(p[4]) << 32 fallthrough case 4: t |= uint64(p[3]) << 24 fallthrough case 3: t |= uint64(p[2]) << 16 fallthrough case 2: t |= uint64(p[1]) << 8 fallthrough case 1: t |= uint64(p[0]) } v3 ^= t // Round 1. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) // Round 2. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) v0 ^= t // Finalization. v2 ^= 0xee // Round 1. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) // Round 2. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) // Round 3. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) // Round 4. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) r0 := v0 ^ v1 ^ v2 ^ v3 v1 ^= 0xdd // Round 1. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) // Round 2. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) // Round 3. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) // Round 4. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) r1 := v0 ^ v1 ^ v2 ^ v3 return r0, r1 } riseup-vpn-0.24.5+ds1/vendor/github.com/dchest/siphash/hash128_amd64.s000066400000000000000000000103511461742244100252040ustar00rootroot00000000000000//go:build amd64 && !appengine && !gccgo // +build amd64,!appengine,!gccgo // This is a translation of the gcc output of FloodyBerry's pure-C public // domain siphash implementation at https://github.com/floodyberry/siphash // This assembly code has been modified from the 64-bit output to the experiment 128-bit output. // SI = v0 // AX = v1 // CX = v2 // DX = v3 // func Hash128(k0, k1 uint64, b []byte) (r0 uint64, r1 uint64) TEXT ·Hash128(SB),4,$0-56 MOVQ k0+0(FP),CX MOVQ $0x736F6D6570736575,R9 MOVQ k1+8(FP),DI MOVQ $0x6C7967656E657261,BX MOVQ $0x646F72616E646F6D,AX MOVQ b_len+24(FP),DX XORQ $0xEE,AX MOVQ DX,R11 MOVQ DX,R10 XORQ CX,R9 XORQ CX,BX MOVQ $0x7465646279746573,CX XORQ DI,AX XORQ DI,CX SHLQ $0x38,R11 XORQ DI,DI MOVQ b_base+16(FP),SI ANDQ $0xFFFFFFFFFFFFFFF8,R10 JE afterLoop XCHGQ AX,AX loopBody: MOVQ 0(SI)(DI*1),R8 ADDQ AX,R9 RORQ $0x33,AX XORQ R9,AX RORQ $0x20,R9 ADDQ $0x8,DI XORQ R8,CX ADDQ CX,BX RORQ $0x30,CX XORQ BX,CX ADDQ AX,BX RORQ $0x2F,AX ADDQ CX,R9 RORQ $0x2B,CX XORQ BX,AX XORQ R9,CX RORQ $0x20,BX ADDQ AX,R9 ADDQ CX,BX RORQ $0x33,AX RORQ $0x30,CX XORQ R9,AX XORQ BX,CX RORQ $0x20,R9 ADDQ AX,BX ADDQ CX,R9 RORQ $0x2F,AX RORQ $0x2B,CX XORQ BX,AX RORQ $0x20,BX XORQ R9,CX XORQ R8,R9 CMPQ R10,DI JA loopBody afterLoop: ANDL $7, DX JZ afterSwitch // no support for jump tables CMPQ DX,$0x7 JE sw7 CMPQ DX,$0x6 JE sw6 CMPQ DX,$0x5 JE sw5 CMPQ DX,$0x4 JE sw4 CMPQ DX,$0x3 JE sw3 CMPQ DX,$0x2 JE sw2 JMP sw1 sw7: MOVBQZX 6(SI)(DI*1),DX SHLQ $0x30,DX ORQ DX,R11 sw6: MOVBQZX 0x5(SI)(DI*1),DX SHLQ $0x28,DX ORQ DX,R11 sw5: MOVBQZX 0x4(SI)(DI*1),DX SHLQ $0x20,DX ORQ DX,R11 sw4: MOVBQZX 0x3(SI)(DI*1),DX SHLQ $0x18,DX ORQ DX,R11 sw3: MOVBQZX 0x2(SI)(DI*1),DX SHLQ $0x10,DX ORQ DX,R11 sw2: MOVBQZX 0x1(SI)(DI*1),DX SHLQ $0x8,DX ORQ DX,R11 sw1: MOVBQZX 0(SI)(DI*1),DX ORQ DX,R11 afterSwitch: LEAQ (AX)(R9*1),SI XORQ R11,CX RORQ $0x33,AX ADDQ CX,BX MOVQ CX,DX XORQ SI,AX RORQ $0x30,DX RORQ $0x20,SI LEAQ 0(BX)(AX*1),CX XORQ BX,DX RORQ $0x2F,AX ADDQ DX,SI RORQ $0x2B,DX XORQ CX,AX XORQ SI,DX RORQ $0x20,CX ADDQ AX,SI RORQ $0x33,AX ADDQ DX,CX XORQ SI,AX RORQ $0x30,DX RORQ $0x20,SI XORQ CX,DX ADDQ AX,CX RORQ $0x2F,AX ADDQ DX,SI XORQ CX,AX RORQ $0x2B,DX RORQ $0x20,CX XORQ SI,DX XORQ R11,SI XORB $0xEE,CL ADDQ AX,SI RORQ $0x33,AX ADDQ DX,CX RORQ $0x30,DX XORQ SI,AX XORQ CX,DX RORQ $0x20,SI ADDQ AX,CX ADDQ DX,SI RORQ $0x2F,AX RORQ $0x2B,DX XORQ CX,AX XORQ SI,DX RORQ $0x20,CX ADDQ AX,SI ADDQ DX,CX RORQ $0x33,AX RORQ $0x30,DX XORQ SI,AX RORQ $0x20,SI XORQ CX,DX ADDQ AX,CX RORQ $0x2F,AX ADDQ DX,SI RORQ $0x2B,DX XORQ CX,AX XORQ SI,DX RORQ $0x20,CX ADDQ AX,SI ADDQ DX,CX RORQ $0x33,AX RORQ $0x30,DX XORQ CX,DX XORQ SI,AX RORQ $0x20,SI ADDQ DX,SI ADDQ AX,CX RORQ $0x2F,AX XORQ CX,AX RORQ $0x2B,DX RORQ $0x20,CX XORQ SI,DX // gcc optimized the tail end of this function differently. However, // we need to preserve out registers to carry out the second stage of // the finalization. This is a duplicate of an earlier finalization // round. ADDQ AX,SI RORQ $0x33,AX ADDQ DX,CX RORQ $0x30,DX XORQ SI,AX XORQ CX,DX RORQ $0x20,SI ADDQ AX,CX ADDQ DX,SI RORQ $0x2F,AX RORQ $0x2B,DX XORQ CX,AX XORQ SI,DX RORQ $0x20,CX // Stuff the result into BX instead of AX as gcc had done MOVQ SI,BX XORQ AX,BX XORQ DX,BX XORQ CX,BX MOVQ BX,ret+40(FP) // Start the second finalization round XORB $0xDD,AL ADDQ AX,SI RORQ $0x33,AX ADDQ DX,CX RORQ $0x30,DX XORQ SI,AX XORQ CX,DX RORQ $0x20,SI ADDQ AX,CX ADDQ DX,SI RORQ $0x2F,AX RORQ $0x2B,DX XORQ CX,AX XORQ SI,DX RORQ $0x20,CX ADDQ AX,SI ADDQ DX,CX RORQ $0x33,AX RORQ $0x30,DX XORQ SI,AX RORQ $0x20,SI XORQ CX,DX ADDQ AX,CX RORQ $0x2F,AX ADDQ DX,SI RORQ $0x2B,DX XORQ CX,AX XORQ SI,DX RORQ $0x20,CX ADDQ AX,SI ADDQ DX,CX RORQ $0x33,AX RORQ $0x30,DX XORQ CX,DX XORQ SI,AX RORQ $0x20,SI ADDQ DX,SI ADDQ AX,CX RORQ $0x2F,AX XORQ CX,AX RORQ $0x2B,DX RORQ $0x20,CX XORQ SI,DX ADDQ AX,SI RORQ $0x33,AX ADDQ DX,CX RORQ $0x30,DX XORQ SI,AX XORQ CX,DX RORQ $0x20,SI ADDQ AX,CX ADDQ DX,SI RORQ $0x2F,AX RORQ $0x2B,DX XORQ CX,AX XORQ SI,DX RORQ $0x20,CX MOVQ SI,BX XORQ AX,BX XORQ DX,BX XORQ CX,BX MOVQ BX,ret1+48(FP) RET riseup-vpn-0.24.5+ds1/vendor/github.com/dchest/siphash/hash_amd64.s000066400000000000000000000055561461742244100247640ustar00rootroot00000000000000//go:build amd64 && !appengine && !gccgo // +build amd64,!appengine,!gccgo // This is a translation of the gcc output of FloodyBerry's pure-C public // domain siphash implementation at https://github.com/floodyberry/siphash // func Hash(k0, k1 uint64, b []byte) uint64 TEXT ·Hash(SB),4,$0-48 MOVQ k0+0(FP),CX MOVQ $0x736F6D6570736575,R9 MOVQ k1+8(FP),DI MOVQ $0x6C7967656E657261,BX MOVQ $0x646F72616E646F6D,AX MOVQ b_len+24(FP),DX MOVQ DX,R11 MOVQ DX,R10 XORQ CX,R9 XORQ CX,BX MOVQ $0x7465646279746573,CX XORQ DI,AX XORQ DI,CX SHLQ $0x38,R11 XORQ DI,DI MOVQ b_base+16(FP),SI ANDQ $0xFFFFFFFFFFFFFFF8,R10 JE afterLoop XCHGQ AX,AX loopBody: MOVQ 0(SI)(DI*1),R8 ADDQ AX,R9 RORQ $0x33,AX XORQ R9,AX RORQ $0x20,R9 ADDQ $0x8,DI XORQ R8,CX ADDQ CX,BX RORQ $0x30,CX XORQ BX,CX ADDQ AX,BX RORQ $0x2F,AX ADDQ CX,R9 RORQ $0x2B,CX XORQ BX,AX XORQ R9,CX RORQ $0x20,BX ADDQ AX,R9 ADDQ CX,BX RORQ $0x33,AX RORQ $0x30,CX XORQ R9,AX XORQ BX,CX RORQ $0x20,R9 ADDQ AX,BX ADDQ CX,R9 RORQ $0x2F,AX RORQ $0x2B,CX XORQ BX,AX RORQ $0x20,BX XORQ R9,CX XORQ R8,R9 CMPQ R10,DI JA loopBody afterLoop: ANDL $7, DX JZ afterSwitch // no support for jump tables CMPQ DX,$0x7 JE sw7 CMPQ DX,$0x6 JE sw6 CMPQ DX,$0x5 JE sw5 CMPQ DX,$0x4 JE sw4 CMPQ DX,$0x3 JE sw3 CMPQ DX,$0x2 JE sw2 JMP sw1 sw7: MOVBQZX 6(SI)(DI*1),DX SHLQ $0x30,DX ORQ DX,R11 sw6: MOVBQZX 0x5(SI)(DI*1),DX SHLQ $0x28,DX ORQ DX,R11 sw5: MOVBQZX 0x4(SI)(DI*1),DX SHLQ $0x20,DX ORQ DX,R11 sw4: MOVBQZX 0x3(SI)(DI*1),DX SHLQ $0x18,DX ORQ DX,R11 sw3: MOVBQZX 0x2(SI)(DI*1),DX SHLQ $0x10,DX ORQ DX,R11 sw2: MOVBQZX 0x1(SI)(DI*1),DX SHLQ $0x8,DX ORQ DX,R11 sw1: MOVBQZX 0(SI)(DI*1),DX ORQ DX,R11 afterSwitch: LEAQ (AX)(R9*1),SI XORQ R11,CX RORQ $0x33,AX ADDQ CX,BX MOVQ CX,DX XORQ SI,AX RORQ $0x30,DX RORQ $0x20,SI LEAQ 0(BX)(AX*1),CX XORQ BX,DX RORQ $0x2F,AX ADDQ DX,SI RORQ $0x2B,DX XORQ CX,AX XORQ SI,DX RORQ $0x20,CX ADDQ AX,SI RORQ $0x33,AX ADDQ DX,CX XORQ SI,AX RORQ $0x30,DX RORQ $0x20,SI XORQ CX,DX ADDQ AX,CX RORQ $0x2F,AX ADDQ DX,SI XORQ CX,AX RORQ $0x2B,DX RORQ $0x20,CX XORQ SI,DX XORQ R11,SI XORB $0xFF,CL ADDQ AX,SI RORQ $0x33,AX ADDQ DX,CX RORQ $0x30,DX XORQ SI,AX XORQ CX,DX RORQ $0x20,SI ADDQ AX,CX ADDQ DX,SI RORQ $0x2F,AX RORQ $0x2B,DX XORQ CX,AX XORQ SI,DX RORQ $0x20,CX ADDQ AX,SI ADDQ DX,CX RORQ $0x33,AX RORQ $0x30,DX XORQ SI,AX RORQ $0x20,SI XORQ CX,DX ADDQ AX,CX RORQ $0x2F,AX ADDQ DX,SI RORQ $0x2B,DX XORQ CX,AX XORQ SI,DX RORQ $0x20,CX ADDQ AX,SI ADDQ DX,CX RORQ $0x33,AX RORQ $0x30,DX XORQ CX,DX XORQ SI,AX RORQ $0x20,SI ADDQ DX,SI ADDQ AX,CX RORQ $0x2F,AX XORQ CX,AX RORQ $0x2B,DX RORQ $0x20,CX XORQ SI,DX ADDQ AX,SI RORQ $0x33,AX ADDQ DX,CX XORQ SI,AX RORQ $0x30,DX XORQ CX,DX ADDQ AX,CX RORQ $0x2F,AX XORQ CX,AX RORQ $0x2B,DX RORQ $0x20,CX XORQ DX,AX XORQ CX,AX MOVQ AX,ret+40(FP) RET riseup-vpn-0.24.5+ds1/vendor/github.com/dchest/siphash/hash_arm.go000066400000000000000000000010011461742244100247500ustar00rootroot00000000000000//go:build arm // +build arm package siphash // NB: ARM implementation of forgoes extra speed for Hash() // and Hash128() by simply reusing the same blocks() implementation // in assembly used by the streaming hash. func Hash(k0, k1 uint64, p []byte) uint64 { var d digest d.size = Size d.k0 = k0 d.k1 = k1 d.Reset() d.Write(p) return d.Sum64() } func Hash128(k0, k1 uint64, p []byte) (uint64, uint64) { var d digest d.size = Size128 d.k0 = k0 d.k1 = k1 d.Reset() d.Write(p) return d.sum128() } riseup-vpn-0.24.5+ds1/vendor/github.com/dchest/siphash/hash_asm.go000066400000000000000000000015371461742244100247670ustar00rootroot00000000000000//go:build amd64 && !appengine && !gccgo // +build amd64,!appengine,!gccgo // Written in 2012 by Dmitry Chestnykh. // // To the extent possible under law, the author have dedicated all copyright // and related and neighboring rights to this software to the public domain // worldwide. This software is distributed without any warranty. // http://creativecommons.org/publicdomain/zero/1.0/ // This file contains a function definition for use with assembly implementations of Hash() package siphash //go:noescape // Hash returns the 64-bit SipHash-2-4 of the given byte slice with two 64-bit // parts of 128-bit key: k0 and k1. func Hash(k0, k1 uint64, b []byte) uint64 //go:noescape // Hash128 returns the 128-bit SipHash-2-4 of the given byte slice with two // 64-bit parts of 128-bit key: k0 and k1. func Hash128(k0, k1 uint64, b []byte) (uint64, uint64) riseup-vpn-0.24.5+ds1/vendor/github.com/dchest/siphash/siphash.go000066400000000000000000000134031461742244100246360ustar00rootroot00000000000000// Written in 2012-2014 by Dmitry Chestnykh. // // To the extent possible under law, the author have dedicated all copyright // and related and neighboring rights to this software to the public domain // worldwide. This software is distributed without any warranty. // http://creativecommons.org/publicdomain/zero/1.0/ // Package siphash implements SipHash-2-4, a fast short-input PRF // created by Jean-Philippe Aumasson and Daniel J. Bernstein. package siphash import "hash" const ( // BlockSize is the block size of hash algorithm in bytes. BlockSize = 8 // Size is the size of hash output in bytes. Size = 8 // Size128 is the size of 128-bit hash output in bytes. Size128 = 16 ) type digest struct { v0, v1, v2, v3 uint64 // state k0, k1 uint64 // two parts of key x [8]byte // buffer for unprocessed bytes nx int // number of bytes in buffer x size int // output size in bytes (8 or 16) t uint8 // message bytes counter (mod 256) } // newDigest returns a new digest with the given output size in bytes (must be 8 or 16). func newDigest(size int, key []byte) *digest { if size != Size && size != Size128 { panic("size must be 8 or 16") } d := new(digest) d.k0 = uint64(key[0]) | uint64(key[1])<<8 | uint64(key[2])<<16 | uint64(key[3])<<24 | uint64(key[4])<<32 | uint64(key[5])<<40 | uint64(key[6])<<48 | uint64(key[7])<<56 d.k1 = uint64(key[8]) | uint64(key[9])<<8 | uint64(key[10])<<16 | uint64(key[11])<<24 | uint64(key[12])<<32 | uint64(key[13])<<40 | uint64(key[14])<<48 | uint64(key[15])<<56 d.size = size d.Reset() return d } // New returns a new hash.Hash64 computing SipHash-2-4 with 16-byte key and 8-byte output. func New(key []byte) hash.Hash64 { return newDigest(Size, key) } // New128 returns a new hash.Hash computing SipHash-2-4 with 16-byte key and 16-byte output. // // Note that 16-byte output is considered experimental by SipHash authors at this time. func New128(key []byte) hash.Hash { return newDigest(Size128, key) } func (d *digest) Reset() { d.v0 = d.k0 ^ 0x736f6d6570736575 d.v1 = d.k1 ^ 0x646f72616e646f6d d.v2 = d.k0 ^ 0x6c7967656e657261 d.v3 = d.k1 ^ 0x7465646279746573 d.t = 0 d.nx = 0 if d.size == Size128 { d.v1 ^= 0xee } } func (d *digest) Size() int { return d.size } func (d *digest) BlockSize() int { return BlockSize } func (d *digest) Write(p []byte) (nn int, err error) { nn = len(p) d.t += uint8(nn) if d.nx > 0 { n := len(p) if n > BlockSize-d.nx { n = BlockSize - d.nx } d.nx += copy(d.x[d.nx:], p) if d.nx == BlockSize { once(d) d.nx = 0 } p = p[n:] } if len(p) >= BlockSize { n := len(p) &^ (BlockSize - 1) blocks(d, p[:n]) p = p[n:] } if len(p) > 0 { d.nx = copy(d.x[:], p) } return } func (d *digest) Sum64() uint64 { for i := d.nx; i < BlockSize-1; i++ { d.x[i] = 0 } d.x[7] = d.t return finalize(d) } func (d0 *digest) sum128() (r0, r1 uint64) { // Make a copy of d0 so that caller can keep writing and summing. d := *d0 for i := d.nx; i < BlockSize-1; i++ { d.x[i] = 0 } d.x[7] = d.t blocks(&d, d.x[:]) v0, v1, v2, v3 := d.v0, d.v1, d.v2, d.v3 v2 ^= 0xee // Round 1. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) // Round 2. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) // Round 3. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) // Round 4. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) r0 = v0 ^ v1 ^ v2 ^ v3 v1 ^= 0xdd // Round 1. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) // Round 2. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) // Round 3. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) // Round 4. v0 += v1 v1 = v1<<13 | v1>>(64-13) v1 ^= v0 v0 = v0<<32 | v0>>(64-32) v2 += v3 v3 = v3<<16 | v3>>(64-16) v3 ^= v2 v0 += v3 v3 = v3<<21 | v3>>(64-21) v3 ^= v0 v2 += v1 v1 = v1<<17 | v1>>(64-17) v1 ^= v2 v2 = v2<<32 | v2>>(64-32) r1 = v0 ^ v1 ^ v2 ^ v3 return r0, r1 } func (d *digest) Sum(in []byte) []byte { if d.size == Size { r := d.Sum64() in = append(in, byte(r), byte(r>>8), byte(r>>16), byte(r>>24), byte(r>>32), byte(r>>40), byte(r>>48), byte(r>>56)) } else { r0, r1 := d.sum128() in = append(in, byte(r0), byte(r0>>8), byte(r0>>16), byte(r0>>24), byte(r0>>32), byte(r0>>40), byte(r0>>48), byte(r0>>56), byte(r1), byte(r1>>8), byte(r1>>16), byte(r1>>24), byte(r1>>32), byte(r1>>40), byte(r1>>48), byte(r1>>56)) } return in } riseup-vpn-0.24.5+ds1/vendor/github.com/kalikaneko/000077500000000000000000000000001461742244100220475ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/github.com/kalikaneko/socks5/000077500000000000000000000000001461742244100232565ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/github.com/kalikaneko/socks5/.gitignore000066400000000000000000000000251461742244100252430ustar00rootroot00000000000000main/ .vscode/ .idea/riseup-vpn-0.24.5+ds1/vendor/github.com/kalikaneko/socks5/LICENSE000066400000000000000000000021121461742244100242570ustar00rootroot00000000000000MIT License Copyright (c) 2021 haochen233 Copyright (c) 2022 kali kaneko Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. riseup-vpn-0.24.5+ds1/vendor/github.com/kalikaneko/socks5/README.md000066400000000000000000000157451461742244100245510ustar00rootroot00000000000000# socks5 This is a Golang implementation of the Socks5 protocol library. To see in this [SOCKS Protocol Version 5](https://www.rfc-editor.org/rfc/rfc1928.html). This library is also compatible with Socks4 and Socks4a. # Contents - [Features](#Features) - [Install](#Installation) - [Examples](#Examples) - [Server example](#Server-example) - [simple (no authentication)](#simple-no-authentication) - [username/password authentication in memory](#username/password-authentication-in-memory) - [custom transporter to transmit data between client and remote](#custom-transporter-to-transmit-data-between-client-and-remote) - [Client example](#Client) - [CONNECT usage](#CONNECT-usage) - [UDP_ASSOCIATE usage](#UDP_ASSOCIATE-usage) - [BIND usage](#BIND-usage) - [FAQ](#FAQ) # Features - socks5: - command: **CONNECT**, **UDP ASSOCIATE**, **BIND**. - auth methods: - **Username/Password** authentication. - No Authentication Required. - socks4: - command: **CONNECT**, **BIND**. - auth: (no support). - sock4a: same as socks4. - Custom client and server authenticator. - Easy to read source code. - Similar to the Golang standard library experience. # Installation ``` sh $ go get "github.com/haochen233/socks5"` ``` # Examples ## Server example ### simple (no authentication): ```go package main import ( "log" "github.com/haochen233/socks5" ) func main() { // create socks server. srv := &socks5.Server{ // socks server listen address. Addr: "127.0.0.1:1080", // UDP assocaite and bind command listen ip. // Don't need port, the port will automatically chosen. BindIP: "127.0.0.1", // if nil server will provide no authentication required method. Authenticators: nil, } // start listen err := srv.ListenAndServe() if err != nil { log.Fatal(err) } } ``` ### username/password authentication in memory: ```go package main import ( "crypto/md5" "log" "github.com/haochen233/socks5" ) func main() { // create a username/password store in memory. var userStorage socks5.UserPwdStore = socks5.NewMemeryStore(md5.New(), "secret") // set a pair of username/password. userStorage.Set("admin", "123456") srv := &socks5.Server{ Addr: "127.0.0.1:1080", BindIP: "127.0.0.1", // enable username/password method and authenticator. Authenticators: map[socks5.METHOD]socks5.Authenticator{ socks5.USERNAME_PASSWORD: socks5.UserPwdAuth{UserPwdStore: userStorage}, // There is already an authentication method. // If want enable no authentication required method. // you should enable it explicit. socks5.NO_AUTHENTICATION_REQUIRED: socks5.NoAuth{}, }, } err := srv.ListenAndServe() if err != nil { log.Fatal(err) } } ``` ### custom transporter to transmit data between client and remote. ```go package main import ( "log" "net" "github.com/haochen233/socks5" ) // simulate to impl socks5.Transporter interface. // transport encrypted data. type cryptTransport struct { } func (c *cryptTransport) TransportTCP(client *net.TCPConn, remote *net.TCPConn) <-chan error { //encrypt data and send to remote //decrypt data and send to client return nil } func (c *cryptTransport) TransportUDP(server *socks5.UDPConn, request *socks5.Request) error { panic("implement me") return nil } func main() { server := &socks5.Server{ Addr: "127.0.0.1:1080", BindIP: "127.0.0.1", // replace default Transporter interface Transporter: &cryptTransport{}, } err := server.ListenAndServe() if err != nil { log.Fatal(err) } } ``` ## Client example ### CONNECT usage: ```go package main import ( "log" "github.com/haochen233/socks5" ) func main() { // create socks client clnt := socks5.Client{ ProxyAddr: "127.0.0.1:1080", // Authenticator supported by the client. // It must not be nil. Auth: map[socks5.METHOD]socks5.Authenticator{ // If client want send NO_AUTHENTICATION_REQUIRED method to server, must // add socks5.NoAuth authenticator explicitly socks5.NO_AUTHENTICATION_REQUIRED: &socks5.NoAuth{}, }, } // client send CONNECT command and get a tcp connection. // and use this connection transit data between you and www.google.com:80. conn, err := clnt.Connect(socks5.Version5, "www.baidu.com:80") if err != nil { log.Fatal(err) } // close connection. conn.Close() } ``` ### UDP_ASSOCIATE usage: ```go package main import ( "fmt" "log" "github.com/haochen233/socks5" ) func main() { clnt := socks5.Client{ ProxyAddr: "127.0.0.1:1080", // client provide USERNAME_PASSWORD method and // NO_AUTHENTICATION_REQUIRED. Auth: map[socks5.METHOD]socks5.Authenticator{ socks5.NO_AUTHENTICATION_REQUIRED: &socks5.NoAuth{}, socks5.USERNAME_PASSWORD: &socks5.UserPasswd{Username: "admin", Password: "123456"}, }, } // client send UDP_ASSOCIATE command and get a udp connection. // Empty local addr string a local address (127.0.0.1:port) is automatically chosen. // you can specific a address to tell socks server which client address will // send udp data. Such as clnt.UDPForward("127.0.0.1:9999"). conn, err := clnt.UDPForward("") if err != nil { log.Fatal(err) } defer conn.Close() // send every datagram should add UDP request header. someData := []byte("some data") // dest addr where are you send to. destAddr, _ := socks5.ParseAddress("127.0.0.1:9190") // packing socks5 UDP data with dest addr. pakcedData, err := socks5.PackUDPData(destAddr, someData) // final send you data conn.Write(pakcedData) // on the contrary. // you should unpacked the packet, after received every packedData. buf := make([]byte, 65507) conn.Read(buf) // unpacking data. destAddr, unpackedData, err := socks5.UnpackUDPData(buf) // operate your udp data. fmt.Println(unpackedData) } ``` ### BIND usage: ```go package main import ( "encoding/binary" "github.com/haochen233/socks5" "log" ) func main() { c := socks5.Client{ ProxyAddr: "172.16.1.28:1080", Auth: map[socks5.METHOD]socks5.Authenticator{ socks5.USERNAME_PASSWORD: &socks5.UserPasswd{"admin", "123456"}, socks5.NO_AUTHENTICATION_REQUIRED: &socks5.NoAuth{}, }, } // connect conn1, err := c.Connect(5, "127.0.0.1:9000") if err != nil { log.Fatal(err) } dest := "127.0.0.1:9001" // bind bindAddr, errors, conn2, err := c.Bind(4, dest) if err != nil { log.Fatal(err) } // An example tell dest about socks server bind address // via CONNECT proxy connection. port := make([]byte, 2) binary.BigEndian.PutUint16(port, bindAddr.Port) conn1.Write(append(bindAddr.Addr, port...)) // wait the second reply. if nil the dest already // established with socks server. err = <-errors if err != nil { log.Fatal(err) return } // bind success _, err = conn2.Write([]byte("hello")) if err != nil { return log.Fatal(err) } } ``` # FAQ: - Server default enable socks4. How to disable socks4 support? when you initialize a socks5 server, you should spefic this flag to disable explicitly. ```go server := &socks5.Server{ DisableSocks4: true, } ```riseup-vpn-0.24.5+ds1/vendor/github.com/kalikaneko/socks5/address.go000066400000000000000000000164701461742244100252420ustar00rootroot00000000000000package socks5 import ( "bytes" "encoding/binary" "errors" "fmt" "io" "net" "strconv" "sync" ) // Address represents address in socks protocol. type Address struct { Addr net.IP ATYPE Port uint16 } var bufPool = sync.Pool{New: func() interface{} { buf := bytes.Buffer{} return &buf }} // Address return address // Examples: // 127.0.0.1:80 // example.com:443 // [fe80::1%lo0]:80 func (a *Address) String() string { if a.ATYPE == DOMAINNAME { return net.JoinHostPort(string(a.Addr), strconv.Itoa(int(a.Port))) } return net.JoinHostPort(a.Addr.String(), strconv.Itoa(int(a.Port))) } var errDomainMaxLengthLimit = errors.New("domain name out of max length") // Bytes return bytes slice of Address by ver param. // If ver is socks4, the returned socks4 address format as follows: // +----+----+----+----+----+----+....+----+....+----+ // | DSTPORT | DSTIP | USERID |NULL| // +----+----+----+----+----+----+----+----+....+----+ // If ver is socks4 and address type is domain name, // the returned socks4 address format as follows: // +----+----+----+----+----+----+....+----+....+----+....+----+....+----+ // | DSTPORT | DSTIP | USERID |NULL| HOSTNAME |NULL| // +----+----+----+----+----+----+----+----+....+----+----+----+....+----+ // If ver is socks5 // the returned socks5 address format as follows: // +------+----------+----------+ // | ATYP | DST.ADDR | DST.PORT | // +------+----------+----------+ // | 1 | Variable | 2 | // +------+----------+----------+ // Socks4 call this method return bytes end with NULL, socks4 client use normally, // Socks4 server should trim terminative NULL. // Socks4 server should not call this method if server address type is DOMAINNAME func (a *Address) Bytes(ver VER) ([]byte, error) { buf := bufPool.Get().(*bytes.Buffer) defer buf.Reset() defer bufPool.Put(buf) // port port := make([]byte, 2) binary.BigEndian.PutUint16(port, a.Port) switch ver { case Version4: // socks4a buf.Write(port) if a.ATYPE == DOMAINNAME { buf.Write(net.IPv4(0, 0, 0, 1).To4()) // NULL buf.WriteByte(NULL) // hostname buf.Write(a.Addr) } else if a.ATYPE == IPV4_ADDRESS { buf.Write(a.Addr) } else { return nil, fmt.Errorf("socks4 unsupported address type: %#x", a.ATYPE) } buf.WriteByte(NULL) case Version5: // address type buf.WriteByte(a.ATYPE) // domain name address type if a.ATYPE == DOMAINNAME { if len(a.Addr) > 255 { return nil, errDomainMaxLengthLimit } buf.WriteByte(byte(len(a.Addr))) buf.Write(a.Addr) } else if a.ATYPE == IPV4_ADDRESS { buf.Write(a.Addr.To4()) } else if a.ATYPE == IPV6_ADDRESS { buf.Write(a.Addr.To16()) } buf.Write(port) } return buf.Bytes(), nil } // readAddress read address info from follows: // socks5 server's reply. // socks5 client's request. // socks5 server's udp reply header. // socks5 client's udp request header. // // socks4 client's request. // socks4a client's request // exclude: socks4a server's reply, socks4 server's reply. Please use readSocks4ReplyAddress. func readAddress(r io.Reader, ver VER) (*Address, REP, error) { addr := &Address{} switch ver { case Version4: // DST.PORT port, err := ReadNBytes(r, 2) if err != nil { return nil, Rejected, &OpError{Version5, "read", nil, "client dest port", err} } addr.Port = binary.BigEndian.Uint16(port) // DST.IP ip, err := ReadNBytes(r, 4) if err != nil { return nil, Rejected, &OpError{Version4, "read", nil, "\"process request dest ip\"", err} } addr.ATYPE = IPV4_ADDRESS //Discard later bytes until read EOF //Please see socks4 request format at(http://ftp.icm.edu.pl/packages/socks/socks4/SOCKS4.protocol) _, err = ReadUntilNULL(r) if err != nil { return nil, Rejected, &OpError{Version4, "read", nil, "\"process request useless header \"", err} } //Socks4a extension // +----+----+----+----+----+----+----+----+----+----++----++-----+-----++----+ // | VN | CD | DSTPORT | DSTIP | USERID |NULL| HOSTNAME |NULL| // +----+----+----+----+----+----+----+----+----+----++----++-----+-----++----+ // 1 1 2 4 variable 1 variable 1 //The client sets the first three bytes of DSTIP to NULL and //the last byte to non-zero. The corresponding IP address is //0.0.0.x, where x is non-zero if ip[0] == 0 && ip[1] == 0 && ip[2] == 0 && ip[3] != 0 { ip, err = ReadUntilNULL(r) if err != nil { return nil, Rejected, &OpError{Version4, "read", nil, "\"process socks4a extension request\"", err} } addr.ATYPE = DOMAINNAME } addr.Addr = ip return addr, Granted, nil case Version5: // ATYP aType, err := ReadNBytes(r, 1) if err != nil { return nil, GENERAL_SOCKS_SERVER_FAILURE, &OpError{Version5, "read", nil, "dest address type", err} } addr.ATYPE = aType[0] var addrLen int switch addr.ATYPE { case IPV4_ADDRESS: addrLen = 4 case IPV6_ADDRESS: addrLen = 16 case DOMAINNAME: fqdnLength, err := ReadNBytes(r, 1) if err != nil { return nil, GENERAL_SOCKS_SERVER_FAILURE, &OpError{Version5, "read", nil, "\"dest domain name length\"", err} } addrLen = int(fqdnLength[0]) default: return nil, ADDRESS_TYPE_NOT_SUPPORTED, &OpError{Version5, "", nil, "\"dest address\"", &AtypeError{aType[0]}} } // DST.ADDR ip, err := ReadNBytes(r, addrLen) if err != nil { return nil, GENERAL_SOCKS_SERVER_FAILURE, err } addr.Addr = ip // DST.PORT port, err := ReadNBytes(r, 2) if err != nil { return nil, GENERAL_SOCKS_SERVER_FAILURE, &OpError{Version5, "read", nil, "client dest port", err} } addr.Port = binary.BigEndian.Uint16(port) return addr, SUCCESSED, nil default: return nil, UNASSIGNED, &VersionError{ver} } } // readSocks4ReplyAddress read socks4 reply address. Why don't use readAddress, // because socks4 reply not end with NULL, they're not compatible func readSocks4ReplyAddress(r io.Reader, ver VER) (*Address, REP, error) { addr := &Address{} // DST.PORT port, err := ReadNBytes(r, 2) if err != nil { return nil, Rejected, &OpError{Version5, "read", nil, "client dest port", err} } addr.Port = binary.BigEndian.Uint16(port) // DST.IP ip, err := ReadNBytes(r, 4) if err != nil { return nil, Rejected, &OpError{Version4, "read", nil, "\"process request dest ip\"", err} } addr.Addr = ip addr.ATYPE = IPV4_ADDRESS return addr, Granted, nil } // UDPAddr return UDP Address. func (a *Address) UDPAddr() (*net.UDPAddr, error) { return net.ResolveUDPAddr("udp", a.String()) } // TCPAddr return TCP Address. func (a *Address) TCPAddr() (*net.TCPAddr, error) { return net.ResolveTCPAddr("tcp", a.String()) } // ParseAddress parse address to *Address // Input Examples: // 127.0.0.1:80 // example.com:443 // [fe80::1%lo0]:80 func ParseAddress(addr string) (*Address, error) { Address := new(Address) host, port, err := net.SplitHostPort(addr) if err != nil { return nil, err } ip := net.ParseIP(host) if ip == nil { Address.ATYPE = DOMAINNAME Address.Addr = []byte(host) } else if ip.To4() != nil { Address.ATYPE = IPV4_ADDRESS Address.Addr = ip.To4() } else if ip.To16() != nil { Address.ATYPE = IPV6_ADDRESS Address.Addr = ip.To16() } atoi, err := strconv.Atoi(port) if err != nil { return nil, err } Address.Port = uint16(atoi) return Address, nil } riseup-vpn-0.24.5+ds1/vendor/github.com/kalikaneko/socks5/auth.go000066400000000000000000000075631461742244100245610ustar00rootroot00000000000000package socks5 import ( "bytes" "fmt" "hash" "io" "sync" ) // Authenticator provides socks5's authentication sub negotiation. type Authenticator interface { Authenticate(in io.Reader, out io.Writer) error } // NoAuth NO_AUTHENTICATION_REQUIRED implementation. type NoAuth struct { } // Authenticate NO_AUTHENTICATION_REQUIRED Authentication for socks5 Server and Client. func (n NoAuth) Authenticate(in io.Reader, out io.Writer) error { return nil } // UserPwdAuth provides socks5 Server Username/Password Authenticator. type UserPwdAuth struct { UserPwdStore } // Authenticate provide socks5 Server Username/Password authentication. func (u UserPwdAuth) Authenticate(in io.Reader, out io.Writer) error { uname, passwd, err := u.ReadUserPwd(in) if err != nil { return err } err = u.Validate(string(uname), string(passwd)) if err != nil { reply := []byte{1, 1} _, err1 := out.Write(reply) if err1 != nil { return err } return err } //authentication successful,then send reply to client reply := []byte{1, 0} _, err = out.Write(reply) if err != nil { return err } return nil } // ReadUserPwd read Username/Password request from client // return username and password. // Username/Password request format is as follows: // +----+------+----------+------+----------+ // |VER | ULEN | UNAME | PLEN | PASSWD | // +----+------+----------+------+----------+ // | 1 | 1 | 1 to 255 | 1 | 1 to 255 | // +----+------+----------+------+----------+ // For standard details, please see (https://www.rfc-editor.org/rfc/rfc1929.html) func (u UserPwdAuth) ReadUserPwd(in io.Reader) ([]byte, []byte, error) { ulen, err := ReadNBytes(in, 2) if err != nil { return nil, nil, err } uname, err := ReadNBytes(in, int(ulen[1])) if err != nil { return nil, nil, err } plen, err := ReadNBytes(in, 1) if err != nil { return nil, nil, err } passwd := make([]byte, plen[0]) passwd, err = ReadNBytes(in, int(plen[0])) if err != nil { return nil, nil, err } return uname, passwd, nil } // UserPwdStore provide username and password storage. type UserPwdStore interface { Set(username string, password string) error Del(username string) error Validate(username string, password string) error } // MemoryStore store username&password in memory. // the password is encrypt with hash method. type MemoryStore struct { Users map[string][]byte mu sync.Mutex hash.Hash algoSecret string } // NewMemeryStore return a new MemoryStore func NewMemeryStore(algo hash.Hash, secret string) *MemoryStore { return &MemoryStore{ Users: make(map[string][]byte), Hash: algo, algoSecret: secret, } } // Set the mapping of username and password. func (m *MemoryStore) Set(username string, password string) error { m.mu.Lock() defer m.mu.Unlock() build := bytes.NewBuffer(nil) build.WriteString(password + m.algoSecret) cryptPasswd := m.Hash.Sum(build.Bytes()) m.Users[username] = cryptPasswd return nil } // UserNotExist the error type used in UserPwdStore.Del() method and // UserPwdStore.Validate method. type UserNotExist struct { username string } func (u UserNotExist) Error() string { return fmt.Sprintf("user %s don't exist", u.username) } // Del delete by username func (m *MemoryStore) Del(username string) error { m.mu.Lock() defer m.mu.Unlock() if _, ok := m.Users[username]; !ok { return UserNotExist{username: username} } delete(m.Users, username) return nil } // Validate validate username and password. func (m *MemoryStore) Validate(username string, password string) error { m.mu.Lock() defer m.mu.Unlock() if _, ok := m.Users[username]; !ok { return UserNotExist{username: username} } build := bytes.NewBuffer(nil) build.WriteString(password + m.algoSecret) cryptPasswd := m.Hash.Sum(build.Bytes()) if !bytes.Equal(cryptPasswd, m.Users[username]) { return fmt.Errorf("user %s has bad password", username) } return nil } riseup-vpn-0.24.5+ds1/vendor/github.com/kalikaneko/socks5/client.go000066400000000000000000000415751461742244100250770ustar00rootroot00000000000000package socks5 import ( "errors" "fmt" "io" "log" "net" "strconv" "time" ) // Client defines parameters for running socks client. type Client struct { // ProxyAddr in the form "host:port". It not be empty. ProxyAddr string // Timeout specifies a time limit for requests made by this // Client. The timeout includes connection time, reading the response body. // // A Timeout of zero means no timeout. // // The Client cancels requests to the underlying Transport // as if the Request's Context ended. Timeout time.Duration // method mapping to the authenticator Auth map[METHOD]Authenticator // ErrorLog specifics an options logger for errors accepting // If nil, logging is done via log package's standard logger. ErrorLog *log.Logger // DisableSocks4A client disable socks4a client, default enable socks4a extension. DisableSocks4A bool } // UserPasswd provide socks5 Client Username/Password Authenticator. type UserPasswd struct { Username string Password string } // Authenticate socks5 Client Username/Password Authentication. func (c *UserPasswd) Authenticate(in io.Reader, out io.Writer) error { //This begins with the client producing a Username/Password request: // +----+------+----------+------+----------+ // |VER | ULEN | UNAME | PLEN | PASSWD | // +----+------+----------+------+----------+ // | 1 | 1 | 1 to 255 | 1 | 1 to 255 | // +----+------+----------+------+----------+ _, err := out.Write(append(append(append([]byte{0x01, byte(len(c.Username))}, []byte(c.Username)...), byte(len(c.Password))), []byte(c.Password)...)) if err != nil { return err } //Get reply, the following response: // +----+--------+ // |VER | STATUS | // +----+--------+ // | 1 | 1 | // +----+--------+ tmp, err := ReadNBytes(in, 2) if err != nil { return err } if tmp[0] != 0x01 { return errors.New("not support method") } if tmp[1] != SUCCESSED { return errors.New("user authentication failed") } return nil } // handshake socks TCP connect,get a tcp connect and reply addr func (clt *Client) handshake(request *Request) (conn *net.TCPConn, replyAddr *Address, err error) { // get Socks server Address proxyTCPAddr, err := net.ResolveTCPAddr("tcp", clt.ProxyAddr) if err != nil { return nil, nil, err } // dial to Socks server. proxyTCPConn, err := net.DialTCP("tcp", nil, proxyTCPAddr) if err != nil { return nil, nil, err } if clt.Timeout != 0 { err = proxyTCPConn.SetDeadline(time.Now().Add(clt.Timeout)) if err != nil { return nil, nil, err } defer proxyTCPConn.SetDeadline(time.Time{}) } // process handshake by version if request.VER == Version5 { replyAddr, err = clt.handShake5(request, proxyTCPConn) } else if request.VER == Version4 { if request.ATYPE == DOMAINNAME && clt.DisableSocks4A { return nil, nil, errors.New("socks4a client had been disabled") } replyAddr, err = clt.handshake4(request, proxyTCPConn) } // handshake wrong. if err != nil { proxyTCPConn.Close() return nil, nil, err } return proxyTCPConn, replyAddr, nil } // handShake5 Socks 5 version of the connection handshake func (clt *Client) handShake5(request *Request, proxyTCPConn net.Conn) (*Address, error) { err := clt.authentication(proxyTCPConn) if err != nil { return nil, err } destAddrByte, err := request.Address.Bytes(Version5) if err != nil { return nil, err } // The SOCKS request is formed as follows: // +----+-----+-------+------+----------+----------+ // |VER | CMD | RSV | ATYP | DST.ADDR | DST.PORT | // +----+-----+-------+------+----------+----------+ // | 1 | 1 | X'00' | 1 | Variable | 2 | // +----+-----+-------+------+----------+----------+ if _, err := proxyTCPConn.Write(append([]byte{request.VER, request.CMD, request.RSV}, destAddrByte...)); err != nil { return nil, err } // reply formed as follows: // +----+-----+-------+------+----------+----------+ // |VER | REP | RSV | ATYP | BND.ADDR | BND.PORT | // +----+-----+-------+------+----------+----------+ // | 1 | 1 | X'00' | 1 | Variable | 2 | // +----+-----+-------+------+----------+----------+ reply := &Reply{} tmp, err := ReadNBytes(proxyTCPConn, 3) if err != nil { return nil, fmt.Errorf("failed to get reply version and command and reserved, %v", err) } reply.VER, reply.REP, reply.RSV = tmp[0], tmp[1], tmp[2] if reply.VER != Version5 { return nil, fmt.Errorf("unrecognized SOCKS version[%d]", reply.VER) } // read address serverBoundAddr, _, err := readAddress(proxyTCPConn, request.VER) if err != nil { return nil, fmt.Errorf("failed to get reply address, %v", err) } reply.Address = serverBoundAddr if reply.REP != SUCCESSED { return nil, fmt.Errorf("server refuse client request, %s", rep2Str[reply.REP]) } return reply.Address, nil } // authentication func (clt *Client) authentication(proxyConn net.Conn) error { var methods []byte for method := range clt.Auth { methods = append(methods, method) } // The client connects to the server, and sends a version identifier/method selection message: // +----+----------+----------+ // |VER | NMETHODS | METHODS | // +----+----------+----------+ // | 1 | 1 | 1 to 255 | // +----+----------+----------+ _, err := proxyConn.Write(append([]byte{Version5, byte(len(methods))}, methods...)) if err != nil { return nil } //Get reply, a METHOD selection message: // +----+--------+ // |VER | METHOD | // +----+--------+ // | 1 | 1 | // +----+--------+ reply, err := ReadNBytes(proxyConn, 2) if err != nil { return err } if reply[0] != Version5 { return &VersionError{reply[0]} } // Is client has this method? if _, ok := clt.Auth[reply[1]]; !ok { return &MethodError{reply[1]} } // process authentication sub negotiation err = clt.Auth[reply[1]].Authenticate(proxyConn, proxyConn) if err != nil { return err } return nil } // handShake4 Socks 4 version of the connection handshake func (clt *Client) handshake4(request *Request, proxyConn net.Conn) (*Address, error) { destAddrByte, err := request.Address.Bytes(Version4) if err != nil { return nil, err } // The client connects to the SOCKS server and sends a CONNECT request when it wants to establish a connection to an application server. // The client includes in the request packet the IP address and the port number of the destination host, and userid, in the following format. // +----+----+----+----+----+----+----+----+----+----+....+----+ // | VN | CD | DSTPORT | DSTIP | USERID |NULL| // +----+----+----+----+----+----+----+----+----+----+....+----+ // 1 1 2 4 variable 1 if _, err := proxyConn.Write(append([]byte{request.VER, request.CMD}, destAddrByte...)); err != nil { return nil, err } // A reply packet is sent to the client when this connection is established,or when the request is rejected or the operation fails. // +----+----+----+----+----+----+----+----+ // | VN | CD | DSTPORT | DSTIP | // +----+----+----+----+----+----+----+----+ // 1 1 2 4 tmp, err := ReadNBytes(proxyConn, 2) if err != nil { return nil, fmt.Errorf("failed to get reply version and command, %v", err) } if tmp[0] != 0 { return nil, fmt.Errorf("response VN wrong[%d]", tmp[0]) } if tmp[1] != Granted { return nil, errors.New("server refuse client request") } // Read address replyAddr, _, err := readSocks4ReplyAddress(proxyConn, request.VER) if err != nil { return nil, fmt.Errorf("failed to get reply address, %v", err) } return replyAddr, nil } // Connect send CONNECT Request. Returned a connected proxy connection. func (clt *Client) Connect(ver VER, dest string) (*net.TCPConn, error) { if ver != Version4 && ver != Version5 { return nil, &VersionError{ver} } destAddr, err := ParseAddress(dest) if err != nil { return nil, err } req := &Request{ VER: ver, CMD: CONNECT, RSV: 0, Address: destAddr, } conn, _, err := clt.handshake(req) if err != nil { return nil, err } return conn, nil } // UDPForward send UDP_ASSOCIATE Request. // The laddr Param specific Client address to send udp datagram. // If laddr is empty string, a local address (127.0.0.1:port) is automatically chosen. // If port is occupied will return error. func (clt *Client) UDPForward(laddr string) (*UDPConn, error) { if laddr == "" { laddr = "127.0.0.1:0" } // split laddr to host/port host, portStr, err := net.SplitHostPort(laddr) p, err := strconv.Atoi(portStr) if err != nil { return nil, err } port := uint16(p) // zero port, will automatically chosen. if port == 0 { err, port = GetRandomPort("udp") if err != nil { return nil, errors.New("automatically chosen port fail") } laddr = net.JoinHostPort(host, strconv.Itoa(int(port))) } // get addr addr, err := ParseAddress(laddr) if err != nil { return nil, err } req := &Request{ VER: Version5, CMD: UDP_ASSOCIATE, RSV: 0, Address: addr, } // Handshake base on TCP connection proxyTCPConn, UDPRelayAddr, err := clt.handshake(req) if err != nil { return nil, err } // Get local UDP addr localUDPAddr, err := addr.UDPAddr() if err != nil { return nil, err } // Get udp relay server bind addr. serverListenUDPAddr, err := UDPRelayAddr.UDPAddr() if err != nil { return nil, err } // Dial UDP relay Server err = IsFreePort("udp", port) if err != nil { proxyTCPConn.Close() return nil, fmt.Errorf("port %d is occupied", port) } proxyUDPConn, err := net.DialUDP("udp", localUDPAddr, serverListenUDPAddr) if err != nil { proxyTCPConn.Close() return nil, err } return NewUDPConn(proxyUDPConn, proxyTCPConn), nil } // Bind send BIND Request. return 4 params: // 1. Server bind address. // 2. a readable chan to recv second reply from socks server. // 3. A connection that is not immediately available, until read a nil from err chan. // 4. An error, indicate the first reply result. If nil, successes. func (clt *Client) Bind(ver VER, destAddr string) (*Address, <-chan error, net.Conn, error) { dest, err := ParseAddress(destAddr) if err != nil { return nil, nil, nil, err } request := &Request{ Address: dest, CMD: BIND, VER: ver, } proxyConn, err := net.Dial("tcp", clt.ProxyAddr) if err != nil { clt.logf()(err.Error()) return nil, nil, nil, err } if clt.Timeout != 0 { err = proxyConn.SetDeadline(time.Now().Add(clt.Timeout)) if err != nil { clt.logf()(err.Error()) return nil, nil, nil, err } defer proxyConn.SetDeadline(time.Time{}) } switch request.VER { case Version4: serverBindAddr, secondReply, err := clt.bind4(request, proxyConn) if err != nil { proxyConn.Close() clt.logf()(err.Error()) return nil, nil, nil, err } return serverBindAddr, secondReply, proxyConn, nil case Version5: serverBindAddr, secondReply, err := clt.bind5(request, proxyConn) if err != nil { proxyConn.Close() clt.logf()(err.Error()) return nil, nil, nil, err } return serverBindAddr, secondReply, proxyConn, nil default: proxyConn.Close() return nil, nil, nil, &VersionError{request.VER} } } // bind5 socks5 bind func (clt *Client) bind5(request *Request, proxyBindConn net.Conn) (*Address, <-chan error, error) { err := clt.authentication(proxyBindConn) if err != nil { return nil, nil, err } destAddrByte, err := request.Address.Bytes(Version5) if err != nil { return nil, nil, err } // The SOCKS request is formed as follows: // +----+-----+-------+------+----------+----------+ // // |VER | CMD | RSV | ATYP | DST.ADDR | DST.PORT | // // +----+-----+-------+------+----------+----------+ // // | 1 | 1 | X'00' | 1 | Variable | 2 | // +----+-----+-------+------+----------+----------+ if _, err := proxyBindConn.Write(append([]byte{request.VER, request.CMD, request.RSV}, destAddrByte...)); err != nil { return nil, nil, err } // reply formed as follows: // +----+-----+-------+------+----------+----------+ // |VER | REP | RSV | ATYP | BND.ADDR | BND.PORT | // +----+-----+-------+------+----------+----------+ // | 1 | 1 | X'00' | 1 | Variable | 2 | // +----+-----+-------+------+----------+----------+ reply := &Reply{} tmp, err := ReadNBytes(proxyBindConn, 3) if err != nil { return nil, nil, fmt.Errorf("failed to get reply version and command and reserved, %v", err) } reply.VER, reply.REP, reply.RSV = tmp[0], tmp[1], tmp[2] if reply.VER != Version5 { return nil, nil, fmt.Errorf("unrecognized SOCKS version[%d]", reply.VER) } // read address serverBoundAddr, _, err := readAddress(proxyBindConn, request.VER) if err != nil { return nil, nil, fmt.Errorf("failed to get reply address, %v", err) } reply.Address = serverBoundAddr if reply.REP != SUCCESSED { return nil, nil, fmt.Errorf("server refuse client request, %s,when first time reply", rep2Str[reply.REP]) } errorChan := make(chan error) go func() { reply2 := &Reply{} // The second time reply formed as follows: // +----+-----+-------+------+----------+----------+ // |VER | REP | RSV | ATYP | BND.ADDR | BND.PORT | // +----+-----+-------+------+----------+----------+ // | 1 | 1 | X'00' | 1 | Variable | 2 | // +----+-----+-------+------+----------+----------+ tmp, err := ReadNBytes(proxyBindConn, 3) if err != nil { errorChan <- fmt.Errorf("failed to get reply version and command and reserved, %v", err) proxyBindConn.Close() } reply2.VER, reply2.REP, reply2.RSV = tmp[0], tmp[1], tmp[2] if reply2.VER != Version5 { errorChan <- fmt.Errorf("unrecognized SOCKS version[%d]", reply.VER) proxyBindConn.Close() } // read address serverBoundAddr, _, err := readAddress(proxyBindConn, request.VER) if err != nil { errorChan <- fmt.Errorf("failed to get reply address, %v", err) proxyBindConn.Close() } reply2.Address = serverBoundAddr if reply2.REP != SUCCESSED { errorChan <- errors.New("server refuse client request,when second time reply") proxyBindConn.Close() } errorChan <- nil }() return serverBoundAddr, errorChan, nil } // bind4 socks4 bind func (clt *Client) bind4(request *Request, proxyBindConn net.Conn) (*Address, <-chan error, error) { destAddrByte, err := request.Address.Bytes(Version4) if err != nil { return nil, nil, err } // The client connects to the SOCKS server and sends a CONNECT request when it wants to establish a connection to an application server. // The client includes in the request packet the IP address and the port number of the destination host, and userid, in the following format. // +----+----+----+----+----+----+----+----+----+----+....+----+ // | VN | CD | DSTPORT | DSTIP | USERID |NULL| // +----+----+----+----+----+----+----+----+----+----+....+----+ // 1 1 2 4 variable 1 if _, err := proxyBindConn.Write(append([]byte{request.VER, request.CMD}, destAddrByte...)); err != nil { return nil, nil, err } // A reply packet is sent to the client when this connection is established,or when the request is rejected or the operation fails. // +----+----+----+----+----+----+----+----+ // | VN | CD | DSTPORT | DSTIP | // +----+----+----+----+----+----+----+----+ // 1 1 2 4 tmp, err := ReadNBytes(proxyBindConn, 2) if err != nil { return nil, nil, fmt.Errorf("failed to get reply version and command, %v", err) } if tmp[0] != 0 { return nil, nil, fmt.Errorf("response VN wrong[%d]", tmp[0]) } // Read address serverBoundAddr, _, err := readSocks4ReplyAddress(proxyBindConn, request.VER) if err != nil { return nil, nil, fmt.Errorf("failed to get reply address, %v", err) } if tmp[1] != Granted { return nil, nil, errors.New("server refuse client request,when first time reply") } errorChan := make(chan error) go func() { // A reply packet is sent to the client,or when the request is rejected or the operation fails. // +----+----+----+----+----+----+----+----+ // | VN | CD | DSTPORT | DSTIP | // +----+----+----+----+----+----+----+----+ // 1 1 2 4 tmp, err := ReadNBytes(proxyBindConn, 2) if err != nil { errorChan <- fmt.Errorf("failed to get reply version and command, %v", err) proxyBindConn.Close() } if tmp[0] != 0 { errorChan <- fmt.Errorf("response VN wrong[%d]", tmp[0]) proxyBindConn.Close() } // read address _, _, err = readSocks4ReplyAddress(proxyBindConn, request.VER) if err != nil { errorChan <- fmt.Errorf("failed to get reply address, %v", err) proxyBindConn.Close() } if tmp[1] != Granted { errorChan <- errors.New("server refuse client request,when second time reply") proxyBindConn.Close() } errorChan <- nil }() return serverBoundAddr, errorChan, nil } // logf Logging is done using the client's errorlog func (clt *Client) logf() func(format string, args ...interface{}) { if clt.ErrorLog == nil { return log.Printf } return clt.ErrorLog.Printf } riseup-vpn-0.24.5+ds1/vendor/github.com/kalikaneko/socks5/common.go000066400000000000000000000016631461742244100251030ustar00rootroot00000000000000package socks5 import ( "bytes" "errors" "io" ) var errUnexpectMinusLength = errors.New("arg number should not be minus") // ReadNBytes wrap io.ReadFull. read n bytes. // The error is EOF only if no bytes were read. // If an EOF happens after reading some but not all the bytes, // ReadFull returns ErrUnexpectedEOF. func ReadNBytes(reader io.Reader, n int) ([]byte, error) { if n < 0 { return nil, errUnexpectMinusLength } data := make([]byte, n) _, err := io.ReadFull(reader, data) if err != nil { return nil, err } return data, nil } // ReadUntilNULL Read all not Null byte. // Until read first Null byte(all zero bits) func ReadUntilNULL(reader io.Reader) ([]byte, error) { data := &bytes.Buffer{} b := make([]byte, 1) for { _, err := reader.Read(b) if err != nil { if err == io.EOF { return nil, nil } return nil, err } if b[0] == NULL { return data.Bytes(), nil } data.WriteByte(b[0]) } } riseup-vpn-0.24.5+ds1/vendor/github.com/kalikaneko/socks5/conn.go000066400000000000000000000045511461742244100245470ustar00rootroot00000000000000package socks5 import ( "io" "net" "sync" "time" ) // UDPConn be associated with TCP connections. // The UDP connection will close immediately, When TCP connection closed, // UDPConn only use in UDP_ASSOCIATE command. type UDPConn struct { mu sync.Mutex udp *net.UDPConn tcp *net.TCPConn closeChan chan struct{} } // NewUDPConn get a *UDPConn through provide a tcp and udp connection. // the tcp connection is used for socks UDP_ASSOCIATE handshake. // the udp connection is used for socks udp forwarding. // // After UDP_ASSOCIATE handshake, the tcp transit nothing. Its only // function is udp relay connection still running. // // If one of them shuts off, it will close them all. func NewUDPConn(udp *net.UDPConn, tcp *net.TCPConn) *UDPConn { if udp == nil || tcp == nil { return nil } u := &UDPConn{ udp: udp, tcp: tcp, closeChan: make(chan struct{}), } go func() { // guard tcp connection, if it closed should close tcp relay too. io.Copy(io.Discard, tcp) u.Close() }() return u } func (u *UDPConn) LocalAddr() net.Addr { return u.udp.LocalAddr() } func (u *UDPConn) RemoteAddr() net.Addr { return u.udp.RemoteAddr() } func (u *UDPConn) SetDeadline(t time.Time) error { return u.udp.SetDeadline(t) } func (u *UDPConn) SetReadDeadline(t time.Time) error { return u.udp.SetReadDeadline(t) } func (u *UDPConn) SetWriteDeadline(t time.Time) error { return u.udp.SetWriteDeadline(t) } func (u *UDPConn) Read(b []byte) (n int, err error) { return u.udp.Read(b) } func (u *UDPConn) WriteToUDP(b []byte, addr *net.UDPAddr) (int, error) { return u.udp.WriteToUDP(b, addr) } func (u *UDPConn) ReadFromUDP(b []byte) (int, *net.UDPAddr, error) { return u.udp.ReadFromUDP(b) } func (u *UDPConn) Write(b []byte) (n int, err error) { return u.udp.Write(b) } func (u *UDPConn) Close() error { var err error u.mu.Lock() defer u.mu.Unlock() ch := u.getCloseChanLocked() select { case <-ch: return nil default: if err2 := u.udp.Close(); err2 != nil { err = err2 } if err2 := u.tcp.Close(); err2 != nil { err = err2 } close(u.closeChan) } return err } func (u *UDPConn) CloseCh() <-chan struct{} { u.mu.Lock() defer u.mu.Unlock() return u.getCloseChanLocked() } func (u *UDPConn) getCloseChanLocked() <-chan struct{} { if u.closeChan == nil { u.closeChan = make(chan struct{}) } return u.closeChan } riseup-vpn-0.24.5+ds1/vendor/github.com/kalikaneko/socks5/port.go000066400000000000000000000037041461742244100245750ustar00rootroot00000000000000package socks5 import ( "errors" "net" "strconv" "strings" ) // GetRandomPort return a random port by specific network. // The network must be "tcp", "udp". func GetRandomPort(network string) (err error, port uint16) { network = strings.ToLower(network) addr := "0.0.0.0:0" switch network { case "tcp", "tcp4", "tcp6": tcpAddr, err := net.ResolveTCPAddr(network, addr) if err != nil { return err, 0 } ln, err := net.ListenTCP(network, tcpAddr) if err != nil { return err, 0 } _, portStr, err := net.SplitHostPort(ln.Addr().String()) p, err := strconv.Atoi(portStr) port = uint16(p) err = ln.Close() if err != nil { return err, 0 } return err, port case "udp", "udp4", "udp6": udpAddr, err := net.ResolveUDPAddr(network, addr) if err != nil { return err, 0 } ln, err := net.ListenUDP(network, udpAddr) if err != nil { return err, 0 } _, portStr, err := net.SplitHostPort(ln.LocalAddr().String()) p, err := strconv.Atoi(portStr) port = uint16(p) err = ln.Close() if err != nil { return err, 0 } return err, port default: return errors.New("unknown network type " + network), 0 } } // IsFreePort indicates the port is available. // The network must be "tcp", "udp". func IsFreePort(network string, port uint16) error { network = strings.ToLower(network) portStr := strconv.Itoa(int(port)) addr := "0.0.0.0:" + portStr switch network { case "tcp": tcpAddr, err := net.ResolveTCPAddr(network, addr) if err != nil { return err } ln, err := net.ListenTCP(network, tcpAddr) if err != nil { return err } ln.Close() if err != nil { return err } return nil case "udp": udpAddr, err := net.ResolveUDPAddr(network, addr) if err != nil { return err } ln, err := net.ListenUDP(network, udpAddr) if err != nil { return err } ln.Close() if err != nil { return err } return nil default: return errors.New("unknown network type " + network) } } riseup-vpn-0.24.5+ds1/vendor/github.com/kalikaneko/socks5/protocol.go000066400000000000000000000072041461742244100254510ustar00rootroot00000000000000package socks5 import "fmt" type VersionError struct { VER } func (v *VersionError) Error() string { return fmt.Sprintf("error socks protocol version: %d", v.VER) } // VER indicates protocol version type VER = uint8 const ( Version4 = 0x04 Version5 = 0x05 ) type MethodError struct { METHOD } func (m *MethodError) Error() string { if _, ok := method2Str[m.METHOD]; ok { return fmt.Sprintf("don't support this method %s", method2Str[m.METHOD]) } else { return fmt.Sprintf("unknown mehotd %#x", m.METHOD) } } // METHOD Defined authentication methods type METHOD = uint8 const ( NO_AUTHENTICATION_REQUIRED METHOD = 0x00 GSSAPI METHOD = 0x01 USERNAME_PASSWORD METHOD = 0x02 IANA_ASSIGNED METHOD = 0x03 NO_ACCEPTABLE_METHODS METHOD = 0xff ) var method2Str = map[METHOD]string{ NO_AUTHENTICATION_REQUIRED: "NO_AUTHENTICATION_REQUIRED", GSSAPI: "GSSAPI", USERNAME_PASSWORD: "USERNAME_PASSWORD", IANA_ASSIGNED: "IANA_ASSIGNED", NO_ACCEPTABLE_METHODS: "NO_ACCEPTABLE_METHODS", } // CMDError cmd error type type CMDError struct { CMD } func (c *CMDError) Error() string { if _, ok := cmd2Str[c.CMD]; !ok { return fmt.Sprintf("unknown command:%#x", c.CMD) } return fmt.Sprintf("don't support this command:%s", cmd2Str[c.CMD]) } // CMD is one of a field in Socks5 Request type CMD = uint8 const ( CONNECT CMD = 0x01 BIND CMD = 0x02 UDP_ASSOCIATE CMD = 0x03 ) var cmd2Str = map[CMD]string{ CONNECT: "CONNECT", BIND: "BIND", UDP_ASSOCIATE: "UDP_ASSOCIATE", Rejected: "Rejected", Granted: "Granted", } type REPError struct { REP } func (r *REPError) Error() string { if _, ok := cmd2Str[r.REP]; !ok { return fmt.Sprintf("unknown rep:%#x", r.REP) } return fmt.Sprintf("don't support this rep:%s", rep2Str[r.REP]) } // REP is one of a filed in Socks5 Reply type REP = uint8 //socks5 reply const ( SUCCESSED REP = 0x00 GENERAL_SOCKS_SERVER_FAILURE REP = 0x01 CONNECTION_NOT_ALLOW_BY_RULESET REP = 0x02 NETWORK_UNREACHABLE REP = 0x03 HOST_UNREACHABLE REP = 0x04 CONNECTION_REFUSED REP = 0x05 TTL_EXPIRED REP = 0x06 COMMAND_NOT_SUPPORTED REP = 0x07 ADDRESS_TYPE_NOT_SUPPORTED REP = 0x08 UNASSIGNED REP = 0x09 ) var rep2Str = map[REP]string{ SUCCESSED: "successes", GENERAL_SOCKS_SERVER_FAILURE: "general_socks_server_failure", CONNECTION_NOT_ALLOW_BY_RULESET: "connection_not_allow_by_ruleset", NETWORK_UNREACHABLE: "network_unreachable", HOST_UNREACHABLE: "host_unreachable", CONNECTION_REFUSED: "connection_refused", TTL_EXPIRED: "ttl_expired", COMMAND_NOT_SUPPORTED: "command_not_supported", ADDRESS_TYPE_NOT_SUPPORTED: "address_type_not_supported", UNASSIGNED: "unassigned", Granted: "granted", Rejected: "rejected", } //socks4 reply const ( // Granted means server allow client request Granted = 90 // Rejected means server refuse client request Rejected = 91 ) type AtypeError struct { ATYPE } func (a *AtypeError) Error() string { return fmt.Sprintf("unknown address type:%#x", a.ATYPE) } // ATYPE indicates address type in Request and Reply struct type ATYPE = uint8 const ( IPV4_ADDRESS ATYPE = 0x01 DOMAINNAME ATYPE = 0x03 IPV6_ADDRESS ATYPE = 0x04 ) var atype2Str = map[ATYPE]string{ IPV4_ADDRESS: "IPV4_ADDRESS", DOMAINNAME: "DOMAINNAME", IPV6_ADDRESS: "IPV6_ADDRESS", } const NULL byte = 0 riseup-vpn-0.24.5+ds1/vendor/github.com/kalikaneko/socks5/reply.go000066400000000000000000000006011461742244100247350ustar00rootroot00000000000000package socks5 // Reply a reply formed as follows: // +----+-----+-------+------+----------+----------+ // |VER | REP | RSV | ATYP | BND.ADDR | BND.PORT | // +----+-----+-------+------+----------+----------+ // | 1 | 1 | X'00' | 1 | Variable | 2 | // +----+-----+-------+------+----------+----------+ type Reply struct { VER REP RSV uint8 *Address } riseup-vpn-0.24.5+ds1/vendor/github.com/kalikaneko/socks5/request.go000066400000000000000000000032731461742244100253020ustar00rootroot00000000000000package socks5 import ( "bytes" "errors" ) // Request The SOCKS request is formed as follows: // +----+-----+-------+------+----------+----------+ // |VER | CMD | RSV | ATYP | DST.ADDR | DST.PORT | // +----+-----+-------+------+----------+----------+ // | 1 | 1 | X'00' | 1 | Variable | 2 | // +----+-----+-------+------+----------+----------+ type Request struct { VER CMD RSV uint8 *Address } // UDPHeader Each UDP datagram carries a UDP request // header with it: // +----+------+------+----------+----------+----------+ // |RSV | FRAG | ATYP | DST.ADDR | DST.PORT | DATA | // +----+------+------+----------+----------+----------+ // | 2 | 1 | 1 | Variable | 2 | Variable | // +----+------+------+----------+----------+----------+ type UDPHeader struct { RSV uint16 FRAG uint8 *Address Data []byte } var errEmptyPayload = errors.New("empty payload") // PackUDPData add UDP request header before payload. func PackUDPData(addr *Address, payload []byte) ([]byte, error) { if len(payload) == 0 { return nil, errEmptyPayload } if addr == nil { return nil, errors.New("addr is nil") } // RSV, FRAG data := []byte{0x00, 0x00, 0x00} dest, err := addr.Bytes(Version5) if err != nil { return nil, err } // ATYP, DEST.IP, DEST.PORT data = append(data, dest...) // DATA data = append(data, payload...) return data, nil } // UnpackUDPData split UDP header and payload. func UnpackUDPData(data []byte) (addr *Address, payload []byte, err error) { // trim RSV, FRAG data = data[3:] buf := bytes.NewBuffer(data) addr, _, err = readAddress(buf, Version5) if err != nil { return nil, nil, err } payload = buf.Bytes() return } riseup-vpn-0.24.5+ds1/vendor/github.com/kalikaneko/socks5/server.go000066400000000000000000000412701461742244100251170ustar00rootroot00000000000000package socks5 import ( "errors" "io" "log" "net" "strconv" "sync" "sync/atomic" "time" ) // Server defines parameters for running socks server. // The zero value for Server is a valid configuration(tcp listen on :1080). type Server struct { // Addr optionally specifies the TCP address for the server to listen on, // in the form "host:port". If empty, ":1080" (port 1080) is used. Addr string // BindIP specific UDP relay server IP and bind listen IP. // It shouldn't be ipv4zero like "0,0,0,0" or ipv6zero like [:] // If empty, localhost used. BindIP string // ReadTimeout is the maximum duration for reading from socks client. // it's only effective to socks server handshake process. // // If zero, there is no timeout. ReadTimeout time.Duration // WriteTimeout is the maximum duration for writing to socks client. // it's only effective to socks server handshake process. // // If zero, there is no timeout. WriteTimeout time.Duration // method mapping to the authenticator // if nil server provide NO_AUTHENTICATION_REQUIRED method by default Authenticators map[METHOD]Authenticator // The server select method to use policy //MethodSelector Dial DialFunc // Server transmit data between client and dest server. // if nil, DefaultTransport is used. Transporter // ErrorLog specifics an options logger for errors accepting // connections, unexpected socks protocol handshake process, // and server to remote connection errors. // If nil, logging is done via log package's standard logger. ErrorLog *log.Logger // DisableSocks4, disable socks4 server, default enable socks4 compatible. DisableSocks4 bool // 1 indicate server is shutting down. // 0 indicate server is running. // Atomic operation must be guaranteed. isShutdown int32 mu sync.Mutex listeners map[*net.Listener]struct{} activeConn map[net.Conn]struct{} doneCh chan struct{} } type DialFunc func(string, string) (net.Conn, error) func (srv *Server) getDoneChan() <-chan struct{} { srv.mu.Lock() defer srv.mu.Unlock() return srv.getDoneChanLocked() } func (srv *Server) getDoneChanLocked() chan struct{} { if srv.doneCh == nil { srv.doneCh = make(chan struct{}) } return srv.doneCh } func (srv *Server) closeDoneChanLocked() { ch := srv.getDoneChanLocked() select { case <-ch: default: close(srv.doneCh) } } func (srv *Server) Close() error { atomic.StoreInt32(&srv.isShutdown, 1) srv.mu.Lock() defer srv.mu.Unlock() // close all listeners. err := srv.closeListenerLocked() if err != nil { return err } // close doneCh to broadcast close message. srv.closeDoneChanLocked() // Close all open connections. for conn, _ := range srv.activeConn { conn.Close() } return nil } func (srv *Server) inShuttingDown() bool { return atomic.LoadInt32(&srv.isShutdown) != 0 } func (srv *Server) closeListenerLocked() error { var err error for ln := range srv.listeners { if cerr := (*ln).Close(); cerr != nil { err = cerr } } return err } // trackListener adds or removes a net.Listener to the set of tracked // listeners. // // We store a pointer to interface in the map set, in case the // net.Listener is not comparable. This is safe because we only call // trackListener via Serve and can track+defer untrack the same // pointer to local variable there. We never need to compare a // Listener from another caller. // // It reports whether the server is still up (not Shutdown or Closed). func (srv *Server) trackListener(l *net.Listener, add bool) bool { srv.mu.Lock() defer srv.mu.Unlock() if srv.listeners == nil { srv.listeners = make(map[*net.Listener]struct{}) } if add { if srv.inShuttingDown() { return false } srv.listeners[l] = struct{}{} } else { delete(srv.listeners, l) } return true } func (srv *Server) trackConn(c net.Conn, add bool) { srv.mu.Lock() defer srv.mu.Unlock() if srv.activeConn == nil { srv.activeConn = make(map[net.Conn]struct{}) } if add { srv.activeConn[c] = struct{}{} } else { delete(srv.activeConn, c) } } // ListenAndServe listens on the TCP network address srv.Addr and then // calls serve to handle requests on incoming connections. // // If srv.Addr is blank, ":1080" is used. func (srv *Server) ListenAndServe() error { if srv.inShuttingDown() { return ErrServerClosed } addr := srv.Addr if addr == "" { addr = "0.0.0.0:1080" } if srv.BindIP == "" { srv.BindIP = "localhost" } else if srv.BindIP == net.IPv4zero.String() || srv.BindIP == net.IPv6zero.String() { return errors.New("socks: server bindIP shouldn't be zero") } ln, err := net.Listen("tcp", addr) if err != nil { return err } return srv.Serve(ln) } // ErrServerClosed is returned by the Server's Serve, ListenAndServe methods after a call to Shutdown or Close. var ErrServerClosed = errors.New("socks: Server closed") // Serve accepts incoming connections on the Listener l, creating a // new service goroutine for each. The service goroutine select client // list methods and reply client. Then process authentication and reply // to them. At then end of handshake, read socks request from client and // establish a connection to the target. func (srv *Server) Serve(l net.Listener) error { srv.trackListener(&l, true) defer srv.trackListener(&l, false) var tempDelay time.Duration for { client, err := l.Accept() if err != nil { select { case <-srv.getDoneChan(): return ErrServerClosed default: } if ne, ok := err.(net.Error); ok && ne.Temporary() { if tempDelay == 0 { tempDelay = 5 * time.Millisecond } else { tempDelay *= 2 } if max := time.Second; tempDelay > max { tempDelay = max } srv.logf()("socks: Accept error: %v, retrying in %v", err, tempDelay) time.Sleep(tempDelay) continue } return err } go srv.serveconn(client) } } func (srv *Server) serveconn(client net.Conn) { if srv.ReadTimeout != 0 { client.SetReadDeadline(time.Now().Add(srv.ReadTimeout)) } if srv.WriteTimeout != 0 { client.SetWriteDeadline(time.Now().Add(srv.WriteTimeout)) } // handshake request, err := srv.handShake(client) if err != nil { srv.logf()(err.Error()) client.Close() return } // establish connection to remote remote, err := srv.establish(client, request) if err != nil { srv.logf()(err.Error()) client.Close() return } // establish over, reset deadline. client.SetReadDeadline(time.Time{}) client.SetWriteDeadline(time.Time{}) // transport data switch request.CMD { case CONNECT, BIND: srv.trackConn(client, true) defer srv.trackConn(client, false) srv.trackConn(remote, true) defer srv.trackConn(remote, false) errCh := srv.transport().TransportTCP(client, remote) for err := range errCh { if err != nil { srv.logf()(err.Error()) } } case UDP_ASSOCIATE: relay := NewUDPConn(remote.(*net.UDPConn), client.(*net.TCPConn)) srv.trackConn(relay, true) defer srv.trackConn(relay, false) err = srv.transport().TransportUDP(relay, request) if err != nil { srv.logf()(err.Error()) } } } func (srv *Server) transport() Transporter { if srv.Transporter == nil { return DefaultTransporter } return srv.Transporter } func (srv *Server) dialFn() DialFunc { if srv.Dial == nil { return net.Dial } return srv.Dial } var errDisableSocks4 = errors.New("socks4 server has been disabled") // handShake socks protocol handshake process func (srv *Server) handShake(client net.Conn) (*Request, error) { //validate socks version message _, err := checkVersion(client) if err != nil { return nil, &OpError{Version5, "read", client.RemoteAddr(), "\"check version\"", err} } //socks5 protocol authentication err = srv.authentication(client) if err != nil { return nil, err } //handle socks5 request return srv.readSocks5Request(client) } // authentication socks5 authentication process func (srv *Server) authentication(client net.Conn) error { //get nMethods nMethods, err := ReadNBytes(client, 1) if err != nil { return err } //Get methods methods, err := ReadNBytes(client, int(nMethods[0])) if err != nil { return err } return srv.MethodSelect(methods, client) } // readSocks5Request read socks5 protocol client request. func (srv *Server) readSocks5Request(client net.Conn) (*Request, error) { reply := &Reply{ VER: Version5, Address: &Address{net.IPv4zero, IPV4_ADDRESS, 0}, } req := &Request{} //VER, CMD, RSV cmd, err := ReadNBytes(client, 3) if err != nil { return nil, &OpError{req.VER, "read", client.RemoteAddr(), "\"process request ver,cmd,rsv\"", err} } req.VER = cmd[0] req.CMD = cmd[1] req.RSV = cmd[2] // ATYPE, DST.IP, DST.PORT addr, rep, err := readAddress(client, req.VER) if err != nil { reply.REP = rep err := srv.sendReply(client, reply) if err != nil { return nil, &OpError{req.VER, "write", client.RemoteAddr(), "\"process request address\"", err} } } req.Address = addr return req, nil } // IsAllowNoAuthRequired return true if server enable NO_AUTHENTICATION_REQUIRED. // Or the server doesn't has no Authenticator return true. Otherwise return false. func (srv *Server) IsAllowNoAuthRequired() bool { if len(srv.Authenticators) == 0 { return true } for method := range srv.Authenticators { if method == NO_AUTHENTICATION_REQUIRED { return true } } return false } // establish tcp connection to remote host if command is CONNECT or // start listen on udp socket when command is UDP_ASSOCIATE. Listen // and accept host connection when command is BIND. Finally, send // corresponding reply to client. func (srv *Server) establish(client net.Conn, req *Request) (dest net.Conn, err error) { reply := &Reply{ VER: req.VER, Address: &Address{net.IPv4zero, IPV4_ADDRESS, 0}, } if req.VER != Version5 { // unknown version return nil, &VersionError{req.VER} } switch req.CMD { case CONNECT: // dial dest host. dest, err = srv.dialFn()("tcp", req.Address.String()) if err != nil { reply.REP = HOST_UNREACHABLE err2 := srv.sendReply(client, reply) if err2 != nil { return nil, &OpError{req.VER, "write", client.RemoteAddr(), "\"process request\"", err2} } return nil, err } // parse remote host address. remoteAddr, err := ParseAddress(dest.RemoteAddr().String()) if err != nil { reply.REP = GENERAL_SOCKS_SERVER_FAILURE err2 := srv.sendReply(client, reply) if err2 != nil { return nil, &OpError{req.VER, "write", client.RemoteAddr(), "\"process request\"", err2} } return nil, err } reply.Address = remoteAddr // success reply.REP = SUCCESSED err = srv.sendReply(client, reply) if err != nil { return nil, &OpError{req.VER, "write", client.RemoteAddr(), "\"process request\"", err} } case UDP_ASSOCIATE: addr, err := net.ResolveUDPAddr("udp", net.JoinHostPort(srv.BindIP, "0")) if err != nil { return nil, err } // start udp listening on random port. dest, err = net.ListenUDP("udp", addr) if err != nil { reply.REP = GENERAL_SOCKS_SERVER_FAILURE err2 := srv.sendReply(client, reply) if err2 != nil { return nil, &OpError{req.VER, "write", client.RemoteAddr(), "\"process request\"", err2} } return nil, err } // success reply.REP = SUCCESSED relayAddr, err := ParseAddress(dest.LocalAddr().String()) if err != nil { return nil, err } reply.Address = relayAddr err = srv.sendReply(client, reply) if err != nil { return nil, &OpError{req.VER, "write", client.RemoteAddr(), "\"process request\"", err} } case BIND: bindAddr, err := net.ResolveTCPAddr("tcp", net.JoinHostPort(srv.BindIP, "0")) if err != nil { return nil, err } // start tcp listening on random port. bindServer, err := net.ListenTCP("tcp", bindAddr) if err != nil { reply.REP = GENERAL_SOCKS_SERVER_FAILURE err2 := srv.sendReply(client, reply) if err2 != nil { return nil, &OpError{req.VER, "write", client.RemoteAddr(), "\"process request\"", err2} } return nil, err } defer bindServer.Close() reply.REP = SUCCESSED reply.Address, err = ParseAddress(bindServer.Addr().String()) if err != nil { return nil, err } // send first reply to client. err = srv.sendReply(client, reply) if err != nil { return nil, &OpError{req.VER, "write", client.RemoteAddr(), "\"process request\"", err} } dest, err = bindServer.Accept() if err != nil { reply.REP = GENERAL_SOCKS_SERVER_FAILURE err2 := srv.sendReply(client, reply) if err2 != nil { return nil, &OpError{req.VER, "write", client.RemoteAddr(), "\"process request\"", err2} } return nil, err } // send second reply to client. if req.Address.String() == dest.RemoteAddr().String() { reply.Address, err = ParseAddress(dest.RemoteAddr().String()) if err != nil { return nil, err } err = srv.sendReply(client, reply) if err != nil { return nil, &OpError{req.VER, "write", client.RemoteAddr(), "\"process request\"", err} } } else { reply.REP = GENERAL_SOCKS_SERVER_FAILURE err = srv.sendReply(client, reply) if err != nil { return nil, &OpError{req.VER, "write", client.RemoteAddr(), "\"process request\"", err} } } default: reply.REP = COMMAND_NOT_SUPPORTED err = srv.sendReply(client, reply) if err != nil { return nil, &OpError{req.VER, "write", client.RemoteAddr(), "\"process request\"", err} } return nil, &OpError{Version5, "", client.RemoteAddr(), "\"process request\"", &CMDError{req.CMD}} } return } // sendReply The server send socks protocol reply to client func (srv *Server) sendReply(out io.Writer, r *Reply) error { var reply []byte var err error if r.VER == Version4 { if r.Address.ATYPE != IPV4_ADDRESS { return errErrorATPE } addr, err := r.Address.Bytes(r.VER) if err != nil { return err } reply = append(reply, 0, r.REP) // Remove NULL at the end. Please see Address.Bytes() Method. reply = append(reply, addr[:len(addr)-1]...) } else if r.VER == Version5 { addr, err := r.Address.Bytes(r.VER) if err != nil { return err } reply = append(reply, r.VER, r.REP, r.RSV) reply = append(reply, addr...) } else { return &VersionError{r.VER} } _, err = out.Write(reply) return err } // MethodSelect select authentication method and reply to client. func (srv *Server) MethodSelect(methods []CMD, client net.Conn) error { // Select method to authenticate, then send selected method to client. for _, method := range methods { //Preferred to use NO_AUTHENTICATION_REQUIRED method if method == NO_AUTHENTICATION_REQUIRED && srv.IsAllowNoAuthRequired() { reply := []byte{Version5, NO_AUTHENTICATION_REQUIRED} _, err := client.Write(reply) if err != nil { return &OpError{Version5, "write", client.RemoteAddr(), "authentication", err} } return nil } for m := range srv.Authenticators { //Select the first matched method to authenticate if m == method { reply := []byte{Version5, method} _, err := client.Write(reply) if err != nil { return &OpError{Version5, "write", client.RemoteAddr(), "authentication", err} } err = srv.Authenticators[m].Authenticate(client, client) if err != nil { return &OpError{Version5, "", client.RemoteAddr(), "authentication", err} } return nil } } } // There are no Methods can use reply := []byte{Version5, NO_ACCEPTABLE_METHODS} _, err := client.Write(reply) if err != nil { return &OpError{Version5, "write", client.RemoteAddr(), "authentication", err} } return &OpError{Version5, "", client.RemoteAddr(), "authentication", &MethodError{methods[0]}} } func (srv *Server) logf() func(format string, args ...interface{}) { if srv.ErrorLog == nil { return log.Printf } return srv.ErrorLog.Printf } // checkVersion check version is 4 or 5. func checkVersion(in io.Reader) (VER, error) { version, err := ReadNBytes(in, 1) if err != nil { return 0, err } if (version[0] != Version5) && (version[0] != Version4) { return 0, &VersionError{version[0]} } return version[0], nil } // OpError is the error type usually returned by functions in the socks5 // package. It describes the socks version, operation, client address, // and address of an error. type OpError struct { // VER describe the socks server version on process. VER // Op is the operation which caused the error, such as // "read", "write". Op string // Addr define client's address which caused the error. Addr net.Addr // Step is the client's current connection stage, such as // "check version", "authentication", "process request", Step string // Err is the error that occurred during the operation. // The Error method panics if the error is nil. Err error } func (o *OpError) Error() string { str := "socks" + strconv.Itoa(int(o.VER)) str += " " + o.Op if o.Addr == nil { str += " " } else { str += " " + o.Addr.String() } str += " " + o.Step str += ":" + o.Err.Error() return str } var errErrorATPE = errors.New("socks4 server bind address type should be ipv4") riseup-vpn-0.24.5+ds1/vendor/github.com/kalikaneko/socks5/transport.go000066400000000000000000000050461461742244100256460ustar00rootroot00000000000000package socks5 import ( "io" "net" "strings" "sync" ) // Transporter transmit data between client and dest server. type Transporter interface { TransportTCP(client net.Conn, remote net.Conn) <-chan error TransportUDP(server *UDPConn, request *Request) error } type transport struct { } const maxLenOfDatagram = 65507 var transportPool = &sync.Pool{ New: func() interface{} { return make([]byte, maxLenOfDatagram) }, } // TransportTCP use io.CopyBuffer transmit data. func (t *transport) TransportTCP(client net.Conn, remote net.Conn) <-chan error { errCh := make(chan error) var wg = sync.WaitGroup{} f := func(dst net.Conn, src net.Conn) { defer wg.Done() buf := transportPool.Get().([]byte) defer transportPool.Put(buf) _, err := io.CopyBuffer(dst, src, buf) errCh <- err } wg.Add(2) go func() { wg.Wait() defer client.Close() defer remote.Close() close(errCh) }() go f(remote, client) go f(client, remote) return errCh } // TransportUDP forwarding UDP packet between client and dest. func (t *transport) TransportUDP(server *UDPConn, request *Request) error { // Client udp address, limit access to the association. clientAddr, err := request.Address.UDPAddr() if err != nil { return err } // Record dest address, limit access to the association. forwardAddr := make(map[string]struct{}) buf := transportPool.Get().([]byte) defer transportPool.Put(buf) defer server.Close() for { select { default: // Receive data from remote. n, addr, err := server.ReadFromUDP(buf) if err != nil { return err } // Should unpack data when data from client. if strings.EqualFold(clientAddr.String(), addr.String()) { destAddr, payload, err := UnpackUDPData(buf[:n]) if err != nil { return err } destUDPAddr, err := destAddr.UDPAddr() if err != nil { return err } forwardAddr[destUDPAddr.String()] = struct{}{} // send payload to dest address _, err = server.WriteToUDP(payload, destUDPAddr) if err != nil { return err } } // Should pack data when data from dest host if _, ok := forwardAddr[addr.String()]; ok { address, err := ParseAddress(addr.String()) if err != nil { return err } // packed Data packedData, err := PackUDPData(address, buf[:n]) if err != nil { return err } // send payload to client _, err = server.WriteToUDP(packedData, clientAddr) if err != nil { return err } } case <-server.CloseCh(): return nil } } } var DefaultTransporter Transporter = &transport{} riseup-vpn-0.24.5+ds1/vendor/github.com/keybase/000077500000000000000000000000001461742244100213615ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/github.com/keybase/go-ps/000077500000000000000000000000001461742244100224065ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/github.com/keybase/go-ps/.gitignore000066400000000000000000000000121461742244100243670ustar00rootroot00000000000000.vagrant/ riseup-vpn-0.24.5+ds1/vendor/github.com/keybase/go-ps/.pre-commit-config.yaml000066400000000000000000000004241461742244100266670ustar00rootroot00000000000000- repo: https://github.com/gabriel/pre-commit-golang sha: c02a81d85a5295886022b8106c367518e6c3760e hooks: - id: go-fmt - id: go-metalinter args: - --deadline=60s - --vendor - --cyclo-over=20 - --dupl-threshold=100 riseup-vpn-0.24.5+ds1/vendor/github.com/keybase/go-ps/LICENSE.md000066400000000000000000000041611461742244100240140ustar00rootroot00000000000000The MIT License (MIT) Copyright (c) 2014 Mitchell Hashimoto Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. The MIT License (MIT) Copyright (c) 2015 Keybase Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. riseup-vpn-0.24.5+ds1/vendor/github.com/keybase/go-ps/README.md000066400000000000000000000025421461742244100236700ustar00rootroot00000000000000# Process List Library for Go [![Build Status](https://travis-ci.org/keybase/go-ps.svg?branch=master)](https://travis-ci.org/keybase/go-ps) [![Build Status](https://ci.appveyor.com/api/projects/status/github/keybase/go-ps?branch=master&svg=true)](https://ci.appveyor.com/project/keybase/go-ps) [![Coverage Status](https://coveralls.io/repos/github/keybase/go-ps/badge.svg?branch=master)](https://coveralls.io/github/keybase/go-ps?branch=master) [![GoDoc](https://godoc.org/github.com/keybase/go-ps?status.svg)](https://godoc.org/github.com/keybase/go-ps) go-ps is a library for Go that implements OS-specific APIs to list and manipulate processes in a platform-safe way. The library can find and list processes on Linux, Mac OS X, and Windows. If you're new to Go, this library has a good amount of advanced Go educational value as well. It uses some advanced features of Go: build tags, accessing DLL methods for Windows, cgo for Darwin, etc. How it works: * **Darwin** uses `sysctl` and `proc_listpids` (for the path) to retrieve the process table, via cgo. * **Unix** uses the procfs at `/proc` to inspect the process tree. * **Windows** uses the Windows API, and methods such as `CreateToolhelp32Snapshot` to get a point-in-time snapshot of the process table. ## Installation Install using standard `go get`: ``` $ go get github.com/keybase/go-ps ``` riseup-vpn-0.24.5+ds1/vendor/github.com/keybase/go-ps/appveyor.yml000066400000000000000000000011661461742244100250020ustar00rootroot00000000000000# environment variables environment: global: GOPATH: c:\work\ # clone path clone_folder: c:\work\src\github.com\keybase\go-ps # build platform, i.e. x86, x64, Any CPU. This setting is optional. #platform: Any CPU # scripts to run before build before_build: # scripts to run after build after_build: # to run your custom scripts instead of automatic MSBuild build_script: - go version - go build - go get github.com/stretchr/testify/assert - go get github.com/stretchr/testify/require - go test -short -v - go test -short -race -v # to disable automatic tests test: off # to disable deployment deploy: off riseup-vpn-0.24.5+ds1/vendor/github.com/keybase/go-ps/darwincgo/000077500000000000000000000000001461742244100243635ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/github.com/keybase/go-ps/darwincgo/empty.go000066400000000000000000000000221461742244100260420ustar00rootroot00000000000000package darwincgo riseup-vpn-0.24.5+ds1/vendor/github.com/keybase/go-ps/darwincgo/process_darwin.c000066400000000000000000000046601461742244100275570ustar00rootroot00000000000000// +build darwin #include #include #include #include #include #include #include // This is declared in process_darwin.go extern void goDarwinAppendProc(pid_t, pid_t, char *); extern void goDarwinSetPath(pid_t, char *); // darwinProcesses loads the process table and calls the exported Go function to // insert the data back into the Go space. // // This function is implemented in C because while it would technically // be possible to do this all in Go, I didn't want to go spelunking through // header files to get all the structures properly. It is much easier to just // call it in C and be done with it. int darwinProcesses() { int err = 0; int i = 0; static const int name[] = { CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0 }; size_t length = 0; struct kinfo_proc *result = NULL; size_t resultCount = 0; // Get the length first err = sysctl((int*)name, (sizeof(name) / sizeof(*name)) - 1, NULL, &length, NULL, 0); if (err != 0) { goto ERREXIT; } // Allocate the appropriate sized buffer to read the process list result = malloc(length); // Call sysctl again with our buffer to fill it with the process list err = sysctl((int*)name, (sizeof(name) / sizeof(*name)) - 1, result, &length, NULL, 0); if (err != 0) { goto ERREXIT; } resultCount = length / sizeof(struct kinfo_proc); for (i = 0; i < resultCount; i++) { struct kinfo_proc *single = &result[i]; goDarwinAppendProc( single->kp_proc.p_pid, single->kp_eproc.e_ppid, single->kp_proc.p_comm); } ERREXIT: if (result != NULL) { free(result); } if (err != 0) { return errno; } return 0; } // darwinProcessPaths looks up paths for process pids void darwinProcessPaths() { int pid_buf_size = proc_listpids(PROC_ALL_PIDS, 0, NULL, 0); int pid_count = pid_buf_size / sizeof(pid_t); pid_t* pids = malloc(pid_buf_size); bzero(pids, pid_buf_size); proc_listpids(PROC_ALL_PIDS, 0, pids, pid_buf_size); char path_buffer[PROC_PIDPATHINFO_MAXSIZE]; for (int i=0; i < pid_count; i++) { if (pids[i] == 0) break; bzero(path_buffer, PROC_PIDPATHINFO_MAXSIZE); if (proc_pidpath(pids[i], path_buffer, sizeof(path_buffer)) > 0) { goDarwinSetPath(pids[i], path_buffer); } } free(pids); } riseup-vpn-0.24.5+ds1/vendor/github.com/keybase/go-ps/darwincgo/process_darwin.go000066400000000000000000000033731461742244100277420ustar00rootroot00000000000000// +build darwin package darwincgo /* #include #include #include extern int darwinProcesses(); extern void darwinProcessPaths(); */ import "C" import ( "path/filepath" "sync" ) // This lock is what verifies that C calling back into Go is only // modifying data once at a time. var darwinLock sync.Mutex var darwinProcsByPID map[int]*DarwinProcess // DarwinProcess is process definition for OS X type DarwinProcess struct { pid int ppid int path string } // Pid returns process id func (p *DarwinProcess) Pid() int { return p.pid } // PPid returns parent process id func (p *DarwinProcess) PPid() int { return p.ppid } // Executable returns process executable name func (p *DarwinProcess) Executable() string { path, _ := p.Path() return filepath.Base(path) } // Path returns path to process executable func (p *DarwinProcess) Path() (string, error) { return p.path, nil } //export goDarwinAppendProc func goDarwinAppendProc(pid C.pid_t, ppid C.pid_t, comm *C.char) { proc := &DarwinProcess{ pid: int(pid), ppid: int(ppid), } darwinProcsByPID[proc.pid] = proc } //export goDarwinSetPath func goDarwinSetPath(pid C.pid_t, comm *C.char) { if proc, ok := darwinProcsByPID[int(pid)]; ok && proc != nil { proc.path = C.GoString(comm) } } // ProcessMap returns a map of processes for the main library package. func ProcessMap() (map[int]*DarwinProcess, error) { darwinLock.Lock() defer darwinLock.Unlock() darwinProcsByPID = make(map[int]*DarwinProcess) // To ignore deadcode warnings for exported functions _ = goDarwinAppendProc _ = goDarwinSetPath // TODO: Investigate why darwinProcesses returns error even if process list // succeeds C.darwinProcesses() C.darwinProcessPaths() return darwinProcsByPID, nil } riseup-vpn-0.24.5+ds1/vendor/github.com/keybase/go-ps/process.go000066400000000000000000000044201461742244100244130ustar00rootroot00000000000000// Package ps provides an API for finding and listing processes in a // platform-agnostic way. // // NOTE: If you're reading these docs online via GoDocs or some other system, // you might only see the Unix docs. This project makes heavy use of // platform-specific implementations. We recommend reading the source if you // are interested. package ps import "fmt" // Process is the generic interface that is implemented on every platform // and provides common operations for processes. type Process interface { // Pid is the process ID for this process. Pid() int // PPid is the parent process ID for this process. PPid() int // Executable name running this process. This is not a path to the // executable. Executable() string // Path is full path to the executable. The path may be unavailable if the // exectuable was deleted from the system while it was still running. Path() (string, error) } type processesFn func() ([]Process, error) // Processes returns all processes. // // This of course will be a point-in-time snapshot of when this method was // called. Some operating systems don't provide snapshot capability of the // process table, in which case the process table returned might contain // ephemeral entities that happened to be running when this was called. func Processes() ([]Process, error) { return processes() } // FindProcess looks up a single process by pid. // This may require a full process listing depending on the platform, so // consider using os.FindProcess instead. // Process will be nil and error will be nil if a matching process is not found. func FindProcess(pid int) (Process, error) { return findProcess(pid) } type matchFn func(Process) bool // findProcessesWithFn finds processes using match function. // If max is != 0, then we will return that max number of processes. func findProcessesWithFn(processesFn processesFn, matchFn matchFn, max int) ([]Process, error) { processes, err := processesFn() if err != nil { return nil, fmt.Errorf("Error listing processes: %s", err) } if processes == nil { return nil, nil } procs := []Process{} for _, p := range processes { if matchFn(p) { procs = append(procs, p) } if max != 0 && len(procs) >= max { break } } return procs, nil } // Avoid linting error var _ = findProcessesWithFn riseup-vpn-0.24.5+ds1/vendor/github.com/keybase/go-ps/process_darwin.go000066400000000000000000000007331461742244100257620ustar00rootroot00000000000000// +build darwin package ps import ( "github.com/keybase/go-ps/darwincgo" ) func findProcess(pid int) (Process, error) { m, err := darwincgo.ProcessMap() if err != nil { return nil, err } p := m[pid] if p == nil { return nil, nil } return p, nil } func processes() ([]Process, error) { m, err := darwincgo.ProcessMap() if err != nil { return nil, err } ps := make([]Process, 0, len(m)) for _, dp := range m { ps = append(ps, dp) } return ps, nil } riseup-vpn-0.24.5+ds1/vendor/github.com/keybase/go-ps/process_freebsd.go000066400000000000000000000130021461742244100261010ustar00rootroot00000000000000// +build freebsd,amd64 package ps import ( "bytes" "encoding/binary" "fmt" "syscall" "unsafe" ) // copied from sys/sysctl.h const ( CTL_KERN = 1 // "high kernel": proc, limits KERN_PROC = 14 // struct: process entries KERN_PROC_PID = 1 // by process id KERN_PROC_PROC = 8 // only return procs KERN_PROC_PATHNAME = 12 // path to executable ) // copied from sys/user.h type Kinfo_proc struct { Ki_structsize int32 Ki_layout int32 Ki_args int64 Ki_paddr int64 Ki_addr int64 Ki_tracep int64 Ki_textvp int64 Ki_fd int64 Ki_vmspace int64 Ki_wchan int64 Ki_pid int32 Ki_ppid int32 Ki_pgid int32 Ki_tpgid int32 Ki_sid int32 Ki_tsid int32 Ki_jobc [2]byte Ki_spare_short1 [2]byte Ki_tdev int32 Ki_siglist [16]byte Ki_sigmask [16]byte Ki_sigignore [16]byte Ki_sigcatch [16]byte Ki_uid int32 Ki_ruid int32 Ki_svuid int32 Ki_rgid int32 Ki_svgid int32 Ki_ngroups [2]byte Ki_spare_short2 [2]byte Ki_groups [64]byte Ki_size int64 Ki_rssize int64 Ki_swrss int64 Ki_tsize int64 Ki_dsize int64 Ki_ssize int64 Ki_xstat [2]byte Ki_acflag [2]byte Ki_pctcpu int32 Ki_estcpu int32 Ki_slptime int32 Ki_swtime int32 Ki_cow int32 Ki_runtime int64 Ki_start [16]byte Ki_childtime [16]byte Ki_flag int64 Ki_kiflag int64 Ki_traceflag int32 Ki_stat [1]byte Ki_nice [1]byte Ki_lock [1]byte Ki_rqindex [1]byte Ki_oncpu [1]byte Ki_lastcpu [1]byte Ki_ocomm [17]byte Ki_wmesg [9]byte Ki_login [18]byte Ki_lockname [9]byte Ki_comm [20]byte Ki_emul [17]byte Ki_sparestrings [68]byte Ki_spareints [36]byte Ki_cr_flags int32 Ki_jid int32 Ki_numthreads int32 Ki_tid int32 Ki_pri int32 Ki_rusage [144]byte Ki_rusage_ch [144]byte Ki_pcb int64 Ki_kstack int64 Ki_udata int64 Ki_tdaddr int64 Ki_spareptrs [48]byte Ki_spareint64s [96]byte Ki_sflag int64 Ki_tdflags int64 } // UnixProcess is an implementation of Process that contains Unix-specific // fields and information. type UnixProcess struct { pid int ppid int state rune pgrp int sid int binary string } // Pid returns process id func (p *UnixProcess) Pid() int { return p.pid } // PPid returns parent process id func (p *UnixProcess) PPid() int { return p.ppid } // Executable returns process executable name func (p *UnixProcess) Executable() string { return p.binary } // Path returns path to process executable func (p *UnixProcess) Path() (string, error) { return "", fmt.Errorf("Unsupported") } // Refresh reloads all the data associated with this process. func (p *UnixProcess) Refresh() error { mib := []int32{CTL_KERN, KERN_PROC, KERN_PROC_PID, int32(p.pid)} buf, length, err := call_syscall(mib) if err != nil { return err } proc_k := Kinfo_proc{} if length != uint64(unsafe.Sizeof(proc_k)) { return err } k, err := parse_kinfo_proc(buf) if err != nil { return err } p.ppid, p.pgrp, p.sid, p.binary = copy_params(&k) return nil } func copy_params(k *Kinfo_proc) (int, int, int, string) { n := -1 for i, b := range k.Ki_comm { if b == 0 { break } n = i + 1 } comm := string(k.Ki_comm[:n]) return int(k.Ki_ppid), int(k.Ki_pgid), int(k.Ki_sid), comm } func findProcess(pid int) (Process, error) { mib := []int32{CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, int32(pid)} _, _, err := call_syscall(mib) if err != nil { return nil, err } return newUnixProcess(pid) } func processes() ([]Process, error) { results := make([]Process, 0, 50) mib := []int32{CTL_KERN, KERN_PROC, KERN_PROC_PROC, 0} buf, length, err := call_syscall(mib) if err != nil { return results, err } // get kinfo_proc size k := Kinfo_proc{} procinfo_len := int(unsafe.Sizeof(k)) count := int(length / uint64(procinfo_len)) // parse buf to procs for i := 0; i < count; i++ { b := buf[i*procinfo_len : i*procinfo_len+procinfo_len] k, err := parse_kinfo_proc(b) if err != nil { continue } p, err := newUnixProcess(int(k.Ki_pid)) if err != nil { continue } p.ppid, p.pgrp, p.sid, p.binary = copy_params(&k) results = append(results, p) } return results, nil } func parse_kinfo_proc(buf []byte) (Kinfo_proc, error) { var k Kinfo_proc br := bytes.NewReader(buf) err := binary.Read(br, binary.LittleEndian, &k) if err != nil { return k, err } return k, nil } func call_syscall(mib []int32) ([]byte, uint64, error) { miblen := uint64(len(mib)) // get required buffer size length := uint64(0) _, _, err := syscall.RawSyscall6( syscall.SYS___SYSCTL, uintptr(unsafe.Pointer(&mib[0])), uintptr(miblen), 0, uintptr(unsafe.Pointer(&length)), 0, 0) if err != 0 { b := make([]byte, 0) return b, length, err } if length == 0 { b := make([]byte, 0) return b, length, err } // get proc info itself buf := make([]byte, length) _, _, err = syscall.RawSyscall6( syscall.SYS___SYSCTL, uintptr(unsafe.Pointer(&mib[0])), uintptr(miblen), uintptr(unsafe.Pointer(&buf[0])), uintptr(unsafe.Pointer(&length)), 0, 0) if err != 0 { return buf, length, err } return buf, length, nil } func newUnixProcess(pid int) (*UnixProcess, error) { p := &UnixProcess{pid: pid} return p, p.Refresh() } riseup-vpn-0.24.5+ds1/vendor/github.com/keybase/go-ps/process_openbsd.go000066400000000000000000000141431461742244100261300ustar00rootroot00000000000000// +build openbsd package ps import ( "bytes" "encoding/binary" "fmt" "syscall" "unsafe" ) // copied from sys/sysctl.h const ( CTL_KERN = 1 KERN_PROC = 66 KERN_PROC_PID = 1 KERN_PROC_ARGS = 55 KERN_PROC_ARGV = 1 KERN_PROC_ALL = 0 ) /* Generated via cgo: $ cat /tmp/gen_defs.go // +build ignore package ps // #include // #include import "C" type Kinfo_proc C.struct_kinfo_proc $ go tool cgo -godefs temp.go */ type Kinfo_proc struct { Ki_forw uint64 Ki_back uint64 Ki_paddr uint64 Ki_addr uint64 Ki_fd uint64 Ki_stats uint64 Ki_limit uint64 Ki_vmspace uint64 Ki_sigacts uint64 Ki_sess uint64 Ki_tsess uint64 Ki_ru uint64 Ki_eflag int32 Ki_exitsig int32 Ki_flag int32 Ki_pid int32 Ki_ppid int32 Ki_sid int32 Ki_x_pgid int32 Ki_tpgid int32 Ki_uid uint32 Ki_ruid uint32 Ki_gid uint32 Ki_rgid uint32 Ki_groups [16]uint32 Ki_ngroups int16 Ki_jobc int16 Ki_tdev uint32 Ki_estcpu uint32 Ki_rtime_sec uint32 Ki_rtime_usec uint32 Ki_cpticks int32 Ki_pctcpu uint32 Ki_swtime uint32 Ki_slptime uint32 Ki_schedflags int32 Ki_uticks uint64 Ki_sticks uint64 Ki_iticks uint64 Ki_tracep uint64 Ki_traceflag int32 Ki_holdcnt int32 Ki_siglist int32 Ki_sigmask uint32 Ki_sigignore uint32 Ki_sigcatch uint32 Ki_stat int8 Ki_priority uint8 Ki_usrpri uint8 Ki_nice uint8 Ki_xstat uint16 Ki_acflag uint16 //Ki_comm [24]int8 Ki_comm [20]byte Ki_wmesg [8]int8 Ki_wchan uint64 Ki_login [32]int8 Ki_vm_rssize int32 Ki_vm_tsize int32 Ki_vm_dsize int32 Ki_vm_ssize int32 Ki_uvalid int64 Ki_ustart_sec uint64 Ki_ustart_usec uint32 Ki_uutime_sec uint32 Ki_uutime_usec uint32 Ki_ustime_sec uint32 Ki_ustime_usec uint32 Ki_pad_cgo_0 [4]byte Ki_uru_maxrss uint64 Ki_uru_ixrss uint64 Ki_uru_idrss uint64 Ki_uru_isrss uint64 Ki_uru_minflt uint64 Ki_uru_majflt uint64 Ki_uru_nswap uint64 Ki_uru_inblock uint64 Ki_uru_oublock uint64 Ki_uru_msgsnd uint64 Ki_uru_msgrcv uint64 Ki_uru_nsignals uint64 Ki_uru_nvcsw uint64 Ki_uru_nivcsw uint64 Ki_uctime_sec uint32 Ki_uctime_usec uint32 Ki_psflags int32 Ki_spare int32 Ki_svuid uint32 Ki_svgid uint32 Ki_emul [8]int8 Ki_rlim_rss_cur uint64 Ki_cpuid uint64 Ki_vm_map_size uint64 Ki_tid int32 Ki_rtableid uint32 } var proc_k_size = unsafe.Sizeof(Kinfo_proc{}) // UnixProcess is an implementation of Process that contains Unix-specific // fields and information. type UnixProcess struct { pid int ppid int state rune pgrp int sid int binary string } // Pid returns process id func (p *UnixProcess) Pid() int { return p.pid } // PPid returns parent process id func (p *UnixProcess) PPid() int { return p.ppid } // Executable returns process executable name func (p *UnixProcess) Executable() string { return p.binary } // Path returns path to process executable func (p *UnixProcess) Path() (string, error) { // On OpenBSD we don't have the actual path of a binary, the next // best thing we can do is walk $PATH to hopefully find the binary. // More info here: https://github.com/kardianos/osext/commit/b4814f465fb1f92d46e37f7ef84d732ece7c3e3a return "", fmt.Errorf("Unsupported") } // Refresh reloads all the data associated with this process. func (p *UnixProcess) Refresh() error { mib := []int32{CTL_KERN, KERN_PROC, KERN_PROC_PID, int32(p.pid), int32(proc_k_size), 1} buf, length, err := call_syscall(mib) if err != nil { return err } if length != uint64(proc_k_size) { return err } k, err := parse_kinfo_proc(buf) if err != nil { return err } p.ppid, p.pgrp, p.sid, p.binary = copy_params(&k) return nil } func copy_params(k *Kinfo_proc) (int, int, int, string) { n := -1 for i, b := range k.Ki_comm { if b == 0 { break } n = i + 1 } comm := string(k.Ki_comm[:n]) return int(k.Ki_ppid), int(k.Ki_x_pgid), int(k.Ki_sid), comm } func findProcess(pid int) (Process, error) { mib := []int32{CTL_KERN, KERN_PROC, KERN_PROC_PID, int32(pid), int32(proc_k_size), 1} _, _, err := call_syscall(mib) if err != nil { return nil, err } return newUnixProcess(pid) } func processes() ([]Process, error) { results := make([]Process, 0, 50) mib := []int32{CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0, int32(proc_k_size), 400} buf, length, err := call_syscall(mib) if err != nil { return results, err } // get kinfo_proc size procinfo_len := int(proc_k_size) count := int(length / uint64(proc_k_size)) // parse buf to procs for i := 0; i < count; i++ { b := buf[i*procinfo_len : i*procinfo_len+procinfo_len] k, err := parse_kinfo_proc(b) if err != nil { continue } p, err := newUnixProcess(int(k.Ki_pid)) if err != nil { continue } p.ppid, p.pgrp, p.sid, p.binary = copy_params(&k) results = append(results, p) } return results, nil } func parse_kinfo_proc(buf []byte) (Kinfo_proc, error) { var k Kinfo_proc br := bytes.NewReader(buf) err := binary.Read(br, binary.LittleEndian, &k) if err != nil { return k, err } return k, nil } func call_syscall(mib []int32) ([]byte, uint64, error) { miblen := uint64(len(mib)) // get required buffer size length := uint64(0) _, _, err := syscall.RawSyscall6( syscall.SYS___SYSCTL, uintptr(unsafe.Pointer(&mib[0])), uintptr(miblen), 0, uintptr(unsafe.Pointer(&length)), 0, 0) if err != 0 { b := make([]byte, 0) return b, length, err } if length == 0 { b := make([]byte, 0) return b, length, err } // get proc info itself buf := make([]byte, length) _, _, err = syscall.RawSyscall6( syscall.SYS___SYSCTL, uintptr(unsafe.Pointer(&mib[0])), uintptr(miblen), uintptr(unsafe.Pointer(&buf[0])), uintptr(unsafe.Pointer(&length)), 0, 0) if err != 0 { return buf, length, err } return buf, length, nil } func newUnixProcess(pid int) (*UnixProcess, error) { p := &UnixProcess{pid: pid} return p, p.Refresh() } riseup-vpn-0.24.5+ds1/vendor/github.com/keybase/go-ps/process_unix.go000066400000000000000000000053651461742244100254670ustar00rootroot00000000000000// +build linux netbsd package ps import ( "fmt" "io" "io/ioutil" "os" "path/filepath" "strconv" "strings" ) // UnixProcess is an implementation of Process that contains Unix-specific // fields and information. type UnixProcess struct { pid int ppid int state rune pgrp int sid int binary string // binary name might be truncated } // Pid returns process id func (p *UnixProcess) Pid() int { return p.pid } // PPid returns parent process id func (p *UnixProcess) PPid() int { return p.ppid } // Executable returns process executable name func (p *UnixProcess) Executable() string { path, err := p.Path() if err != nil { // Fall back to binary name which might be truncated return p.binary } return filepath.Base(path) } // Path returns path to process executable func (p *UnixProcess) Path() (string, error) { return filepath.EvalSymlinks(fmt.Sprintf("/proc/%d/exe", p.pid)) } // Refresh reloads all the data associated with this process. func (p *UnixProcess) Refresh() error { statPath := fmt.Sprintf("/proc/%d/stat", p.pid) dataBytes, err := ioutil.ReadFile(statPath) if err != nil { return err } // First, parse out the image name data := string(dataBytes) binStart := strings.IndexRune(data, '(') + 1 binEnd := strings.IndexRune(data[binStart:], ')') p.binary = data[binStart : binStart+binEnd] // Move past the image name and start parsing the rest // The name here might not be the full name data = data[binStart+binEnd+2:] _, err = fmt.Sscanf(data, "%c %d %d %d", &p.state, &p.ppid, &p.pgrp, &p.sid) return err } func findProcess(pid int) (Process, error) { dir := fmt.Sprintf("/proc/%d", pid) _, err := os.Stat(dir) if err != nil { if os.IsNotExist(err) { return nil, nil } return nil, err } return newUnixProcess(pid) } func processes() ([]Process, error) { d, err := os.Open("/proc") if err != nil { return nil, err } defer d.Close() results := make([]Process, 0, 50) for { fis, err := d.Readdir(10) if err == io.EOF { break } if err != nil { return nil, err } for _, fi := range fis { // We only care about directories, since all pids are dirs if !fi.IsDir() { continue } // We only care if the name starts with a numeric name := fi.Name() if name[0] < '0' || name[0] > '9' { continue } // From this point forward, any errors we just ignore, because // it might simply be that the process doesn't exist anymore. pid, err := strconv.ParseInt(name, 10, 0) if err != nil { continue } p, err := newUnixProcess(int(pid)) if err != nil { continue } results = append(results, p) } } return results, nil } func newUnixProcess(pid int) (*UnixProcess, error) { p := &UnixProcess{pid: pid} return p, p.Refresh() } riseup-vpn-0.24.5+ds1/vendor/github.com/keybase/go-ps/process_windows.go000066400000000000000000000104171461742244100261700ustar00rootroot00000000000000// +build windows package ps import ( "fmt" "syscall" "unsafe" ) // Windows API functions var ( modKernel32 = syscall.NewLazyDLL("kernel32.dll") procCloseHandle = modKernel32.NewProc("CloseHandle") procCreateToolhelp32Snapshot = modKernel32.NewProc("CreateToolhelp32Snapshot") procProcess32First = modKernel32.NewProc("Process32FirstW") procProcess32Next = modKernel32.NewProc("Process32NextW") procModule32First = modKernel32.NewProc("Module32FirstW") procModule32Next = modKernel32.NewProc("Module32NextW") ) // Some constants from the Windows API const ( ERROR_NO_MORE_FILES = 0x12 MAX_PATH = 260 MAX_MODULE_NAME32 = 255 ) type PROCESSENTRY32 struct { Size uint32 CntUsage uint32 ProcessID uint32 DefaultHeapID uintptr ModuleID uint32 CntThreads uint32 ParentProcessID uint32 PriorityClassBase int32 Flags uint32 ExeFile [MAX_PATH]uint16 } // WindowsProcess is an implementation of Process for Windows. type WindowsProcess struct { pid int ppid int exe string } // Pid returns process id func (p *WindowsProcess) Pid() int { return p.pid } // PPid returns parent process id func (p *WindowsProcess) PPid() int { return p.ppid } // Executable returns process executable name func (p *WindowsProcess) Executable() string { return p.exe } // Path returns path to process executable func (p *WindowsProcess) Path() (string, error) { processModules, err := modules(p.pid) if err != nil { return "", err } if len(processModules) == 0 { return "", fmt.Errorf("No modules found for process") } return processModules[0].path, nil } func ptrToString(c []uint16) string { i := 0 for { if c[i] == 0 { return syscall.UTF16ToString(c[:i]) } i++ } } func newWindowsProcess(e *PROCESSENTRY32) *WindowsProcess { return &WindowsProcess{ pid: int(e.ProcessID), ppid: int(e.ParentProcessID), exe: ptrToString(e.ExeFile[:]), } } func findProcess(pid int) (Process, error) { return findProcessWithFn(processes, pid) } func findProcessWithFn(processesFn processesFn, pid int) (Process, error) { ps, err := processesFn() if err != nil { return nil, fmt.Errorf("Error listing processes: %s", err) } for _, p := range ps { if p.Pid() == pid { return p, nil } } return nil, nil } func processes() ([]Process, error) { handle, _, _ := procCreateToolhelp32Snapshot.Call( 0x00000002, 0) if handle < 0 { return nil, syscall.GetLastError() } defer procCloseHandle.Call(handle) var entry PROCESSENTRY32 entry.Size = uint32(unsafe.Sizeof(entry)) ret, _, _ := procProcess32First.Call(handle, uintptr(unsafe.Pointer(&entry))) if ret == 0 { return nil, fmt.Errorf("Error retrieving process info.") } results := make([]Process, 0, 50) for { results = append(results, newWindowsProcess(&entry)) ret, _, _ := procProcess32Next.Call(handle, uintptr(unsafe.Pointer(&entry))) if ret == 0 { break } } return results, nil } // MODULEENTRY32 is the Windows API structure that contains a modules's // information. type MODULEENTRY32 struct { Size uint32 ModuleID uint32 ProcessID uint32 GlblcntUsage uint32 ProccntUsage uint32 ModBaseAddr *uint8 ModBaseSize uint32 HModule uintptr SzModule [MAX_MODULE_NAME32 + 1]uint16 SzExePath [MAX_PATH]uint16 } type windowsModule struct { name string path string } func newWindowsModule(e *MODULEENTRY32) windowsModule { return windowsModule{ name: ptrToString(e.SzModule[:]), path: ptrToString(e.SzExePath[:]), } } func modules(pid int) ([]windowsModule, error) { handle, _, _ := procCreateToolhelp32Snapshot.Call( 0x00000008, // TH32CS_SNAPMODULE uintptr(uint32(pid))) if handle < 0 { return nil, syscall.GetLastError() } defer procCloseHandle.Call(handle) var entry MODULEENTRY32 entry.Size = uint32(unsafe.Sizeof(entry)) ret, _, _ := procModule32First.Call(handle, uintptr(unsafe.Pointer(&entry))) if ret == 0 { return nil, fmt.Errorf("Error retrieving module info") } results := make([]windowsModule, 0, 50) for { results = append(results, newWindowsModule(&entry)) ret, _, _ := procModule32Next.Call(handle, uintptr(unsafe.Pointer(&entry))) if ret == 0 { break } } return results, nil } riseup-vpn-0.24.5+ds1/vendor/gitlab.com/000077500000000000000000000000001461742244100177165ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/000077500000000000000000000000001461742244100213725ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/000077500000000000000000000000001461742244100231715ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/LICENSE000066400000000000000000000055171461742244100242060ustar00rootroot00000000000000Copyright (c) 2014, Yawning Angel All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ============================================================================== Copyright (c) 2012 The Go Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/LICENSE-GPL3.txt000066400000000000000000001045151461742244100255250ustar00rootroot00000000000000 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 . riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/common/000077500000000000000000000000001461742244100244615ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/common/csrand/000077500000000000000000000000001461742244100257335ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/common/csrand/csrand.go000066400000000000000000000060231461742244100275350ustar00rootroot00000000000000/* * Copyright (c) 2014, Yawning Angel * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ // Package csrand implements the math/rand interface over crypto/rand, along // with some utility functions for common random number/byte related tasks. // // Not all of the convinience routines are replicated, only those that are // immediately useful. The Rand variable provides access to the full math/rand // API. package csrand // import "gitlab.com/yawning/obfs4.git/common/csrand" import ( cryptRand "crypto/rand" "encoding/binary" "fmt" "io" "math/rand" ) var ( csRandSourceInstance csRandSource // Rand is a math/rand instance backed by crypto/rand CSPRNG. Rand = rand.New(csRandSourceInstance) //nolint:gosec ) type csRandSource struct { // This does not keep any state as it is backed by crypto/rand. } func (r csRandSource) Int63() int64 { var src [8]byte if err := Bytes(src[:]); err != nil { panic(err) } val := binary.BigEndian.Uint64(src[:]) val &= (1<<63 - 1) return int64(val) } func (r csRandSource) Seed(_ int64) { // No-op. } // Intn returns, as a int, a pseudo random number in [0, n). func Intn(n int) int { return Rand.Intn(n) } // Float64 returns, as a float64, a pesudo random number in [0.0,1.0). func Float64() float64 { return Rand.Float64() } // IntRange returns a uniformly distributed int [min, max]. func IntRange(min, max int) int { if max < min { panic(fmt.Sprintf("IntRange: min > max (%d, %d)", min, max)) } r := (max + 1) - min ret := Rand.Intn(r) return ret + min } // Bytes fills the slice with random data. func Bytes(buf []byte) error { if _, err := io.ReadFull(cryptRand.Reader, buf); err != nil { return err } return nil } // Reader is a alias of rand.Reader. var Reader = cryptRand.Reader riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/common/drbg/000077500000000000000000000000001461742244100253775ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/common/drbg/hash_drbg.go000066400000000000000000000103621461742244100276510ustar00rootroot00000000000000/* * Copyright (c) 2014, Yawning Angel * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ // Package drbg implements a minimalistic DRBG based off SipHash-2-4 in OFB // mode. package drbg // import "gitlab.com/yawning/obfs4.git/common/drbg" import ( "bytes" "encoding/binary" "encoding/hex" "fmt" "hash" "github.com/dchest/siphash" "gitlab.com/yawning/obfs4.git/common/csrand" ) // Size is the length of the HashDrbg output. const Size = siphash.Size // SeedLength is the length of the HashDrbg seed. const SeedLength = 16 + Size // Seed is the initial state for a HashDrbg. It consists of a SipHash-2-4 // key, and 8 bytes of initial data. type Seed [SeedLength]byte // Bytes returns a pointer to the raw HashDrbg seed. func (seed *Seed) Bytes() *[SeedLength]byte { return (*[SeedLength]byte)(seed) } // Hex returns the hexdecimal representation of the seed. func (seed *Seed) Hex() string { return hex.EncodeToString(seed.Bytes()[:]) } // NewSeed returns a Seed initialized with the runtime CSPRNG. func NewSeed() (*Seed, error) { seed := new(Seed) if err := csrand.Bytes(seed.Bytes()[:]); err != nil { return nil, err } return seed, nil } // SeedFromBytes creates a Seed from the raw bytes, truncating to SeedLength as // appropriate. func SeedFromBytes(src []byte) (*Seed, error) { if len(src) < SeedLength { return nil, InvalidSeedLengthError(len(src)) } seed := new(Seed) copy(seed.Bytes()[:], src) return seed, nil } // SeedFromHex creates a Seed from the hexdecimal representation, truncating to // SeedLength as appropriate. func SeedFromHex(encoded string) (*Seed, error) { raw, err := hex.DecodeString(encoded) if err != nil { return nil, err } return SeedFromBytes(raw) } // InvalidSeedLengthError is the error returned when the seed provided to the // DRBG is an invalid length. type InvalidSeedLengthError int func (e InvalidSeedLengthError) Error() string { return fmt.Sprintf("invalid seed length: %d", int(e)) } // HashDrbg is a CSDRBG based off of SipHash-2-4 in OFB mode. type HashDrbg struct { sip hash.Hash64 ofb [Size]byte } // NewHashDrbg makes a HashDrbg instance based off an optional seed. The seed // is truncated to SeedLength. func NewHashDrbg(seed *Seed) (*HashDrbg, error) { drbg := new(HashDrbg) if seed == nil { var err error if seed, err = NewSeed(); err != nil { return nil, err } } drbg.sip = siphash.New(seed.Bytes()[:16]) copy(drbg.ofb[:], seed.Bytes()[16:]) return drbg, nil } // Int63 returns a uniformly distributed random integer [0, 1 << 63). func (drbg *HashDrbg) Int63() int64 { block := drbg.NextBlock() ret := binary.BigEndian.Uint64(block) ret &= (1<<63 - 1) return int64(ret) } // Seed does nothing, call NewHashDrbg if you want to reseed. func (drbg *HashDrbg) Seed(_ int64) { // No-op. } // NextBlock returns the next 8 byte DRBG block. func (drbg *HashDrbg) NextBlock() []byte { _, _ = drbg.sip.Write(drbg.ofb[:]) copy(drbg.ofb[:], drbg.sip.Sum(nil)) return bytes.Clone(drbg.ofb[:]) } riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/common/ntor/000077500000000000000000000000001461742244100254435ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/common/ntor/ntor.go000066400000000000000000000323001461742244100267520ustar00rootroot00000000000000/* * Copyright (c) 2014, Yawning Angel * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ // Package ntor implements the Tor Project's ntor handshake as defined in // proposal 216 "Improved circuit-creation key exchange". It also supports // using Elligator to transform the Curve25519 public keys sent over the wire // to a form that is indistinguishable from random strings. // // Before using this package, it is strongly recommended that the specification // is read and understood. package ntor // import "gitlab.com/yawning/obfs4.git/common/ntor" import ( "bytes" "crypto/hmac" "crypto/sha256" "crypto/sha512" "crypto/subtle" "encoding/hex" "fmt" "io" "golang.org/x/crypto/curve25519" "golang.org/x/crypto/hkdf" "gitlab.com/yawning/obfs4.git/common/csrand" "gitlab.com/yawning/obfs4.git/internal/x25519ell2" ) const ( // PublicKeyLength is the length of a Curve25519 public key. PublicKeyLength = 32 // RepresentativeLength is the length of an Elligator representative. RepresentativeLength = 32 // PrivateKeyLength is the length of a Curve25519 private key. PrivateKeyLength = 32 // SharedSecretLength is the length of a Curve25519 shared secret. SharedSecretLength = 32 // NodeIDLength is the length of a ntor node identifier. NodeIDLength = 20 // KeySeedLength is the length of the derived KEY_SEED. KeySeedLength = sha256.Size // AuthLength is the length of the derived AUTH. AuthLength = sha256.Size ) var ( protoID = []byte("ntor-curve25519-sha256-1") tMac = append(protoID, []byte(":mac")...) tKey = append(protoID, []byte(":key_extract")...) tVerify = append(protoID, []byte(":key_verify")...) mExpand = append(protoID, []byte(":key_expand")...) ) // PublicKeyLengthError is the error returned when the public key being // imported is an invalid length. type PublicKeyLengthError int func (e PublicKeyLengthError) Error() string { return fmt.Sprintf("ntor: Invalid Curve25519 public key length: %d", int(e)) } // PrivateKeyLengthError is the error returned when the private key being // imported is an invalid length. type PrivateKeyLengthError int func (e PrivateKeyLengthError) Error() string { return fmt.Sprintf("ntor: Invalid Curve25519 private key length: %d", int(e)) } // NodeIDLengthError is the error returned when the node ID being imported is // an invalid length. type NodeIDLengthError int func (e NodeIDLengthError) Error() string { return fmt.Sprintf("ntor: Invalid NodeID length: %d", int(e)) } // KeySeed is the key material that results from a handshake (KEY_SEED). type KeySeed [KeySeedLength]byte // Bytes returns a pointer to the raw key material. func (key_seed *KeySeed) Bytes() *[KeySeedLength]byte { return (*[KeySeedLength]byte)(key_seed) } // Auth is the verifier that results from a handshake (AUTH). type Auth [AuthLength]byte // Bytes returns a pointer to the raw auth. func (auth *Auth) Bytes() *[AuthLength]byte { return (*[AuthLength]byte)(auth) } // NodeID is a ntor node identifier. type NodeID [NodeIDLength]byte // NewNodeID creates a NodeID from the raw bytes. func NewNodeID(raw []byte) (*NodeID, error) { if len(raw) != NodeIDLength { return nil, NodeIDLengthError(len(raw)) } nodeID := new(NodeID) copy(nodeID[:], raw) return nodeID, nil } // NodeIDFromHex creates a new NodeID from the hexdecimal representation. func NodeIDFromHex(encoded string) (*NodeID, error) { raw, err := hex.DecodeString(encoded) if err != nil { return nil, err } return NewNodeID(raw) } // Bytes returns a pointer to the raw NodeID. func (id *NodeID) Bytes() *[NodeIDLength]byte { return (*[NodeIDLength]byte)(id) } // Hex returns the hexdecimal representation of the NodeID. func (id *NodeID) Hex() string { return hex.EncodeToString(id[:]) } // PublicKey is a Curve25519 public key in little-endian byte order. type PublicKey [PublicKeyLength]byte // Bytes returns a pointer to the raw Curve25519 public key. func (public *PublicKey) Bytes() *[PublicKeyLength]byte { return (*[PublicKeyLength]byte)(public) } // Hex returns the hexdecimal representation of the Curve25519 public key. func (public *PublicKey) Hex() string { return hex.EncodeToString(public.Bytes()[:]) } // NewPublicKey creates a PublicKey from the raw bytes. func NewPublicKey(raw []byte) (*PublicKey, error) { if len(raw) != PublicKeyLength { return nil, PublicKeyLengthError(len(raw)) } pubKey := new(PublicKey) copy(pubKey[:], raw) return pubKey, nil } // PublicKeyFromHex returns a PublicKey from the hexdecimal representation. func PublicKeyFromHex(encoded string) (*PublicKey, error) { raw, err := hex.DecodeString(encoded) if err != nil { return nil, err } return NewPublicKey(raw) } // Representative is an Elligator representative of a Curve25519 public key // in little-endian byte order. type Representative [RepresentativeLength]byte // Bytes returns a pointer to the raw Elligator representative. func (repr *Representative) Bytes() *[RepresentativeLength]byte { return (*[RepresentativeLength]byte)(repr) } // ToPublic converts a Elligator representative to a Curve25519 public key. func (repr *Representative) ToPublic() *PublicKey { pub := new(PublicKey) x25519ell2.RepresentativeToPublicKey(pub.Bytes(), repr.Bytes()) return pub } // PrivateKey is a Curve25519 private key in little-endian byte order. type PrivateKey [PrivateKeyLength]byte // Bytes returns a pointer to the raw Curve25519 private key. func (private *PrivateKey) Bytes() *[PrivateKeyLength]byte { return (*[PrivateKeyLength]byte)(private) } // Hex returns the hexdecimal representation of the Curve25519 private key. func (private *PrivateKey) Hex() string { return hex.EncodeToString(private.Bytes()[:]) } // Keypair is a Curve25519 keypair with an optional Elligator representative. // As only certain Curve25519 keys can be obfuscated with Elligator, the // representative must be generated along with the keypair. type Keypair struct { public *PublicKey private *PrivateKey representative *Representative } // Public returns the Curve25519 public key belonging to the Keypair. func (keypair *Keypair) Public() *PublicKey { return keypair.public } // Private returns the Curve25519 private key belonging to the Keypair. func (keypair *Keypair) Private() *PrivateKey { return keypair.private } // Representative returns the Elligator representative of the public key // belonging to the Keypair. func (keypair *Keypair) Representative() *Representative { return keypair.representative } // HasElligator returns true if the Keypair has an Elligator representative. func (keypair *Keypair) HasElligator() bool { return nil != keypair.representative } // NewKeypair generates a new Curve25519 keypair, and optionally also generates // an Elligator representative of the public key. func NewKeypair(elligator bool) (*Keypair, error) { keypair := new(Keypair) keypair.private = new(PrivateKey) keypair.public = new(PublicKey) if elligator { keypair.representative = new(Representative) } for { // Generate a Curve25519 private key. Like everyone who does this, // run the CSPRNG output through SHA512 for extra tinfoil hattery. // // Also use part of the digest that gets truncated off for the // obfuscation tweak. priv := keypair.private.Bytes()[:] if err := csrand.Bytes(priv); err != nil { return nil, err } digest := sha512.Sum512(priv) copy(priv, digest[:]) if elligator { tweak := digest[63] // Apply the Elligator transform. This fails ~50% of the time. if !x25519ell2.ScalarBaseMult(keypair.public.Bytes(), keypair.representative.Bytes(), keypair.private.Bytes(), tweak) { continue } } else { // Generate the corresponding Curve25519 public key. curve25519.ScalarBaseMult(keypair.public.Bytes(), keypair.private.Bytes()) } return keypair, nil } } // KeypairFromHex returns a Keypair from the hexdecimal representation of the // private key. func KeypairFromHex(encoded string) (*Keypair, error) { raw, err := hex.DecodeString(encoded) if err != nil { return nil, err } if len(raw) != PrivateKeyLength { return nil, PrivateKeyLengthError(len(raw)) } keypair := new(Keypair) keypair.private = new(PrivateKey) keypair.public = new(PublicKey) copy(keypair.private[:], raw) curve25519.ScalarBaseMult(keypair.public.Bytes(), keypair.private.Bytes()) return keypair, nil } // ServerHandshake does the server side of a ntor handshake and returns status, // KEY_SEED, and AUTH. If status is not true, the handshake MUST be aborted. func ServerHandshake(clientPublic *PublicKey, serverKeypair *Keypair, idKeypair *Keypair, id *NodeID) (bool, *KeySeed, *Auth) { var notOk int var secretInput bytes.Buffer // Server side uses EXP(X,y) | EXP(X,b) var exp [SharedSecretLength]byte curve25519.ScalarMult(&exp, serverKeypair.private.Bytes(), clientPublic.Bytes()) //nolint:staticcheck notOk |= constantTimeIsZero(exp[:]) secretInput.Write(exp[:]) curve25519.ScalarMult(&exp, idKeypair.private.Bytes(), clientPublic.Bytes()) //nolint:staticcheck notOk |= constantTimeIsZero(exp[:]) secretInput.Write(exp[:]) keySeed, auth := ntorCommon(secretInput, id, idKeypair.public, clientPublic, serverKeypair.public) return notOk == 0, keySeed, auth } // ClientHandshake does the client side of a ntor handshake and returnes // status, KEY_SEED, and AUTH. If status is not true or AUTH does not match // the value received from the server, the handshake MUST be aborted. func ClientHandshake(clientKeypair *Keypair, serverPublic *PublicKey, idPublic *PublicKey, id *NodeID) (bool, *KeySeed, *Auth) { var notOk int var secretInput bytes.Buffer // Client side uses EXP(Y,x) | EXP(B,x) var exp [SharedSecretLength]byte curve25519.ScalarMult(&exp, clientKeypair.private.Bytes(), serverPublic.Bytes()) //nolint:staticcheck notOk |= constantTimeIsZero(exp[:]) secretInput.Write(exp[:]) curve25519.ScalarMult(&exp, clientKeypair.private.Bytes(), idPublic.Bytes()) //nolint:staticcheck notOk |= constantTimeIsZero(exp[:]) secretInput.Write(exp[:]) keySeed, auth := ntorCommon(secretInput, id, idPublic, clientKeypair.public, serverPublic) return notOk == 0, keySeed, auth } // CompareAuth does a constant time compare of a Auth and a byte slice // (presumably received over a network). func CompareAuth(auth1 *Auth, auth2 []byte) bool { auth1Bytes := auth1.Bytes() return hmac.Equal(auth1Bytes[:], auth2) } func ntorCommon(secretInput bytes.Buffer, id *NodeID, b *PublicKey, x *PublicKey, y *PublicKey) (*KeySeed, *Auth) { keySeed := new(KeySeed) auth := new(Auth) // secret_input/auth_input use this common bit, build it once. suffix := bytes.NewBuffer(b.Bytes()[:]) suffix.Write(b.Bytes()[:]) suffix.Write(x.Bytes()[:]) suffix.Write(y.Bytes()[:]) suffix.Write(protoID) suffix.Write(id[:]) // At this point secret_input has the 2 exponents, concatenated, append the // client/server common suffix. secretInput.Write(suffix.Bytes()) // KEY_SEED = H(secret_input, t_key) h := hmac.New(sha256.New, tKey) _, _ = h.Write(secretInput.Bytes()) tmp := h.Sum(nil) copy(keySeed[:], tmp) // verify = H(secret_input, t_verify) h = hmac.New(sha256.New, tVerify) _, _ = h.Write(secretInput.Bytes()) verify := h.Sum(nil) // auth_input = verify | ID | B | Y | X | PROTOID | "Server" authInput := bytes.NewBuffer(verify) _, _ = authInput.Write(suffix.Bytes()) _, _ = authInput.WriteString("Server") h = hmac.New(sha256.New, tMac) _, _ = h.Write(authInput.Bytes()) tmp = h.Sum(nil) copy(auth[:], tmp) return keySeed, auth } func constantTimeIsZero(x []byte) int { var ret byte for _, v := range x { ret |= v } return subtle.ConstantTimeByteEq(ret, 0) } // Kdf extracts and expands KEY_SEED via HKDF-SHA256 and returns `okm_len` bytes // of key material. func Kdf(keySeed []byte, okmLen int) []byte { kdf := hkdf.New(sha256.New, keySeed, tKey, mExpand) okm := make([]byte, okmLen) n, err := io.ReadFull(kdf, okm) if err != nil { panic(fmt.Sprintf("BUG: Failed HKDF: %s", err.Error())) } else if n != len(okm) { panic(fmt.Sprintf("BUG: Got truncated HKDF output: %d", n)) } return okm } riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/common/probdist/000077500000000000000000000000001461742244100263075ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/common/probdist/weighted_dist.go000066400000000000000000000154041461742244100314650ustar00rootroot00000000000000/* * Copyright (c) 2014, Yawning Angel * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ // Package probdist implements a weighted probability distribution suitable for // protocol parameterization. To allow for easy reproduction of a given // distribution, the drbg package is used as the random number source. package probdist // import "gitlab.com/yawning/obfs4.git/common/probdist" import ( "bytes" "container/list" "fmt" "math/rand" "sync" "gitlab.com/yawning/obfs4.git/common/csrand" "gitlab.com/yawning/obfs4.git/common/drbg" ) const ( minValues = 1 maxValues = 100 ) // WeightedDist is a weighted distribution. type WeightedDist struct { sync.Mutex minValue int maxValue int biased bool values []int weights []float64 alias []int prob []float64 } // New creates a weighted distribution of values ranging from min to max // based on a HashDrbg initialized with seed. Optionally, bias the weight // generation to match the ScrambleSuit non-uniform distribution from // obfsproxy. func New(seed *drbg.Seed, min, max int, biased bool) *WeightedDist { w := &WeightedDist{minValue: min, maxValue: max, biased: biased} if max <= min { panic(fmt.Sprintf("wDist.Reset(): min >= max (%d, %d)", min, max)) } w.Reset(seed) return w } // genValues creates a slice containing a random number of random values // that when scaled by adding minValue will fall into [min, max]. func (w *WeightedDist) genValues(rng *rand.Rand) { nValues := (w.maxValue + 1) - w.minValue values := rng.Perm(nValues) if nValues < minValues { nValues = minValues } if nValues > maxValues { nValues = maxValues } nValues = rng.Intn(nValues) + 1 w.values = values[:nValues] } // genBiasedWeights generates a non-uniform weight list, similar to the // ScrambleSuit prob_dist module. func (w *WeightedDist) genBiasedWeights(rng *rand.Rand) { w.weights = make([]float64, len(w.values)) culmProb := 0.0 for i := range w.weights { p := (1.0 - culmProb) * rng.Float64() w.weights[i] = p culmProb += p } } // genUniformWeights generates a uniform weight list. func (w *WeightedDist) genUniformWeights(rng *rand.Rand) { w.weights = make([]float64, len(w.values)) for i := range w.weights { w.weights[i] = rng.Float64() } } // genTables calculates the alias and prob tables used for Vose's Alias method. // Algorithm taken from http://www.keithschwarz.com/darts-dice-coins/ func (w *WeightedDist) genTables() { n := len(w.weights) var sum float64 for _, weight := range w.weights { sum += weight } // Create arrays $Alias$ and $Prob$, each of size $n$. alias := make([]int, n) prob := make([]float64, n) // Create two worklists, $Small$ and $Large$. small := list.New() large := list.New() scaled := make([]float64, n) for i, weight := range w.weights { // Multiply each probability by $n$. p_i := weight * float64(n) / sum //nolint:revive scaled[i] = p_i // For each scaled probability $p_i$: if scaled[i] < 1.0 { // If $p_i < 1$, add $i$ to $Small$. small.PushBack(i) } else { // Otherwise ($p_i \ge 1$), add $i$ to $Large$. large.PushBack(i) } } // While $Small$ and $Large$ are not empty: ($Large$ might be emptied first) for small.Len() > 0 && large.Len() > 0 { // Remove the first element from $Small$; call it $l$. l, _ := small.Remove(small.Front()).(int) // Remove the first element from $Large$; call it $g$. g, _ := large.Remove(large.Front()).(int) // Set $Prob[l] = p_l$. prob[l] = scaled[l] // Set $Alias[l] = g$. alias[l] = g // Set $p_g := (p_g + p_l) - 1$. (This is a more numerically stable option.) scaled[g] = (scaled[g] + scaled[l]) - 1.0 if scaled[g] < 1.0 { // If $p_g < 1$, add $g$ to $Small$. small.PushBack(g) } else { // Otherwise ($p_g \ge 1$), add $g$ to $Large$. large.PushBack(g) } } // While $Large$ is not empty: for large.Len() > 0 { // Remove the first element from $Large$; call it $g$. g, _ := large.Remove(large.Front()).(int) // Set $Prob[g] = 1$. prob[g] = 1.0 } // While $Small$ is not empty: This is only possible due to numerical instability. for small.Len() > 0 { // Remove the first element from $Small$; call it $l$. l, _ := small.Remove(small.Front()).(int) // Set $Prob[l] = 1$. prob[l] = 1.0 } w.prob = prob w.alias = alias } // Reset generates a new distribution with the same min/max based on a new // seed. func (w *WeightedDist) Reset(seed *drbg.Seed) { // Initialize the deterministic random number generator. drbg, _ := drbg.NewHashDrbg(seed) rng := rand.New(drbg) //nolint:gosec w.Lock() defer w.Unlock() w.genValues(rng) if w.biased { w.genBiasedWeights(rng) } else { w.genUniformWeights(rng) } w.genTables() } // Sample generates a random value according to the distribution. func (w *WeightedDist) Sample() int { var idx int w.Lock() defer w.Unlock() // Generate a fair die roll from an $n$-sided die; call the side $i$. i := csrand.Intn(len(w.values)) // Flip a biased coin that comes up heads with probability $Prob[i]$. if csrand.Float64() <= w.prob[i] { // If the coin comes up "heads," return $i$. idx = i } else { // Otherwise, return $Alias[i]$. idx = w.alias[i] } return w.minValue + w.values[idx] } // String returns a dump of the distribution table. func (w *WeightedDist) String() string { var buf bytes.Buffer buf.WriteString("[ ") for i, v := range w.values { p := w.weights[i] if p > 0.01 { // Squelch tiny probabilities. buf.WriteString(fmt.Sprintf("%d: %f ", v, p)) } } buf.WriteString("]") return buf.String() } riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/common/replayfilter/000077500000000000000000000000001461742244100271635ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/common/replayfilter/replay_filter.go000066400000000000000000000107321461742244100323560ustar00rootroot00000000000000/* * Copyright (c) 2014, Yawning Angel * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ // Package replayfilter implements a generic replay detection filter with a // caller specifiable time-to-live. It only detects if a given byte sequence // has been seen before based on the SipHash-2-4 digest of the sequence. // Collisions are treated as positive matches, though the probability of this // happening is negligible. package replayfilter // import "gitlab.com/yawning/obfs4.git/common/replayfilter" import ( "container/list" "encoding/binary" "sync" "time" "github.com/dchest/siphash" "gitlab.com/yawning/obfs4.git/common/csrand" ) // maxFilterSize is the maximum capacity of a replay filter. This value is // more as a safeguard to prevent runaway filter growth, and is sized to be // serveral orders of magnitude greater than the number of connections a busy // bridge sees in one day, so in practice should never be reached. const maxFilterSize = 100 * 1024 type entry struct { digest uint64 firstSeen time.Time element *list.Element } // ReplayFilter is a simple filter designed only to detect if a given byte // sequence has been seen before. type ReplayFilter struct { sync.Mutex filter map[uint64]*entry fifo *list.List key [2]uint64 ttl time.Duration } // New creates a new ReplayFilter instance. func New(ttl time.Duration) (*ReplayFilter, error) { // Initialize the SipHash-2-4 instance with a random key. var key [16]byte if err := csrand.Bytes(key[:]); err != nil { return nil, err } filter := new(ReplayFilter) filter.filter = make(map[uint64]*entry) filter.fifo = list.New() filter.key[0] = binary.BigEndian.Uint64(key[0:8]) filter.key[1] = binary.BigEndian.Uint64(key[8:16]) filter.ttl = ttl return filter, nil } // TestAndSet queries the filter for a given byte sequence, inserts the // sequence, and returns if it was present before the insertion operation. func (f *ReplayFilter) TestAndSet(now time.Time, buf []byte) bool { digest := siphash.Hash(f.key[0], f.key[1], buf) f.Lock() defer f.Unlock() f.compactFilter(now) if e := f.filter[digest]; e != nil { // Hit. Just return. return true } // Miss. Add a new entry. e := new(entry) e.digest = digest e.firstSeen = now e.element = f.fifo.PushBack(e) f.filter[digest] = e return false } func (f *ReplayFilter) compactFilter(now time.Time) { e := f.fifo.Front() for e != nil { ent, _ := e.Value.(*entry) // If the filter is not full, only purge entries that exceed the TTL, // otherwise purge at least one entry, then revert to TTL based // compaction. if f.fifo.Len() < maxFilterSize && f.ttl > 0 { deltaT := now.Sub(ent.firstSeen) if deltaT < 0 { // Aeeeeeee, the system time jumped backwards, potentially by // a lot. This will eventually self-correct, but "eventually" // could be a long time. As much as this sucks, jettison the // entire filter. f.reset() return } else if deltaT < f.ttl { return } } // Remove the eldest entry. eNext := e.Next() delete(f.filter, ent.digest) f.fifo.Remove(ent.element) ent.element = nil e = eNext } } func (f *ReplayFilter) reset() { f.filter = make(map[uint64]*entry) f.fifo = list.New() } riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/internal/000077500000000000000000000000001461742244100250055ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/internal/x25519ell2/000077500000000000000000000000001461742244100264415ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/internal/x25519ell2/x25519ell2.go000066400000000000000000000141031461742244100304230ustar00rootroot00000000000000// Copyright (c) 2021 Yawning Angel // // 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 . // Package x25519ell2 implements obfuscated X25519 ECDH, via the Elligator2 // mapping. package x25519ell2 // import "gitlab.com/yawning/obfs4.git/internal/x25519ell2" import ( "encoding/binary" "filippo.io/edwards25519" "filippo.io/edwards25519/field" "gitlab.com/yawning/edwards25519-extra/elligator2" ) // The corrected version of this that solves the implementation errors // present in the historical implementation by agl is derived from // Monocypher (CC-0 or BSD-2) by Loup Vaillant. Without their efforts // and prodding, this would likely have stayed broken forever. var ( feOne = new(field.Element).One() feNegTwo = mustFeFromBytes([]byte{ 0xeb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, }) feA = mustFeFromUint64(486662) feSqrtM1 = mustFeFromBytes([]byte{ 0xb0, 0xa0, 0x0e, 0x4a, 0x27, 0x1b, 0xee, 0xc4, 0x78, 0xe4, 0x2f, 0xad, 0x06, 0x18, 0x43, 0x2f, 0xa7, 0xd7, 0xfb, 0x3d, 0x99, 0x00, 0x4d, 0x2b, 0x0b, 0xdf, 0xc1, 0x4f, 0x80, 0x24, 0x83, 0x2b, }) // Low order point Edwards x-coordinate `sqrt((sqrt(d + 1) + 1) / d)`. feLopX = mustFeFromBytes([]byte{ 0x4a, 0xd1, 0x45, 0xc5, 0x46, 0x46, 0xa1, 0xde, 0x38, 0xe2, 0xe5, 0x13, 0x70, 0x3c, 0x19, 0x5c, 0xbb, 0x4a, 0xde, 0x38, 0x32, 0x99, 0x33, 0xe9, 0x28, 0x4a, 0x39, 0x06, 0xa0, 0xb9, 0xd5, 0x1f, }) // Low order point Edwards y-coordinate `-lop_x * sqrtm1`. feLopY = mustFeFromBytes([]byte{ 0x26, 0xe8, 0x95, 0x8f, 0xc2, 0xb2, 0x27, 0xb0, 0x45, 0xc3, 0xf4, 0x89, 0xf2, 0xef, 0x98, 0xf0, 0xd5, 0xdf, 0xac, 0x05, 0xd3, 0xc6, 0x33, 0x39, 0xb1, 0x38, 0x02, 0x88, 0x6d, 0x53, 0xfc, 0x05, }) ) func mustFeFromBytes(b []byte) *field.Element { fe, err := new(field.Element).SetBytes(b) if err != nil { panic("internal/x25519ell2: failed to deserialize constant: " + err.Error()) } return fe } func mustFeFromUint64(x uint64) *field.Element { var b [32]byte binary.LittleEndian.PutUint64(b[:], x) return mustFeFromBytes(b[:]) } func selectLowOrderPoint(out, x, k *field.Element, cofactor uint8) { out.Zero() out.Select(k, out, int((cofactor>>1)&1)) // bit 1 out.Select(x, out, int((cofactor>>0)&1)) // bit 0 var tmp field.Element tmp.Negate(out) out.Select(&tmp, out, int((cofactor>>2)&1)) // bit 2 } func scalarBaseMultDirty(privateKey *[32]byte) *field.Element { // Compute clean scalar multiplication scalar, err := new(edwards25519.Scalar).SetBytesWithClamping(privateKey[:]) if err != nil { panic("internal/x25519ell2: failed to deserialize scalar: " + err.Error()) } pk := new(edwards25519.Point).ScalarBaseMult(scalar) // Compute low order point var lopX, lopY, lopT field.Element selectLowOrderPoint(&lopX, feLopX, feSqrtM1, privateKey[0]) selectLowOrderPoint(&lopY, feLopY, feOne, privateKey[0]+2) // Z = one lopT.Multiply(&lopX, &lopY) lop, err := new(edwards25519.Point).SetExtendedCoordinates(&lopX, &lopY, feOne, &lopT) if err != nil { panic("interal/x25519ell2: failed to create edwards point from x, y: " + err.Error()) } // Add low order point to the public key pk.Add(pk, lop) // Convert to Montgomery u coordinate (we ignore the sign) _, yExt, zExt, _ := pk.ExtendedCoordinates() var t1, t2 field.Element t1.Add(zExt, yExt) t2.Subtract(zExt, yExt) t2.Invert(&t2) t1.Multiply(&t1, &t2) return &t1 } func uToRepresentative(representative *[32]byte, u *field.Element, tweak byte) bool { t1 := new(field.Element).Set(u) t2 := new(field.Element).Add(t1, feA) t3 := new(field.Element).Multiply(t1, t2) t3.Multiply(t3, feNegTwo) if _, isSquare := t3.SqrtRatio(feOne, t3); isSquare == 1 { t1.Select(t2, t1, int(tweak&1)) t3.Multiply(t1, t3) t1.Mult32(t3, 2) t2.Negate(t3) tmp := t1.Bytes() t3.Select(t2, t3, int(tmp[0]&1)) copy(representative[:], t3.Bytes()) // Pad with two random bits representative[31] |= tweak & 0xc0 return true } return false } // ScalarBaseMult computes a curve25519 public key from a private // key and also a uniform representative for that public key. // Note that this function will fail and return false for about // half of private keys. // // The `privateKey` input MUST be the full 32-bytes of entropy // (X25519-style "clamping" will result in non-uniformly distributed // representatives). // // WARNING: The underlying scalar multiply explicitly does not clear // the cofactor, and thus the public keys will be different from // those produced by normal implementations. func ScalarBaseMult(publicKey, representative, privateKey *[32]byte, tweak byte) bool { u := scalarBaseMultDirty(privateKey) if !uToRepresentative(representative, u, tweak) { // No representative. return false } copy(publicKey[:], u.Bytes()) return true } // RepresentativeToPublicKey converts a uniform representative value for // a curve25519 public key, as produced by ScalarBaseMult, to a curve25519 // public key. func RepresentativeToPublicKey(publicKey, representative *[32]byte) { // Representatives are encoded in 254 bits. var clamped [32]byte copy(clamped[:], representative[:]) clamped[31] &= 63 var fe field.Element if _, err := fe.SetBytes(clamped[:]); err != nil { // Panic is fine, the only way this fails is if the representative // is not 32-bytes. panic("internal/x25519ell2: failed to deserialize representative: " + err.Error()) } u, _ := elligator2.MontgomeryFlavor(&fe) copy(publicKey[:], u.Bytes()) } riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/transports/000077500000000000000000000000001461742244100254105ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/transports/base/000077500000000000000000000000001461742244100263225ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/transports/base/base.go000066400000000000000000000074111461742244100275660ustar00rootroot00000000000000/* * Copyright (c) 2014, Yawning Angel * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ // Package base provides the common interface that each supported transport // protocol must implement. package base // import "gitlab.com/yawning/obfs4.git/transports/base" import ( "net" "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib" ) type DialFunc func(string, string) (net.Conn, error) // ClientFactory is the interface that defines the factory for creating // pluggable transport protocol client instances. type ClientFactory interface { // Transport returns the Transport instance that this ClientFactory belongs // to. Transport() Transport // ParseArgs parses the supplied arguments into an internal representation // for use with WrapConn. This routine is called before the outgoing // TCP/IP connection is created to allow doing things (like keypair // generation) to be hidden from third parties. ParseArgs(args *pt.Args) (any, error) // Dial creates an outbound net.Conn, and does whatever is required // (eg: handshaking) to get the connection to the point where it is // ready to relay data. Dial(network, address string, dialFn DialFunc, args any) (net.Conn, error) } // ServerFactory is the interface that defines the factory for creating // plugable transport protocol server instances. As the arguments are the // property of the factory, validation is done at factory creation time. type ServerFactory interface { // Transport returns the Transport instance that this ServerFactory belongs // to. Transport() Transport // Args returns the Args required on the client side to handshake with // server connections created by this factory. Args() *pt.Args // WrapConn wraps the provided net.Conn with a transport protocol // implementation, and does whatever is required (eg: handshaking) to get // the connection to a point where it is ready to relay data. WrapConn(conn net.Conn) (net.Conn, error) } // Transport is an interface that defines a pluggable transport protocol. type Transport interface { // Name returns the name of the transport protocol. It MUST be a valid C // identifier. Name() string // ClientFactory returns a ClientFactory instance for this transport // protocol. ClientFactory(stateDir string) (ClientFactory, error) // ServerFactory returns a ServerFactory instance for this transport // protocol. This can fail if the provided arguments are invalid. ServerFactory(stateDir string, args *pt.Args) (ServerFactory, error) } riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/transports/obfs4/000077500000000000000000000000001461742244100264255ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/transports/obfs4/framing/000077500000000000000000000000001461742244100300505ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/transports/obfs4/framing/framing.go000066400000000000000000000236151461742244100320310ustar00rootroot00000000000000/* * Copyright (c) 2014, Yawning Angel * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ // Package framing implements the obfs4 link framing and cryptography. // // The Encoder/Decoder shared secret format is: // // uint8_t[32] NaCl secretbox key // uint8_t[16] NaCl Nonce prefix // uint8_t[16] SipHash-2-4 key (used to obfsucate length) // uint8_t[8] SipHash-2-4 IV // // The frame format is: // // uint16_t length (obfsucated, big endian) // NaCl secretbox (Poly1305/XSalsa20) containing: // uint8_t[16] tag (Part of the secretbox construct) // uint8_t[] payload // // The length field is length of the NaCl secretbox XORed with the truncated // SipHash-2-4 digest ran in OFB mode. // // Initialize K, IV[0] with values from the shared secret. // On each packet, IV[n] = H(K, IV[n - 1]) // mask[n] = IV[n][0:2] // obfsLen = length ^ mask[n] // // The NaCl secretbox (Poly1305/XSalsa20) nonce format is: // // uint8_t[24] prefix (Fixed) // uint64_t counter (Big endian) // // The counter is initialized to 1, and is incremented on each frame. Since // the protocol is designed to be used over a reliable medium, the nonce is not // transmitted over the wire as both sides of the conversation know the prefix // and the initial counter value. It is imperative that the counter does not // wrap, and sessions MUST terminate before 2^64 frames are sent. package framing // import "gitlab.com/yawning/obfs4.git/transports/obfs4/framing" import ( "bytes" "encoding/binary" "errors" "fmt" "io" "golang.org/x/crypto/nacl/secretbox" "gitlab.com/yawning/obfs4.git/common/csrand" "gitlab.com/yawning/obfs4.git/common/drbg" ) const ( // MaximumSegmentLength is the length of the largest possible segment // including overhead. MaximumSegmentLength = 1500 - (40 + 12) // FrameOverhead is the length of the framing overhead. FrameOverhead = lengthLength + secretbox.Overhead // MaximumFramePayloadLength is the length of the maximum allowed payload // per frame. MaximumFramePayloadLength = MaximumSegmentLength - FrameOverhead // KeyLength is the length of the Encoder/Decoder secret key. KeyLength = keyLength + noncePrefixLength + drbg.SeedLength maxFrameLength = MaximumSegmentLength - lengthLength minFrameLength = FrameOverhead - lengthLength keyLength = 32 noncePrefixLength = 16 nonceCounterLength = 8 nonceLength = noncePrefixLength + nonceCounterLength lengthLength = 2 ) // Error returned when Decoder.Decode() requires more data to continue. var ErrAgain = errors.New("framing: More data needed to decode") // Error returned when Decoder.Decode() failes to authenticate a frame. var ErrTagMismatch = errors.New("framing: Poly1305 tag mismatch") // Error returned when the NaCl secretbox nonce's counter wraps (FATAL). var ErrNonceCounterWrapped = errors.New("framing: Nonce counter wrapped") // InvalidPayloadLengthError is the error returned when Encoder.Encode() // rejects the payload length. type InvalidPayloadLengthError int func (e InvalidPayloadLengthError) Error() string { return fmt.Sprintf("framing: Invalid payload length: %d", int(e)) } type boxNonce struct { prefix [noncePrefixLength]byte counter uint64 } func (nonce *boxNonce) init(prefix []byte) { if noncePrefixLength != len(prefix) { panic(fmt.Sprintf("BUG: Nonce prefix length invalid: %d", len(prefix))) } copy(nonce.prefix[:], prefix) nonce.counter = 1 } func (nonce boxNonce) bytes(out *[nonceLength]byte) error { // The security guarantee of Poly1305 is broken if a nonce is ever reused // for a given key. Detect this by checking for counter wraparound since // we start each counter at 1. If it ever happens that more than 2^64 - 1 // frames are transmitted over a given connection, support for rekeying // will be neccecary, but that's unlikely to happen. if nonce.counter == 0 { return ErrNonceCounterWrapped } copy(out[:], nonce.prefix[:]) binary.BigEndian.PutUint64(out[noncePrefixLength:], nonce.counter) return nil } // Encoder is a frame encoder instance. type Encoder struct { key [keyLength]byte nonce boxNonce drbg *drbg.HashDrbg } // NewEncoder creates a new Encoder instance. It must be supplied a slice // containing exactly KeyLength bytes of keying material. func NewEncoder(key []byte) *Encoder { if len(key) != KeyLength { panic(fmt.Sprintf("BUG: Invalid encoder key length: %d", len(key))) } encoder := new(Encoder) copy(encoder.key[:], key[0:keyLength]) encoder.nonce.init(key[keyLength : keyLength+noncePrefixLength]) seed, err := drbg.SeedFromBytes(key[keyLength+noncePrefixLength:]) if err != nil { panic(fmt.Sprintf("BUG: Failed to initialize DRBG: %s", err)) } encoder.drbg, _ = drbg.NewHashDrbg(seed) return encoder } // Encode encodes a single frame worth of payload and returns the encoded // length. InvalidPayloadLengthError is recoverable, all other errors MUST be // treated as fatal and the session aborted. func (encoder *Encoder) Encode(frame, payload []byte) (int, error) { payloadLen := len(payload) if MaximumFramePayloadLength < payloadLen { return 0, InvalidPayloadLengthError(payloadLen) } if len(frame) < payloadLen+FrameOverhead { return 0, io.ErrShortBuffer } // Generate a new nonce. var nonce [nonceLength]byte if err := encoder.nonce.bytes(&nonce); err != nil { return 0, err } encoder.nonce.counter++ // Encrypt and MAC payload. box := secretbox.Seal(frame[:lengthLength], payload, &nonce, &encoder.key) // Obfuscate the length. length := uint16(len(box) - lengthLength) lengthMask := encoder.drbg.NextBlock() length ^= binary.BigEndian.Uint16(lengthMask) binary.BigEndian.PutUint16(frame[:2], length) // Return the frame. return len(box), nil } // Decoder is a frame decoder instance. type Decoder struct { key [keyLength]byte nonce boxNonce drbg *drbg.HashDrbg nextNonce [nonceLength]byte nextLength uint16 nextLengthInvalid bool } // NewDecoder creates a new Decoder instance. It must be supplied a slice // containing exactly KeyLength bytes of keying material. func NewDecoder(key []byte) *Decoder { if len(key) != KeyLength { panic(fmt.Sprintf("BUG: Invalid decoder key length: %d", len(key))) } decoder := new(Decoder) copy(decoder.key[:], key[0:keyLength]) decoder.nonce.init(key[keyLength : keyLength+noncePrefixLength]) seed, err := drbg.SeedFromBytes(key[keyLength+noncePrefixLength:]) if err != nil { panic(fmt.Sprintf("BUG: Failed to initialize DRBG: %s", err)) } decoder.drbg, _ = drbg.NewHashDrbg(seed) return decoder } // Decode decodes a stream of data and returns the length if any. ErrAgain is // a temporary failure, all other errors MUST be treated as fatal and the // session aborted. func (decoder *Decoder) Decode(data []byte, frames *bytes.Buffer) (int, error) { // A length of 0 indicates that we do not know how big the next frame is // going to be. if decoder.nextLength == 0 { // Attempt to pull out the next frame length. if lengthLength > frames.Len() { return 0, ErrAgain } // Remove the length field from the buffer. var obfsLen [lengthLength]byte _, err := io.ReadFull(frames, obfsLen[:]) if err != nil { return 0, err } // Derive the nonce the peer used. if err = decoder.nonce.bytes(&decoder.nextNonce); err != nil { return 0, err } // Deobfuscate the length field. length := binary.BigEndian.Uint16(obfsLen[:]) lengthMask := decoder.drbg.NextBlock() length ^= binary.BigEndian.Uint16(lengthMask) if maxFrameLength < length || minFrameLength > length { // Per "Plaintext Recovery Attacks Against SSH" by // Martin R. Albrecht, Kenneth G. Paterson and Gaven J. Watson, // there are a class of attacks againt protocols that use similar // sorts of framing schemes. // // While obfs4 should not allow plaintext recovery (CBC mode is // not used), attempt to mitigate out of bound frame length errors // by pretending that the length was a random valid range as per // the countermeasure suggested by Denis Bider in section 6 of the // paper. decoder.nextLengthInvalid = true length = uint16(csrand.IntRange(minFrameLength, maxFrameLength)) } decoder.nextLength = length } if int(decoder.nextLength) > frames.Len() { return 0, ErrAgain } // Unseal the frame. var box [maxFrameLength]byte n, err := io.ReadFull(frames, box[:decoder.nextLength]) if err != nil { return 0, err } out, ok := secretbox.Open(data[:0], box[:n], &decoder.nextNonce, &decoder.key) if !ok || decoder.nextLengthInvalid { // When a random length is used (on length error) the tag should always // mismatch, but be paranoid. return 0, ErrTagMismatch } // Clean up and prepare for the next frame. decoder.nextLength = 0 decoder.nonce.counter++ return len(out), nil } riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/transports/obfs4/handshake_ntor.go000066400000000000000000000323341461742244100317510ustar00rootroot00000000000000/* * Copyright (c) 2014, Yawning Angel * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ package obfs4 import ( "bytes" "crypto/hmac" "crypto/sha256" "encoding/hex" "errors" "fmt" "hash" "strconv" "time" "gitlab.com/yawning/obfs4.git/common/csrand" "gitlab.com/yawning/obfs4.git/common/ntor" "gitlab.com/yawning/obfs4.git/common/replayfilter" "gitlab.com/yawning/obfs4.git/transports/obfs4/framing" ) const ( maxHandshakeLength = 8192 clientMinPadLength = (serverMinHandshakeLength + inlineSeedFrameLength) - clientMinHandshakeLength clientMaxPadLength = maxHandshakeLength - clientMinHandshakeLength clientMinHandshakeLength = ntor.RepresentativeLength + markLength + macLength serverMinPadLength = 0 serverMaxPadLength = maxHandshakeLength - (serverMinHandshakeLength + inlineSeedFrameLength) serverMinHandshakeLength = ntor.RepresentativeLength + ntor.AuthLength + markLength + macLength markLength = sha256.Size / 2 macLength = sha256.Size / 2 inlineSeedFrameLength = framing.FrameOverhead + packetOverhead + seedPacketPayloadLength ) // ErrMarkNotFoundYet is the error returned when the obfs4 handshake is // incomplete and requires more data to continue. This error is non-fatal and // is the equivalent to EAGAIN/EWOULDBLOCK. var ErrMarkNotFoundYet = errors.New("handshake: M_[C,S] not found yet") // ErrInvalidHandshake is the error returned when the obfs4 handshake fails due // to the peer not sending the correct mark. This error is fatal and the // connection MUST be dropped. var ErrInvalidHandshake = errors.New("handshake: Failed to find M_[C,S]") // ErrReplayedHandshake is the error returned when the obfs4 handshake fails // due it being replayed. This error is fatal and the connection MUST be // dropped. var ErrReplayedHandshake = errors.New("handshake: Replay detected") // ErrNtorFailed is the error returned when the ntor handshake fails. This // error is fatal and the connection MUST be dropped. var ErrNtorFailed = errors.New("handshake: ntor handshake failure") // InvalidMacError is the error returned when the handshake MACs do not match. // This error is fatal and the connection MUST be dropped. type InvalidMacError struct { Derived []byte Received []byte } func (e *InvalidMacError) Error() string { return fmt.Sprintf("handshake: MAC mismatch: Dervied: %s Received: %s.", hex.EncodeToString(e.Derived), hex.EncodeToString(e.Received)) } // InvalidAuthError is the error returned when the ntor AUTH tags do not match. // This error is fatal and the connection MUST be dropped. type InvalidAuthError struct { Derived *ntor.Auth Received *ntor.Auth } func (e *InvalidAuthError) Error() string { return fmt.Sprintf("handshake: ntor AUTH mismatch: Derived: %s Received:%s.", hex.EncodeToString(e.Derived.Bytes()[:]), hex.EncodeToString(e.Received.Bytes()[:])) } type clientHandshake struct { keypair *ntor.Keypair nodeID *ntor.NodeID serverIdentity *ntor.PublicKey epochHour []byte padLen int mac hash.Hash serverRepresentative *ntor.Representative serverAuth *ntor.Auth serverMark []byte } func newClientHandshake(nodeID *ntor.NodeID, serverIdentity *ntor.PublicKey, sessionKey *ntor.Keypair) *clientHandshake { hs := new(clientHandshake) hs.keypair = sessionKey hs.nodeID = nodeID hs.serverIdentity = serverIdentity hs.padLen = csrand.IntRange(clientMinPadLength, clientMaxPadLength) hs.mac = hmac.New(sha256.New, append(hs.serverIdentity.Bytes()[:], hs.nodeID.Bytes()[:]...)) return hs } func (hs *clientHandshake) generateHandshake() ([]byte, error) { var buf bytes.Buffer hs.mac.Reset() _, _ = hs.mac.Write(hs.keypair.Representative().Bytes()[:]) mark := hs.mac.Sum(nil)[:markLength] // The client handshake is X | P_C | M_C | MAC(X | P_C | M_C | E) where: // * X is the client's ephemeral Curve25519 public key representative. // * P_C is [clientMinPadLength,clientMaxPadLength] bytes of random padding. // * M_C is HMAC-SHA256-128(serverIdentity | NodeID, X) // * MAC is HMAC-SHA256-128(serverIdentity | NodeID, X .... E) // * E is the string representation of the number of hours since the UNIX // epoch. // Generate the padding pad, err := makePad(hs.padLen) if err != nil { return nil, err } // Write X, P_C, M_C. buf.Write(hs.keypair.Representative().Bytes()[:]) buf.Write(pad) buf.Write(mark) // Calculate and write the MAC. hs.mac.Reset() _, _ = hs.mac.Write(buf.Bytes()) hs.epochHour = []byte(strconv.FormatInt(getEpochHour(), 10)) _, _ = hs.mac.Write(hs.epochHour) buf.Write(hs.mac.Sum(nil)[:macLength]) return buf.Bytes(), nil } func (hs *clientHandshake) parseServerHandshake(resp []byte) (int, []byte, error) { // No point in examining the data unless the miminum plausible response has // been received. if serverMinHandshakeLength > len(resp) { return 0, nil, ErrMarkNotFoundYet } if hs.serverRepresentative == nil || hs.serverAuth == nil { // Pull out the representative/AUTH. (XXX: Add ctors to ntor) hs.serverRepresentative = new(ntor.Representative) copy(hs.serverRepresentative.Bytes()[:], resp[0:ntor.RepresentativeLength]) hs.serverAuth = new(ntor.Auth) copy(hs.serverAuth.Bytes()[:], resp[ntor.RepresentativeLength:]) // Derive the mark. hs.mac.Reset() _, _ = hs.mac.Write(hs.serverRepresentative.Bytes()[:]) hs.serverMark = hs.mac.Sum(nil)[:markLength] } // Attempt to find the mark + MAC. pos := findMarkMac(hs.serverMark, resp, ntor.RepresentativeLength+ntor.AuthLength+serverMinPadLength, maxHandshakeLength, false) if pos == -1 { if len(resp) >= maxHandshakeLength { return 0, nil, ErrInvalidHandshake } return 0, nil, ErrMarkNotFoundYet } // Validate the MAC. hs.mac.Reset() _, _ = hs.mac.Write(resp[:pos+markLength]) _, _ = hs.mac.Write(hs.epochHour) macCmp := hs.mac.Sum(nil)[:macLength] macRx := resp[pos+markLength : pos+markLength+macLength] if !hmac.Equal(macCmp, macRx) { return 0, nil, &InvalidMacError{macCmp, macRx} } // Complete the handshake. serverPublic := hs.serverRepresentative.ToPublic() ok, seed, auth := ntor.ClientHandshake(hs.keypair, serverPublic, hs.serverIdentity, hs.nodeID) if !ok { return 0, nil, ErrNtorFailed } if !ntor.CompareAuth(auth, hs.serverAuth.Bytes()[:]) { return 0, nil, &InvalidAuthError{auth, hs.serverAuth} } return pos + markLength + macLength, seed.Bytes()[:], nil } type serverHandshake struct { keypair *ntor.Keypair nodeID *ntor.NodeID serverIdentity *ntor.Keypair epochHour []byte serverAuth *ntor.Auth padLen int mac hash.Hash clientRepresentative *ntor.Representative clientMark []byte } func newServerHandshake(nodeID *ntor.NodeID, serverIdentity *ntor.Keypair, sessionKey *ntor.Keypair) *serverHandshake { hs := new(serverHandshake) hs.keypair = sessionKey hs.nodeID = nodeID hs.serverIdentity = serverIdentity hs.padLen = csrand.IntRange(serverMinPadLength, serverMaxPadLength) hs.mac = hmac.New(sha256.New, append(hs.serverIdentity.Public().Bytes()[:], hs.nodeID.Bytes()[:]...)) return hs } func (hs *serverHandshake) parseClientHandshake(filter *replayfilter.ReplayFilter, resp []byte) ([]byte, error) { // No point in examining the data unless the miminum plausible response has // been received. if clientMinHandshakeLength > len(resp) { return nil, ErrMarkNotFoundYet } if hs.clientRepresentative == nil { // Pull out the representative/AUTH. (XXX: Add ctors to ntor) hs.clientRepresentative = new(ntor.Representative) copy(hs.clientRepresentative.Bytes()[:], resp[0:ntor.RepresentativeLength]) // Derive the mark. hs.mac.Reset() _, _ = hs.mac.Write(hs.clientRepresentative.Bytes()[:]) hs.clientMark = hs.mac.Sum(nil)[:markLength] } // Attempt to find the mark + MAC. pos := findMarkMac(hs.clientMark, resp, ntor.RepresentativeLength+clientMinPadLength, maxHandshakeLength, true) if pos == -1 { if len(resp) >= maxHandshakeLength { return nil, ErrInvalidHandshake } return nil, ErrMarkNotFoundYet } // Validate the MAC. macFound := false for _, off := range []int64{0, -1, 1} { // Allow epoch to be off by up to a hour in either direction. epochHour := []byte(strconv.FormatInt(getEpochHour()+off, 10)) hs.mac.Reset() _, _ = hs.mac.Write(resp[:pos+markLength]) _, _ = hs.mac.Write(epochHour) macCmp := hs.mac.Sum(nil)[:macLength] macRx := resp[pos+markLength : pos+markLength+macLength] if hmac.Equal(macCmp, macRx) { // Ensure that this handshake has not been seen previously. if filter.TestAndSet(time.Now(), macRx) { // The client either happened to generate exactly the same // session key and padding, or someone is replaying a previous // handshake. In either case, fuck them. return nil, ErrReplayedHandshake } macFound = true hs.epochHour = epochHour // We could break out here, but in the name of reducing timing // variation, evaluate all 3 MACs. } } if !macFound { // This probably should be an InvalidMacError, but conveying the 3 MACS // that would be accepted is annoying so just return a generic fatal // failure. return nil, ErrInvalidHandshake } // Client should never sent trailing garbage. if len(resp) != pos+markLength+macLength { return nil, ErrInvalidHandshake } clientPublic := hs.clientRepresentative.ToPublic() ok, seed, auth := ntor.ServerHandshake(clientPublic, hs.keypair, hs.serverIdentity, hs.nodeID) if !ok { return nil, ErrNtorFailed } hs.serverAuth = auth return seed.Bytes()[:], nil } func (hs *serverHandshake) generateHandshake() ([]byte, error) { var buf bytes.Buffer hs.mac.Reset() _, _ = hs.mac.Write(hs.keypair.Representative().Bytes()[:]) mark := hs.mac.Sum(nil)[:markLength] // The server handshake is Y | AUTH | P_S | M_S | MAC(Y | AUTH | P_S | M_S | E) where: // * Y is the server's ephemeral Curve25519 public key representative. // * AUTH is the ntor handshake AUTH value. // * P_S is [serverMinPadLength,serverMaxPadLength] bytes of random padding. // * M_S is HMAC-SHA256-128(serverIdentity | NodeID, Y) // * MAC is HMAC-SHA256-128(serverIdentity | NodeID, Y .... E) // * E is the string representation of the number of hours since the UNIX // epoch. // Generate the padding pad, err := makePad(hs.padLen) if err != nil { return nil, err } // Write Y, AUTH, P_S, M_S. buf.Write(hs.keypair.Representative().Bytes()[:]) buf.Write(hs.serverAuth.Bytes()[:]) buf.Write(pad) buf.Write(mark) // Calculate and write the MAC. hs.mac.Reset() _, _ = hs.mac.Write(buf.Bytes()) _, _ = hs.mac.Write(hs.epochHour) // Set in hs.parseClientHandshake() buf.Write(hs.mac.Sum(nil)[:macLength]) return buf.Bytes(), nil } // getEpochHour returns the number of hours since the UNIX epoch. func getEpochHour() int64 { return time.Now().Unix() / 3600 } func findMarkMac(mark, buf []byte, startPos, maxPos int, fromTail bool) int { if len(mark) != markLength { panic(fmt.Sprintf("BUG: Invalid mark length: %d", len(mark))) } endPos := len(buf) if startPos > len(buf) { return -1 } if endPos > maxPos { endPos = maxPos } if endPos-startPos < markLength+macLength { return -1 } if fromTail { // The server can optimize the search process by only examining the // tail of the buffer. The client can't send valid data past M_C | // MAC_C as it does not have the server's public key yet. pos := endPos - (markLength + macLength) if !hmac.Equal(buf[pos:pos+markLength], mark) { return -1 } return pos } // The client has to actually do a substring search since the server can // and will send payload trailing the response. // // XXX: bytes.Index() uses a naive search, which kind of sucks. pos := bytes.Index(buf[startPos:endPos], mark) if pos == -1 { return -1 } // Ensure that there is enough trailing data for the MAC. if startPos+pos+markLength+macLength > endPos { return -1 } // Return the index relative to the start of the slice. pos += startPos return pos } func makePad(padLen int) ([]byte, error) { pad := make([]byte, padLen) if err := csrand.Bytes(pad); err != nil { return nil, err } return pad, nil } riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/transports/obfs4/obfs4.go000066400000000000000000000442361461742244100300020ustar00rootroot00000000000000/* * Copyright (c) 2014, Yawning Angel * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ // Package obfs4 provides an implementation of the Tor Project's obfs4 // obfuscation protocol. package obfs4 // import "gitlab.com/yawning/obfs4.git/transports/obfs4" import ( "bytes" "crypto/sha256" "errors" "flag" "fmt" "io" "math/rand" "net" "strconv" "syscall" "time" "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib" "gitlab.com/yawning/obfs4.git/common/drbg" "gitlab.com/yawning/obfs4.git/common/ntor" "gitlab.com/yawning/obfs4.git/common/probdist" "gitlab.com/yawning/obfs4.git/common/replayfilter" "gitlab.com/yawning/obfs4.git/transports/base" "gitlab.com/yawning/obfs4.git/transports/obfs4/framing" ) const ( transportName = "obfs4" nodeIDArg = "node-id" publicKeyArg = "public-key" privateKeyArg = "private-key" seedArg = "drbg-seed" iatArg = "iat-mode" certArg = "cert" biasCmdArg = "obfs4-distBias" seedLength = drbg.SeedLength headerLength = framing.FrameOverhead + packetOverhead clientHandshakeTimeout = time.Duration(60) * time.Second serverHandshakeTimeout = time.Duration(30) * time.Second replayTTL = time.Duration(3) * time.Hour maxIATDelay = 100 maxCloseDelay = 60 ) const ( iatNone = iota iatEnabled iatParanoid ) // biasedDist controls if the probability table will be ScrambleSuit style or // uniformly distributed. var biasedDist = flag.Bool(biasCmdArg, false, "Enable obfs4 using ScrambleSuit style table generation") type obfs4ClientArgs struct { nodeID *ntor.NodeID publicKey *ntor.PublicKey sessionKey *ntor.Keypair iatMode int } // Transport is the obfs4 implementation of the base.Transport interface. type Transport struct{} // Name returns the name of the obfs4 transport protocol. func (t *Transport) Name() string { return transportName } // ClientFactory returns a new obfs4ClientFactory instance. func (t *Transport) ClientFactory(_ string) (base.ClientFactory, error) { cf := &obfs4ClientFactory{transport: t} return cf, nil } // ServerFactory returns a new obfs4ServerFactory instance. func (t *Transport) ServerFactory(stateDir string, args *pt.Args) (base.ServerFactory, error) { st, err := serverStateFromArgs(stateDir, args) if err != nil { return nil, err } var iatSeed *drbg.Seed if st.iatMode != iatNone { iatSeedSrc := sha256.Sum256(st.drbgSeed.Bytes()[:]) var err error iatSeed, err = drbg.SeedFromBytes(iatSeedSrc[:]) if err != nil { return nil, err } } // Store the arguments that should appear in our descriptor for the clients. ptArgs := pt.Args{} ptArgs.Add(certArg, st.cert.String()) ptArgs.Add(iatArg, strconv.Itoa(st.iatMode)) // Initialize the replay filter. filter, err := replayfilter.New(replayTTL) if err != nil { return nil, err } // Initialize the close thresholds for failed connections. drbg, err := drbg.NewHashDrbg(st.drbgSeed) if err != nil { return nil, err } rng := rand.New(drbg) //nolint:gosec sf := &obfs4ServerFactory{t, &ptArgs, st.nodeID, st.identityKey, st.drbgSeed, iatSeed, st.iatMode, filter, rng.Intn(maxCloseDelay)} return sf, nil } type obfs4ClientFactory struct { transport base.Transport } func (cf *obfs4ClientFactory) Transport() base.Transport { return cf.transport } func (cf *obfs4ClientFactory) ParseArgs(args *pt.Args) (any, error) { var nodeID *ntor.NodeID var publicKey *ntor.PublicKey // The "new" (version >= 0.0.3) bridge lines use a unified "cert" argument // for the Node ID and Public Key. certStr, ok := args.Get(certArg) if ok { //nolint:nestif cert, err := serverCertFromString(certStr) if err != nil { return nil, err } nodeID, publicKey = cert.unpack() } else { // The "old" style (version <= 0.0.2) bridge lines use separate Node ID // and Public Key arguments in Base16 encoding and are a UX disaster. nodeIDStr, ok := args.Get(nodeIDArg) if !ok { return nil, fmt.Errorf("missing argument '%s'", nodeIDArg) } var err error if nodeID, err = ntor.NodeIDFromHex(nodeIDStr); err != nil { return nil, err } publicKeyStr, ok := args.Get(publicKeyArg) if !ok { return nil, fmt.Errorf("missing argument '%s'", publicKeyArg) } if publicKey, err = ntor.PublicKeyFromHex(publicKeyStr); err != nil { return nil, err } } // IAT config is common across the two bridge line formats. iatStr, ok := args.Get(iatArg) if !ok { return nil, fmt.Errorf("missing argument '%s'", iatArg) } iatMode, err := strconv.Atoi(iatStr) if err != nil || iatMode < iatNone || iatMode > iatParanoid { return nil, fmt.Errorf("invalid iat-mode '%d'", iatMode) } // Generate the session key pair before connecting to hide the Elligator2 // rejection sampling from network observers. sessionKey, err := ntor.NewKeypair(true) if err != nil { return nil, err } return &obfs4ClientArgs{nodeID, publicKey, sessionKey, iatMode}, nil } func (cf *obfs4ClientFactory) Dial(network, addr string, dialFn base.DialFunc, args any) (net.Conn, error) { // Validate args before bothering to open connection. ca, ok := args.(*obfs4ClientArgs) if !ok { return nil, fmt.Errorf("invalid argument type for args") } conn, err := dialFn(network, addr) if err != nil { return nil, err } dialConn := conn if conn, err = newObfs4ClientConn(conn, ca); err != nil { dialConn.Close() return nil, err } return conn, nil } type obfs4ServerFactory struct { transport base.Transport args *pt.Args nodeID *ntor.NodeID identityKey *ntor.Keypair lenSeed *drbg.Seed iatSeed *drbg.Seed iatMode int replayFilter *replayfilter.ReplayFilter closeDelay int } func (sf *obfs4ServerFactory) Transport() base.Transport { return sf.transport } func (sf *obfs4ServerFactory) Args() *pt.Args { return sf.args } func (sf *obfs4ServerFactory) WrapConn(conn net.Conn) (net.Conn, error) { // Not much point in having a separate newObfs4ServerConn routine when // wrapping requires using values from the factory instance. // Generate the session keypair *before* consuming data from the peer, to // attempt to mask the rejection sampling due to use of Elligator2. This // might be futile, but the timing differential isn't very large on modern // hardware, and there are far easier statistical attacks that can be // mounted as a distinguisher. sessionKey, err := ntor.NewKeypair(true) if err != nil { return nil, err } lenDist := probdist.New(sf.lenSeed, 0, framing.MaximumSegmentLength, *biasedDist) var iatDist *probdist.WeightedDist if sf.iatSeed != nil { iatDist = probdist.New(sf.iatSeed, 0, maxIATDelay, *biasedDist) } c := &obfs4Conn{conn, true, lenDist, iatDist, sf.iatMode, bytes.NewBuffer(nil), bytes.NewBuffer(nil), make([]byte, consumeReadSize), nil, nil} startTime := time.Now() if err = c.serverHandshake(sf, sessionKey); err != nil { c.closeAfterDelay(sf, startTime) return nil, err } return c, nil } type obfs4Conn struct { net.Conn isServer bool lenDist *probdist.WeightedDist iatDist *probdist.WeightedDist iatMode int receiveBuffer *bytes.Buffer receiveDecodedBuffer *bytes.Buffer readBuffer []byte encoder *framing.Encoder decoder *framing.Decoder } func newObfs4ClientConn(conn net.Conn, args *obfs4ClientArgs) (*obfs4Conn, error) { // Generate the initial protocol polymorphism distribution(s). var ( seed *drbg.Seed err error ) if seed, err = drbg.NewSeed(); err != nil { return nil, err } lenDist := probdist.New(seed, 0, framing.MaximumSegmentLength, *biasedDist) var iatDist *probdist.WeightedDist if args.iatMode != iatNone { var iatSeed *drbg.Seed iatSeedSrc := sha256.Sum256(seed.Bytes()[:]) if iatSeed, err = drbg.SeedFromBytes(iatSeedSrc[:]); err != nil { return nil, err } iatDist = probdist.New(iatSeed, 0, maxIATDelay, *biasedDist) } // Allocate the client structure. c := &obfs4Conn{conn, false, lenDist, iatDist, args.iatMode, bytes.NewBuffer(nil), bytes.NewBuffer(nil), make([]byte, consumeReadSize), nil, nil} // Start the handshake timeout. deadline := time.Now().Add(clientHandshakeTimeout) if err = conn.SetDeadline(deadline); err != nil { return nil, err } if err = c.clientHandshake(args.nodeID, args.publicKey, args.sessionKey); err != nil { return nil, err } // Stop the handshake timeout. if err = conn.SetDeadline(time.Time{}); err != nil { return nil, err } return c, nil } func (conn *obfs4Conn) clientHandshake(nodeID *ntor.NodeID, peerIdentityKey *ntor.PublicKey, sessionKey *ntor.Keypair) error { if conn.isServer { return fmt.Errorf("clientHandshake called on server connection") } // Generate and send the client handshake. hs := newClientHandshake(nodeID, peerIdentityKey, sessionKey) blob, err := hs.generateHandshake() if err != nil { return err } if _, err = conn.Conn.Write(blob); err != nil { return err } // Consume the server handshake. var hsBuf [maxHandshakeLength]byte for { n, err := conn.Conn.Read(hsBuf[:]) if err != nil { // The Read() could have returned data and an error, but there is // no point in continuing on an EOF or whatever. return err } conn.receiveBuffer.Write(hsBuf[:n]) n, seed, err := hs.parseServerHandshake(conn.receiveBuffer.Bytes()) if errors.Is(err, ErrMarkNotFoundYet) { continue } else if err != nil { return err } _ = conn.receiveBuffer.Next(n) // Use the derived key material to initialize the link crypto. okm := ntor.Kdf(seed, framing.KeyLength*2) conn.encoder = framing.NewEncoder(okm[:framing.KeyLength]) conn.decoder = framing.NewDecoder(okm[framing.KeyLength:]) return nil } } func (conn *obfs4Conn) serverHandshake(sf *obfs4ServerFactory, sessionKey *ntor.Keypair) error { if !conn.isServer { return fmt.Errorf("serverHandshake called on client connection") } // Generate the server handshake, and arm the base timeout. hs := newServerHandshake(sf.nodeID, sf.identityKey, sessionKey) if err := conn.Conn.SetDeadline(time.Now().Add(serverHandshakeTimeout)); err != nil { return err } // Consume the client handshake. var hsBuf [maxHandshakeLength]byte for { n, err := conn.Conn.Read(hsBuf[:]) if err != nil { // The Read() could have returned data and an error, but there is // no point in continuing on an EOF or whatever. return err } conn.receiveBuffer.Write(hsBuf[:n]) seed, err := hs.parseClientHandshake(sf.replayFilter, conn.receiveBuffer.Bytes()) if errors.Is(err, ErrMarkNotFoundYet) { continue } else if err != nil { return err } conn.receiveBuffer.Reset() if err := conn.Conn.SetDeadline(time.Time{}); err != nil { return err } // Use the derived key material to initialize the link crypto. okm := ntor.Kdf(seed, framing.KeyLength*2) conn.encoder = framing.NewEncoder(okm[framing.KeyLength:]) conn.decoder = framing.NewDecoder(okm[:framing.KeyLength]) break } // Since the current and only implementation always sends a PRNG seed for // the length obfuscation, this makes the amount of data received from the // server inconsistent with the length sent from the client. // // Rebalance this by tweaking the client minimum padding/server maximum // padding, and sending the PRNG seed unpadded (As in, treat the PRNG seed // as part of the server response). See inlineSeedFrameLength in // handshake_ntor.go. // Generate/send the response. blob, err := hs.generateHandshake() if err != nil { return err } var frameBuf bytes.Buffer if _, err = frameBuf.Write(blob); err != nil { return err } // Send the PRNG seed as the first packet. if err := conn.makePacket(&frameBuf, packetTypePrngSeed, sf.lenSeed.Bytes()[:], 0); err != nil { return err } if _, err = conn.Conn.Write(frameBuf.Bytes()); err != nil { return err } return nil } func (conn *obfs4Conn) Read(b []byte) (int, error) { // If there is no payload from the previous Read() calls, consume data off // the network. Not all data received is guaranteed to be usable payload, // so do this in a loop till data is present or an error occurs. var err error for conn.receiveDecodedBuffer.Len() == 0 { err = conn.readPackets() if errors.Is(err, framing.ErrAgain) { // Don't proagate this back up the call stack if we happen to break // out of the loop. err = nil continue } else if err != nil { break } } // Even if err is set, attempt to do the read anyway so that all decoded // data gets relayed before the connection is torn down. var n int if conn.receiveDecodedBuffer.Len() > 0 { var berr error n, berr = conn.receiveDecodedBuffer.Read(b) if err == nil { // Only propagate berr if there are not more important (fatal) // errors from the network/crypto/packet processing. err = berr } } return n, err } func (conn *obfs4Conn) Write(b []byte) (int, error) { chopBuf := bytes.NewBuffer(b) var ( payload [maxPacketPayloadLength]byte frameBuf bytes.Buffer n int ) // Chop the pending data into payload frames. for chopBuf.Len() > 0 { // Send maximum sized frames. rdLen, err := chopBuf.Read(payload[:]) if err != nil { return 0, err } else if rdLen == 0 { panic("BUG: Write(), chopping length was 0") } n += rdLen if err = conn.makePacket(&frameBuf, packetTypePayload, payload[:rdLen], 0); err != nil { return 0, err } } if conn.iatMode != iatParanoid { // For non-paranoid IAT, pad once per burst. Paranoid IAT handles // things differently. if err := conn.padBurst(&frameBuf, conn.lenDist.Sample()); err != nil { return 0, err } } // Write the pending data onto the network. Partial writes are fatal, // because the frame encoder state is advanced, and the code doesn't keep // frameBuf around. In theory, write timeouts and whatnot could be // supported if this wasn't the case, but that complicates the code. var err error if conn.iatMode != iatNone { //nolint:nestif var iatFrame [framing.MaximumSegmentLength]byte for frameBuf.Len() > 0 { var iatWrLen int switch conn.iatMode { case iatEnabled: // Standard (ScrambleSuit-style) IAT obfuscation optimizes for // bulk transport and will write ~MTU sized frames when // possible. iatWrLen, err = frameBuf.Read(iatFrame[:]) case iatParanoid: // Paranoid IAT obfuscation throws performance out of the // window and will sample the length distribution every time a // write is scheduled. targetLen := conn.lenDist.Sample() if frameBuf.Len() < targetLen { // There's not enough data buffered for the target write, // so padding must be inserted. if err = conn.padBurst(&frameBuf, targetLen); err != nil { return 0, err } if frameBuf.Len() != targetLen { // Ugh, padding came out to a value that required more // than one frame, this is relatively unlikely so just // resample since there's enough data to ensure that // the next sample will be written. continue } } iatWrLen, err = frameBuf.Read(iatFrame[:targetLen]) } if err != nil { return 0, err } else if iatWrLen == 0 { panic("BUG: Write(), iat length was 0") } // Calculate the delay. The delay resolution is 100 usec, leading // to a maximum delay of 10 msec. iatDelta := time.Duration(conn.iatDist.Sample() * 100) // Write then sleep. if _, err = conn.Conn.Write(iatFrame[:iatWrLen]); err != nil { return 0, err } time.Sleep(iatDelta * time.Microsecond) } } else { _, err = conn.Conn.Write(frameBuf.Bytes()) } return n, err } func (conn *obfs4Conn) SetDeadline(_ time.Time) error { return syscall.ENOTSUP } func (conn *obfs4Conn) SetWriteDeadline(_ time.Time) error { return syscall.ENOTSUP } func (conn *obfs4Conn) closeAfterDelay(sf *obfs4ServerFactory, startTime time.Time) { // I-it's not like I w-wanna handshake with you or anything. B-b-baka! defer conn.Conn.Close() delay := time.Duration(sf.closeDelay)*time.Second + serverHandshakeTimeout deadline := startTime.Add(delay) if time.Now().After(deadline) { return } if err := conn.Conn.SetReadDeadline(deadline); err != nil { return } // Consume and discard data on this connection until the specified interval // passes. _, _ = io.Copy(io.Discard, conn.Conn) } func (conn *obfs4Conn) padBurst(burst *bytes.Buffer, toPadTo int) error { tailLen := burst.Len() % framing.MaximumSegmentLength var padLen int if toPadTo >= tailLen { padLen = toPadTo - tailLen } else { padLen = (framing.MaximumSegmentLength - tailLen) + toPadTo } if padLen > headerLength { if err := conn.makePacket(burst, packetTypePayload, []byte{}, uint16(padLen-headerLength)); err != nil { return err } } else if padLen > 0 { if err := conn.makePacket(burst, packetTypePayload, []byte{}, maxPacketPayloadLength); err != nil { return err } if err := conn.makePacket(burst, packetTypePayload, []byte{}, uint16(padLen)); err != nil { return err } } return nil } var ( _ base.ClientFactory = (*obfs4ClientFactory)(nil) _ base.ServerFactory = (*obfs4ServerFactory)(nil) _ base.Transport = (*Transport)(nil) _ net.Conn = (*obfs4Conn)(nil) ) riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/transports/obfs4/packet.go000066400000000000000000000123161461742244100302260ustar00rootroot00000000000000/* * Copyright (c) 2014, Yawning Angel * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ package obfs4 import ( "crypto/sha256" "encoding/binary" "errors" "fmt" "io" "gitlab.com/yawning/obfs4.git/common/drbg" "gitlab.com/yawning/obfs4.git/transports/obfs4/framing" ) const ( packetOverhead = 2 + 1 maxPacketPayloadLength = framing.MaximumFramePayloadLength - packetOverhead maxPacketPaddingLength = maxPacketPayloadLength seedPacketPayloadLength = seedLength consumeReadSize = framing.MaximumSegmentLength * 16 ) const ( packetTypePayload = iota packetTypePrngSeed ) // InvalidPacketLengthError is the error returned when decodePacket detects a // invalid packet length. type InvalidPacketLengthError int func (e InvalidPacketLengthError) Error() string { return fmt.Sprintf("packet: Invalid packet length: %d", int(e)) } // InvalidPayloadLengthError is the error returned when decodePacket rejects the // payload length. type InvalidPayloadLengthError int func (e InvalidPayloadLengthError) Error() string { return fmt.Sprintf("packet: Invalid payload length: %d", int(e)) } var zeroPadBytes [maxPacketPaddingLength]byte func (conn *obfs4Conn) makePacket(w io.Writer, pktType uint8, data []byte, padLen uint16) error { var pkt [framing.MaximumFramePayloadLength]byte if len(data)+int(padLen) > maxPacketPayloadLength { panic(fmt.Sprintf("BUG: makePacket() len(data) + padLen > maxPacketPayloadLength: %d + %d > %d", len(data), padLen, maxPacketPayloadLength)) } // Packets are: // uint8_t type packetTypePayload (0x00) // uint16_t length Length of the payload (Big Endian). // uint8_t[] payload Data payload. // uint8_t[] padding Padding. pkt[0] = pktType binary.BigEndian.PutUint16(pkt[1:], uint16(len(data))) if len(data) > 0 { copy(pkt[3:], data) } copy(pkt[3+len(data):], zeroPadBytes[:padLen]) pktLen := packetOverhead + len(data) + int(padLen) // Encode the packet in an AEAD frame. var frame [framing.MaximumSegmentLength]byte frameLen, err := conn.encoder.Encode(frame[:], pkt[:pktLen]) if err != nil { // All encoder errors are fatal. return err } wrLen, err := w.Write(frame[:frameLen]) if err != nil { return err } else if wrLen < frameLen { return io.ErrShortWrite } return nil } func (conn *obfs4Conn) readPackets() error { // Attempt to read off the network. rdLen, rdErr := conn.Conn.Read(conn.readBuffer) conn.receiveBuffer.Write(conn.readBuffer[:rdLen]) var ( decoded [framing.MaximumFramePayloadLength]byte err error ) bufferLoop: for conn.receiveBuffer.Len() > 0 { // Decrypt an AEAD frame. var decLen int decLen, err = conn.decoder.Decode(decoded[:], conn.receiveBuffer) switch { case errors.Is(err, framing.ErrAgain): break bufferLoop case err != nil: break bufferLoop case decLen < packetOverhead: err = InvalidPacketLengthError(decLen) break bufferLoop } // Decode the packet. pkt := decoded[0:decLen] pktType := pkt[0] payloadLen := binary.BigEndian.Uint16(pkt[1:]) if int(payloadLen) > len(pkt)-packetOverhead { err = InvalidPayloadLengthError(int(payloadLen)) break } payload := pkt[3 : 3+payloadLen] switch pktType { case packetTypePayload: if payloadLen > 0 { conn.receiveDecodedBuffer.Write(payload) } case packetTypePrngSeed: // Only regenerate the distribution if we are the client. if len(payload) == seedPacketPayloadLength && !conn.isServer { var seed *drbg.Seed seed, err = drbg.SeedFromBytes(payload) if err != nil { break } conn.lenDist.Reset(seed) if conn.iatDist != nil { iatSeedSrc := sha256.Sum256(seed.Bytes()[:]) iatSeed, err := drbg.SeedFromBytes(iatSeedSrc[:]) if err != nil { break } conn.iatDist.Reset(iatSeed) } } default: // Ignore unknown packet types. } } // Read errors (all fatal) take priority over various frame processing // errors. if rdErr != nil { return rdErr } return err } riseup-vpn-0.24.5+ds1/vendor/gitlab.com/yawning/obfs4.git/transports/obfs4/statefile.go000066400000000000000000000171711461742244100307430ustar00rootroot00000000000000/* * Copyright (c) 2014, Yawning Angel * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ package obfs4 import ( "bytes" "encoding/base64" "encoding/json" "fmt" "os" "path" "strconv" "strings" "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib" "gitlab.com/yawning/obfs4.git/common/csrand" "gitlab.com/yawning/obfs4.git/common/drbg" "gitlab.com/yawning/obfs4.git/common/ntor" ) const ( stateFile = "obfs4_state.json" bridgeFile = "obfs4_bridgeline.txt" certSuffix = "==" certLength = ntor.NodeIDLength + ntor.PublicKeyLength ) type jsonServerState struct { NodeID string `json:"node-id"` PrivateKey string `json:"private-key"` PublicKey string `json:"public-key"` DrbgSeed string `json:"drbg-seed"` IATMode int `json:"iat-mode"` } type obfs4ServerCert struct { raw []byte } func (cert *obfs4ServerCert) String() string { return strings.TrimSuffix(base64.StdEncoding.EncodeToString(cert.raw), certSuffix) } func (cert *obfs4ServerCert) unpack() (*ntor.NodeID, *ntor.PublicKey) { if len(cert.raw) != certLength { panic(fmt.Sprintf("cert length %d is invalid", len(cert.raw))) } nodeID, _ := ntor.NewNodeID(cert.raw[:ntor.NodeIDLength]) pubKey, _ := ntor.NewPublicKey(cert.raw[ntor.NodeIDLength:]) return nodeID, pubKey } func serverCertFromString(encoded string) (*obfs4ServerCert, error) { decoded, err := base64.StdEncoding.DecodeString(encoded + certSuffix) if err != nil { return nil, fmt.Errorf("failed to decode cert: %w", err) } if len(decoded) != certLength { return nil, fmt.Errorf("cert length %d is invalid", len(decoded)) } return &obfs4ServerCert{raw: decoded}, nil } func serverCertFromState(st *obfs4ServerState) *obfs4ServerCert { cert := new(obfs4ServerCert) cert.raw = bytes.Clone(st.nodeID.Bytes()[:]) cert.raw = append(cert.raw, st.identityKey.Public().Bytes()[:]...) return cert } type obfs4ServerState struct { nodeID *ntor.NodeID identityKey *ntor.Keypair drbgSeed *drbg.Seed iatMode int cert *obfs4ServerCert } func (st *obfs4ServerState) clientString() string { return fmt.Sprintf("%s=%s %s=%d", certArg, st.cert, iatArg, st.iatMode) } func serverStateFromArgs(stateDir string, args *pt.Args) (*obfs4ServerState, error) { var js jsonServerState var nodeIDOk, privKeyOk, seedOk bool js.NodeID, nodeIDOk = args.Get(nodeIDArg) js.PrivateKey, privKeyOk = args.Get(privateKeyArg) js.DrbgSeed, seedOk = args.Get(seedArg) iatStr, iatOk := args.Get(iatArg) // Either a private key, node id, and seed are ALL specified, or // they should be loaded from the state file. switch { case !privKeyOk && !nodeIDOk && !seedOk: if err := jsonServerStateFromFile(stateDir, &js); err != nil { return nil, err } case !privKeyOk: return nil, fmt.Errorf("missing argument '%s'", privateKeyArg) case !nodeIDOk: return nil, fmt.Errorf("missing argument '%s'", nodeIDArg) case !seedOk: return nil, fmt.Errorf("missing argument '%s'", seedArg) } // The IAT mode should be independently configurable. if iatOk { // If the IAT mode is specified, attempt to parse and apply it // as an override. iatMode, err := strconv.Atoi(iatStr) if err != nil { return nil, fmt.Errorf("malformed iat-mode '%s'", iatStr) } js.IATMode = iatMode } return serverStateFromJSONServerState(stateDir, &js) } func serverStateFromJSONServerState(stateDir string, js *jsonServerState) (*obfs4ServerState, error) { var err error st := new(obfs4ServerState) if st.nodeID, err = ntor.NodeIDFromHex(js.NodeID); err != nil { return nil, err } if st.identityKey, err = ntor.KeypairFromHex(js.PrivateKey); err != nil { return nil, err } if st.drbgSeed, err = drbg.SeedFromHex(js.DrbgSeed); err != nil { return nil, err } if js.IATMode < iatNone || js.IATMode > iatParanoid { return nil, fmt.Errorf("invalid iat-mode '%d'", js.IATMode) } st.iatMode = js.IATMode st.cert = serverCertFromState(st) // Generate a human readable summary of the configured endpoint. if err = newBridgeFile(stateDir, st); err != nil { return nil, err } // Write back the possibly updated server state. return st, writeJSONServerState(stateDir, js) } func jsonServerStateFromFile(stateDir string, js *jsonServerState) error { fPath := path.Join(stateDir, stateFile) f, err := os.ReadFile(fPath) if err != nil { if os.IsNotExist(err) { if err = newJSONServerState(stateDir, js); err == nil { return nil } } return err } if err := json.Unmarshal(f, js); err != nil { return fmt.Errorf("failed to load statefile '%s': %w", fPath, err) } return nil } func newJSONServerState(stateDir string, js *jsonServerState) error { // Generate everything a server needs, using the cryptographic PRNG. var st obfs4ServerState rawID := make([]byte, ntor.NodeIDLength) if err := csrand.Bytes(rawID); err != nil { return err } var err error if st.nodeID, err = ntor.NewNodeID(rawID); err != nil { return err } if st.identityKey, err = ntor.NewKeypair(false); err != nil { return err } if st.drbgSeed, err = drbg.NewSeed(); err != nil { return err } st.iatMode = iatNone // Encode it into JSON format and write the state file. js.NodeID = st.nodeID.Hex() js.PrivateKey = st.identityKey.Private().Hex() js.PublicKey = st.identityKey.Public().Hex() js.DrbgSeed = st.drbgSeed.Hex() js.IATMode = st.iatMode return writeJSONServerState(stateDir, js) } func writeJSONServerState(stateDir string, js *jsonServerState) error { var err error var encoded []byte if encoded, err = json.Marshal(js); err != nil { return err } return os.WriteFile(path.Join(stateDir, stateFile), encoded, 0o600) } func newBridgeFile(stateDir string, st *obfs4ServerState) error { const prefix = "# obfs4 torrc client bridge line\n" + "#\n" + "# This file is an automatically generated bridge line based on\n" + "# the current obfs4proxy configuration. EDITING IT WILL HAVE\n" + "# NO EFFECT.\n" + "#\n" + "# Before distributing this Bridge, edit the placeholder fields\n" + "# to contain the actual values:\n" + "# - The public IP address of your obfs4 bridge.\n" + "# - The TCP/IP port of your obfs4 bridge.\n" + "# - The bridge's fingerprint.\n\n" bridgeLine := fmt.Sprintf("Bridge obfs4 : %s\n", st.clientString()) tmp := []byte(prefix + bridgeLine) return os.WriteFile(path.Join(stateDir, bridgeFile), tmp, 0o600) } riseup-vpn-0.24.5+ds1/vendor/gitlab.torproject.org/000077500000000000000000000000001461742244100221215ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.torproject.org/tpo/000077500000000000000000000000001461742244100227235ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.torproject.org/tpo/anti-censorship/000077500000000000000000000000001461742244100260315ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/000077500000000000000000000000001461742244100322105ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib/000077500000000000000000000000001461742244100336505ustar00rootroot00000000000000.gitignore000066400000000000000000000001101461742244100355510ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib/examples/dummy-client/dummy-client /examples/dummy-server/dummy-server COPYING000066400000000000000000000156101461742244100346270ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlibCreative Commons Legal Code CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER. Statement of Purpose The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. 1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; ii. moral rights retained by the original author(s) and/or performer(s); iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; v. rights protecting the extraction, dissemination, use and reuse of data in a Work; vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. 2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. 3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. 4. Limitations and Disclaimers. a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. ChangeLog000066400000000000000000000050501461742244100353430ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib== v1.5.0 Added the ReportVersion function that lets a client or server report its implementation version using the new STATUS TYPE=version feature. https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib/-/issues/1 == v1.4.0 Moved the repository URL from git.torproject.org/pluggable-transports/goptlib.git to gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib. == v1.3.0 Added a DialOrWithDialer function that allows you to, for example, use a specific source address when dialing the ORPort. == v1.2.0 The default and development branch is now "main" rather than "master". The master branch will no longer be updated. https://lists.torproject.org/pipermail/anti-censorship-team/2021-May/000168.html If you have an existing clone of the master branch, run these commands to update it: git fetch origin git remote set-head origin -a git branch --move master main git branch --set-upstream-to=origin/main main Added a go.mod file. https://bugs.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/40065 == v1.1.0 Added the Log function. https://bugs.torproject.org/28940 == v1.0.0 Changed the tag naming scheme to work better with Go modules. https://github.com/golang/go/wiki/Modules#semantic-import-versioning == 0.7 Fixed the ProxyError function; previously it would always panic. Repeated transport names in TOR_PT_SERVER_BINDADDR now result in an ENV-ERROR. https://bugs.torproject.org/21261 == 0.6 Remove all support for the "*" transport specification. The argument to the ClientSetup and ServerSetup functions is now unused. https://bugs.torproject.org/15612 Replaced SOCKS4a with SOCKS5. https://bugs.torproject.org/12535 == 0.5 The AcceptSocks function no longer reports non-permanent errors, such as those caused by a faulty SOCKS handshake. Added support for an upstream proxy (TOR_PT_PROXY). The two new functions are ProxyError and ProxyDone. The ClientInfo struct has a new ProxyURL member. https://bugs.torproject.org/12125 == 0.4 Read the ExtORPort cookie file on every call to DialOr, instead of reading it once and caching the result. This is to work around a tor bug where tor doesn't ensure a new cookie file is written before starting pluggable transports. https://bugs.torproject.org/15240 == 0.3 Made output functions panic intead of backslash-escaping. Escaping of invalid bytes is not specified by pt-spec, and backslashes conflicted with the specified escaping of SMETHOD ARGS. https://bugs.torproject.org/13370 == 0.2 Added the MakeStateDir function. == 0.1 == 0.0 Initial release. README000066400000000000000000000021631461742244100344530ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlibgoptlib is a library for writing Tor pluggable transports in Go. https://spec.torproject.org/pt-spec https://spec.torproject.org/ext-orport-spec To download a copy of the library into $GOPATH: go get gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib See the included example programs for examples of how to use the library. To build them, enter their directory and run "go build". examples/dummy-client/dummy-client.go examples/dummy-server/dummy-server.go The recommended way to start writing a new transport plugin is to copy dummy-client or dummy-server and make changes to it. There is browseable documentation here: https://pkg.go.dev/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib Report bugs to the tor-dev@lists.torproject.org mailing list or to the bug tracker at https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib/-/issues. To the extent possible under law, the authors have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty. See COPYING. args.go000066400000000000000000000122661461742244100350630ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlibpackage pt import ( "bytes" "fmt" "sort" "strings" ) // Key–value mappings for the representation of client and server options. // Args maps a string key to a list of values. It is similar to url.Values. type Args map[string][]string // Get the first value associated with the given key. If there are any values // associated with the key, the value return has the value and ok is set to // true. If there are no values for the given key, value is "" and ok is false. // If you need access to multiple values, use the map directly. func (args Args) Get(key string) (value string, ok bool) { if args == nil { return "", false } vals, ok := args[key] if !ok || len(vals) == 0 { return "", false } return vals[0], true } // Append value to the list of values for key. func (args Args) Add(key, value string) { args[key] = append(args[key], value) } // Return the index of the next unescaped byte in s that is in the term set, or // else the length of the string if no terminators appear. Additionally return // the unescaped string up to the returned index. func indexUnescaped(s string, term []byte) (int, string, error) { var i int unesc := make([]byte, 0) for i = 0; i < len(s); i++ { b := s[i] // A terminator byte? if bytes.IndexByte(term, b) != -1 { break } if b == '\\' { i++ if i >= len(s) { return 0, "", fmt.Errorf("nothing following final escape in %q", s) } b = s[i] } unesc = append(unesc, b) } return i, string(unesc), nil } // Parse a name–value mapping as from an encoded SOCKS username/password. // // "First the '=' formatted arguments MUST be escaped, such that all // backslash, equal sign, and semicolon characters are escaped with a // backslash." func parseClientParameters(s string) (args Args, err error) { args = make(Args) if len(s) == 0 { return } i := 0 for { var key, value string var offset, begin int begin = i // Read the key. offset, key, err = indexUnescaped(s[i:], []byte{'=', ';'}) if err != nil { return } i += offset // End of string or no equals sign? if i >= len(s) || s[i] != '=' { err = fmt.Errorf("no equals sign in %q", s[begin:i]) return } // Skip the equals sign. i++ // Read the value. offset, value, err = indexUnescaped(s[i:], []byte{';'}) if err != nil { return } i += offset if len(key) == 0 { err = fmt.Errorf("empty key in %q", s[begin:i]) return } args.Add(key, value) if i >= len(s) { break } // Skip the semicolon. i++ } return args, nil } // Parse a transport–name–value mapping as from TOR_PT_SERVER_TRANSPORT_OPTIONS. // // "...a semicolon-separated list of : pairs, where is a PT // name and is a k=v string value with options that are to be passed to // the transport. Colons, semicolons, equal signs and backslashes must be // escaped with a backslash." // Example: scramblesuit:key=banana;automata:rule=110;automata:depth=3 func parseServerTransportOptions(s string) (opts map[string]Args, err error) { opts = make(map[string]Args) if len(s) == 0 { return } i := 0 for { var methodName, key, value string var offset, begin int begin = i // Read the method name. offset, methodName, err = indexUnescaped(s[i:], []byte{':', '=', ';'}) if err != nil { return } i += offset // End of string or no colon? if i >= len(s) || s[i] != ':' { err = fmt.Errorf("no colon in %q", s[begin:i]) return } // Skip the colon. i++ // Read the key. offset, key, err = indexUnescaped(s[i:], []byte{'=', ';'}) if err != nil { return } i += offset // End of string or no equals sign? if i >= len(s) || s[i] != '=' { err = fmt.Errorf("no equals sign in %q", s[begin:i]) return } // Skip the equals sign. i++ // Read the value. offset, value, err = indexUnescaped(s[i:], []byte{';'}) if err != nil { return } i += offset if len(methodName) == 0 { err = fmt.Errorf("empty method name in %q", s[begin:i]) return } if len(key) == 0 { err = fmt.Errorf("empty key in %q", s[begin:i]) return } if opts[methodName] == nil { opts[methodName] = make(Args) } opts[methodName].Add(key, value) if i >= len(s) { break } // Skip the semicolon. i++ } return opts, nil } // Escape backslashes and all the bytes that are in set. func backslashEscape(s string, set []byte) string { var buf bytes.Buffer for _, b := range []byte(s) { if b == '\\' || bytes.IndexByte(set, b) != -1 { buf.WriteByte('\\') } buf.WriteByte(b) } return buf.String() } // Encode a name–value mapping so that it is suitable to go in the ARGS option // of an SMETHOD line. The output is sorted by key. The "ARGS:" prefix is not // added. // // "Equal signs and commas [and backslashes] MUST be escaped with a backslash." func encodeSmethodArgs(args Args) string { if args == nil { return "" } keys := make([]string, 0, len(args)) for key := range args { keys = append(keys, key) } sort.Strings(keys) escape := func(s string) string { return backslashEscape(s, []byte{'=', ','}) } var pairs []string for _, key := range keys { for _, value := range args[key] { pairs = append(pairs, escape(key)+"="+escape(value)) } } return strings.Join(pairs, ",") } pt.go000066400000000000000000000744301461742244100345530ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib// Package pt implements the Tor pluggable transports specification. // // Sample client usage: // var ptInfo pt.ClientInfo // ... // func handler(conn *pt.SocksConn) error { // defer conn.Close() // remote, err := net.Dial("tcp", conn.Req.Target) // if err != nil { // conn.Reject() // return err // } // defer remote.Close() // err = conn.Grant(remote.RemoteAddr().(*net.TCPAddr)) // if err != nil { // return err // } // // do something with conn and remote. // return nil // } // func acceptLoop(ln *pt.SocksListener) error { // defer ln.Close() // for { // conn, err := ln.AcceptSocks() // if err != nil { // if e, ok := err.(net.Error); ok && e.Temporary() { // pt.Log(pt.LogSeverityError, "accept error: " + err.Error()) // continue // } // return err // } // go handler(conn) // } // return nil // } // ... // func main() { // var err error // pt.ReportVersion("program", "v1.0") // ptInfo, err = pt.ClientSetup(nil) // if err != nil { // os.Exit(1) // } // if ptInfo.ProxyURL != nil { // // you need to interpret the proxy URL yourself // // call pt.ProxyDone instead if it's a type you understand // pt.ProxyError(fmt.Sprintf("proxy %s is not supported", ptInfo.ProxyURL)) // os.Exit(1) // } // for _, methodName := range ptInfo.MethodNames { // switch methodName { // case "foo": // ln, err := pt.ListenSocks("tcp", "127.0.0.1:0") // if err != nil { // pt.CmethodError(methodName, err.Error()) // break // } // go acceptLoop(ln) // pt.Cmethod(methodName, ln.Version(), ln.Addr()) // default: // pt.CmethodError(methodName, "no such method") // } // } // pt.CmethodsDone() // } // // Sample server usage: // var ptInfo pt.ServerInfo // ... // func handler(conn net.Conn) error { // defer conn.Close() // or, err := pt.DialOr(&ptInfo, conn.RemoteAddr().String(), "foo") // if err != nil { // return // } // defer or.Close() // // do something with or and conn // return nil // } // func acceptLoop(ln net.Listener) error { // defer ln.Close() // for { // conn, err := ln.Accept() // if err != nil { // if e, ok := err.(net.Error); ok && e.Temporary() { // continue // } // pt.Log(pt.LogSeverityError, "accept error: " + err.Error()) // return err // } // go handler(conn) // } // return nil // } // ... // func main() { // var err error // pt.ReportVersion("program", "v1.0") // ptInfo, err = pt.ServerSetup(nil) // if err != nil { // os.Exit(1) // } // for _, bindaddr := range ptInfo.Bindaddrs { // switch bindaddr.MethodName { // case "foo": // ln, err := net.ListenTCP("tcp", bindaddr.Addr) // if err != nil { // pt.SmethodError(bindaddr.MethodName, err.Error()) // break // } // go acceptLoop(ln) // pt.Smethod(bindaddr.MethodName, ln.Addr()) // default: // pt.SmethodError(bindaddr.MethodName, "no such method") // } // } // pt.SmethodsDone() // } // // Some additional care is needed to handle signals and shutdown properly. See // the example programs dummy-client and dummy-server. // // Tor pluggable transports specification: // https://spec.torproject.org/pt-spec // // Extended ORPort: // https://spec.torproject.org/ext-orport-spec // // The package implements a SOCKS5 server sufficient for a Tor client transport // plugin. // // https://www.ietf.org/rfc/rfc1928.txt // https://www.ietf.org/rfc/rfc1929.txt package pt import ( "bytes" "crypto/hmac" "crypto/rand" "crypto/sha256" "crypto/subtle" "encoding/binary" "fmt" "io" "net" "net/url" "os" "strconv" "strings" "time" ) // This type wraps a Write method and calls Sync after each Write. type syncWriter struct { *os.File } // Call File.Write and then Sync. An error is returned if either operation // returns an error. func (w syncWriter) Write(p []byte) (n int, err error) { n, err = w.File.Write(p) if err != nil { return } err = w.Sync() return } // Writer to which pluggable transports negotiation messages are written. It // defaults to a Writer that writes to os.Stdout and calls Sync after each // write. // // You may, for example, log pluggable transports messages by defining a Writer // that logs what is written to it: // type logWriteWrapper struct { // io.Writer // } // // func (w logWriteWrapper) Write(p []byte) (int, error) { // log.Print(string(p)) // return w.Writer.Write(p) // } // and then redefining Stdout: // pt.Stdout = logWriteWrapper{pt.Stdout} var Stdout io.Writer = syncWriter{os.Stdout} // Represents an error that can happen during negotiation, for example // ENV-ERROR. When an error occurs, we print it to stdout and also pass it up // the return chain. type ptErr struct { Keyword string Args []string } // Implements the error interface. func (err *ptErr) Error() string { return formatline(err.Keyword, err.Args...) } func getenv(key string) string { return os.Getenv(key) } // Returns an ENV-ERROR if the environment variable isn't set. func getenvRequired(key string) (string, error) { value := os.Getenv(key) if value == "" { return "", envError(fmt.Sprintf("no %s environment variable", key)) } return value, nil } // Returns true iff keyword contains only bytes allowed in a PT→Tor output line // keyword. // ::= func keywordIsSafe(keyword string) bool { for _, b := range []byte(keyword) { switch { case '0' <= b && b <= '9': continue case 'A' <= b && b <= 'Z': continue case 'a' <= b && b <= 'z': continue case b == '-' || b == '_': continue default: return false } } return true } // Returns true iff arg contains only bytes allowed in a PT→Tor output line arg. // ::= func argIsSafe(arg string) bool { for _, b := range []byte(arg) { if b >= '\x80' || b == '\x00' || b == '\n' { return false } } return true } func formatline(keyword string, v ...string) string { var buf bytes.Buffer if !keywordIsSafe(keyword) { panic(fmt.Sprintf("keyword %q contains forbidden bytes", keyword)) } buf.WriteString(keyword) for _, x := range v { if !argIsSafe(x) { panic(fmt.Sprintf("arg %q contains forbidden bytes", x)) } buf.WriteString(" " + x) } return buf.String() } // Print a pluggable transports protocol line to Stdout. The line consists of a // keyword followed by any number of space-separated arg strings. Panics if // there are forbidden bytes in the keyword or the args (pt-spec.txt 2.2.1). func line(keyword string, v ...string) { fmt.Fprintln(Stdout, formatline(keyword, v...)) } // Emit and return the given error as a ptErr. func doError(keyword string, v ...string) *ptErr { line(keyword, v...) return &ptErr{keyword, v} } // Emit an ENV-ERROR line with explanation text. Returns a representation of the // error. func envError(msg string) error { return doError("ENV-ERROR", msg) } // Emit a VERSION-ERROR line with explanation text. Returns a representation of // the error. func versionError(msg string) error { return doError("VERSION-ERROR", msg) } // Emit a CMETHOD-ERROR line with explanation text. Returns a representation of // the error. func CmethodError(methodName, msg string) error { return doError("CMETHOD-ERROR", methodName, msg) } // Emit an SMETHOD-ERROR line with explanation text. Returns a representation of // the error. func SmethodError(methodName, msg string) error { return doError("SMETHOD-ERROR", methodName, msg) } // Emit a PROXY-ERROR line with explanation text. Returns a representation of // the error. func ProxyError(msg string) error { return doError("PROXY-ERROR", msg) } // Emit a CMETHOD line. socks must be "socks4" or "socks5". Call this once for // each listening client SOCKS port. func Cmethod(name string, socks string, addr net.Addr) { line("CMETHOD", name, socks, addr.String()) } // Emit a CMETHODS DONE line. Call this after opening all client listeners. func CmethodsDone() { line("CMETHODS", "DONE") } // Emit an SMETHOD line. Call this once for each listening server port. func Smethod(name string, addr net.Addr) { line("SMETHOD", name, addr.String()) } // Emit an SMETHOD line with an ARGS option. args is a name–value mapping that // will be added to the server's extrainfo document. // // This is an example of how to check for a required option: // secret, ok := bindaddr.Options.Get("shared-secret") // if ok { // args := pt.Args{} // args.Add("shared-secret", secret) // pt.SmethodArgs(bindaddr.MethodName, ln.Addr(), args) // } else { // pt.SmethodError(bindaddr.MethodName, "need a shared-secret option") // } // Or, if you just want to echo back the options provided by Tor from the // TransportServerOptions configuration, // pt.SmethodArgs(bindaddr.MethodName, ln.Addr(), bindaddr.Options) func SmethodArgs(name string, addr net.Addr, args Args) { line("SMETHOD", name, addr.String(), "ARGS:"+encodeSmethodArgs(args)) } // Emit an SMETHODS DONE line. Call this after opening all server listeners. func SmethodsDone() { line("SMETHODS", "DONE") } // Emit a PROXY DONE line. Call this after parsing ClientInfo.ProxyURL. func ProxyDone() { fmt.Fprintf(Stdout, "PROXY DONE\n") } // Report this program's name and version number using a STATUS TYPE=version // line. Can be called any time before calling CmethodsDone or SmethodsDone. // // When called in a pluggable transport server, the implementation name and // version number will appear in the relay's bridge-extra-info descriptor. func ReportVersion(implementation string, version string) { line("STATUS", "TYPE=version", "IMPLEMENTATION="+encodeCString(implementation), "VERSION="+encodeCString(version)) } // Unexported type to represent log severities, preventing external callers from // inventing new severity strings that may violate quoting rules. // // pt-spec.txt section 3.3.4 specifies quoting for MESSAGE, but not for // SEVERITY, and the example shows an unquoted "SEVERITY=debug". While we know // tor's parser permits quoting of SEVERITY, it's not actually specified. // Therefore we we need to guard against callers passing a string that violates // the global protocol constraint of "any US-ASCII character but NUL or NL." So // here, we instantiate exactly the five supported severities, using a type that // cannot be constructed outside the package. type logSeverity struct { string } // Severity levels for the Log function. var ( LogSeverityError = logSeverity{"error"} LogSeverityWarning = logSeverity{"warning"} LogSeverityNotice = logSeverity{"notice"} LogSeverityInfo = logSeverity{"info"} LogSeverityDebug = logSeverity{"debug"} ) // Encode a string according to the CString rules of section 2.1.1 in // control-spec.txt. // CString = DQUOTE *qcontent DQUOTE // "...in a CString, the escapes '\n', '\t', '\r', and the octal escapes '\0' // ... '\377' represent newline, tab, carriage return, and the 256 possible // octet values respectively." // RFC 2822 section 3.2.5 in turn defines what byte values we need to escape: // everything but // NO-WS-CTL / ; Non white space controls // %d33 / ; The rest of the US-ASCII // %d35-91 / ; characters not including "\" // %d93-126 ; or the quote character // Technically control-spec.txt requires us to escape the space character (32), // but it is an error in the spec: https://bugs.torproject.org/29432. // // We additionally need to ensure that whatever we return passes argIsSafe, // because strings encoded by this function are printed verbatim by Log. func encodeCString(s string) string { result := bytes.NewBuffer([]byte{}) result.WriteByte('"') for _, c := range []byte(s) { if c == 32 || c == 33 || (35 <= c && c <= 91) || (93 <= c && c <= 126) { result.WriteByte(c) } else { fmt.Fprintf(result, "\\%03o", c) } } result.WriteByte('"') return result.String() } // Emit a LOG message with the given severity (one of LogSeverityError, // LogSeverityWarning, LogSeverityNotice, LogSeverityInfo, or LogSeverityDebug). func Log(severity logSeverity, message string) { // " contains the log message which can be a String or CString..." // encodeCString always makes the string safe to emit; i.e., it // satisfies argIsSafe. line("LOG", "SEVERITY="+severity.string, "MESSAGE="+encodeCString(message)) } // Get a pluggable transports version offered by Tor and understood by us, if // any. The only version we understand is "1". This function reads the // environment variable TOR_PT_MANAGED_TRANSPORT_VER. func getManagedTransportVer() (string, error) { const transportVersion = "1" managedTransportVer, err := getenvRequired("TOR_PT_MANAGED_TRANSPORT_VER") if err != nil { return "", err } for _, offered := range strings.Split(managedTransportVer, ",") { if offered == transportVersion { return offered, nil } } return "", versionError("no-version") } // Return the directory name in the TOR_PT_STATE_LOCATION environment variable, // creating it if it doesn't exist. Returns non-nil error if // TOR_PT_STATE_LOCATION is not set or if there is an error creating the // directory. func MakeStateDir() (string, error) { dir, err := getenvRequired("TOR_PT_STATE_LOCATION") if err != nil { return "", err } err = os.MkdirAll(dir, 0700) return dir, err } // Get the list of method names requested by Tor. This function reads the // environment variable TOR_PT_CLIENT_TRANSPORTS. func getClientTransports() ([]string, error) { clientTransports, err := getenvRequired("TOR_PT_CLIENT_TRANSPORTS") if err != nil { return nil, err } return strings.Split(clientTransports, ","), nil } // Get the upstream proxy URL. Returns nil if no proxy is requested. The // function ensures that the Scheme and Host fields are set; i.e., that the URL // is absolute. It additionally checks that the Host field contains both a host // and a port part. This function reads the environment variable TOR_PT_PROXY. // // This function doesn't check that the scheme is one of Tor's supported proxy // schemes; that is, one of "http", "socks5", or "socks4a". The caller must be // able to handle any returned scheme (which may be by calling ProxyError if // it doesn't know how to handle the scheme). func getProxyURL() (*url.URL, error) { rawurl := os.Getenv("TOR_PT_PROXY") if rawurl == "" { return nil, nil } u, err := url.Parse(rawurl) if err != nil { return nil, err } if u.Scheme == "" { return nil, fmt.Errorf("missing scheme") } if u.Host == "" { return nil, fmt.Errorf("missing authority") } host, port, err := net.SplitHostPort(u.Host) if err != nil { return nil, err } if host == "" { return nil, fmt.Errorf("missing host") } if port == "" { return nil, fmt.Errorf("missing port") } return u, nil } // This structure is returned by ClientSetup. It consists of a list of method // names and the upstream proxy URL, if any. type ClientInfo struct { MethodNames []string ProxyURL *url.URL } // Check the client pluggable transports environment, emitting an error message // and returning a non-nil error if any error is encountered. Returns a // ClientInfo struct. // // If your program needs to know whether to call ClientSetup or ServerSetup // (i.e., if the same program can be run as either a client or a server), check // whether the TOR_PT_CLIENT_TRANSPORTS environment variable is set: // if os.Getenv("TOR_PT_CLIENT_TRANSPORTS") != "" { // // Client mode; call pt.ClientSetup. // } else { // // Server mode; call pt.ServerSetup. // } // // Always pass nil for the unused single parameter. In the past, the parameter // was a list of transport names to use in case Tor requested "*". That feature // was never implemented and has been removed from the pluggable transports // specification. // https://bugs.torproject.org/15612 func ClientSetup(_ []string) (info ClientInfo, err error) { ver, err := getManagedTransportVer() if err != nil { return } line("VERSION", ver) info.MethodNames, err = getClientTransports() if err != nil { return } info.ProxyURL, err = getProxyURL() if err != nil { return } return info, nil } // A combination of a method name and an address, as extracted from // TOR_PT_SERVER_BINDADDR. type Bindaddr struct { MethodName string Addr *net.TCPAddr // Options from TOR_PT_SERVER_TRANSPORT_OPTIONS that pertain to this // transport. Options Args } func parsePort(portStr string) (int, error) { port, err := strconv.ParseUint(portStr, 10, 16) return int(port), err } // Resolve an address string into a net.TCPAddr. We are a bit more strict than // net.ResolveTCPAddr; we don't allow an empty host or port, and the host part // must be a literal IP address. func resolveAddr(addrStr string) (*net.TCPAddr, error) { ipStr, portStr, err := net.SplitHostPort(addrStr) if err != nil { // Before the fixing of bug #7011, tor doesn't put brackets around IPv6 // addresses. Split after the last colon, assuming it is a port // separator, and try adding the brackets. // https://bugs.torproject.org/7011 parts := strings.Split(addrStr, ":") if len(parts) <= 2 { return nil, err } addrStr := "[" + strings.Join(parts[:len(parts)-1], ":") + "]:" + parts[len(parts)-1] ipStr, portStr, err = net.SplitHostPort(addrStr) } if err != nil { return nil, err } if ipStr == "" { return nil, net.InvalidAddrError(fmt.Sprintf("address string %q lacks a host part", addrStr)) } if portStr == "" { return nil, net.InvalidAddrError(fmt.Sprintf("address string %q lacks a port part", addrStr)) } ip := net.ParseIP(ipStr) if ip == nil { return nil, net.InvalidAddrError(fmt.Sprintf("not an IP string: %q", ipStr)) } port, err := parsePort(portStr) if err != nil { return nil, err } return &net.TCPAddr{IP: ip, Port: port}, nil } // Return a new slice, the members of which are those members of addrs having a // MethodName in methodNames. func filterBindaddrs(addrs []Bindaddr, methodNames []string) []Bindaddr { var result []Bindaddr for _, ba := range addrs { for _, methodName := range methodNames { if ba.MethodName == methodName { result = append(result, ba) break } } } return result } // Return an array of Bindaddrs, being the contents of TOR_PT_SERVER_BINDADDR // with keys filtered by TOR_PT_SERVER_TRANSPORTS. Transport-specific options // from TOR_PT_SERVER_TRANSPORT_OPTIONS are assigned to the Options member. func getServerBindaddrs() ([]Bindaddr, error) { var result []Bindaddr // Parse the list of server transport options. serverTransportOptions := getenv("TOR_PT_SERVER_TRANSPORT_OPTIONS") optionsMap, err := parseServerTransportOptions(serverTransportOptions) if err != nil { return nil, envError(fmt.Sprintf("TOR_PT_SERVER_TRANSPORT_OPTIONS: %q: %s", serverTransportOptions, err.Error())) } // Get the list of all requested bindaddrs. serverBindaddr, err := getenvRequired("TOR_PT_SERVER_BINDADDR") if err != nil { return nil, err } seenMethods := make(map[string]bool) for _, spec := range strings.Split(serverBindaddr, ",") { var bindaddr Bindaddr parts := strings.SplitN(spec, "-", 2) if len(parts) != 2 { return nil, envError(fmt.Sprintf("TOR_PT_SERVER_BINDADDR: %q: doesn't contain \"-\"", spec)) } bindaddr.MethodName = parts[0] // Check for duplicate method names: "Applications MUST NOT set // more than one

    : pair per PT name." if seenMethods[bindaddr.MethodName] { return nil, envError(fmt.Sprintf("TOR_PT_SERVER_BINDADDR: %q: duplicate method name %q", spec, bindaddr.MethodName)) } seenMethods[bindaddr.MethodName] = true addr, err := resolveAddr(parts[1]) if err != nil { return nil, envError(fmt.Sprintf("TOR_PT_SERVER_BINDADDR: %q: %s", spec, err.Error())) } bindaddr.Addr = addr bindaddr.Options = optionsMap[bindaddr.MethodName] result = append(result, bindaddr) } // Filter by TOR_PT_SERVER_TRANSPORTS. serverTransports, err := getenvRequired("TOR_PT_SERVER_TRANSPORTS") if err != nil { return nil, err } result = filterBindaddrs(result, strings.Split(serverTransports, ",")) return result, nil } func readAuthCookie(f io.Reader) ([]byte, error) { authCookieHeader := []byte("! Extended ORPort Auth Cookie !\x0a") buf := make([]byte, 64) n, err := io.ReadFull(f, buf) if err != nil { return nil, err } // Check that the file ends here. n, err = f.Read(make([]byte, 1)) if n != 0 { return nil, fmt.Errorf("file is longer than 64 bytes") } else if err != io.EOF { return nil, fmt.Errorf("did not find EOF at end of file") } header := buf[0:32] cookie := buf[32:64] if subtle.ConstantTimeCompare(header, authCookieHeader) != 1 { return nil, fmt.Errorf("missing auth cookie header") } return cookie, nil } // Read and validate the contents of an auth cookie file. Returns the 32-byte // cookie. See section 2.1.2 of ext-orport-spec.txt. func readAuthCookieFile(filename string) (cookie []byte, err error) { f, err := os.Open(filename) if err != nil { return nil, err } defer func() { closeErr := f.Close() if err == nil { err = closeErr } }() return readAuthCookie(f) } // This structure is returned by ServerSetup. It consists of a list of // Bindaddrs, an address for the ORPort, an address for the extended ORPort (if // any), and an authentication cookie (if any). type ServerInfo struct { Bindaddrs []Bindaddr OrAddr *net.TCPAddr ExtendedOrAddr *net.TCPAddr AuthCookiePath string } // Check the server pluggable transports environment, emitting an error message // and returning a non-nil error if any error is encountered. Resolves the // various requested bind addresses, the server ORPort and extended ORPort, and // reads the auth cookie file. Returns a ServerInfo struct. // // If your program needs to know whether to call ClientSetup or ServerSetup // (i.e., if the same program can be run as either a client or a server), check // whether the TOR_PT_CLIENT_TRANSPORTS environment variable is set: // if os.Getenv("TOR_PT_CLIENT_TRANSPORTS") != "" { // // Client mode; call pt.ClientSetup. // } else { // // Server mode; call pt.ServerSetup. // } // // Always pass nil for the unused single parameter. In the past, the parameter // was a list of transport names to use in case Tor requested "*". That feature // was never implemented and has been removed from the pluggable transports // specification. // https://bugs.torproject.org/15612 func ServerSetup(_ []string) (info ServerInfo, err error) { ver, err := getManagedTransportVer() if err != nil { return } line("VERSION", ver) info.Bindaddrs, err = getServerBindaddrs() if err != nil { return } orPort := getenv("TOR_PT_ORPORT") if orPort != "" { info.OrAddr, err = resolveAddr(orPort) if err != nil { err = envError(fmt.Sprintf("cannot resolve TOR_PT_ORPORT %q: %s", orPort, err.Error())) return } } info.AuthCookiePath = getenv("TOR_PT_AUTH_COOKIE_FILE") extendedOrPort := getenv("TOR_PT_EXTENDED_SERVER_PORT") if extendedOrPort != "" { if info.AuthCookiePath == "" { err = envError("need TOR_PT_AUTH_COOKIE_FILE environment variable with TOR_PT_EXTENDED_SERVER_PORT") return } info.ExtendedOrAddr, err = resolveAddr(extendedOrPort) if err != nil { err = envError(fmt.Sprintf("cannot resolve TOR_PT_EXTENDED_SERVER_PORT %q: %s", extendedOrPort, err.Error())) return } } // Need either OrAddr or ExtendedOrAddr. if info.OrAddr == nil && info.ExtendedOrAddr == nil { err = envError("need TOR_PT_ORPORT or TOR_PT_EXTENDED_SERVER_PORT environment variable") return } return info, nil } // See ext-orport-spec.txt section 2.1.3. func computeServerHash(authCookie, clientNonce, serverNonce []byte) []byte { h := hmac.New(sha256.New, authCookie) io.WriteString(h, "ExtORPort authentication server-to-client hash") h.Write(clientNonce) h.Write(serverNonce) return h.Sum([]byte{}) } // See ext-orport-spec.txt section 2.1.3. func computeClientHash(authCookie, clientNonce, serverNonce []byte) []byte { h := hmac.New(sha256.New, authCookie) io.WriteString(h, "ExtORPort authentication client-to-server hash") h.Write(clientNonce) h.Write(serverNonce) return h.Sum([]byte{}) } func extOrPortAuthenticate(s io.ReadWriter, info *ServerInfo) error { // Read auth types. ext-orport-spec.txt section 2. var authTypes [256]bool var count int for count = 0; count < 256; count++ { buf := make([]byte, 1) _, err := io.ReadFull(s, buf) if err != nil { return err } b := buf[0] if b == 0 { break } authTypes[b] = true } if count >= 256 { return fmt.Errorf("read 256 auth types without seeing \\x00") } // We support only type 1, SAFE_COOKIE. if !authTypes[1] { return fmt.Errorf("server didn't offer auth type 1") } _, err := s.Write([]byte{1}) if err != nil { return err } clientNonce := make([]byte, 32) clientHash := make([]byte, 32) serverNonce := make([]byte, 32) serverHash := make([]byte, 32) _, err = io.ReadFull(rand.Reader, clientNonce) if err != nil { return err } _, err = s.Write(clientNonce) if err != nil { return err } _, err = io.ReadFull(s, serverHash) if err != nil { return err } _, err = io.ReadFull(s, serverNonce) if err != nil { return err } // Work around tor bug #15240 where the auth cookie is generated after // pluggable transports are launched, leading to a stale cookie getting // cached forever if it is only read once as part of ServerSetup. // https://bugs.torproject.org/15240 authCookie, err := readAuthCookieFile(info.AuthCookiePath) if err != nil { return fmt.Errorf("error reading TOR_PT_AUTH_COOKIE_FILE %q: %s", info.AuthCookiePath, err.Error()) } expectedServerHash := computeServerHash(authCookie, clientNonce, serverNonce) if subtle.ConstantTimeCompare(serverHash, expectedServerHash) != 1 { return fmt.Errorf("mismatch in server hash") } clientHash = computeClientHash(authCookie, clientNonce, serverNonce) _, err = s.Write(clientHash) if err != nil { return err } status := make([]byte, 1) _, err = io.ReadFull(s, status) if err != nil { return err } if status[0] != 1 { return fmt.Errorf("server rejected authentication") } return nil } // See section 3.1 of ext-orport-spec.txt. const ( extOrCmdDone = 0x0000 extOrCmdUserAddr = 0x0001 extOrCmdTransport = 0x0002 extOrCmdOkay = 0x1000 extOrCmdDeny = 0x1001 ) func extOrPortSendCommand(s io.Writer, cmd uint16, body []byte) error { var buf bytes.Buffer if len(body) > 65535 { return fmt.Errorf("body length %d exceeds maximum of 65535", len(body)) } err := binary.Write(&buf, binary.BigEndian, cmd) if err != nil { return err } err = binary.Write(&buf, binary.BigEndian, uint16(len(body))) if err != nil { return err } err = binary.Write(&buf, binary.BigEndian, body) if err != nil { return err } _, err = s.Write(buf.Bytes()) if err != nil { return err } return nil } // Send a USERADDR command on s. See section 3.2.1 of ext-orport-spec.txt. func extOrPortSendUserAddr(s io.Writer, addr string) error { return extOrPortSendCommand(s, extOrCmdUserAddr, []byte(addr)) } // Send a TRANSPORT command on s. See section 3.2.2 of ext-orport-spec.txt. func extOrPortSendTransport(s io.Writer, methodName string) error { return extOrPortSendCommand(s, extOrCmdTransport, []byte(methodName)) } // Send a DONE command on s. See section 3.1 of ext-orport-spec.txt. func extOrPortSendDone(s io.Writer) error { return extOrPortSendCommand(s, extOrCmdDone, []byte{}) } func extOrPortRecvCommand(s io.Reader) (cmd uint16, body []byte, err error) { var bodyLen uint16 data := make([]byte, 4) _, err = io.ReadFull(s, data) if err != nil { return } buf := bytes.NewBuffer(data) err = binary.Read(buf, binary.BigEndian, &cmd) if err != nil { return } err = binary.Read(buf, binary.BigEndian, &bodyLen) if err != nil { return } body = make([]byte, bodyLen) _, err = io.ReadFull(s, body) if err != nil { return } return cmd, body, err } // Send USERADDR and TRANSPORT commands followed by a DONE command. Wait for an // OKAY or DENY response command from the server. If addr or methodName is "", // the corresponding command is not sent. Returns nil if and only if OKAY is // received. func extOrPortSetMetadata(s io.ReadWriter, addr, methodName string) error { var err error if addr != "" { err = extOrPortSendUserAddr(s, addr) if err != nil { return err } } if methodName != "" { err = extOrPortSendTransport(s, methodName) if err != nil { return err } } err = extOrPortSendDone(s) if err != nil { return err } cmd, _, err := extOrPortRecvCommand(s) if err != nil { return err } if cmd == extOrCmdDeny { return fmt.Errorf("server returned DENY after our USERADDR and DONE") } else if cmd != extOrCmdOkay { return fmt.Errorf("server returned unknown command 0x%04x after our USERADDR and DONE", cmd) } return nil } func extOrPortSetup(s net.Conn, timeout time.Duration, info *ServerInfo, addr, methodName string) error { err := s.SetDeadline(time.Now().Add(timeout)) if err != nil { return err } err = extOrPortAuthenticate(s, info) if err != nil { return err } err = extOrPortSetMetadata(s, addr, methodName) if err != nil { return err } err = s.SetDeadline(time.Time{}) if err != nil { return err } return nil } // Dial (using the given net.Dialer) info.ExtendedOrAddr if defined, or else // info.OrAddr, and return an open net.Conn. If connecting to the extended OR // port, extended OR port authentication is done before returning; an error is // returned if authentication fails. // // The addr and methodName arguments are put in USERADDR and TRANSPORT ExtOrPort // commands, respectively. If either is "", the corresponding command is not // sent. func DialOrWithDialer(dialer *net.Dialer, info *ServerInfo, addr, methodName string) (net.Conn, error) { if info.ExtendedOrAddr == nil || info.AuthCookiePath == "" { return dialer.Dial("tcp", info.OrAddr.String()) } s, err := dialer.Dial("tcp", info.ExtendedOrAddr.String()) if err != nil { return nil, err } err = extOrPortSetup(s, 5*time.Second, info, addr, methodName) if err != nil { s.Close() return nil, err } return s, nil } // Dial info.ExtendedOrAddr if defined, or else info.OrAddr, and return an open // *net.TCPConn. If connecting to the extended OR port, extended OR port // authentication is done before returning; an error is returned if // authentication fails. // // The addr and methodName arguments are put in USERADDR and TRANSPORT ExtOrPort // commands, respectively. If either is "", the corresponding command is not // sent. func DialOr(info *ServerInfo, addr, methodName string) (*net.TCPConn, error) { c, err := DialOrWithDialer(&net.Dialer{}, info, addr, methodName) return c.(*net.TCPConn), err } socks.go000066400000000000000000000323571461742244100352540ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlibpackage pt import ( "bufio" "fmt" "io" "net" "time" ) const ( socksVersion = 0x05 socksAuthNoneRequired = 0x00 socksAuthUsernamePassword = 0x02 socksAuthNoAcceptableMethods = 0xff socksCmdConnect = 0x01 socksRsv = 0x00 socksAtypeV4 = 0x01 socksAtypeDomainName = 0x03 socksAtypeV6 = 0x04 socksAuthRFC1929Ver = 0x01 socksAuthRFC1929Success = 0x00 socksAuthRFC1929Fail = 0x01 socksRepSucceeded = 0x00 // "general SOCKS server failure" SocksRepGeneralFailure = 0x01 // "connection not allowed by ruleset" SocksRepConnectionNotAllowed = 0x02 // "Network unreachable" SocksRepNetworkUnreachable = 0x03 // "Host unreachable" SocksRepHostUnreachable = 0x04 // "Connection refused" SocksRepConnectionRefused = 0x05 // "TTL expired" SocksRepTTLExpired = 0x06 // "Command not supported" SocksRepCommandNotSupported = 0x07 // "Address type not supported" SocksRepAddressNotSupported = 0x08 ) // Put a sanity timeout on how long we wait for a SOCKS request. const socksRequestTimeout = 5 * time.Second // SocksRequest describes a SOCKS request. type SocksRequest struct { // The endpoint requested by the client as a "host:port" string. Target string // The userid string sent by the client. Username string // The password string sent by the client. Password string // The parsed contents of Username as a key–value mapping. Args Args } // SocksConn encapsulates a net.Conn and information associated with a SOCKS request. type SocksConn struct { net.Conn Req SocksRequest } // Send a message to the proxy client that access to the given address is // granted. Addr is ignored, and "0.0.0.0:0" is always sent back for // BND.ADDR/BND.PORT in the SOCKS response. func (conn *SocksConn) Grant(addr *net.TCPAddr) error { return sendSocks5ResponseGranted(conn) } // Send a message to the proxy client that access was rejected or failed. This // sends back a "General Failure" error code. RejectReason should be used if // more specific error reporting is desired. func (conn *SocksConn) Reject() error { return conn.RejectReason(SocksRepGeneralFailure) } // Send a message to the proxy client that access was rejected, with the // specific error code indicating the reason behind the rejection. func (conn *SocksConn) RejectReason(reason byte) error { return sendSocks5ResponseRejected(conn, reason) } // SocksListener wraps a net.Listener in order to read a SOCKS request on Accept. // // func handleConn(conn *pt.SocksConn) error { // defer conn.Close() // remote, err := net.Dial("tcp", conn.Req.Target) // if err != nil { // conn.Reject() // return err // } // defer remote.Close() // err = conn.Grant(remote.RemoteAddr().(*net.TCPAddr)) // if err != nil { // return err // } // // do something with conn and remote // return nil // } // ... // ln, err := pt.ListenSocks("tcp", "127.0.0.1:0") // if err != nil { // panic(err.Error()) // } // for { // conn, err := ln.AcceptSocks() // if err != nil { // log.Printf("accept error: %s", err) // if e, ok := err.(net.Error); ok && e.Temporary() { // continue // } // break // } // go handleConn(conn) // } type SocksListener struct { net.Listener } // Open a net.Listener according to network and laddr, and return it as a // SocksListener. func ListenSocks(network, laddr string) (*SocksListener, error) { ln, err := net.Listen(network, laddr) if err != nil { return nil, err } return NewSocksListener(ln), nil } // Create a new SocksListener wrapping the given net.Listener. func NewSocksListener(ln net.Listener) *SocksListener { return &SocksListener{ln} } // Accept is the same as AcceptSocks, except that it returns a generic net.Conn. // It is present for the sake of satisfying the net.Listener interface. func (ln *SocksListener) Accept() (net.Conn, error) { return ln.AcceptSocks() } // Call Accept on the wrapped net.Listener, do SOCKS negotiation, and return a // SocksConn. After accepting, you must call either conn.Grant or conn.Reject // (presumably after trying to connect to conn.Req.Target). // // Errors returned by AcceptSocks may be temporary (for example, EOF while // reading the request, or a badly formatted userid string), or permanent (e.g., // the underlying socket is closed). You can determine whether an error is // temporary and take appropriate action with a type conversion to net.Error. // For example: // // for { // conn, err := ln.AcceptSocks() // if err != nil { // if e, ok := err.(net.Error); ok && e.Temporary() { // log.Printf("temporary accept error; trying again: %s", err) // continue // } // log.Printf("permanent accept error; giving up: %s", err) // break // } // go handleConn(conn) // } func (ln *SocksListener) AcceptSocks() (*SocksConn, error) { retry: c, err := ln.Listener.Accept() if err != nil { return nil, err } conn := new(SocksConn) conn.Conn = c err = conn.SetDeadline(time.Now().Add(socksRequestTimeout)) if err != nil { conn.Close() goto retry } conn.Req, err = socks5Handshake(conn) if err != nil { conn.Close() goto retry } err = conn.SetDeadline(time.Time{}) if err != nil { conn.Close() goto retry } return conn, nil } // Returns "socks5", suitable to be included in a call to Cmethod. func (ln *SocksListener) Version() string { return "socks5" } // socks5handshake conducts the SOCKS5 handshake up to the point where the // client command is read and the proxy must open the outgoing connection. // Returns a SocksRequest. func socks5Handshake(s io.ReadWriter) (req SocksRequest, err error) { rw := bufio.NewReadWriter(bufio.NewReader(s), bufio.NewWriter(s)) // Negotiate the authentication method. var method byte if method, err = socksNegotiateAuth(rw); err != nil { return } // Authenticate the client. if err = socksAuthenticate(rw, method, &req); err != nil { return } // Read the command. err = socksReadCommand(rw, &req) return } // socksNegotiateAuth negotiates the authentication method and returns the // selected method as a byte. On negotiation failures an error is returned. func socksNegotiateAuth(rw *bufio.ReadWriter) (method byte, err error) { // Validate the version. if err = socksReadByteVerify(rw, "version", socksVersion); err != nil { return } // Read the number of methods. var nmethods byte if nmethods, err = socksReadByte(rw); err != nil { return } // Read the methods. var methods []byte if methods, err = socksReadBytes(rw, int(nmethods)); err != nil { return } // Pick the most "suitable" method. method = socksAuthNoAcceptableMethods for _, m := range methods { switch m { case socksAuthNoneRequired: // Pick Username/Password over None if the client happens to // send both. if method == socksAuthNoAcceptableMethods { method = m } case socksAuthUsernamePassword: method = m } } // Send the negotiated method. var msg [2]byte msg[0] = socksVersion msg[1] = method if _, err = rw.Writer.Write(msg[:]); err != nil { return } if err = socksFlushBuffers(rw); err != nil { return } return } // socksAuthenticate authenticates the client via the chosen authentication // mechanism. func socksAuthenticate(rw *bufio.ReadWriter, method byte, req *SocksRequest) (err error) { switch method { case socksAuthNoneRequired: // Straight into reading the connect. case socksAuthUsernamePassword: if err = socksAuthRFC1929(rw, req); err != nil { return } case socksAuthNoAcceptableMethods: err = fmt.Errorf("SOCKS method select had no compatible methods") return default: err = fmt.Errorf("SOCKS method select picked a unsupported method 0x%02x", method) return } if err = socksFlushBuffers(rw); err != nil { return } return } // socksAuthRFC1929 authenticates the client via RFC 1929 username/password // auth. As a design decision any valid username/password is accepted as this // field is primarily used as an out-of-band argument passing mechanism for // pluggable transports. func socksAuthRFC1929(rw *bufio.ReadWriter, req *SocksRequest) (err error) { sendErrResp := func() { // Swallow the write/flush error here, we are going to close the // connection and the original failure is more useful. resp := []byte{socksAuthRFC1929Ver, socksAuthRFC1929Fail} rw.Write(resp[:]) socksFlushBuffers(rw) } // Validate the fixed parts of the command message. if err = socksReadByteVerify(rw, "auth version", socksAuthRFC1929Ver); err != nil { sendErrResp() return } // Read the username. var ulen byte if ulen, err = socksReadByte(rw); err != nil { return } if ulen < 1 { sendErrResp() err = fmt.Errorf("RFC1929 username with 0 length") return } var uname []byte if uname, err = socksReadBytes(rw, int(ulen)); err != nil { return } req.Username = string(uname) // Read the password. var plen byte if plen, err = socksReadByte(rw); err != nil { return } if plen < 1 { sendErrResp() err = fmt.Errorf("RFC1929 password with 0 length") return } var passwd []byte if passwd, err = socksReadBytes(rw, int(plen)); err != nil { return } if !(plen == 1 && passwd[0] == 0x00) { // tor will set the password to 'NUL' if there are no arguments. req.Password = string(passwd) } // Mash the username/password together and parse it as a pluggable // transport argument string. if req.Args, err = parseClientParameters(req.Username + req.Password); err != nil { sendErrResp() } else { resp := []byte{socksAuthRFC1929Ver, socksAuthRFC1929Success} _, err = rw.Write(resp[:]) } return } // socksReadCommand reads a SOCKS5 client command and parses out the relevant // fields into a SocksRequest. Only CMD_CONNECT is supported. func socksReadCommand(rw *bufio.ReadWriter, req *SocksRequest) (err error) { sendErrResp := func(reason byte) { // Swallow errors that occur when writing/flushing the response, // connection will be closed anyway. sendSocks5ResponseRejected(rw, reason) socksFlushBuffers(rw) } // Validate the fixed parts of the command message. if err = socksReadByteVerify(rw, "version", socksVersion); err != nil { sendErrResp(SocksRepGeneralFailure) return } if err = socksReadByteVerify(rw, "command", socksCmdConnect); err != nil { sendErrResp(SocksRepCommandNotSupported) return } if err = socksReadByteVerify(rw, "reserved", socksRsv); err != nil { sendErrResp(SocksRepGeneralFailure) return } // Read the destination address/port. // XXX: This should probably eventually send socks 5 error messages instead // of rudely closing connections on invalid addresses. var atype byte if atype, err = socksReadByte(rw); err != nil { return } var host string switch atype { case socksAtypeV4: var addr []byte if addr, err = socksReadBytes(rw, net.IPv4len); err != nil { return } host = net.IPv4(addr[0], addr[1], addr[2], addr[3]).String() case socksAtypeDomainName: var alen byte if alen, err = socksReadByte(rw); err != nil { return } if alen == 0 { err = fmt.Errorf("SOCKS request had domain name with 0 length") return } var addr []byte if addr, err = socksReadBytes(rw, int(alen)); err != nil { return } host = string(addr) case socksAtypeV6: var rawAddr []byte if rawAddr, err = socksReadBytes(rw, net.IPv6len); err != nil { return } addr := make(net.IP, net.IPv6len) copy(addr[:], rawAddr[:]) host = fmt.Sprintf("[%s]", addr.String()) default: sendErrResp(SocksRepAddressNotSupported) err = fmt.Errorf("SOCKS request had unsupported address type 0x%02x", atype) return } var rawPort []byte if rawPort, err = socksReadBytes(rw, 2); err != nil { return } port := int(rawPort[0])<<8 | int(rawPort[1])<<0 if err = socksFlushBuffers(rw); err != nil { return } req.Target = fmt.Sprintf("%s:%d", host, port) return } // Send a SOCKS5 response with the given code. BND.ADDR/BND.PORT is always the // IPv4 address/port "0.0.0.0:0". func sendSocks5Response(w io.Writer, code byte) error { resp := make([]byte, 4+4+2) resp[0] = socksVersion resp[1] = code resp[2] = socksRsv resp[3] = socksAtypeV4 // BND.ADDR/BND.PORT should be the address and port that the outgoing // connection is bound to on the proxy, but Tor does not use this // information, so all zeroes are sent. _, err := w.Write(resp[:]) return err } // Send a SOCKS5 response code 0x00. func sendSocks5ResponseGranted(w io.Writer) error { return sendSocks5Response(w, socksRepSucceeded) } // Send a SOCKS5 response with the provided failure reason. func sendSocks5ResponseRejected(w io.Writer, reason byte) error { return sendSocks5Response(w, reason) } func socksFlushBuffers(rw *bufio.ReadWriter) error { if err := rw.Writer.Flush(); err != nil { return err } if rw.Reader.Buffered() > 0 { return fmt.Errorf("%d bytes left after SOCKS message", rw.Reader.Buffered()) } return nil } func socksReadByte(rw *bufio.ReadWriter) (byte, error) { return rw.Reader.ReadByte() } func socksReadBytes(rw *bufio.ReadWriter, n int) ([]byte, error) { ret := make([]byte, n) if _, err := io.ReadFull(rw.Reader, ret); err != nil { return nil, err } return ret, nil } func socksReadByteVerify(rw *bufio.ReadWriter, descr string, expected byte) error { val, err := socksReadByte(rw) if err != nil { return err } if val != expected { return fmt.Errorf("SOCKS message field %s was 0x%02x, not 0x%02x", descr, val, expected) } return nil } var _ net.Listener = (*SocksListener)(nil) test_authcookie000066400000000000000000000001001461742244100366750ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/vendor/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib! Extended ORPort Auth Cookie ! this file is used in test code. riseup-vpn-0.24.5+ds1/vendor/modules.txt000066400000000000000000000215171461742244100201160ustar00rootroot00000000000000# 0xacab.org/leap/obfsvpn v0.0.0-20240422180703-83037b24d5cc ## explicit; go 1.20 0xacab.org/leap/obfsvpn/client 0xacab.org/leap/obfsvpn/obfsvpn # filippo.io/edwards25519 v1.1.0 ## explicit; go 1.20 filippo.io/edwards25519 filippo.io/edwards25519/field # git.torproject.org/pluggable-transports/goptlib.git v1.3.0 ## explicit; go 1.11 git.torproject.org/pluggable-transports/goptlib.git # git.torproject.org/pluggable-transports/snowflake.git v1.1.0 ## explicit; go 1.13 git.torproject.org/pluggable-transports/snowflake.git/common/encapsulation git.torproject.org/pluggable-transports/snowflake.git/common/nat git.torproject.org/pluggable-transports/snowflake.git/common/safelog git.torproject.org/pluggable-transports/snowflake.git/common/turbotunnel git.torproject.org/pluggable-transports/snowflake.git/common/util # github.com/ProtonMail/go-autostart v0.0.0-20210130080809-00ed301c8e9a ## explicit github.com/ProtonMail/go-autostart # github.com/cretz/bine v0.2.0 ## explicit; go 1.15 github.com/cretz/bine/control github.com/cretz/bine/process github.com/cretz/bine/tor github.com/cretz/bine/torutil github.com/cretz/bine/torutil/ed25519 github.com/cretz/bine/torutil/ed25519/internal/edwards25519 # github.com/davecgh/go-spew v1.1.1 ## explicit github.com/davecgh/go-spew/spew # github.com/dchest/siphash v1.2.3 ## explicit; go 1.16 github.com/dchest/siphash # github.com/google/uuid v1.6.0 ## explicit github.com/google/uuid # github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 ## explicit github.com/gopherjs/gopherjs/js # github.com/jtolds/gls v4.20.0+incompatible ## explicit github.com/jtolds/gls # github.com/kalikaneko/socks5 v1.0.1 ## explicit; go 1.16 github.com/kalikaneko/socks5 # github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 ## explicit github.com/kardianos/osext # github.com/keybase/go-ps v0.0.0-20190827175125-91aafc93ba19 ## explicit github.com/keybase/go-ps github.com/keybase/go-ps/darwincgo # github.com/klauspost/cpuid/v2 v2.2.6 ## explicit; go 1.15 github.com/klauspost/cpuid/v2 # github.com/klauspost/reedsolomon v1.12.1 ## explicit; go 1.18 github.com/klauspost/reedsolomon # github.com/natefinch/npipe v0.0.0-20160621034901-c1b8fa8bdcce ## explicit github.com/natefinch/npipe # github.com/pion/datachannel v1.5.5 ## explicit; go 1.13 github.com/pion/datachannel # github.com/pion/dtls/v2 v2.2.9 ## explicit; go 1.13 github.com/pion/dtls/v2 github.com/pion/dtls/v2/internal/ciphersuite github.com/pion/dtls/v2/internal/ciphersuite/types github.com/pion/dtls/v2/internal/closer github.com/pion/dtls/v2/internal/util github.com/pion/dtls/v2/pkg/crypto/ccm github.com/pion/dtls/v2/pkg/crypto/ciphersuite github.com/pion/dtls/v2/pkg/crypto/clientcertificate github.com/pion/dtls/v2/pkg/crypto/elliptic github.com/pion/dtls/v2/pkg/crypto/fingerprint github.com/pion/dtls/v2/pkg/crypto/hash github.com/pion/dtls/v2/pkg/crypto/prf github.com/pion/dtls/v2/pkg/crypto/signature github.com/pion/dtls/v2/pkg/crypto/signaturehash github.com/pion/dtls/v2/pkg/protocol github.com/pion/dtls/v2/pkg/protocol/alert github.com/pion/dtls/v2/pkg/protocol/extension github.com/pion/dtls/v2/pkg/protocol/handshake github.com/pion/dtls/v2/pkg/protocol/recordlayer # github.com/pion/ice/v2 v2.3.12 ## explicit; go 1.13 github.com/pion/ice/v2 github.com/pion/ice/v2/internal/atomic github.com/pion/ice/v2/internal/fakenet github.com/pion/ice/v2/internal/stun # github.com/pion/interceptor v0.1.25 ## explicit; go 1.15 github.com/pion/interceptor github.com/pion/interceptor/internal/ntp github.com/pion/interceptor/internal/sequencenumber github.com/pion/interceptor/pkg/nack github.com/pion/interceptor/pkg/report github.com/pion/interceptor/pkg/twcc # github.com/pion/logging v0.2.2 ## explicit; go 1.12 github.com/pion/logging # github.com/pion/mdns v0.0.9 ## explicit; go 1.12 github.com/pion/mdns # github.com/pion/randutil v0.1.0 ## explicit; go 1.14 github.com/pion/randutil # github.com/pion/rtcp v1.2.13 ## explicit; go 1.13 github.com/pion/rtcp # github.com/pion/rtp v1.8.3 ## explicit; go 1.19 github.com/pion/rtp github.com/pion/rtp/codecs github.com/pion/rtp/codecs/av1/obu # github.com/pion/sctp v1.8.9 ## explicit; go 1.13 github.com/pion/sctp # github.com/pion/sdp/v3 v3.0.6 ## explicit; go 1.13 github.com/pion/sdp/v3 # github.com/pion/srtp/v2 v2.0.18 ## explicit; go 1.14 github.com/pion/srtp/v2 # github.com/pion/stun v0.6.1 ## explicit; go 1.12 github.com/pion/stun github.com/pion/stun/internal/hmac # github.com/pion/transport/v2 v2.2.4 ## explicit; go 1.12 github.com/pion/transport/v2 github.com/pion/transport/v2/connctx github.com/pion/transport/v2/deadline github.com/pion/transport/v2/packetio github.com/pion/transport/v2/replaydetector github.com/pion/transport/v2/stdnet github.com/pion/transport/v2/udp github.com/pion/transport/v2/utils/xor github.com/pion/transport/v2/vnet # github.com/pion/turn/v2 v2.1.4 ## explicit; go 1.13 github.com/pion/turn/v2 github.com/pion/turn/v2/internal/allocation github.com/pion/turn/v2/internal/client github.com/pion/turn/v2/internal/ipnet github.com/pion/turn/v2/internal/proto github.com/pion/turn/v2/internal/server # github.com/pion/webrtc/v3 v3.2.24 ## explicit; go 1.13 github.com/pion/webrtc/v3 github.com/pion/webrtc/v3/internal/fmtp github.com/pion/webrtc/v3/internal/mux github.com/pion/webrtc/v3/internal/util github.com/pion/webrtc/v3/pkg/media github.com/pion/webrtc/v3/pkg/rtcerr # github.com/pkg/errors v0.9.1 ## explicit github.com/pkg/errors # github.com/pmezard/go-difflib v1.0.0 ## explicit github.com/pmezard/go-difflib/difflib # github.com/sevlyar/go-daemon v0.1.6 ## explicit github.com/sevlyar/go-daemon # github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d ## explicit github.com/smartystreets/assertions github.com/smartystreets/assertions/internal/go-render/render github.com/smartystreets/assertions/internal/oglematchers # github.com/smartystreets/goconvey v1.6.4 ## explicit github.com/smartystreets/goconvey/convey github.com/smartystreets/goconvey/convey/gotest github.com/smartystreets/goconvey/convey/reporting # github.com/stretchr/testify v1.8.4 ## explicit; go 1.20 github.com/stretchr/testify/assert github.com/stretchr/testify/require # github.com/templexxx/cpu v0.1.0 ## explicit github.com/templexxx/cpu # github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 ## explicit github.com/templexxx/cpufeat # github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b ## explicit github.com/templexxx/xor # github.com/templexxx/xorsimd v0.4.2 ## explicit; go 1.13 github.com/templexxx/xorsimd # github.com/tjfoc/gmsm v1.4.1 ## explicit; go 1.14 github.com/tjfoc/gmsm/sm4 # github.com/xtaci/kcp-go v5.4.20+incompatible ## explicit github.com/xtaci/kcp-go # github.com/xtaci/kcp-go/v5 v5.6.1 ## explicit; go 1.13 github.com/xtaci/kcp-go/v5 # github.com/xtaci/smux v1.5.24 ## explicit; go 1.13 github.com/xtaci/smux # gitlab.com/yawning/edwards25519-extra v0.0.0-20231005122941-2149dcafc266 ## explicit; go 1.16 gitlab.com/yawning/edwards25519-extra/elligator2 gitlab.com/yawning/edwards25519-extra/internal/montgomery # gitlab.com/yawning/obfs4.git v0.0.0-20231012084234-c3e2d44b1033 ## explicit; go 1.20 gitlab.com/yawning/obfs4.git/common/csrand gitlab.com/yawning/obfs4.git/common/drbg gitlab.com/yawning/obfs4.git/common/ntor gitlab.com/yawning/obfs4.git/common/probdist gitlab.com/yawning/obfs4.git/common/replayfilter gitlab.com/yawning/obfs4.git/internal/x25519ell2 gitlab.com/yawning/obfs4.git/transports/base gitlab.com/yawning/obfs4.git/transports/obfs4 gitlab.com/yawning/obfs4.git/transports/obfs4/framing # gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib v1.5.0 ## explicit; go 1.11 gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib # golang.org/x/crypto v0.18.0 ## explicit; go 1.18 golang.org/x/crypto/blowfish golang.org/x/crypto/cast5 golang.org/x/crypto/cryptobyte golang.org/x/crypto/cryptobyte/asn1 golang.org/x/crypto/curve25519 golang.org/x/crypto/curve25519/internal/field golang.org/x/crypto/ed25519 golang.org/x/crypto/hkdf golang.org/x/crypto/internal/alias golang.org/x/crypto/internal/poly1305 golang.org/x/crypto/nacl/secretbox golang.org/x/crypto/pbkdf2 golang.org/x/crypto/salsa20 golang.org/x/crypto/salsa20/salsa golang.org/x/crypto/sha3 golang.org/x/crypto/tea golang.org/x/crypto/twofish golang.org/x/crypto/xtea # golang.org/x/net v0.20.0 ## explicit; go 1.18 golang.org/x/net/bpf golang.org/x/net/dns/dnsmessage golang.org/x/net/internal/iana golang.org/x/net/internal/socket golang.org/x/net/internal/socks golang.org/x/net/ipv4 golang.org/x/net/ipv6 golang.org/x/net/proxy # golang.org/x/sys v0.16.0 ## explicit; go 1.18 golang.org/x/sys/cpu golang.org/x/sys/unix golang.org/x/sys/windows golang.org/x/sys/windows/registry golang.org/x/sys/windows/svc golang.org/x/sys/windows/svc/debug golang.org/x/sys/windows/svc/eventlog golang.org/x/sys/windows/svc/mgr # gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce ## explicit # gopkg.in/yaml.v3 v3.0.1 ## explicit gopkg.in/yaml.v3

    T,;m<oN/~wgOQִ"_ò`-惏U> QUXʆhwPuG=GVإ'2> +v]zء;n ]o;,j|Av~xGˏzGٷ#bVI{ߤT}2~˅;dWpרDJKR]GwnJ\7X5 6)~w}㯠WKP0$ $ $ $ $ $ 1 DV+J% $ $ $ $ xN1Z>TÙ^ qJ]_ύrs+NףJ?@wyPMuYZ\]6&PגY%`c:KT>C/"sku;y(n}eiYh4PD & T2FJdHP௰8$=@偌LZ,QB[#po]¾Dtt'~-ݗ4 -4Wģ]`4wQz= ɟrh|(FL0= ۇhB` bz#!ވ'!Zy.6>A\/Quk#XFkpWl&Лm_sqL!9kRev{OfKOCS-T9?au hGl1decLkY`y:o2V+Y)#ֿU@a  F+k\@74 eNwi1q % YvQahmrҰp=@:_RPh5[ \'u\7+*P0ux>MPlq(n \rfoKQ@.%qLm6OLVyv`rtx.]fz.h0 aP/pV[g&F ~{nx]>wXHs[8܇훳<,4N|݅]Fi>/^nw7e0#=,C:7=)uG37[Hz a|u]+xL:z&l4*:=׀~CKF(W@Bi2,)+y7OzԖ}Y+wTVG/,\EC.0ac2%k+:s1yFc$Le}B(Wd*J髖*s6Xx$ -"Û1h17;NO 78Yd`3 ,ii7YB>wn{XNUx|ݣ8SCA18Z+!' nwHaձ ®[ ^dweq`z͝F !I/ϕ%1ݡW"oL|Ap1ƀw0!}@jX` ଗ8DdtP t 8|.Gё6b <%Üo'/TZhQPOW LJ˅œ M^e@"2>)xBT8p Eo ". tb+  b D҃>_g l/-CiOC]=gج|T !6gDP#Х?USdc)gj;MW_.hlܒxrv`i3_u RBHW_> v p뵆ifQ wc3ܳ Sٱ E;s> '*tf8){$gnn=#CwyY>X b?я cOwÅj`̃Ah@_+3WAswK?{B-~i.ٿ9`CA G1W8] fZTX,q_h*E{!y{uB=W0W 3 ? _ZzzCA&m&lS%d I pk F+7 #Ɓ9\`L+n=Swvi>wrPbLeCsdm}6Uu-!̷]X}b)9Q Q Q Q Q࿋ܰwuzDDDD5@IvA[[;K.QZZ-~YH.][Tڪʂ{L-x<{`҃hV,Mgw$;JWde9Jc,w4[aϐq5 8X5G_Bz`DB؝Gv]6FAGAJ\Y@:*xE @5;'P@ 2f(X%Év$>@_^^]- a, |vc-wnq(h~ .ͥf h.vѽ{t.2U]EpPĭ> BEGk̕zKdH~ܓnB\-1p˴w)>fiwe[6nM0Ҟhr1`e1>J# z ɨ (0QPxz ACt Pd~q 1؏P/ew?l=5`i ÓPL">u(}TT }2`)觠7):FE{#@/0#Í҂ 8wY6b{I\=]jc35>9TNA?tOpcNzdy4 +xFվc#HtްkfA ^ ]@ Ma1XopG}FmГaz*Vp}&P_y(t&OsiI?xW@uڠbaIJg *dK^@Squ)7j`A 6c@S6y{q'^0opB( )@|b*/`)[G3q_5z#˦zy@UH4ksM=B"zB}HK5x)Rr+ǂmo `?Pf?=*, xF eu+mm[| d(7ߙ@bNFZ1Ot20x3EN >;(h|檝J.:ɸ+B'2Ɉ@.͋{hp>쯬Q2 C%:*Ua'ZQ}*4~1pS(qCe\P bd:3h`{9r:DK\;W#Wtj ڈΞzw,JHAO&ͦ0򿨳2pMEBvx:E6fIA! G\1Sgq?]uև" 7%35Q]V9*GU˵^ Sv׀_ãȟpKg}8JY{ D{l|^kAHw[|W,0CLp6>L&SܻBLa.ߛLۼǓ*np^b3O*B"0d-RC * b:/zzB7)Pv}QqQywi`)BX7zaח>s͗scLP(?/پ` Û!`-On P3z'][6}dGnφ5/~-Spw|]c*NPn=S~9/3K6,<GETJzj[?f }u?WjZ߳F"]A(~fh !>WE, SLz)?3}nbՇA%!'(Dl 4a(,oY6eqnu&?~P8 (P+}Gr~V&c\8>9Qx݄Pً ?ڇ )BOܔ~3$S`mb_t@IDATV'm?' -G uwˇ.6u;y ~mGP>~yeLg=lW>o|_@~=Xk{Fy1()Jz5 !eIb8 <ί[;uE/vJDzl=9wvgIPpi36*.ʟ\S*x4UoF9mš*wF.9DOpU0pv8Ev̋k<]{m6 ZPGI1(((((( RT@@@@he eRx]N͵EQ@^92x`^#p_/WqFE;dpKCOI/HLW> 8 sdTݮӥAOK{)kegmY/6@ċsJKnK1xZ)kUP(6x0 9lRDQB z}rLR_khr8]IvES g &NC?AxgJN hW!z 7_`?`ct?0-N4obٸ@few, M2]x+>󀯥BcRvνQ>4AM0QM?cpBS{GG~. 8BW@%G[aqĜlo՞AQ1 ?8$(a|c-ϧ+=!IWm< ҁ!$VPAKƸ3x1j̃ h3ZuO^~sAmv3١AAy2D|ƇuY݇G/pw)̎ʂ@[f5OWொW~uQ~ʞƇ}g֐<} KH?u66yQ~ ǙEz֦&xUKL0GhDc(Zb NH_]-+ ؏i;Vwab(N[` x{[ (y?k򾐟.%}F뷯QNx9_yHך@}\iiNA4׽Ѣu{tǂP6uGzo!j kPh?*^ C>sighܶQ1߇'OZM& ќ֞pgzOn}L_g!]"( u֞)&ԙ_A|s_P@=,P~CS<]7CTSj6Gw1^ 4׵ru+a kP|ݜ9 qxQ0=! T8e\45TI+-xelh1Fxe7 /F`x[ GʝNmh(\PώdY 7/G?3 (PKv s/,s^\>ݝ/1*I@1IUưy'T$ԑa_6h,H Q W3E5j147\gxmm؎vQ {~O18Q Cr=8B MDSx/ yW|OBoW~PخPxW[M _\Uoe ~TPQ?amj۝g\gc 5O,'1>9I}KwcmAjyeWt"Dh94X>hKq1q>G9 r89'gQ>O?ř/ªDl\~7ҭlF3 /[6m>\wҘ =t{^/粞IK/]uLo=ȴVU_j ]P8Snԝk{B*Tepi eDkh䁲Zo9[U.v+=]M-*[W?\z% 18ZQ?W<|# ;c4s.bE6^Ή\k͏$0$ $ $ $ $ $ " n=VQDDDDD7K/_u'o,8e1Pnl#~B6e˃_N֭k^ w~Aacs~eMdqźeQZ6 n>SH[v+|>-w.b~Ϳ-p>au 1 E=2Fx"BM(3pX?iZ&< 0`F  OFl<}ōOԂ&B5&nwLҕ/eϨÙ.uq1<lua{x.qZ<i|(\Z?;=K "Zy8)$cj9t~hi`5F63Ϯc._2نχE6bLsf;h˻͂vv:K z8\4Wgj%y㑊 5A"[v̷r ?7<7oGkwmc_lηBqI~/*^Z=-=UAW}&y ;TC?~'^>2?]bW\q|͟_4 l|} TO:_}43Ѧ5>@6>Md҅m2񽀋e֢ԗsW?'iD^.;@!6ʘ>mGw2I7JqĊfe=MTBU<˩Jp](HHHHHHx آ*9RR@@@@B>%Wc:꣪O#{r_v$sT/)2{wyXn_h,4"iW{!(K4! Cv 9击'5d^'l$gˢPnI%_fw@M'EK"N  Gw@(CU @Y+TWU^ab{|!ÔAf)L* Na`O.+) #p}O0dRGoCBh7)M#5& NmytY6We3)#}׫$^9 ?+M㍣NG| y"K9!gx%=P`>" agOA`ܪaHK=o'%(]s|8ƞUey1qE,}\^enOAg8P?0/_|/΋03^TW>+H΃^lz Ŵ(u8aOH͠أv~rl7/WOlAo)xF&Nȑs/g2Xbˏ!qu!k"E? /+}*ڀ{o@pFKUiKpWXEv|w&wuHP_3sN=1ΗTf^ݹBѱWsk\_xQn[QO{`T%(8|>~Uҗ8)2*J?ejJ$ $ $ $ $ B xx=oq{4zt-C{!~ ν UacBdppA>Jghwd^ pjnJ3DRA ;I_Hh=$; pQ|nv|.+`s=ʡ#dP8'7<"=@F.'hp}A*Q+5)%`隬xdj7՚5!C'2^p"Ӓ`Iwbl/u[+cɱB{|U!Celd߉ e2;;B>wl_ ;F溶.f)aw~ҲK |_(KM@_,0G T(x&(S-Y?"EcRN M,`.9ƺɡ*X^G)nl׶;Ep|vfWSxsKCz^!nK)>i0OpUa;:-z 㝺 t@>.{C|=DA]=]õЈS,)JA\džQw2< pd9 IPx#dI;Ոs}fCNa눐a @)!> )< r!7?FXgvJ"]hT|KJrn`;ryyW hIXBExBǑfX>4ʷq.} u} xS^: x:Tܮ+tvAp<ޥ;qhŀrUQoB)`/*ZvQńl+ z Fz0G?WZu& 1CjKZp*ҟoIR0OHHHx('oqn?_ *穳go{辙_:N:#uPˮpL/@) z(]{+ޮ]])^R@<*QFC?}<=2rY&!f2?Hǿ$c=9"LPE 0ӥ<rG ݊ D[OEȃ2V)cW_dЏW !m@VWFK֜KŶ#B2ii_5|t;fcL8%WP n58v;= D6d,ҘW"Ü?ҝ1oϣsf3Vg _n* 0f0d=T8<@h E^y1\쏑BV7:vDlpJg;SVCq YY\1^C9xiSoU0!F}6{fJgIP #P5σBgcPEյed-yc_:@~Ze~g/7d!ƳϦ~G1\ znj}$# <\5_Pso2~H% $ q p Y-5pW<wB1O>Nkq7Hg3G]5 *'@/-'l.KcϑwӮt( {:O8}SwvԿнlE*L hs&q࿾Vƍ~^Y 7eR.>Bw[w?dIe__f5Aw/!~+gaOw/۵dlyg_eV킦9v-(c`}y%rю_}Af;7 zx*^ !NccP(rƯJ ss?B6ckhJԒ>@+-JX/=A.Z(9d2 `4@}o"@ }* 0 gt $;x-+[`awQz$Q@C|Ro8$;̗䣗+Bf˗;S,T@h(ǝbsQpHo_T:Uu@z|{v7Bsѡmi靏6Ʉ4v? %c41AI3G~[VF}Ъ L:\9z UemoHZ.B+!O@#Q Q Q Q Q Q`SnWjLHHHHX%\7Tt#? r#l|ghUY >.>hٟa/Nh~oӈYWe^}h1{s;l5-` Gk2h)HlqO JY!eV#$k+6*L-YgT&x#i1\j@dN9r]x|xȴU"/jb1˷GQL`EYC-\_׻S!  }ݴPeՍ W ,By%-hUwn f1h&KY>f}<1cZQG:v!Dߘ 'R_y~ߖQ0LZp|Q(߱SH>ϭvICYַپ[3Y?p`ƻQ^+?-@qgNh-8=(U0ڮ /%-6Eǀ 8]<>gk5~sْZ6%yȿvW|Z<ƲQ yaǮ%[Wzjӓ /!Bh ~YҐ % L% $ $ $ $ $ 2 DQ*.U((((((:%H`eB}_g̻KOhU |ۦy=ȩ"/=^d*4<%w I}𢿢PA&̷v9=zYU4V6C#+O ~;\drՀɘ-Om8M,.r[ʒ\>P;OiJmeT4ȃ5^ѫ XglG䌔T2^s6M.T4@>鴴A{Ad Kn ii_m_ ؾZ)-(+1Y h>]YKr<19~o8~q/)+?,Kl܊ { V(@FR<5V-ǣy@'ylWU矿J>}^ٲ^4 ='E;^?=?؎Zt-z%ld`>+;ߩg9>]ߏ+s@WyZ.q'zg G)s>/y=*yOܼ]ebZoQyQ5>w (]y=PCVP!B}qO:i})A=*w24@;zv?`&ڮ +qB}wN$Y7=I*R7K!΀Uv .NݵUcQW2"(ffzĕO&ߛ{\ޢ!c=WZk`܊C1=ja.{ NKߝ */-^o,kcy'DDg_DUϨ8kG;ak#sZY,y\S_a  o@-VQT:&]"|op3wt0Nf|J?P~xR!w+hLVGqc%@_NSZ1R}\@Cq,3׶2v+S`B $DDDD7C˷@ߐI砛eDWq0T8-}4qPn:nUп+CGAsҝL̎ā\X2}ߤwwN ~y"+wl8SlVxdMC=XZ ;ýgA}݆F@؁,_2[@ _e``Ғ'_|O0Q Q Q Q Q Q@ I y%=[D,W/|j3VHr<)~n' |R ޿_[RNY~l|$'ϸoLGr__6lTł:S{D2L?'5_F|"WW(Bp^3ŲVח3;[B j )]!?zU^(X&\yVpb {{p`r@XSfՏE\@X&?zqEP{;0`׶#h]aײGJwdp#C :PeP7ppYy;r?o[e"Vd??PCy@"y1-V1P?p"fp~CHHHHHHx;)lCzv@@@@T CZߺ2+Tt Gs p׃{W-u ~|?Z}p/r~< n{_۟?Px=' ~t4,m:5~l4p۲ {MA=(;!~7!w#_#؀~j ݇A{{9}.-`hh+xg5`P=<WJ2?K?I'yX +U^;TP`ۯa Fhv@a&gq`@@@@@;I1RSVJ@kphﯣ8>Bz#NKQ@-k}OOᴿrVՔ2CО(P\>?p?8=/Y :rk=x}olWGȄF;Fo<IUX½p-sgH{>4w w_rbwx]]8(1j  Ubg:a#((((((((((((()se-d <Ps?XWU>Z/쓬C^X5 B? 3vXsB|_' ڿ|GV~[+lݗĵ:[{pIS* CKa`#7ʦճ>ן6S!Uf?<Gy%?L bhO~L-_0((((((Ρ@Rx|ԒDDDDSVxmg!A^C)o&!~&R;}ݳd-_Y%8 r |>蟃ͽ4_\uW~\7̽~Y+<9_5)7ÀM&7܉d l&O?=_ #ZL P@sdnA P^-٩@<3@޿dX 3?ҙ 2`oHHHHHHHHHHHHHx]y Du⃫?rz)vGHw H[π,ڕ=>K^h_.Ou~zd ҃rm~g݃>~Ki[ce:w!7<f eE>~yH) 'Q Q Q Q Q QAN( _=wL|)q&i<_o:x]7vG O^XÒ'd&4pc4;c=]pI +]U-xB?^/K{ 2~ D)eğKv~1u' _/20 P~K,g:0ٰ!2p`Y*a!`+ 4 rJB<򐌕߉ 8LZeA3xs+y 9@WB}E=JA<T{ u/ }}&/w<6th|tdq2ˬрG:TΟurFSp$p?mY_)oN>V"K)-Cn\&-P~C!ī p!B[?c^0S' 019YלW״朳b@Q s鞎fY\]T#'gE+ €0 *&"𧾁<\a@,foYջlyB{~ZATys=@]^*GG7G˕i S6yR0ՃtG9NRQi`jPuRnuQݫz@SL}M Z~ +>\:" DŽC Ѻ|`3. : {!`Ix iVa@a@a@(8q9(i+Yͮ'bnk ۿHb>n;gi۰ }BįFPDE/`*pѲA?&eg*#W0_a/̟ ?Dpk%DWsܛ=WSfh`1D7QKG >nұn؟a<Ȼ=E媆JNa@a`ka! €0 ^r='kl;2vwd)fqjc0go1= ;pu+tl&Ntz愀Dڎڄ@KOS8:?5 RO AOIBSpcix<^d8䳩i *al -v u A? j`sh?<;LJ`رa;@%At0K[XǁEG;XMma@a@a@dٷ%g6 艹Yv<9VnOv`ϳ>&tf1%8ƶPDk ZWRÉG=)Uv+!6 ؛VwS!2ov;#:o ]v۰k5%>ul_t9t-Ѥ-kyZ0 €0 l H6 _4_k&7< `> t09,N<{x{6+Mc뀯Lü@ &>s(ZyoSPa@' 4AzMУct1ir71YTwD6BT?ś .`= C~z>StǺi'ݍ50jxz csp..<#:9-[  5\a@a@a`an\${5lo@z ^Re!z_ ݮѻ@VÀO Pi`W0p l7Dt`[*-H+bby7)^_W-~2l~Sg]rӐO-&~j u;0S!11t6M? {*e,o2js$˕џkk_-0 €0 O3`"/)/' €0 XS-sɈ@IDAT]Ǐx 9ej?@<{'^FNmNZ9e`~/_2Mw  =A lWCgӁvkP,5}$ |넱2Esɿ9y<a@a@a@W״΢Itä}S ]>]}ط:'3٥8(e !Jb, XH2~^1UrSYYSf4 34;Q+>ANe'7 mo,@ :G]?Cܖn8fx NVM880r €0 _ځgg€0 0`ݢ]deƯ|oשyU,45:}ݩ9цm0?ǎe0۩0[ROs*Z&ItOSFiuA~o.C>…/b"}[%_>0?@_>[`#臩a8lB26&g'Aj#A(<󤌯%``UyAoiX~-nia@a@a@ng~Mmf{ʁuR_&͢I :HdwgM!d#T`Eu(C?7> lBk765eC-hM`{Zt,64?6^OthDa8O"V1=LJݝ1K"0X!RwCK.7-]omN0 €0 l ?`d€0 ul7>.+ڋ|3yX9=t?T\ߏ~6w4=>΍Q 4 ԇWvFuM} ʃPBS"PU_] 4 h q`?WG u!bjz~\x@`,}@;~6T v}Mkl€0 €0 €0 [7=`|e$ lz=_ߛFVv:srrG,W?ŵaJ&PYj`Z]~9 --B7> I.]gu@C?U uwU л3l*bh`SJ1I} EܧmP`ڜa@a`kf@_O]a5pu 0Zǃ]W3`y1U_RXC+s;+OuzzVOɼ@}??ޙܕvs^NK*BxDic_?E_̕ ݨ[[5ԳEhALCAgW+  14B/f_b0AhA5-{Kg: R91qb6"+ZNҿ;`H€0 €0 €0 [ڲ-|M6Ym}JלȎ~ ݭf #.G@VHȰ@@O< 'hVw諿.]n7 z0V ^?/ ˡ_Z*s€0 €01%G€0 /1` _kZ5v!O-3:Oրf] vkzOjE\}#lQ ^si"Ep,L1-€0 €0 €0 [!il/ZТ8geKqZs|KӁ) j`%~w))LbŔL 0`ZVόyۏ( :|k +4:+-S>}mT;>RﰘiI ޻2Y < u6 豾_L}Y;p>ݽxm/¸N= #E yl_ ]n!nwqBl?&i}х@8(*Qws^6E7CzFo{ 4 Gk1ڽ{O&3o\m{|'# [`ӀXH4@4)ő[! u1[ AqU ï]"Ga@a@a@X6craCˮzU+wZ70VsK~fآEB :T4XD^m!Z ؄ůJc*K^oK<ܠ[ݮOVS+w#1XwaĘZš'È'r]K-0 €0 7ɷ€0 `69ɭz8X#;!2(1pv,x yo8q?яlu_bgO掂bMϰ#bX0E銵T? ʆb *8e~:+z~6\n QtNTaGN CDԇc~$t%Յ2bP[?w2PUڄnߟ5.^hy`:XǃQNFitLPa@a@a0Yn[jǁ}slz-k@TO?;k;A>f]>5h- b7XLғaf6tHt,_\N9/AklYwK3HWKt0 9sH,<*U?~[c:5<˼o.:9a@a@a@̀gNֶoaek .{1]5zD a"1F:'1|yBe@2oXuT5-;,ʱu. iRUw8:[?|}r {[*0}Эtzu>DC NݛMA!58=A{"hȣ:ﭰlgOGX]%a@a@a@m Զj|j͛gn)vkc@2k+I; tqiAU#^,\Y[`9iJs[`CJLVHP(:` + rBnE_9pV|ϸLo)x#q)Q2&$ :NsB֫#ԝf yWEy3[+d0 €0 l5 HVSɋ €0 x5t}E__<"757_;>e5ݩsp8T$# *5ZV9 Rs{RaAzlD|/`R/3.9F;0g mFOQB-v^#BkEթA$ PDnDQS3sV[+c鯎Σ|" €0 €0 €0 g Զj5b,9]#E9/*񕱌ms;gCܿ`V H [pL65H \Iٍ9U[ؕR,UX_H8[SQLNNk GT<ymD9vgΩ<> 5/0XxBiK9ctIϿmuOwdcFkϰ#R0t?!j.La@fmpa@as_<.|lϔA8 +pT?rb X%b8=c޹uR_vrYƿ_\Mj蟰1{ ..Xv-Fr@i% ׃󿿥o7',{ 6/+oJ$a@a@K2K~|0 €02`Lvҭu[ڰE,S:ϬnL{`c-9e;(-m.պˎet7e<G|e ˬhH- U ɱduuuk rb@)/ K+ ~U G͋QZNEg4+(Ѫ #.hE"}OwIΣюH`jTTh6)qC x<3bQ3Qa@a@a@~_6gۣMZu5,`:$'} 0G* 0 `-9!6r`CH D>Ɓ%#[e`ccD[4vvZ-'1.Mܜe~FͲ7с1k9+ {)80a:˫H51#"T#-)^pmva ܮ?O܏:г[ƻ2Y[kߧZDa@a@+3 _WMa`΃.`Qp-X}]W|5kKUv @ޥ +G@zM[H-9p:t2$hM[_Sy!;4VS0KE%LbjZdYag;P͸^ܞں0?>x j@WNPat=-Xש#_A EdTY`]alG54e/ l@mtH€0 €0 €0 ]\Qmlgmg8ߍ`< C=v~ .4*Ö48GKmkt|'a{ѯN(G;Ҋq *o^5-ʹ9ð#/=:8HtWuܽ w {)De3/bsnr9; 7.VLA%-Ip}-co-j vQg)Pp)s} H8W]Yp=8I]\0ؖ>=F jx$m\9`#jdP x }##J&|pC  p ?o|A0 €0 €0 nbk~m/o6!{ox vj7,,?[M0õSl7MZLn;ߥHs{r6a-`4],tK{C~*=S/%O3Bga(GةMW@#wi`.7o~]90-f9S`+~]<ٲ ur?*F-j+[9'€0 €03 €0  ͇S0Ga(>cZLܘ6(٭c%m.CuNIӊ4 =% 0ʵ.\P c  ~J]I};DB@[U׫׋ F V!7(~+ژ+Fщת:]AR&3u&7?8!j1MkW9&?Y UI IKE.8U?]yBvoGp~5PHp`~XǏ%Q`!yvz]3.,[_gf( €0 €0 E[&d(Ki\ρ~{ {#ȿ KP3E<`\3G@:0Kw)^Q``s E*G`_ '~.J~ M%]83`/<Āt!6:.=80LAzà p×l0H-P}d{ i&oϒ?,Moa@a@b@a@ad@Ll?k!o?lL[l=ƊC|GI=/@ !o+ VMT?p5LDriյQHYF5y8:(3xI_ lME)nV،YwhE Cnz\ lMghj+=Saṿmu@ 𾲮Yp`51SҺ3 Ѩ c}[`c]Ͻn~BÝu M8Gz,ۯQA4#X͠jamTV/( €0 ;e€0 @l'w榅Hb1uxa`Zj֭Ыq\74)s(J, #) *nQk/O7r#uP @vzqdoyţ p>EKXQ%pSoKÏi%3Fr's{=~uˠ p !W(ߑb #7B7|Ya;ɹ0 €0 €0 [+Z0n0| c9NGk4B,&&HOpb+Pt8wkC8T'ĆAޝttpnE]upS3׽fy$z0S.*wqZ,>=Nsj_z{RwV!`s9r/d+K)Ug=q}d6@€0 €0 &$7& €0 (p8N*B-=πf>p\%O(=^cc>DL4Ƚ|b8ٗT.ѮWnqL€0 €0 €02P3sXZ<a/́Ϻ *1ˁV}OYae]T޹#r#9~ȩ`^d} 㦃/\OSr^STe EVTXȡDO`oVuCA%'F R7RT/ UFi5v:C^ID]n|Ph̢kp0h''|>foY Ԓh3C1֡#uXJn[hƒR:1E-c EQybD }p <9`vsZFNIv}bGBZBm(.x^D/kF@K<\ɣ)dPog=>Gz;X{&9/u7hSa@a@~xa@?un.qC:hD(=0qQ=NG#:¨8gu^b0eABJFYc 'ә߁#iN6yY . UtGb D]Gx]/.ъCMw+04&֏PZCho"k$zҳ֋_bhd6 ^-)yv _ɱ55u61@Umjʹ0 €0 €0 .^WYΉofl3 F}K*G6-R'G\!QR{Y/P(d[+[knSlu {/lJ%ˁnfIr HIqA]jlӊd;m x& ʿ>; ϢUzՇ$Rݟ#'/'blUcGkZ+o €0 ]ǝ€0 €0Pk[Ad/]9k)8c|.nwf\w SfMe ;bU.ŮW#i{ î:  Fn-쨓[_;ؚÂDrU`~Z1\-"K rMս.FH"/УXw59y,ؠ>)p' =szDv zԐe\/yU;`o|+[47a@a@?ksE6oRǡu k'Qܫ|g!c1SHN.,"7S ,!]9 U\a< %;S!`$d7Sx`#jh RJNE7jH` ph7 uõ}i>_q'Gb?G-ek;VS!klX}{0 €0  F€0 €0 X{uS4/P"1jFI h71^M0I65qU>N3f? =W"Oz/=A%ҫմO`uwnpOކ;_]9랤/!?NC NǨxN M{S"wS[(7QvԬW? 1'PT-:x-jAxCGq0 P`Oxh+m@m%U:lN~mra@a@a@?(߷տCa_*rM;WŰOȶ\؏gi` ez^B4[(< 4WGclL٥1)WP,Ixr$[aj ,x=؋iŹ^W! wg?M7b[9ҧ#<4IxBT[?f٩cU'jΈ-8M J#x=G[l<'Ca@ߕI]锛 €0 hVhW1у>n 9=ό ѷO+0;C::\ou#wZ`jBd ~`ː/ qNNjzO9q4(ҟˊ&BKzjhOJ 6Qp?R`'$DvCoπkxjgpeHĉ w\٭lv p|* ;xX$9 €0 €0 €0WsE>]o'3r6Wnd/m¾u񱀴{3E@{ ROPߐHtQ ͨ<`Y9w\v$N6T9>XD*>ޫ01 TJN4p}0F+?Ms;Ä{K-nUhwQњzv=xWFvk PW$>&j*Ox)< kJylOCǘp4t%B#4"ק @m|75EGXzeT'=a4.P]PQp}!'`c5c]#axMz@MBvHxv:{` {0 €0 €0 y0U6e [2AU⟇ru@IDAT.|V#k wa/9@oV-uM!V0--Mp@3Zl@+L݇mr*\F9 =Jt`_ߤf+>xgM,D?oNu:.>B#䙶م8 Tks? ߁?hyΌ&v.J,Ǵ4| WhZҪ=jP'ѪC+ТQϥ𫣩yw 6P00!#G}xWbJ[Nyvzbo.qU'Mum[3a@a@a@V ͇+D{̠]mA)<8_?jHn?ifs_k5dWOr?DDhy2ؕw{({Te8ȍS<ؘVy5I_ ;n^屐"@]*3 YHPJk^ry_ז^-Plr|ʫ- &n |3}wEZ@a@?? €0 €0[8 zy<9Nz"{Խ1p{Y/襧yyʙ]!]4_t~wz9[ qΪ)|%Mzax΋| Ps5TWB?s p;z;/`Ghs'Vzn,>U!?+ z}8!orj IFia@a@wy#ya@a@OͬWЅF*q,4KyC/#vPE쮡175Wx5iwHoN~U> {]8^t[$w"w4?yxέ Á-BqATG.cݹe,@@#%(%zZ `jOHs8|TG?o!? bk4hU 30Mkx a@a@a@<[ s^^UY2 mo;UQlƣ:&(͉gHQ(w5/DFqry*ho( 8g)[}*n5*=m;S>Vmj?ԣ+8SWuhc-~zI%q:%btx1ё~cH#0n |.DUGF$@Pʃ|VL|%O7 @_Kk֍|^dȯ5C zNYVnTzIL+@f4=NS m rq8W}w}@ Hy~w73Vᘴ _c56φ)kyLW'X[%Ga@a@?B*€0 €0Ee{>~ '~kpo!#:O cC1spĆ!Sn4;/M{g9bwPgkO\8dZ3]u^>j6ٸ  8)8-N)- k"-X!h 8 }m_w̽',JL~{k3G7׽0HO{Gg}Hہ; 'K]c7)yWÓ uOAޛuWaP;)ŁJqdؙ3{mBJYOuWGџ`lρUsqUz[7A85T N)6ͤy~ ׾fwY y#-@ĹA};֊ BnK(VhuV [PB@<,% +D g1v+zwQ=(ʀ2 (ʀ2 ( ǀ>qgy~X$qNo(끮iHcѬE7c@-|ds @*'RY+!z}>r\P%; Xj_ph1Ggf0j=ʙ%^@=m/_3z[mU"ڗ:l\ 㼆TW D[6qw ]Gp2 (ʀ2 (+>δ⿆2 (ʀ2 !10^ !0UqRٞ0bE4cuA46nA¶5Ydnl*=+ݮ 7=Dw7pf/{ߜc'qQ݈R8TOt3*ə,3hHp&{)@`_N+pvBYt{PC XG})юS \? &6t'uB4/ e]2+0 ~{0Gwyo)gZ׋|4Fe@Pe@Pe;W)M9@ A@VVNq,dbC@^`ڧVFV %v"@Wrqۀ"zBx` ȁI*-Ʃf 9`H 4o ܬp!+ `.˼O#+pL+{%Ux_;(lŅ/zom@lr 8=!v8P1܊,C?PTPe@Pe`e@&@++ʀ2 (?ˀ8$y>G-pq(`vomow–AՕ_lCm(ٸfeu{"HGTH\E?7aGGSyҕH{9> 58eoI` !3 lC#?v˜߃f2 pfMڤz6uf#g8*-1d4Q3a/| LPA ؋tƭ\ b% ,^l|`\]p@!zPe@Pe@PVHx~|ovUh(#IѰuW`ݝ:d/;O 6? xx`jcps vӁXx<֊vG)߶SD:ʧ&~>RC.̛^w&m]zeOfmtE{[D^{|~2Cqxb4ێ7# 0B<.#>w0I^Qm_5Z67k@sg\KR@]J+]ޣ-+?_ tי+=4źN6sK-9l0 +44iszJڢGtOXKuS^-;Q(ʀ2 (ʀ2]a@+_RCPe@jİ!)ꆵxF'{Fk9}`Envqr M?%%}h٩1EG!6Tr1L*=o܍ֆ~/!i/.qyTF?þ|x;Y-&6h2K+0@Q\W7D:H`ڬ& \DsG3\,ԅfg|>0|fn!¼ -]?; w=X v: (ʀ2 (ʀ2 (d.]3лʝ[6~w 42;1X F]"ұ.ig_}C&?`c+V8pdv>eP錝T+ 0Em ЧxﳔFTB4SuOtjVqq)t}A^!ܼH`ҩN6DUח@ ^iSe@Pe;HԗRe@P0 1u%~tdy5! 0vߣ%{k3ڻp=͝ENNtv,MjۇTx|z!$&,d?ưn` I ?'n H>ǀp`̬Qm}^{TuaW#=6@E Pf8Ң$ \f},$ŴnrpY+v 0O:{1Dsi:#ep-(#qu9&ߤ7p't:OƈiTe@Pe@PE \)'D @v 6$H8TH&IPOs3op'/3,J#?8p վ p.m^<Jgiut%5_-]^ǵ"Вut #Wc9A5`5ȱIHǻ(SA5}ح (ʀ2 (&+[(ʀ2 (@g4ʝdžqvMuHlE5sgi ;ٹ7!bڹvxv\p9]J}'[d4Rp}3NϲG"Q75z l7Qٚ4iPm_0;{@X{ m o~h{kΉ$Mw2,y6>q3QtnËR}6xc&6,g? vZ|Ow>~h_`2{"Ȇv915I ɩ5GSl([Lq$dAjUwQ}b`  ΢Ȓ!&}n4-† rj81t'|Xzf*1 A -;v5VI@CPe@Pe@P3u#|`<}28@ك9 6v6mY <.JBUJd 4QGIP1sf>úgoGBsܿ攆23i~ߡf/`}e kx;[-K{?@/?+nBwǞvXTRh/(}m{8^/{x_zU2 (ʀ2 (4{e@PoȀ8MdA1xA7dSwE%R!N{3INbبr@ǣ7ƭ4nua @2 /ÀLqܢȶ8b]]A\Kʀ2 (ʀ2 (?|{Y߰sh9t. J˜Z07b4 `@q˙p[QPOB) u*Ȭ3Sn_x1 ٟ(l8bbs H6p/A|0۳`hj %v4Pum}% Y#Gs"c-6;Q~̩%1?ivpf(g}}21 AicqPB ȣ]b4g_ `Vϡ Ah‹7zFoԶ98Z+l<%Z#Lj+@ ߃# H~~L:rWTe@Pe@P gl2OMPe@Pe@2 `՛21TV{-XXN+&^PD8p@ 2Ý-=KSC[)d@%WHKRfV48 ؇MdWl$]ˉwS/p_ocWQ"rh44 q<ƺ4>bB:񺇛 $=*ʀ2 (ʀ2 ,c@&RCPe@P. |Ѵ$_l"8!#Rׄ|@~*,?,['o>~Ž$-t;~+f.TroFwU! v 2z槑pOklڐ~R^d, y<>A꾐kw '[4OCcH@Eq)kVǑdkfXh({ҹ8h [v3\ _r=tMaI23J۹O+ʀ2 (ʀ2 (+*2ϕ/Fֱ=~BFK%dFPW;T >Űf`>ynd*aہ QC;Вn9 (TvW ZI[nC3e8ڣd[(Z,;-driQi.p}Z^FTص?^qQ|;. |m!7P1A;@g;7yVe@Pe@ e@PeÊ8"3Շ^aL@6 aϰ_#[M &\v/Egc̀)pe_dKg>F"}How!A+=oGZ̮b>6 {g? ;rE};142*I,iql-@%3\/;3p#&5@sOT 82QJv̈́ 8-D{^PEVTe@Pe@P l)J@? _>^ 5h@ypڵ>qw0>@D6~[jI؈$8ӦB16yvF@% 6D̉ȵ$]nV^8BǸRUPs5 O~)*ʀ2 (ʀ2 (]΃s"l0 :ZiC@*̸՛v>x ;֥2Ne@Pe@^3ϯ/ (ʀ2 S AE8ɜ43ڲh 0#Mݜ~{B}2LQhMj]):Fm\eݧ]]kv`n9C_B~6mE~0Dko<菧zZCE{yu <I klܬq0q}x ]MݣÝ8!E(az,of`һhQ@d`V@ E ^<@'G#MWYpҦ (ʀ2 (ʀ2 (<{syn܌ɚ(lmh[,vGBmpbX쁞8 7-?@g?h@C,y}"H3?}N_H3ANSkW>υp4"w ١ؿ><60I;vc$p=oeC 6~]B}/2fnݵy;GBѰ ?juzcq)N8eo^*ʀ2 (ʀ2=f@&c Օe@Pe \|@JsaVz{LC`n }1\ >]7\.hSOJ6H{=4><eϠ I}8QN#vp+1ǰdn>_pȡt7p #zpW@ͼ;MIsfj`7]"fjLll4cgL~dMz6=cZ#< RqγA"a`#92@ bĭyR ݩܡ@N)ʀ2 (ʀ2 (}yr?p#޽zG0Sy@7 ,;9@sjY3Ț} jCQ2h)V`>X?Dlt⾩ώiYpRTg lYLc]Q6/Rg^ /Jk?j( ; v6o "kĿ=h?l k"b mj.[k(Įk}[Pe@Pe0Re@Pb" Lg+z1H*_s @g a倹4ǝ{r`x9Ze!>TEH>|9żDGGαYs,}̕^G*ձE m@Kl ہ%M3V+Ѭ)L:JTo!?ņ}?30B`M蕀whoèWt/3 3czBݡ倀nC[  4d 9 \ d ' "3ʹuʀ2 (ʀ2 (72oe9QE.0G.kݕy3ȧˁU Ю0zدR.U*q^1 p)r\94<JM\k]cLhP6Qv~vj*p @bE^D/#E'U mq[Mw^p":qX%h"vt076\ B;P ee@Pe@P)2!e@Pe@ʀ8W4 ?&Ka?ddw<0]½#pXjC|NhrI'wݛì=\ GsZd}ןkh.K"=ПDFQO,aK8'a`~hgWoBC]p([ƭE DRDMz3r:ƿfz8S~1Mw( *"\-Ca̐_ 5I @11o|^^kSe@Pe@P 2z vxs'l!nΫen _𘕧8jX/N\ R"`K yR}v<Ѓc=Om-5.aCNߐƺMӀCsgfp5'(\@+U&?uG{)sC ^3ы8mF8,q@b1R]+E()U8g*SZ֯AoĶCK=h-xpĢ/ ,A }_QPe@Pe?@`]L/ (ʀ2 (@'#(: D @1vR&RPPp o{4kTߥGp+C37u=իћ[zPtp, JGO3)=Z?D57ǝu48+tdgo٥ސOTCpsg8KqΡ(Fs٧{i&!/9`&#eSp3&? XH7 P`́5D[_,Ұ4gW%+Pk1lIl0N~b  J"\ S)SX c=郕 jy7@L8!hnFʀ2 (ʀ2 (d"^DPe@P0հ#8&zDZf 籄.n7rm?_Ρ rrQ@WB{qܚnFݟky$B3El:Ѱ}"eh_&m8C9baG @BtM;/Y>aȎnlо6J+p'2"%۶&)(%3g \ * DFf"B鮿1 gbxSP{Iʔ)[;8 RfP0ΞFkEQ{LG]@IDAT>-*'bxhLvO[9!W+K̿5{uTl`Hђl _vgS MgӚmt^fu3evzvg [^iОNýX6}h/Q<}ZB xק /~I4fss5ƿa'g1n336=M;2 3co!3dlCIPD)JllxOqhX 8 0Vkw Zң2 (ʀ2 (ʀ2@)a;t{;_a^qHtZy>$n&;no*=2S}` L!w8L (Rc1jl:K@#_p^"ˎ2*# i zͭcSjt[`6\1-g&"T}>>V|&}qB[+ ʈt7v9ji Qɗ{T (ʀ2 (ʀ2oD (ʀ2 (g-y=h0̮m4d,Ul?D%lާlъN>e6rs@t~]'lHΙn1GXOkcqVzz{ϥ6a@ۈsi]|*|7#_ `U,R`%ǣ]?-,p'@^+ƽc''\f+c, }+ \~`1п5=gK9D#C/LʆLj>QAWNE/e@Pe@Px&۱~QG橂>`>~4}pb=`R|aHpzSr"9J2á=0 4(_pؔhQ /Ry?*(ky.!E4P1W=xi:V"=(XAXunP6]:*)ʀ2 (ʀ2 2zye@Pe@ 6(ނ&(z1,I b٩SX}p;i締(T9M/G]j49j mF(]k<f4[ѓ Q{.md Af !͕z|8Lbfh@siߣ?E4 ߬kFٱZ0y`z`NaV(Vc?B f|#hqh%T aI\9EQ ؃K:@ ]躕Hx$(OtE (ʀ2 (ʀ2b2 z4ȼT& z~KŌ{7w;"P|f;lp/Ky]nNa fuq4T߾xw@RT?efSkB^Xh"@rl.>F`%z-므1f&p9 (ʀ2 (ʀ2?g@&tPe@Pe bꋆzvLsj*lʲcNzG>ZJs#;w8XiB&M;셗TQm.,g TēٙXGpZdYKz(/wtp;e@Pe@P ha2 (ʀ2 |S'A 8?2Cw+0McF8y..ux>dަkKf)s.}s}.dvCpAp ðg69΀7~}fLYoEf(ZBUYo 3iϬG#B?fMWſjqV7P} |b؄ízp Ġ*w:2(@1 9syoe@Pe@P v}@ѷ|g,fA9$:>(ܼ;F~rL{'b#rcԐ9R7(=ji!X [:}s$+ԫ}W`)rOKqj Si l73.wc@kY7&lOev^ y ǿY8+*ʀ2 (ʀ2 |K}KCCPe@Pb@ @"8hEs#(zϭ]0)4^bF0-9t;C4.v2 5{ijpw"0$K]ciφ1fhu N%.P[ Ss?f3yd"-A?CGY7viZ5#o8f8B$cqh6 n Pfā3d+ %ܸZhHN5LW8J%e@Pe@Pme(Syr|U2%[Vx؅ýZ^CiQ EsdI`-; ?z@$@R5Jx\[TW\]Nn-s~zW:Zk9y(F^Gzqzܰ&pκ w> ^C^qү (ʀ2 (ʀ2-a@%BCPe@PĀ$%D Oܟ@N ݂""a5n^ìk:Ggw7b_MS4;WwF@5h\JLLw 70nmwoROޣ67,Jo6OiSǠfZ4/~+?5f87yg tJO7j7#3,XA7)*sƮX9|دk2 (ʀ2 (|/X-c[*Sc[*V7(^y hZY> '#ds\C,IFJ z#!upb@WԐ-yop+_D  (VuuW+Spi(dy8"OhV a2 (ʀ2 (1~[GCPe@P tvsbfw`r>?lP22"CiNd=q=Z?)$QpFG oUzhȷmTI48Zj G- xvsfRZT\ A4&S8Ȟ^܎-p#>,?2G\oIOl1%^9I /@Y{ٌn]@} 6A ɆһdžPqh U6ng3pqE (ʀ2 (ʀ2]a`y彛8yCvK:_9?? D-@*]*`*@j8JА_P!'ywjYEG&JsJ@OF}3" kq J9Z$S)>T E*wj8Q7dgioz@l40CÊ^ g!fMܑ'޾ ..S*(ʀ2 (ʀ2 7'Pe@P/1pm۽%( Co>y>pd/ \V/a=]%}$ܕ.˝dw=Uv?KOoʏ3(o.70kkg[CV_OOk#phGa8<>"utZ츇0f7sxE-2Sqfn ykcNuX]R)3j}`xK-(-xˀ^/{& p:ꑟP2ZJiq`yޝR{{-ؽ)am 0K7 ! v0<ņ1 ԡ e@Pe@Po7>tʀ2 (ʀ2`"71uŰ%.ۊK^68? m8&:n3=Dk#ư>` T` xaCdZa~fw {;<#Gn+l_' 7?~G\< $$ǚ)!8{~a} 6f[U=اgivJ-{ HX c#!=nFGÐG49Q_::Z 5_3P \wh XJ{n" Z=*ʀ2 (ʀ2 ȼK*^]p/^pu>|YdvEzʇgϙ?DRg}J@7Z6<a/4_3dvj;F)yF\O6A>;ECaQo@^LeZP,)ydj| 4&amC8˕ poySq cv4擛| @ & ʀ2 (ʀ2 (+:2!\C_Pe@P KA:;&z? Ylqg&psۀ&Ǹ dJc[n!8;D= ;q̓_qѰΊ_ag mM0DMx6 7X&$Nu\Jt6;ϵz'^BM_ygfLqو}Fon@}>]w=uxl#8%PWwDƝ߆fPf`Zt6s!B^^V[x[y=؂3<xγ,QgL57aEN7;b7ddzi8ƙ琗Ф͐/͇P6|6hV{sKT QSaE|n|A,-?lL3*{EŬ宷2a*Z kӣgpو[i1n VI=BVbǿā3W2X'` `5gt5,zPe@Pe@`W̛e^-?Gɵ:%ÿ%Pe/0^^tE?jJev*:?wQҿQ*˟S$0E ϧO㾙mk[{[`-iXO:*pr,V , Z@A4r?pu KmPmt ߉[$tw ݵRA@Y8+*ʀ2 (ʀ2 |Gwu5e@Pe@b\å YƱsywP~fz:}dVx^fuʚ˘i,gvje3Y{+20𑋎#vΑO+{ٓ#KVr ũ0eN L} %>/B2̣E \CFy]D9Cm\^Us1jZ3ή l4[,^>04)LhfKH+71TJ A8T&[,ϑ/ߥwY 2]Pʀ2 (ʀ2 (ߘ_uEE/Ec[?RH9t1&XA+7Ob Ru00J q*d_z*eQ%Jod lD .@dgvH.@gLC)Z^r3UgG@Ǽ=t(Žk~Z :-Ne/ .@dKX+_QPe@Pe;&ڔe@Pe@N2 -A1tˊXɂ/F0@.q(r!e(̧G7GBѱeΪpYK?_~Fڜ΅=|s pyx+.&haiNK G:o rX87++ݨVs.>,(cph]r F$4:yp l5p&p5KwمǛAǭ}Jf^%p<RhN.~~At^"KW^H;e@Pe@P%d~%(',(2V&tdcJe( -[Fw9|vs 2+T(r`Q>1A`p#?-T{eO6PSs+>i } t {G5V}Ӗ@2;y'1pQjxf:cU;Ǒ [" `AP?6e@Pe@P$<Ԧ (ʀ2 (wΎ}~OX&F4A LJ?9 U#M62h2G:yJ `N2.Ggs~u?cfАD~MpSh n4`BuK?T9>4t9p={gpڢp0j6)q< sl ?r4JⳀI{CrF`jצc0Aq0:}$9=c~ARsB6~GT0{ң@x؃Z C+[ٸ%ӿk bL0d&HRNe@Pe@Pmd~%cq6<\},@IQ^X1J8Rv@. %"`[)ʤ9- 1E=m{\xYw6Q2 7cIZ [l4PA*>VhVIst Qr I`DEE0*fsDQ% |33ͽ^@v903<ƿ T#>~3Μ SyEzߣzzC7Q3yP_ϕOFho[1!;Wl`&w`ߟhUא€0 €0 0 %z78[қsPЯu ,8MuNP; szϨ72T?~NG9a~<^I)yzGE Ն68_D ?G/̆@~uބuޣE14z3ANw*߈ S "pͅ vo`uNwNO5[՛^E#hMt{%>Ik7"eӾ-s{O=ioϬ6XDa@a@֤<<0 €0 .35\~e| .Mn}MS^SlVͪ"t>Ѿ?녺6/ݯ8l>MroLh>aȜ#H4[tOw'ʽopM8/BbBmy䷨'oR}50ES;L۩:ӓ עI86~nSOBށ\κ MWSH`i'VGgxfhU|# >>AS1Ӟ kKúU+psE€0 €0 r X{ggh?f;A~O~eўe;[~?@FܦB5.[ UzTz%c4ˁ)Y? ̧t+ [kRx v=(YlJ[KA've1NhK+*6ƢEBt,'p3eR3+;\F{2&#eH~缓%R]qb+4,]n}Z. Ua[t7vmu €0 €0 3  €0 1`g'눳fO#%oK& #QW?8P$= ~KWS+|SrSDlPz.ĒwsdWyB!gH @OOg~P݁Sx0068Á8U\;c50~<`_5&B:&o)/<A`_ߥA}'Aԃއn\jf<^uطg&B{ 07Nx<gcl_Ӣ}ϼ4a@a@vEv(zkʀՎdGU'(]#iqiQQ߻ 0To|`ÖKRNi Ac),-̧H!G`X`}\\l@N * }hcii7nza`{Z؜`:?ruw{nfNbs}| òibuA3 4N_߬}kﶅ0 €0 &ր|zyja@a@8NMoOG>6/TJmƠ[4)9Ivb ]ڝYdq Ë\`’'fn|NNc ms}&E_/Xs5KTO)Xߋ ܉:@j= jx 5}%q/i4P뗙&P pb]ދƕ|> G ǰA7>p1Juvl 8O|҄a@a@ gjj~VPu:#*wW~3 4C:wVXfO=Rl %~R$6pl囀.b|  JG@|`u):`b\{ʋ6eGS`C*ؔVGgW驽 wOýߏ>_U迖 ] HuR:rH/ ܏V_UnܲD`M0Hos([ǪuHվ/vq30 €0 ֞ޱhʎocu;˟]]˥U 11>nFwQVO3 pWPeF+}`~1'8_;sJ.F(\ M[yTVZKTׁ\TjU l '>RaF4#3؎\`CuWC㾷=+՜MmQ+K-\y+eaߋM}Vю€0 €0 €a:>a@a@3`kfi-*ySup^ܚ`JCP' zzut9׈&yFQOWGI׺p9iA]; ;_&N?y=~,_Cv|:4a!9#N y?Zr=ëYWF6B$Lt'8{}V~B@js wmO:Ψ:b={!]ȸ> 7^f\cOЧ(O?yjLS^=? O\1=> O/G;Q'r0sBmj/֤RסEHHE[99j&4(O9Ockheܿ@v$ۣZ#*'ʥӴw#aY ؜iotfr->#hw4Ka$rs rnH|0 ~/t T8N!߅a@a@@]a@d:,`өO}Gȴ(ƈB2z2^wr;PnDFscah8 qP3_4 O(!Ge];3?{`B;=5Ԭj)Y͢dk~i Wxp4y MP"}~0SЀ0uL>"wGtȳiax&Iy{7FWaWi b l@;bs0%̧= cʼn$e,kU:w6B€0 €0 : ؀:mefF(nvj sУ|+ j2 *zG'dk@$dq@t$8vlR7)Rz_l1jY Vؗt8/z؉z^ ܝ:lV|w99XH&B_Lw~';W3!Ϫ?{s!/Oy{QGmhjop/H$W7|"ﰷ\1rH2XWݣJm`&}ha@a@/. €0 ;cY_vq/V?1Aj7hǥR1 ߘH̸5;w&ΡծFPh ũ&rկ ߤ?_WT&q-ut5du6R5qRm(08dDZ/cUxYFzz*nlmdU+jj*"ޛ4a@a@T?<&N`Cج5PtBuYQ} 1?3àJn$1(e0EK)5(G B'[n|_=kə4cKaAtDz,X;푄]J<{4 anŽ+z3䓽.*o fqC/h;9lv-](a@a@`1Da@a@viC>6!݃w7izi-ы n Sa9[YO"8Xozp 3f7aNE =E԰Oc9}ܳɌ':{!ͭ Jeu K/18TTȃߋ';Q[PyPʡo}6Zk*pRE|ro p*Ob@n=ٵSa@X!֯Zvv;vO:Q3Dj 7o<}/_6fqn P;I+q7 N}0C*VYC:Ts+سN:L_ y?:d7`{T(߭jbE{ NɭGR64ˍ6W\F׏Nw/垊!y7SRT~E2jTqV ~C tâUsla4lڅ7`ߟ}8L/( €0 €0 K XC_ZD& €0 €0 YVo9J߽KR^c}{fT MO=CuaJE]R]zp_ ^2@Wf9pzZ*[Fo 3M;}+Q,kXZ0 €0 kڀp*eDcAg9A}k&Viثkj#y.q*Nxȗ=*r2Hri%@M yRCB}RZB}6C/B_KՋ0T;Wu^SOnF`W@IDATK*Kht €0 €0  f,a@a@+jqG  tglF=EĨTFje9@TPIF}ѻX2Qz5fQnPzR8K~{Q҅74j#@^H(PGP^7QC"5A58*0V}wP&.u _EB€@/%AO5^d) HՀ՛ř4$;F" jbW(='Ƒ535.jp * ;f}nwhUhֳcޮ҄a@a@?3`ac@eN@:"VikV~#|l"v A ֏&{e2Sh)xcոTp j"Y4J?o0RVPVٗ@rJ'"uJVcԤ `\.hb?޺ rmv.qT~jhU`C>jn|N;ҙ}ܞWTgl:J`arESޢ.P߷q1#  =`%=YEPa@a@w0PqX_a@a@5voVW3,7N ϫ䖂M5C)|nghv{wQ_:L}#1;Udּ_J2_]ak^N*g9MK|6b@wRxЗΌN$7>N^{`ekQϧNϧM c Gy{+:XGҞ pOCh6Ѫg&JL=jATj pwlkQ/ĠsltP 5n}~l"@ڌ`GgU7a@a@ X-ڄgFv]O?M@D @=*٢Bd/OJ:[2`bGB(_R LRRSza)v棿i)О|!u/[QfT >M O ujQ?c wp tt~h֧Ӊ+[ m(S;%iT`'& nkIlm €0 €0 *) €0 €0hqg? ;ӗ,V7Q}$Ho RXVW`=kp w'Z|yTiQ ћ5Vi55?~[TF5S7(s&Lb< iˑrǖsiׁTƥX@ڜ'J?~eg3k%@'}:82}+fQ]@wB~. UVqLECAKv&ssVo\[elev-|€0 €0/0` 3YJَ?ؾq@=,]ʤ1NT!>tJj.g:MH)-#G5/Evа.,V&!ZԱ+=M\F٩,rS0NZ{evITFb: ZA@ >$,}(8R}=mE~SL;D+Ww@0D@a@a@~) €0 €0[ XuGFK9:ڸuKm5YI+=W"FQq&'q,{'uuZ:5kiM[wb䦥P{|Y:NOļgvk|~XZ x*o \EŁs*Φ?`^Lߕ^ iZ{跽ǁ X3< T+t,Uj14L3$I]K!OO}=SݠAB+0zy֥|:} v'l*`\;£3˲}==Z똷`0 €0 kGX]N0#^F5%cp<GAEșL= H}L .*.1>f(\:"XTk `ZoӴ겕-4 /MzMF[9S~ jx`)L~Υ`@RW@~iXHP}/n5w4Y׏1{$݀ۺ-y3FӸQXCVETX' qT3F1lOͣF_ݺf]`qD) €0 €0 Pe0 €0 c:[-,w34 naO>~iI^y$2X_kc ן쮥:.33[S"y(vUxÿyiXs"@POV\o3*ӗ\5}wB%BnፌNt"gGZC`[^p* wyq?ц0&A!Ў9je^S$5P/"[PK7q$fGyЩ8\pB2}OxPA!W5˦5'nfjEW]zAa@a@vǸ n0-=?q}@G_8`n݃D]/KKcVW,2h{. EK8A2E5_VP"؁T,!CtdRUu:l7%>kI$6ԐPb  }b翺wqz~-ܙzlϖ?!]"`C&kA7\JX:Cp|pV%QcUf϶ !]%li3s*C0 €0 €024a@a@?ѿ7`e7i{F #X@!џtR&~6;s&Y^>~^^̀?H#}rVDO # !wnzZ5i+KEn ;G6WO,}54*A'sa"dCe(v )/kU8ȷQhg;xg{ܶпNs2B?{.J[i /\j9?0؄:||wC6.]vV,c=9!*ly|l~@U4J|TMw:`g#E/ €0 kz> 2;>_e~vCNOSl9XlΉ3*Dd)@O*>RN1[ H8ŎFM4y[|-WJyx2PsJ=[չ7eΆ܃>s/`=!M 'jMtrw֋K;jS36>λv{%2gV)6~5,xCKʨ{UWa@a@acwayJ€0 €0 ~Al.oi+5l|3Fk:<.v57<ɇu'.=[IgT7%K#NtgWR{<tˣԧ^R$/cSZNף诡T˹ U }Z}@?9zN P~~9y0)S=蟡w9ߝ:ENĸV<) ah`M\ק$<7lQy;s]sÍ+p"A sr)4~[Omy@$'}F%€0 €01`w[[ӌ~ֳvǎ,:ñv_h3H!@F$C\?r$s>&9 6Fj ǚt]*[RSaUyTCԤdХ=JK_9[3o7cM Mf6} z~W :D"k($9'ٚ7/OOTu6ZþrF ]z-;k;Wba@a@ Ha@a@3آuHiX[4چ3Qf?n໢sK7krz#>9SpݣXfэ9/2~7Dt{a=g:H;sL_'D?V(F4%;~vi{Ś^ LuU{Co&ZC?IB8N.}{{'#3Aޛzd-E1:r6 9-PSRAz+YnuPt[ o\mEJGJ61g$1|O3),sj~[2hk'( €0 >]cSCͮm5ר ;eWGzVt|9OO ' D@+ x&PJIeoq2#u,MuWԸ4`jVt"POc]/::ꕄGoR}ˬg"@3Kuǰa8iJT!>ɕ~` VADF5~b_|NoT^VJPMal[t7>c.fߧդ €0 €0 E Hː[a@a7]˕=ܪ Z'.5D%g3F S2:34ɝ@~& Y/;F)c=M[ϭ:!y{>gbgV~éC.ϧD8Cii-vzzOSTp%\F$~?.եˀSC)vOuN+3{A[C}e'^<N{F;SW:8!B@5˚[:pN}n*?P٣'N5ؑb y%H`+@euHoߟ[Ut €0 ʀZEJ6P[~w6W]J *H(e,ҙ댜N3MZ| 0LCa sg9-s`nlQv;KjjP 0ZTr,0pAzjS~:.^M|ǙsiB\\[DGtM;ޓ %OӐqݸ2OCFVmI\F\ePGZoJ\k'-aepg}v0 €0 €0a@#Ea@a@?3`8fΣAWJ. cݯ>N1r[:Qt&aD|SFF 7(ѺT^e= #OQV/)r8d/۩y"TZ9^r#Eӗ8/q该e0#z;qwjT nOa.W 8T vK?z!gx2:XŲ:pj S Sǡ IWpasxGd5έoɎ.9젇I^{DەWAa@a@ GsW6h}}Mƨg*~Ru %Qqgi6lfn 9>j+[w`5€0 €0 I/a@a`:W.5dAw->/m>: S|C1x -aTW%; Zd*j P)CW n]zg,-;۩w4,I}9BUnT*̟B[Ra \z<.FPp+菤}ЏcЏUL[z:4ppG4弅ϰ^ W-~}.2x|P 6 }&Tx,iv7sXȶXa@ks=[g;&4{~OXW#a ]Ja! b;'M'XIf)Pq)0BET195)lKvclP qmlZ1U?>IH|?y48)p- :hUG?xйW'u:Q֓$]ZiXh*c~yx8e~V3jv 'nrꫣ?J>a@a@$Em€0 €0;w*7KmaY~%ڣxt)c꫒WŽkQh=Hqp:=Tp颩6%M?z{.T ˱ qu|p!})V}~@0KWSA ~ywnz(̃z LGC |'Gd;.Tw'bl7gR-HkQ *`XuX[ȸ~}-xm.f>N' 7fg{eF1g~! €0 N9_yˉܿ|l\*}!70Ed_Y4P<.-R,N1) (yvԺ{U?է!'ј!th`/uhߝJ 9 Xn-}FeʠFfx~bLC>[$LrnLDSa:ri,;y'vhՖƘzh^_YyUUTrÎ`GcD' €0 €0 Ǯ,a@a@0p0Ko%cx5M]&ߴzvR?}NuLMj]"ݕ3fu;6u.p4;[%h~Po$Y7a ЇhMz*΃}dTr3ښWGڐ1;s(Ɓ~PTX`[87cHa~ONQ/Wn/uNÁvmr5m~8p`=lq-4/$cҶ@CM? (5(]:NB>N)xtw95oiGQ :$ZcQN7xu-w/pGsbA{Sz,ͩ:v8#۞ IQ4=IwuU tZZN_[i V~?ãђx"n'#9o42uL0 €0 €0{i€0 €0 ] sA;ݓ~^tWptHf >O.g=7c,m Tf7)q[t~lCa^ pke ao; 2rK>~h*243 kiYe8VN?`yow6!vU}pEG*<%aquI?y~k>u~ [ٛ\oS5-搗>FgJCPVMp/ >5$\gSokO/` s)\ Gأv0[&XDiN_Ua@a6g{mhq>I04w2–|Y˚{1_,fHg">St8'] c R9H(k uJI^ed90" 啜̡FşP[иRܫz,}97;TFX vYFg(;Qwx qAX-/81ZNS3*[8H~Z.hz9G٣ rD; 4}Îe;^Pa@ؕ?=Xvn%߬d-V8Wٯ@{L.[9D?Aoa$+(H9+(Z ~ty*F`VMRe_>]\{;ύ!Uc[ X~9SF}h[&G^Y#'1tV}"M's.ܯ;p5 dY6;_á`mߨzEYc%c8FP)a@a@a`dw17., €0 €0O1`vu|Z:=~蚝~(jZ<@̽30?9ɕ&b#aPw2Wk6; =*ڪ<5x% fS0mmMCp0j}]wB?^,~=3 ]7Hjr;+䞐OW&0Nӏ <~Nߜ;^7^ w&Q!VzVd*W1ojk  14 fH`hhdn UR T={m!p`6eoLCu9. €0 R ;rW1fVGtWƽr%#_z. e` 綾?9;G ? XA*X2* ΁*(qH,-j AKǽ4fŰتd+g\~tHjH^bntJkXgL q#gd_;~=kkؑ_*dk rA5 RKf?/7%7Da@a@a`f@v'w/ €0 @uhlm%6maF25ؓ8N .i4w<& '0oàh.Jօ܌_;vn&N{!}݊ J/N35)~_?ե Tkd?[>3$hDk5,o8p?yG;PiNPhnG=C'j`'-$NX(aPk N͇UM6W1ṠM Cl?C^\);J0 ȇ0 €02`,w1;xbU9feط7Ulx%D>FL"^;V ?XN^s\#FV%P.Beȅ!.+rJK)\62k~ =ڔ!z})!QԠ`3kEkuwp4=V^ʪud'wת/ voX-qGG'Twcv[٢ €0 €0  `Ka@a@vʀuy@*ie^=(gV>,s Zdע;n8mEoAy8x?W#PK}7iSAor92-K{q^W_/`[x+w$ sr58q\S$_؛Fy`enC savawavEAڤ?E4ǫGԦǿȶ-Lb>hlQAa@wl6Yڤmo q>s; ,'Yz6r1Bʇ/O)+Ŵ)PRp**= rJ3_]R][{`];FW𳍥p $ϧYf9Q)g;^ 9Zͨʷ"$[G5HrQQ=  A#nKܚ) ܺhxjt?,Voha@a@x€0 €0 aN㊭2ڑS[ukcoɬhA:?0j!p8wIjhxFgHÃ0n:,r TuPb{;8R >;BRiY=?i€0 €0 _><0 €0 @8MTXHU<Zx,{zwtö}(E{: _VG v!L~8X2p44y,5Ik&|EWT۽_P"uz U$Cޗ'qC)^KSWA$ovuz #=&voVRy ga<:ɟ.G=hfpB6GϪMg=á4{4apixYE5kVS( €0 7{:sol6v96W%Ib=#' X-OH(m ,"H&JV?"7{-y5*9!-=KOR؃Vub'3٪W (鵸 &`/z+xwoܱ&oZ75dJEeJ;ȷfC+rNҸ H3^ bXhj6| |6} n'[0 €0 €0K3 듛a@a΀uZ7jm`l~݀hP `ױέT`waϘ3~>ү흁i:hF]g=i)M/FCJaMq$-N5֣t-nS^Y;fxaT#sgPWSD/S%z9.è ^hN-WT'\\ϡR 4]K%杣xqtkޗ=ϡ޷$G2:sX:hRD 6 5Xmzh};-K{%VG(/T Uk$/J2L]l"ጦU}V'( €0 €0 0Ai€0 €0 1ﹹy+gbw2H=CDSôs.~G}9KSͷJ3nh:T-cr_.=dYFU;ް株yXf4݅ X?gY2# Xxi{; 8R p0H=$ 7Tyz8:^ Yznz:_M~5|] Ԁ_D8;<8j V.BlL?G"@Mv# ,|2F{ 9@lsM{f+T_>fF €0 >!kdo*(~4W,B_?ȫ.d=y{ Uz Gb~$ uJZ1,_AA_"`p=ƍ 6*(kސSˎΡx̏W*cIPNB=+d,C_6eF ҧ/4m=q` ;D["_}qPi!ϣP Z/=$i€0 €0 €0P! €0 €0 e,env/OX3oQ^mУE!`I7X~gsS؁ر~P+:E*/B!5~Benr~|% yv>mv пNH/'7:%ej{E|_=%'ɂDg̞sgVZG ! €0 cXM0±8KJ6K|L\ǣee vy#],!' HNzHF(XF2`%E_%7SWD^M5^lJ:~_(<ׯP1y$(yiRP$*-̜vSh`L3ےhK}2.#Nwk VDTs HC,o~B%xSC9&C@z-1'(͛X23o JjDp=D_nMA`j53P W%bKQ5uf@ \a@< `-0vrnl[+Xm',€0 IccюY9 <{,Xp\hXOލ@9P+=I#Cs]+`ҿExIvzH? XIı@8&ߒ lI$OYL*8Vr|E`&>xK؏S< i"$~?zy!5wSwzԒqtm620878guxB,QXm/bw;'t>9`f`~hcя*! €0 €0 ?f@&~̉xa@a@s rF]P[oWq3>OY@e+8uu`Chy+w̫͜iߧ'{mRW&h|g .wAzD80`?u5Eކ%}gC\I^> 7WT0u=2(uB݃ DKi.zU,}), e5}l# @3u0޺6Pl\!vb €0 €0 H墅a@a@k ؉Y+#vBNI>LWyj?*W稇٫@5m(^K&Wܻ4& %rŻ_#ojF[}yQ^_fq&?ЏǫSr>' oG/8`. ,`cδc̵-g~h8V3U&zE{>z܃Ժ.NNc?J:[{TD]D>6+ afWO 6}{X .J%>Zla@_ƀGwx+/;?tj1ic/8t wTIUH>=G7;k~{".(ƚ6%fP}}gT0[Ͽ Ol;Za@a@1zRa@a@v՜,&n">oia ֶZ1Q\\>7su7S/+t7}$]}gbN;߭[`o[&Mo"][3p9OϨ&GybkduVK`?xOE}FVC ׯ# E"#-bbhH%Q[EXH ~=I?O(uo8f8퀛Ww!BdJ@oFB,J?DQk"D t?B1P_Aa@~LS{ׅ 5 Ʊ`bsrDcvz9!GnPᝃc^}^I[d,"?;wܷHj@yXX-OXQ*Yo2UT#NU֜EeuEB`E.tH tQۇᛋ>W^Wc_g%U<-L&֧h&4_y!TX.1*AR5]`oMU5Cn&T ؅JR" { ŋt=b%#UW'o*K8+<tD,~Q@W.=۟Ĩ!T%޹W2|8X!({ ,)"1D/%oLa@a@af@m a@a@"VzvcX~LڛRq-V5su1 Nt_֘t4iƈ'CN]53oԽ|ޟԃELG9s$q$*g^hLȷ}#wbN@W ^atjC!s'̃`DrG?6)Ǫ9~4S)y.d?GOE*^J}_C4k.0X Ck>T [A{&VS+PC*?Sy :QI ؄ycDjlH/p{FDpVwǡ%3 jː0A:锹>V*la'>Co}b^XOỏa@a@a@0 [!'" €0 €0Ѐ+ `b۔@fq:(=N@ׅ~L@c܄@~j{.۵r[_@[0~2hz@f lo<۟&-{9{cBɲm*JOJ_aH DQyhK;[COXjSS{wL/L.PTީ'!_(= iv?f4B࿙N %{S{?? cѾ7UlwG %T-X/A.qH \p `6/m4.6X86c㤀i\~YEߺ>a@}?sm|?^}l?@'#TXS1޲9@C YG?>99` }?K4"'%<=[*R, *دkn-FdPi^ X쯦`GJ= ff }Ejj tVhʜ;[N`_|"Iߢ5#>h$-+4 |1?(gi D€0 €0 \a@a@ XNDWrVƯj}4[QFSH 2.b#~z1GHv`e[;DGHpü|g4WoqxBoj\+ur8zb![u }L.&iEjO˪ Qi ߣUQ^w;*~35>I?ikm>(Yu~HŁ۫${=~514Bn. .6?> /"1<.ֶ}f d-=v|DQgM:N) €0a xwSvzCc;s>x7l{X}@(&:QBu PDƀ@Mn*`?1e)QRV~~SP `J SEeu|uQ2꣉'%K D[ReS`w*73rx_ԣxj/襁k?xS: A+(43 {g0~eqF׾nqCӶ[V,a@a@a@2`_'!a@a@6p`WֶoVnL/ P2Љ^ zj0aGs Jؓ0.Y4q G{yB7VoUx SΣg驘_$>D)Yh lvr齀J&niU;&kE5 @)43)}}>x4HsMo8mOSXaCF0 =I1o(^)$D8$@v_~(7gͶGǜ#e[X0 skS"e*0o+J~]oW .vaC? ޏb Ami=Ra@?0`0׸ϟv`fO@| x?(D @~Fh/l\/FI}TL,)ZZ#䮝lBMjXSj'Կ.Oq\5O6Q&e8Yc*? H2wl *Y(fp'0C o0r(L=A{_ab3a%.1|_X bUW>.:CֆjQ#p!nj_u {>6u%VTSe| lYj>`:9cLeP(d/Zħj^q.l[;saavB€0 i~sv}lj~>'+>vOzй[ߎ ydbGn?<ީp*9~_@ @)`)3˨J\'j7EͶzT\?5w|4ZQu<>idr8PR-Tvvd[EWaoN= Ko~G#hw=Gy ]xzH#WQ5:Ft׶[wqg|e#Z 0/_ 3oS Z^H_A.kq݊y h}6a@a@_k r€0 €0 bN@7pn?L|#n'ݖxz3 r9J:Aes[0A8`t!y3!׼eD@@t++g_~f<9S-Ro?&)Smԥ^"7t;^3ry^Nq Y& q[o"~[}@_Cc!hc\K5(s۶cgk6lE&S$!Ͽ uuoPc1Bg:uBllsmЂCzQt.Уċy$(?]  ~YF d^E~yY;TA@+u5 tt-ĨGYݑB~i$fx5p:-=9[þ=N>P ?y\P}CO>ct/ǧ`Kz69 j|K_|ڇj{v޳N1Ёa@a@.?~W g. €0 €0 l;H,F7xBuv,>_>|a[x}?&_W0ߨ*5x?`wP[{?ڟfS/l/9]q8QEs,w}9)離58uut㨟idP{1&p= s4V+'uWzB*duU) zQ_Y|Kh˒G߃˩c/1 1@Xi<ÁtX@؟ϥ©29?2Nwf OpN,pi([فbBC߁waX6€0 ϻi7s5owAU\ ,zQ߇^XAoT<ph!_d&0G) D @br`Js, HtPYz0M%)SK]`I'nQ2_yVQͨUI@W3<7SdR{eqg'F}»U {QeQ?ZP?(c῍X+˩w)ǥe}MdQÌUP;~`+\f[|@ugs ~!塐< `8$.ea?`WC4m&V߁m0)( o+ jkWBv*9"C>rsr=gf2gp`i}ҩm)#JIXF5  (dr/˩,4&XoAz~ɯ0|,ii@;S8Gİ_ECB^ňao?*à#=qţ40dЫT(Mpc}lņoa@a@a@3`7~r€0 €0 d !kz$X|֘>?[c= [)PP^iԫΐlCYfn[db.ΥVvö=5)SjwUTM@.G?*z%TRS؊YSZD,3nͱdӄ8q K!˶h[Q}=DC%Z?2W54Fa`]oW7=R=~m{7T}hq a@~O 1E{Ͷ׏նV+m@$ I@9  CM;<УT_`k:R"yGhC?:1XB" t:HH`dt)cB'0J)ؖ l9홾8l2-ϿݟVc,yL P|a=1t3v z`QnPљ)8a[񗄁s? ` 3[b^XڶbJ€0 €0 €0` a@a@a` ؉m;m[Y[hM(+ÕÔJX> ҵ!f 9Ӂ0f^ ݪ7^MRcyЦ3Sy.1f?J ŽSEnA?}(PeBr V8W__~iQ}\1ezXE OM`o,Y^ؑzݖR-iw) v42Y p<jz9c+U+o񱦒K>ع00o3ػgǍ ސ# o\kgڶ36~AkkەѦP a -/ĸL7>ųErsόKOxjV;]rXǡt_SYUԼVg8%0!~$+ۥU8:y\LR"TU;>~B{cqZ;}Wk7}Ou?<^Eཪ ъ"]#\}a$56F 6. jٿN=ɇzkd+ €0 €0  ..F.Ba@a@hĀضبz}:NdH`F`aZo|@g A,\p dCߴ 9#ob/WD7͝;Ewy!Wxc`hQ45)mMH#2! zb>Ycvq=7wc!uwԨpkH,oE{Rw?8X]^O針?qnCͨTA蠔~OwFը@4LBY MW# S&ba ,}đa3 R@F@xdSL ֎b Ջ_"V@S2a5!±6V<&+S7kܱr~"ƶa I] Q%7:xwIE*㑔8P CjQ- P;uÁhZgP:j@'=%6ힺjR`~>(U_-1MhߎaHd]]߫_j:G |MoG_N/:.ytpX T*o@ߪ.B 2X\<(Nc/ ?%T03?J{)Ea@a@~ %e €0 €0 e7wbzN?k>` +wWKXP,ލ?Qcl|T֣ôFbӰam€0`4<5HϾ!祾֠v`瓧p .A_O"3 C{ ._x#?ǹt& DFVƯ<yį QU3Aj?:n\B8$o& ygvu}9]X :/,5g3{!me `iF{m^g6{+8711kA8^doT^B{c@eWCp8wq`EϘh5Tv%8A CeP BGmja@a@>ۿr€0 €0 OەLV0 ~.Xg x=?H?m0I!_@Od6ɀۨ-Y7Z8-,}hǩz<Ч2*5ŋ~ "r5 6XHXu[LXg>VGB`S-K &#A;ux WԱ%Qif+*!;15>="t~PO 'n]Sw uhG v{ @cP8@KRSb- E[ͼr+ #ma`= 'd?w3aźO5?mS_M>f~~beXzT۠_|<^ea9RXt)͠ʾdt+G(EF(R;`J 5`QE45} &. tqE:,9 s85z-NcW9f madZntߕ谓^G@oaoO(%OMUz!?(I %6ATa\#e0oLctg3Vi Q*~ha-߳ضa@a@aȀ^\0 €0 €0`CѰA |`?p+ J٤1ٞ( ɛK s vIj̧ ǖtvw8`&GבhW,A0QC}챔ԗJ|1e3B/(nv+ԫnOUYOI?U]ZO`..W=KJn<x^= K`ַz8 Wn[{ MLz2d;fSbǰX`[s&fW[2?Jٶ?_?NP~JaOW O$CoG{൭>ֶsϻzPC S z9LA0 x E x|+_o-B})}2( FS>Be1*FȈI8v4 xFW&&y}3|N&_RGqs8Um8;6^D6:zɎhM\h>RXnFQXˣ#>CrTwq_Rt}Ԑr"Z۪ pݞ]D0,Ȼ9Q$`|@6 :Cjw)WM ia۽қkOGvMCom'( €0 €0 @7A.Ya@a@0`'p+ȹXohWThbsQa: ,S.s=, .:Za E;4ܑ5wrj$u-6G}T,QEnf`+2{(hi-{I3˟,Ec߅nڄ UT^ PSϴ):, @:bqjwgZ8g$窽ͧ6B iy4d) %cB/ POw~:D 5~YnQ$cmnx0 hWd9`m9ӈ-o}YzR~{k|3 X  2[E@b,L"ؚ"a;O.FR+!)2G 5K>k"1*I@> fYew~Nskp/m`6.˹޹yO̮g[@-R~q^:}Os>~IUZ WC^|`acveX~OG߈E$nݰ77m;~p_l[_}x ٶ}} [s~8(ŁaЧ|* ~ex|T:@_Ȃ|5,G0jU$cTQTXNӼҿRMeW@,# T W%#~@2 *4KhCϜ7Wv46 @N.}0|t/dP h;P&Q p3hW_a~4cbJ€0 €0 €0  €0 €0 gN<A)h' XR6k^ȓn~k 2Ja!1w sxqNbTR5{*gIU} Pu*-QT}4?0@IDAT0z3MFjhA?ItH೔.|}a+AHtL\\F_xͤ;%_UDؾXrp|:֙@㼉SRE?H4DI -lf .16hc5nLLa@2S__}X?(s&]_S5Ar<む'= BP/ v?_-23NT$7Au#9KYXs&kx{kzԢ{:1:gS&~ lI-s󁭨2Ղ<\/Pe8.}[TRR'`ޢ_ŰPZlO"ědwyw݄9 ؋c1C5l# !u`=YΑw0zsc>@Qp){~.n€0 €0 €0f vta@a@à]H&OygӦ̎Xk Sz+c2ſef,T3 ,dz:V;ғ>~5Z]/z߁c5E~y5]BVYm [Hdu`6, @5XH0tP^GÂGTrFe,`)uLP;~-`EY??H) 3`CWl 2mwcis?S<(|A,Z0 €0 €0 ?@h?L€0 €0 .mY2gE[Gl:k7HC DCbhݕ:kKBقv"-#tŗi,=t3w1B@#/*;nNJT=tНt5Q42;Ln AʿCsaoE ,`O Hg %G22U4:Eyc%uǡ>i=:ÇW'\VS{U{ kjld.2ؓ՘d)~eVa :},7@Ԩ;8ca4̧ e:a #ch-+ sl/( wvc/KX>-Fk4hy[ǀƠX~߻ ?(~oD)4@>/tlkɬyZB@yѩFjl@Ou mӺ`hd5&FZrTZv)ro0F_yn5:P֯t|ߓppF9Q~o9<^o~ '鏖z_D[u 5?LpjXrka_κQ;1sfps1Z԰Vaa@a@a1 .i, €0 €0 e.Ѯe \q2Mg7î~:KH ]Vc-_`Wx7;B= }hߡ!Lf֪΁oME:zs0N];kyͣ~Eu\L>.KAKԿAwwj Ԣ'e9J(s+2ƫcNcg-4$v/;r=uVS+!`5uۣ|L% ,E@  M\٨B2 .Ko(Vα5S {0cLwclD~ E;s_EAʵg{W{?bP*€0 €0 €0 Dcˡa@a@aƒYQ Y(9ɞ?W`Ċ <4\C*-\O7!>,12Riw; 19ci+,̟Y4zDy kȤga&@ J4z;Ӵ}-pvgXIHmI*3lP>1}0+m|N?S0U㊐ Q}^ #.EQޟ+\>+9V+msԞ[Sm|ML5A G3jOF>*,-c`QHYlš "H]l6 n `~7x67D6@&?}f R6@>7|bϾܾLw꾋vȷYߖ[ Gl { _" 7f n!UZSe. 0@+{@dbfNO\sHNyp -Z:q"|**UT ,*((FU{KUKi`3S#1CSw{=udϣݐmv;n Ϫ{?PDU,pa&}C8c/W~@4F2hN7xcBolA&.q\c9lmyP*€0 €0 €0 ? a@a@` J[!v쯦);CxByMFWA"g;1#cmd.bCc%1gߩHOǵw[WƖ8_x[9_FXHQR"=wET_Of K3 Ԡ$ CsiN飲s0b7}IO]Kjx@׻߁ݨr{`O]w\'3U?ܒzꃀTu4@Ln0"J: rn (ɯ0>on@;0 6 ~$cG+SJ<@+[7QҘa20m @>7|9Efy0W)ǂ;MjDƀ@dH)'XbH?Уh)0~Сկ)QjV XZNP8͐Qmb5:zU?He˥jZ'OxY` >e,@S/ X|00B-ǧ~*K4FH10\"yIwIvF!ƨCjd@ہr t_<ݹDODXOxJ]ZNܛS<[#Rep2m[nOra@a@a@ Hr90 €0 €0SN+z+Dp3]^ r( ~ DB$, x3L||#nNc?W0Nn_r? ׼ҳ)WPk/gRu^Cu2#^uTm"WAǸNx`K*KgSHИxj[jБv}rs:+H@:9"uP@~ x܌IUwx,a&pBmR4ᆀ@`[X f0|E[޷-h-~ qRAa@-}߂4vmf3}QnWD8rn!ߛ DpkJR8 %7ˤȭON|`=^ ,oTZ#jX~ 5gʛ%q;4 @yԛ5K3:szУVYjYV1Z5|I)Z+_]Dsvh!zL $δa Dr~jQ8`6MCc۟g0 €0 €0 ;9a@a@a`3`l Vƒm ű ɜ8@T/l${݉ϓ76xò9)~dH/|7ャ+h pgz/wTKEZ?K8`6+Kj:L~O8KO/Y K$nDQ~y>d[K);#ǝ ,RojAAf|uNA(_ƪQ:8_u4M,d#*,!T"[|@|%!JS+8y UŸZBv+"8 hɇ}صI8€0bOm;[+mT^(?[9yͮhOr 鏀1rS,gŸtt8`N~_JNߐ5Ђr52EjӌQf9իxM[q#NL'.m{?Pe0Bmr)`5p'Sw:^Cy8)@Ϡqr3.?_IP@kޥq+N!^l~r4~Cm (Dm8}Ǡk7`wp Epİ0 €0 €0 ~/3sa@a@~:4?-˞WrNZKnjN~N?n]+b\퍁xC\[u6㑮HOKFѾ@2 Sq^iOE؃Ru42LHGX}y🢱)\nf.vosg|&}ޓ@MQ?RS q|l7O9u%ojn_&|WY:Z lL*C'jzc Pfr52Z̡gjS Ed4\/9柶5R" €0 €0 !w:%90 €0 €0F#'|+10ho~ \gl9zRλl ;W:tiCu *ڃfUm0,] !eub=X,-;P#.ڃvG׼GQ~>0OSŅॏ׳\}5$4 H!}?)w>BpnG05uч:C~gy7GYo'ߦ'p]xB`ڣp2/@&^9;tt?`==XH$:*-W߂Z:M0Nj_3 6  A,.Bklͮv+` u4#xz3cK0 _(35q_ (o_fPik"2X99LʼtH/"p(XBNAYɏKLW=XH*>^9e1#C@{nH0@YtZ-je gyf% Nv:!`NhԏW9}N\oʾ9ift)ѧ_(COWP>!1?~pT[ϥt"zY zصS# 2Kwƨl:byp vɍ93:" €0 €0 rDa@a@a@/1`ַ\ؠ67AXx%#DNlB9s`zL ?SqXMAI)G"5H!fs`XPg_]a˂U(FdaAnJqV)>ԡO|~"5>E+ _Wc!l-ua[f;/ky+[`s~3BFj^#C xo} £n2rϯbnvYΑr9 K;NYr2-cHB0W%x~ +?7qb+꓀P ș cbV~L`grkOH {U_~ NcN4γ'<;tћ 8>4ܤΖl9۴T[V'B|mx=G07^2v9ǖv@CQ$d'R|bڭ\#v*\Oߞ8 TrwKU&+ѓ)j;u V^3e_wpt]G+̨^P{#uE8]4~[9Oq{1zݑk7ɨen@>[Q|{taB_@a@a@?=1a@a@a@k3`ũhږ[`P0jQ?lk" A6MӋ4Xt{ O&^U3$FY_@8SW=Ϩb n[ z!áKhj0Wi [}Kk!Qz%%Buy@ו^Q#JgSR^y: esԢt $Rgj<BuS@Ї*Ns; `5*fB? k5lJ_WVx0,1g}#(zXLp蓽7}٨H )ɳh[y.'aKRPS-6mO{A{a7|4єy oa\  'f42i(r)jK= B#d  ߧXb} D8)W@;3> Kpy=iN~r9 0oAƼmXfc~VsUW*=DuMf-!.Z_ =YOw㗫P2ӐkmW\Xmi]}S0gas8ᇽSN[ml}] m%( €0 €0  49ea@a@a?d mw[!vqQ(PkH>lyhXٱ'CvoogwUܵ(؍dnT]^O΢!Um },$#hD=YĒ2z5pBVR]6L^:ԇK۔wNKmz2U 멭ғk]+z/q8PշRЂWQ:`3   H)J?X|d6)ō_[i ,lp$X9̶̏XEF ]]>uܢ-Է/( 6]#aShQK]J,m(e)ä~OG 1,gEV‡OqVg{Eut CoSmkg|RG3f#S;L(3t{W RXد0~-pLpaBFhUc`5{o:ַuNsqa@a@a@1 {&g, €0 €0 R V"Pc~I;}R[*a] ]H\0Մ1V\^Ǫis|{VQ:{pM,K` 5qOH&XpW.MNphDEqY1"%3ԺlkԵb )+͹ >PݲB=o\F]!pÂZC x?dD@3#ZQOŦG S2`;u}[sh|_[b{ٚ/[_#0$R]ʸbߥTmYʳL6I̐n|'~S5VɫL"?KjSXLx~r*Nr~JUJH=r2PCNQ~~׳lo`RX$a^Cy_}waկ`B@~H,M_+>=_s>Rg3" C* x +_5rn&` >~-ߐ߸+7,{g'"߄a@a@a@k0 (W! €0 €0 vţ@-Ր> r쥰*X }^o!zO%x BWtEoa>|u87$}"W#]>-W6j4.?L; XK(*[7a+I\~dp:|w4fi>U;?SibIk vjHN[\xܹb(J#'~K} s+nGN  FC7Ge cھy E+nMΡ+WހR_h)zPGF%Yz@a6 /l;<+D)ί`v3?Ͻ\Xhuq]a@a@?5 0 €0 €0 5- Q_<$gYzTsÕ]BA(vI8s=ޡѯc;_yoBK+pp!hI RCGV@G(_ ! tNɇ{jbn .z}_BD.TG6_nUxџ ez )/OǁCWYѹXIˀeHaT87 ݁Q0oi R#m7" c- n-O}+1-Bnjy{y2ze2vpB &@9?J~ofaoo`2`&^ LIT-4^"=gYO |V"WW#@SaewboPQjw*vykD 2{PXCY}MZDY]_o<'N͸v憻koК >Nctq"~l Of2Fz8S r0:9u:>b<2?B㨠gf\La@a@4 0 €0 €0 e~żI,[[AaAbnX@k `F_J䵍@؉8(_^E U ^im)C-+Xhb ,(_`ms,0`z:(Q `6+g@Nˋjo%Al;Aa0}CO6??`q_OM>@Ӕd@yE=#O,E< %7 `7 RCL+`ݱrߩz!oS ]ŁQk(Zpj#'׷S #?pz`27q/NW&D5>9OzJk PA^.ٯh!ztg<~N'o;?9wjQ)YtKF_=qUz}i!'g\ pElǔ۴MKCώR( €0 €0 _ +Ma@a@aŀ}#iEX c[)b*)k]@gGÀgN:N:MA?kTr: k'K"5_ Nwor?{Խwx+"VW9( !M?Όeb7b hiSPލ@[Կ>@:_n7я\|PUJc/WYu6Q˩~a`!F(;,,d= UׇVoco;0aXXΙ 3ŀE/ַ_m "ƶ|CG`_L6{;kd}R*[p9AG[ hv\ + (. ^WBjunG^C Vgbw?3"?͙z0AN 90Ɣ6H5۫G5UM5~g%j|({t1ꏑj RWT2[<*=̬!? YCݝg 1c.Abܟާq |#c~nH'HۙM?"*sߴx€0 €0 €0 1znAa@a@dJwaBg-?K IJ j`HbOꑠk0T'YoL4i#?o8;@APqjlvF Ƒ:;ttU|:E^KB`) qE+hY}Q:!bu5pԟE ߅>(jx7(ߞ-]IRBR낶JjY@l@Mbll80D pyKjO%jCUk <*DBWf3Vl,lX z>K0۞Xn6*[YA^AT;c.xbTVv%s y ,>FpTS h\{O.2v{3L=e[yLU@&)Nma0z XCɾ$ GmRQ|Avp5<TSyR pV8K)jһaH '8*p>^q(Э?pB `%a&byG &!"- ,cuYشMش\u}7X)yڻ1>pf|i-vY0z'niC=P uFu2~cpgr^.QvedĮo蛲ai4hْnghhYGJM;/D(5£I*/z8)Ի@]{TX:Vȁ@Ԟ8Q>s:쪶dԳMu ewдI%t-Gs[ e;z͢^ ] r kZ& 6z?&;Sa6 7PS~(h1grb u7ϹA֠L 3`@ )~]rI}Lÿ$?8U ᯡd'6~5t ծ7>!]Hp9i02!٣#ack=_xy z=sٯ &&00";sxJy`NTGA@|l{c~}A?a@a@a@a@a@a+`u1+\v\ζ,\i(\^ SkBH2:_axQ=lN{?K706yLFݿ~h7~WUw_7l'˿'@vi) Q:Â`|jDi{nѤ0l?.ק^Cs.,u=J_&`{je{RҗTC 3Ṕ ԟF KhÁ}Q{Q_}mMv\JnW0w m(7 Vi@X(٭l´#k30Clف̂?p}>뛎` xJK׼h(uAyٲ/k ٌo 3z> {} z&)qXx~+ob10 a` yXG1TJ*MR1g aL.5ʿ[ " SCnSKHSMU5ہhw.ZsyGy צ2S2Zg`ؿ|b2ЄUZ 3~l&!W||a@a@a@M& €0 €0 €0 lĀ|XX!60"aHVbJu XE2'3I/PX Uz=2<{O .רj*p z'sʞH)]Cmx-Vs,RV$Ջ)Q˂e:JU]eP +m弲@MU4 H}'5wW}$:o.hv ~FGPsCk+u; {}c]$ hW>cʲn[yO3` N#@Ā|o,(Zo٧=#Xe0 mcxXN_ہ0 €0 €0 v!/ €0 €0 0c}` + Z+]q Öweh0#`ןSYɲhkkl/^UcBNQ˼wQ-8Utdj:3Wh}fB3iN>rEv19=&?Vv/kNO+L=#XD261{60MׁU#>Zp?uASU+:'1s)G,j N]F!H(z@IDATJV5  FD>iN6 : WgTp+7lED\<= 0?݁;~Wm)~>{ i2КgT̸Á>|~@XGd)St5?dy~"º^Cf'//p8sjNy5<ɂ[eJfŴ]f"pꘛ ].WxG9F:mGW~ߨgisĮB՝h\}n/<`vܡEu~?)̉Np' Jx>Y?oe=moV €0 €0 €0 ! €0 €0 ò~cǷRv,^-[s3 IXO5uWO3c X.vʒvNHOZ7-Q}#PO6vηmAo:8O#yM?QCm(W p¸юIѩ?A[6:C }JpfYz2L3 XN9۝v[<@3?Bh9W7/яQU(L]P>REy%v?P75PBajsDx/2 dAʼ 5HSTrjA #^ozO`mc[eK۟E{Ĕ"- qv|5 7PM_"?0[Ͼ1 Z { ) z9qR.SJKSkK $-V%A&lKguS+``=Ma@a@aW1U0 €0 €0 0NlRN]Q_pqY4c;k76``|:F%^Y0M~^ڬQu]fWiz FxI`U.RWާnQCU]4K"/feiћ]VtUcUCһ8wC@; ֏Gt3wg4z?M*nz*.Ut58/Հ|F~z&չak$ՃzOm9Q ~]x HF*rʋ*@KU?oImoM͐>1@B`) V %s `%(p$(p ywۧڀb2`> eY6S_ 3 lR,Ώ0)sugxg=vJϥX-o 5_i~|hr> o)w'9F_Ql9 hc tɯ z1S$Y].0I5Um)U S l 1E>)!^w86u h&98܂ȡ9\怂.Fiױ*SyΡ}ՆyhqۚO Z6WG Jz?CmO_?m !`ߌ0kv^ue2v4ZpF([vd_ڪø֧byjBNvJZgLzhP5?LUK2# Q盘4#NBHݤ׹EߥjZ2- ԍ6A4W{QBT?, T{꟧ki18FGsw֑i~:"Rv lЂ7 Ο&[ [aAl#/2Zb;zql٬hXW8!ݦ}M c)(Ņ_,?;Zaіcmn^gy5!=oZ#.玅~<0Gs|'{w[eA{.'n L9( >cGN9H @ڭL}90ENսܫT5 ]Us&p {zOi~H|$޽aNt 13sàkޔ+r)~JmMԾ쫣C|4 G6XQ5E|EcՋcg3j8lkr3F1>7D u0 €0 €0 ŀ^qa@a@a1`'+@YVʅyn_PvR塐 zvJ|2-"m;;^+D9M,3j|!4K:mA(ߟv#HriÿV~73P?jңQOɴ4ʧЊP~2-+m!(HEXѪj/%/Ԡf}7j@9 ߕzD -ђep5@GX l0  }mE+{]Hl~ |}.gQpF\2˝^E[nOجxg,: -"ذO60G%|.Xt`+YF@{?iRbKfoQx2D"%=PIǁjORWY*8 * Nj"G c-<SZ3B[LVS<p^ |%.(5O_>3nĊH$?{ ,&/ep92 ƻK`D@MfC~t/#(GuK7|l6BJa@a@a@_Dńa@a@a@#2`ʬ'5,LU 7dsbSf?fzm^ т峫\A@gPY3{f^VWi!Zu~S |5I8ޤ#dƛ@J%Gj1CL-eoKJnARhV[Pi RWU.폣= Վ8£f } F-a7X / a aF($X6ݔ1 㐦l}BeГ#r;>B> n{V͆f ;sżoGQ!yރ6} ">}q9A8`Qfl#9s@ Ȃv4__TF`׺c;!,|~_&gex '8uÁ<h#0MT:{-ru€0 €0 €0 '{/a@a@c u-Y(0dknv*g+KxlT bIr8e!Ѣ)(2/K}@J՚ΠϩڝAs*ɾ.R;T`t Ŋ'ݳ).\ K|1;URHeeoMSѬr(ҷn$,gAeVܞxS7i }ڏX =X"ZLXjcJ)peBU>aJ:KV #O$3~Q%e!6F5[&q^߆ԾlApJ*5 Ҵ>=E^/3,7oqRE'9 Ҕ̭кܓ,2|,?M5214Ez՜ca+`ʄJ:}Z:ʤ9a5 l{S~{ܱadwa@a@a@ߑ ɗC €0 €0 2PWX8hXo*WB~#C,dcpVU . WOP_QS zz!zYПJsXC+Q# "aSG#|T/2-BX Я-҄27Wc᳒XPͲ,6z. E4xGJ}x:dGkn @nEg$hyevozO)g55pA^@#ŊkcPφda(lb%Bp,  {l``Wo3GŅhV^ +)~"ߌb3.Xm-w B.̴Q@ʬ1Gw:/\/j'zOP$~O^ /5@PT lv=ixB<}i4MbB: edj|WYϷ~H?_F;Fs!S{rCsQ#QDt#:?Fb{>1߀8K@U @!`kK j`;B >G2)z!4!l7c}{TV) €0 €0 €03K~ORN@a@a@'&; s Rl w7mŰi؀gʮ1*s3-U+o5KrhBbQUqkTc'} CT+tcz7ƒf`;d85Q@5sRp}S|'jL?KOwW?[B= ˨]wfFęCHEK'c()Fr`kY.J~fᶌ6Xl@w#iP6oDR ix [!ff*f1~6Zdó)@<zAMYJ_<ft25a+J'p)@d s[aw"'q<0/w|*ky%?QR'ME5PX_؎nN '+P>OQjXfpK"~K!p~{4 p x_@|\ޅ\+/7SQ}yڨuCy3##=dq/Уu%姠7"3Չtz]?K' ,Q)3&2{ZdgF%#b̸Eπ"बٯ-a@a@a@s0_ńa@a@a@00&Ҥ(ԯN&9ۿe[峈emjA?WVl݀k~ޭ[uwc9տѶ_~Hz0I:@U!' ԭ<aK;DE9r d:[3c^#CJ47ǻDW_Sdۉ9F΂m㝡:;@uJJ=Կ;x+{-&M bAk,K5FbרQc {#bQ Ho;^/!)k"Ul y]fGk9@C=5ߍ4 H8H.g`zJ2q9N'}B{@ϔ UsL8}ܯ\X:?fԛg+]z y;Iީ w؉\N5d4H;9a٫-t$+QĞ||ZϥyBQfn< iiUޡX}(U˳hoHƚ@vvisQb#_akNHXWВƙZSQBA[P]S 2 (v.zuTwǣw֯>u! @WЙ(1R/JчRt(gCӒ,i/u_NMT(k"ĺ2p(.τT΁VK]dZf:$.WHX0̡Y9Bma 6%ѯx9{uWg;hk;<$vxw%uK$vK*ԗB@J9}b>j`՛ǠC@Р$ '굝tYд[FzOn&dor@F/$/*`Q>Cd륛Fk"DDqU;/ɋ{}I a'1^?m vc{ӒC5ߠ_HO*'|W}ՒXHHHHHHH׀HHHHH~@lVa5>+NèԻ:ڏV€i[G3?2][]Wvuz9I5r9[c vJGy,5GW%+?@*ՈMփK %Yک>LXQl E3[/ԙUY301UTG^7Jj|bc?NW .>ԐiZwLc}TFi_4@%}Ѿ^ab\$5A #6t\#xi5Y}}$lEF>"0^(_X_YY'(]P$24T~S@v'hSiE 2w ޯͰE{]JCD~߀a)d8V8^&G%5@Nۣ[tG<-/k*v}XU6vԾAHuѲGOߝ T      5O$@$@$@$@$lt$+r|ZK ֥Vnu-<:nΦE8_ hxqp-- ׾Nu aѸ{xukq?3%vs]@1qbGYȜKdQNŲFd~!dԠ,_d29}9}NUn~/dv*^>Vk jz@Il)6U+t|ڗc/Tܞ]WA޳fd;Svx+/2և6+wF~_toEgW[}oVbzǧĭkx<[7֟EMO# gB˒.(IUq&4)E"GPOY#_!^vWXVk!~-Ki-:] fA[J~&6&l!߫r~IC ><n.Ragh^.ϫ+4qx[l\ ^M0e ,S]Y<9^k<pTlȷأ\|N6ۏb:L݌"Ka`ON7fu+QŰQ*nq}Zƣġ5;_а,MY561HtlW \rnfzNRLP#AJsԤҀT^-Ќ5 IObYўR@x?BxH wLhe ro64њپ͹OQG`+;X@ eH@dz|xEG;g#3Ϳ׾&:Ƴc3v1sW'kTM!     X  Y)IHHHHH[v!Gw0j 7_{.3¥ͧr>&᪙socM%5DtizPnAjph2>hWäZC #ռf_ }DL#tp_ 1rartRva.y6"5 Py0 qW ,3uAh*}sfv˼aJ4b/ @p%F'ց躲n0`P- v9>B9'F|+}v;{a#O._z0j+tMJSua+h+< -áj#~mP& lŒ -fdߘv/tKЕ*뻐jp]g&Я䷪5^jXq)z~"oS#Aq%2oq}5-HD:ĵj+>ƞy |m5(Ztf> AR; ZNyФ4ć4ST/Z T/|sYIMfIRSSR? ŒfYP\[2Cs2|Џe/t,x3[oyރ~.fj;%Eݒ'bMryg6Tpysga[ ܒy;"ǘ4e=NǛ$B0mqT̃F gU#΢":O>w}ڈIHHHHH       Gi;Ol'=1\:Q/W{3|x& gjZ'w?gz˥KK߀O`*h\ハkQ`6A=0aGĄ& 9ЌT΅vrZ` Fڕ4 )`^_6jڮu/@x)~fuFt`_*oÜ\o.oB ɻvbj3,qt('~KRM7 +ڛM7 ha .@WDϕ%ɟԧ ~SĂx-i$hbA\S8~ VC_SvqY)a# ~}`aPdq3u$>NR_h ҎВ#83w?>/C}dpZ(M[H#`oLhi\_گ O:u(]4Qew1!ͥyA7:H4'+JJFWݏeBr?WF+c]ږrŽф5dCRtda#}vh: zt6uve^^ jhTdskJpWBڧL^R%òTC0ZaOBƜm+[5w5x@#<H<ǽi-5vX,1DstEAZo Y;AOki;Z&$q0J7IVWo4vNy%qsϠY)$ހb/b5~m `en- < AhzN:]`MJէBߤ#ÿYd'+q%-ՑVEĈT{=[ ؛QF7 8?Lwq}0 H>꡽H( tYG $(3aA%[jFlH(V GCUi"-W|ϔ[q-tX:H^{MP ̮x\*5%pUqCe򇈷5~$}\ߜc6^TlHrRQ`i!{b[moE\۱jJq YHHHHHHH`H¾ JXWʪ0uut,vUT̙._Fi1PÊe{H뛷)]p_@}gqe]zja욅ͪ:bd/7djEkgs RcR\Y~t0j~4ݠ VjԊ7ҬFhnmf:6][Ă-_4;W ]O+zOb %f>އ~cD^;m EDZfDx"(vN|s,E *6T*#     XS0`MyҼO      U9Vֽë#ӏe kXkguo{;<cx%jʂla=K ^W&sy$C Y^"8|35{ϩ^/uj,/йTrmV% y{t| WA|%o!t}C;IPH[Iq?(yTg`BZxgC;Zt#; =,|L-&_%.F !un#AHLS[6 \[XM`L6Č~U$aCsE,+tQPϿϤr[B=д$ jIML\(R/FyvWw%]GA? ʽ 2M]FZA+U~2)hcQ_{S = )ךtVoQ(['e6(Q :i>zNX1R@‚N?U߸c      Y0 b_lc&#CKƻqoT+;va 8scYզT=ywNW ,ϸ%bW jL/VdbUӼR4\ LF}>_Uy.lW CʷcVge*Ž[[[I'w]I f x%j%hW!@:ދA~IP?"H0W66Q@1{rR%*J}8\ p{ܵTD*+hK&X _K]O6 6n Uԇ þ 4)LhY/RyK0Ȳl6oЕbpo"(~Khnۅ%BIDATIgAq$;yY]!YGFYc$ \Ghlb @1/K%) nRŖŗ]W֕%[zBC[Mak0%RF܊^,VR34Z9J9DcĆ~"JX{\%1LEaa $~E<HHHHHHG sWq㟪o5g.2?fc&;S–f|8ým7ٓ`k9Ļ{7v yWVҌ,P6cr&eHy'N"S%V6K6=S:SRzΒ%#3elSȻy%{\ `UӪif6H;ҡFomj6(]k>n.7fZcspEM`0aɹm?HLnoN;[`\-Y%䣙AՋR$L+W[3]V(:ZZVJA *MH0>\_;@0dQvԓABЌغӡūNBנcJ2 GB"{NdkЯՒ "!&, [@}lD RIMPh*֚~ȓ%зx2'?=g$l-e&XND>2nySl1_iwhi$$AJK#^%^ ?@n_ݑ kIHHHHHhfy4.wNk=ЗzK<,ǫ?e#%䷂.W??J$}L?{ +jɩA˱Lj/wtvf7".I?Ewݏ5Lw>Iɲ,$+Coac+G!(_U՚0%sBI?Z‹Κ.pvodP`mMe;]}͚(P*4!Mo;PO5S:,q5Vʦ 4'˒6_ VK|jiX:g=#mB+m;^. BhwyhPOHE (fσR_4ZY(&h87KkA=i;Rm/hs붂h[)֏AMd7@-n}U+⥦KmlgQ†\?U=#      `y0"     _A^wqo{]Gm]y%a9{hۮtqIQ28c k|L׵0Հ?J&0KrYaCߖ`5`{(f0cp3:yM7kMuGx[ g;&҃%k'ؾ $O&Mfѿ'ӋBTCH bDz1x3q2C짨ՠ`3uk<}%%\Ds(~k%~:ܘT}~&<5ǽi - KEX3$e09@[5ZhJcY˿oⶥ"N"A9̼%j# ԗNW4pxI_Tda0'+j:iɺt$Wq.R۠ KA)I2{E{[n"霿~& l+ڧJx2}<{?@tO /^+W?Dcb!      +&[$@$@$@$@$@$/#' xbm|A5еeV(j)ދG/TmLU-mumovJzK)0jwes^%͹R{x9?:ԴntƸM{"PN`q@ i{95lx;68.Yp }e?C?8>E椶e^L ͞zNv)͎/0^F!Bu.|סtnw]# IφV.n=8 qڴ)BSVh@Vy]JSҁj#P#+;%OCCt$սzg n%n q'Yӄ$ -cMdA3͋bx{+or[dMõn]1^~|szWai D%"Uǯ%È$@$@$@$@$@$@$`j8l     ?g{_*j'? rWb#4 t6ζ5ׂNӰt."3TuѬ姪v)M9E|8&"B4YRC,Lvo$̑2;3[,0g@[2 ǒ7j(U+lP U]ZIk?Z!gBe6Jq[qԧ};zW aP#<`bs|%6XYޠ3,?DW w,ɮx-*u/xG>#AHd/wC|=A%_5>4JND1_:miG9]5Pn~vR-v#~Q{xO\Տb ?7 |K WgcJMbN6Ҧ%ZS %6{D:&/huwG_'.*H;foWúCts}x~]q~6sUy̭kV鈿1C+5-z)S (yt$VOȬă8Z2޾LOeV/;K7Bf[7!h[Y -˖A=B;]k?MoYT6/m񥽠Ufb޾Q@=SE)+Ŝ;ܫP_VjdYnj$,A>+ o.Fm&nO/a&i*o}b3M8þOdSԚ*HѻU&9&k h1HmX%k5k\O%      ՚V 4^<k|B85j"[59Zki̓㊨\QY\է9i܈`Cʧrw _H6uMdA 3d O09HG|">~nvF||a 4O>VBaЂM* {T{B[JmYZKJ6%$DHٰ8 y©d(RAS.4.-t"|FCS-'R]QbKJ@JFv)cA5N˾~?{]0$Sȁs-+hCX(!"@ {>lk>Avd,:^_FR)$t^,mMHul(PR5$J:Ǿ Մ4vKeHP_Q -J]Avlr}:K6,O 眯L~$R=wh1xa c6j\%qAT/N5#L_.7y"ۜnԘR`z}d"xY {Oϧ<#*لZS0@cKx^L|;V/ɏ$o/"{xěa. L t)I^$V1C6Afv/A}? ]gq[:Δ\7ζu368L;CsB=EX[ojgBK/{&t4w}RZM՚\\Yj~S; s;V*.s[GG) RequPD#|t      XYnJ$@$@$@$@$@$!p֌ћ[̯aA>e1K%m fK?TgfWs$p5R9A@n:9*n"aOQ?; ~z;+,56 V&0}"ܫH;Mh/CXk`4Oހ.GJ3+L`τjY?yYHHHHHHH~1&bt<HHHHHHEǒq-Eh$8-HPq A2LE2O:jtm~1젚$^#uwߜ _Gz&u+Ufi7$;QЄY:%:G[]̵B`ceKfJ/5M07q[4gFW㺇$ l/] =mZ6NlT63&F yk?t N4-"LP- N5@&h-DC? •33 bC!      _L /' wFo*Sc[KPMÿJZ!U@˙n^{} MB>uI8 %@%166͗;DHX//-\_qhnq2{YIỳ]sj&iP$Xh^ο=\_?O/[10Zڿ¡0/n~ia("a7ݤHSva7̚3ibF&RoTut@ WN$LUUb[48NGqB$@$@$@$@$@$@$k 0$@$@$@$@$@$@?F 6t XW R!ecmo6ڵ7J;>& S1m~I=c['}toy-gK`w )˶g0늿4+%_ibn .pMiг_J;e$Jh{ZLgN"+Y/ mq%`Xs@ba NH~%ׯ[Uĺ*3!      ՞^!oHHHHH# KKsGM_Ew`"c?K[K4EǛZ8푮G uyW.r (c%J{a{n3w? A;V*F20g0mIekoq0SQ#GȚXi}c=Xc MFw79ZOUr p3q?\}&@_|iY؏VL]*??=u_qU} jJ IHHHHH?@lch™H6pkWDǻn.\zD`ABMlJQ.H"$a8F:@ɠ`]| }^A.^z ?a[b>v/I$+iCe[$5V>l))Xmx;&ۮX+o`<ފār:F(pl|c7UH^^WK/?vk[<&˞<;x3_ځn=Q648ݶsBuUR@Ste" WGqd\ NcM'     Xbc7N 7%Bq](θ@!;+|7[ {Y6GMCΩ{e9ʳ,!~ %_Z9BI1)tBojg؇Y وHHHHHHH?W}0 "'ƩLxoUcF;}7I|q}8 F=,HHHHHHg𢖉FIS[ 53?bn!      gga[      X]wqr?8kl?lO$@$@$@$@$@$@$gCIHHHHHH&lx595W0IHHHHHH~&JlC$@$@$@$@$@$τo|Xz* jL IHHHHH~@llx7>[]?XgL$@$@$@$@$@$@$`j8d      @ll_ XnC$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@$@?=9'IENDB`ic14o?PNG  IHDRsRGB@IDATx]U^{n˽t v+v6(`ؘOD10EQDE=g ,ޯ>YgfvDl X,ˀe2` X,ˀe2` X,ˀe2` X,ˀe2` X,ˀe2` X,ˀe2` X,ˀe2` X,ˀe2` X,ˀe2` X,ˀe/a@%G X,?{M5mCiO9er;pʆi-ˀe2`Xp6zX,ˀe@`vjzx X,_ʀutۃY,?pvb~P_1[?ˀe2` lbYlRˀe2` X~fղ6a z՘zy(= .4"ꇤR@ eL?>Jۉ9]CTox;HQu3~6(_` X,߉;]-[Wˀe210L ̸ߕ ̿ߕ&Z8:0?Wu&@Jkj$/RT ]RgL~ BjJ<_tfjĉ3T'R%❨J-OP =)SRi].KԷ8H?X % #JA"6G rʽnH8pC۴ˀe2` خ}+2` sU=Σ]=Y /Ra _jHbv uz ԁj,sFKW C3B;T [sEWGΔGE2[dȫ"8P!m P$I|&/L|Y#9Vn[e@Q_Jː1_y e!bbQʘBxq6h6zO;`-e2` O]-2` o1p櫯ސ3~6$vC6]Ao:Bwaow" o0j | ʷaz-FCnJBJ0dxGD(mՎȅ|<ۚ;%ҵNMz'|L{X/GJG`鞁HS1Ƭ+LӴDJލ@aw `rQ.0&f #*OrYEři҆~Du9;0p<^>O_,rŗչǃ[E᧑".3r: iAkaQXΜtH2@zw1S]t{ޱ7E9ُH0GxW{q06q @Pl,b Lcz1X?AޕeqAϘY+> HE<:GqGÐ(k2?ZF\6`f:p;<_pAg^9:O_\ ZهǂB76:$ v&ؖˀef ˀe23@#iݰn7P+[gR'*)¶ך^0Pp5}3W59`gݳ`|"8#ezPrAN鸨|:zn}I`B5[\1P. x/cO%Y»Pp/` X,W2`  ˞K?4nu¼Ff% Nf'⩽qNxReVy&t3F<FA! ̀ 0)G !jcI~C Dн/Րy9zK0:4:H[y,ڹX:4Jk^T{U Ib}Vlp5hǦZ\ ]%FN!:[ X- tu@CRc7kx/!ƹ4ho!!&ȏA^,. ֲ;+QL @ &<~H@w 7$Q={x\_qZ< |2-G0"/8OEB`Hp(MG w/bPFKA{k ~y&<B}V1IтzEzgBK8gdx_K} h *Igfq]3ՐS? M \#Eiܿ ʙ J&Oaz$+2].Ș'}8R[cށxDk/#fID^ č2j ˀe2O` O8 {ˀe`#d`]:CsSS;ӍPE~(ѭq%:}#M([)0ʦ]5,hUq. 9ߤSfc,R'|ݛd yBpobbG;vl*3 6I%=hg ϖsvu);F?XfFG;n=rA-JEƥu8("\mKi TY^Ci,20Ey/Cy!n(yo&9L`7Yy,ChrC:teCNt~H@Ev?@ uAv4S׹{@^,^quvR.KsEhTQ/o xR>EK|aq"y =kZi^?&&^^w1"sA'8iaP 2e'@Gqi_^EW. .^zϤ* /=IxG+OSpv+$y@-%0$|M,:pg隼YZ~ LƯ^'漛Eռ}WLpw j7e3pwDB1Aw lepZwZfySG+Mz㪻):[O}M ˀe2d?,ߝ#x/iӸoDء~mgTt 2#ER p1pr`ϩwg F qfLvR=5tXKm ml9٪501%{`TvrTMߪ6A=ɔ.2/V~}D\E=VϽ21g9ԳW!*w|S'Eg,ӣ` rF8^zEʁaa. x;˖ h괖46YMegph @aFUIsg  D5NSR@8@G.!l$Og*' \(1: \(eՀC},ŜLƘYF dU\G TY=Jq5m&Q瀨/z= $ 4uC z*q0 T* 0d`7ʶI#iE%L`:$^mK&uZNWzY'[T&yK:Al%D?`Z$'A>$|D9eQ| 0Cu[CF1C& ߥW`#zGSq܏uwU~`pgO}kV. Lcѓ}C> *s4m!r0h; >oǬn;T9X| oX9Z>g` 1ifD_*+q8qMWwS"kxIr#de2` oe2`3Җ5)RL-F1]}Vʅ"^tl> -/\^{paؠCcK\h&[. i3sa;m=^?.v.@#f6axp,&_(05;RLO)te,oJ'pDa_a¦P Y0xf5 7mt6 bT7Q[@|LΡZ-r>V)/LYU>u^&V|y9 ]2- e~x?r-z1@ 1 ht2!Oۨv#Wϡ`ihƊQ#9TV rq>@}Ƭ}A-7LbvcPs;Яz u:-i$'i4k~Y1&>u٥fNX%#3?/s*"TȼDK d$KL%Ѣmؓr)H.T9X- L>qwdY|v=o?Q+tNhȘd0u9p$2u7wW/!]ew3!辔Uco,0*g0;w-8Q%!QoG2 vRf'o[ڥ^ىsr]O .^77B?.6āo8-pu3ͻ<_fn,ˀeO`:RmFl^? wI4M^=%wmz,j`I4/v~5"8r }Za4W]sn@ dp aH!#lA}k#([>۩}"SydX t3eVCh Up Wa9Kd8YcOHyfK]4-I( $hr BkcrYef!X\,y^5-p1z:J*?J/H9XeaJ`DI܇XK=j`hJ7RzS,d<71m$diZRd=K5K< ytNxz(1 "Y(R'J*|˳b:Iɐ;I@L}%sx saG?2zVhr@G !1*n/Jr,w"_A&OѢ^`gxWh)K67ipU5a(gkDž+1](ﹹP'L >V;K|`P?$ˀe2` :` ‰T@s&TwM$G~X&L3BsBTAP!4TqJ7~cvC~DS:EiJdvߘ^8b$>C>ٝ]ڝ7.Gb_U.|ZmSH9%+ `pzIțJ^[)v.Fʁ͢S!FKY䇥}ELOB!g$ϕ^=t0SWH(M$s:R#gC"'́O/s7 q0&!2JХ:L7Ds-֠^sELUq|,k)g´݁184֙.QvM!O.6wi/粄#-En L\G.7r`г6[eq}^p$ tkbr>Gv_q~pEW|aҐ-mn\Z{'5s8Av{} {"d#~EЖ|r/>p>)L"eqadԶwy֔qE  P̓)`ˀe23 ˀefI/ؐcܲ>-6$Ϧ:Pϼr+>FEtm@8~7(uPݡF|ƖOtAfp!(4`sY0Z1yW4H?EE=Bj;þ5~Ҧ~[稇`8 =g`K}:%Q &w 3ej=5/Jd7Qco+2@Q?RΊ@F EN6mZCQiҰ &sMCP`V.MNu`p gPKfC%U,132lu,2-M_(D|)0VAAgz201E%,ǖm_7LYn>do,z SB"OBdGgE= 3-A:Ƶ!{W@XdEoπ 26<?Z OŔ~!ʀ|N!JC&ރhxmr`24?4l@ޯ58An 두=5 $}9x^Wx0 a?<<4pXBH?rf0%_f{;ZXa` Ql ySH~ HVgcYV5;1gBEzCuղqVKv,vo.v `אfz2"u5%N4Z4CG8|KvUS-Y>%1z+SyP=5-6"V3DGF}p}<p \Epd5KOW\ >;`&m>sSL_;H3Sz8nGɯɑ|` X X?Ӳ Xkt ?z.ZXn=stO'4m#8h~j6B' C2oh+6cQx . ԃWe\u;X)i}hE'ÓBY6^?{aT7L(9v-^ϐ ?I01 L5Y/jcbEZz]?^ak_7M>#2}ny|45ý~X?1At7;e8$k[qW"mcs[!;T1G>?6:FLEECZayF ׏rf.L_Lr%> dXl$27а焖D1n*+M> {5x{W8#p ,@}WYDڽNmq{<aDKn[^R1TC>COv`G:sW#acuf yZvķ, p+YCCs^$s"o?Kut;X M\susЋ`H/ c#T? gߑc奂8~XN=Zp⿐iy$ik S l)M+E*AJ愞GOdBhȏ㊆0t=9,#kޕ¬>rX0Qo!0p6 O'eޘ<=heM!BjdlQg~|p/g/؟1@ G,2_*`Ǜ??w%!c+HC)6?^ )U!rz8u 2O;dS羮r~V2  xQÇ4{?p>X3I /ahGY<ɋDz 0$qR\0)p^P.[q/P `9[8T]bNA"iRҿn,7UsdT2[|sUr;)IýDNIh7^$eqw]QK n_.R{eoicEݒ$s8_&g*'u?59w{3|]r8RɍؐWH_ @A _ˀe@z^,?ӷj-gQoOoegkw ]!P~`*'>;ˈ4}ቔK}GX!r;5;ϰDí݃ Pt||g凟;fS߹PFK(g*.dRN. EGCARn)YT0([ʤ8mi~ l&{H ~1R ̓Pf66m L#?J ڦgQgG˥*5V"]h WM9 6Srq]e:?uil'ObVt%D |'0Xv0Ppi ; 1w``}_ @IwC/+t֏_w|~yA}r|Ӕ^|?ks8Voع|),A@ _:t?Mi,wk<=6ZH&\s!rJE`FSt7EHMD#@,b LR %ARIaR rtKN- lo.LOhI"~ϑuxxnm-} j/=QXy?~Dj> p,{Y p>]] ll-*ś7GpYXq"rqW~5f9p K9ԩ7WoO K*;^f&j㒍oE;(ƃ{fX/ܱ]<_ g=h/;,FR,@aϪCLl=J 7qʚӯxGH0L/?#PƲY&M >J%YBӤT:C8z@ACVu!XFȗK TZ*{Iu"p::^Ϋ-zX<gy?}k;Ra/C.ZCi;ߨYeدR4<xXMPSQmOqELwU9䳥0wpW36p<̕aQ\ ˾琏ݭ!K{ pB[KE=,`SAqg60GSh7cs$XjEi[A $ C[!]%aBXԾœo@o #,jvVnwA >"_O O}yY|ϗ{7R{mLKi.(: cyM!h{ws'*߃~r4J>n잹f_+0Obx NY"2V/ 1@_Bj2좇 5ht5" %h,p&{-OSURb:dE4> թ<;zR̽]? |u· G#.X<e=rϰOVD,P,/3{~ԙz;M>(5yͣT9ȇ~O'vn?*l+[ugɹ4Rr}oރ)=&9 ¶WdvN[w3`}Z l!oC l< Rjj(4|aPa_ v˟<dA+L_Gl'`?HӋG#bV7gW=)7$/om?(Gbh709al9.aPnirf䤌lhq|>{'Tfn (A3; syF$7"gz@a'Kݓ.5iHB9 'yϒ;3c2#/]@85B,n 48iBqkFM;p;;P5X(ϟI=p ޺l>E=}%e,@h㮞e2_dj6QQa:߫T|0ڃTѢp_Vb/שq"/_vbĶwd\KOX`ke9gW H7^qwRS|&))FKz<_4dP!3 `J.Or:QG@~TP7 EC2tّ=rl؄0d},o\+!s{G|xl!Κ1& cy}L9Ġ? ~a ?`> Q;ω"axi'ȁ|f?=~ zO: ļ9I>nRHd 0W(wX"-1zŽs1`'5[  5]8_5rBzz}Bjyybe2`hUƍzb1pE]{r ߓ.H#E"P=w3T.%Lw0s>AgT.flQCԣF~E&ъj _IXt5mX6aWsn(97]*!P YXֲoejjB ;eI*雩6!)rQout&9@GNDՙ9cy[JMvo-+sxlRs·>Rsv*%,n(Xl1bkUd{Ӓ?\ IAXParT;ˁA]w{`vg AqS65X\n,@grS l> c=]POsPJ*SK[1Nwf\QpLvbY\ȕX h/W+1IwI$ i P-\Y- V;8 jz#r0 5U|) LHN[)TlV}U R챀o1R3-/εGOj28W1v Aʴc-Bg.0FbVBx8%x:wߜƉ'lq,,x)0BS?ٲ2` l XF~l,kҲ~kh7ޟ OWJ`:ʥӓ>0oB{̘-c,* ܫPaGca9ܹVNQAY(y?|[&T FoZ4١$ք*ڹr\!4I,/˘1̢ݡ긂 Te T(dF92? YB{C^FgH3ķȎeKL!*)ir`F^f/o 5q˫8#GHo3,4ĩט-SqM%孍 'p, ~`i2O`~L>pR ' `r/O* ҧx|t Ļ~@U+rr&1U{B̥@qĞP#ghrG"=gf UM8>BX̱`\*+>kx-V#X)ԯ U]}RzϐzZxktThϗ\0ssn:ΗSK9V/=iau#}_'XMAI]1\K29/5K;&aaG3U8=6Yg4vߝ x6$Mk X~ʀu+Yf Ꮦne  ˙oL"ߐ圮UXڤ鄞{u QqA}) N-a>ER koUoXwԘthǹ/ m" D}T(gi-g7}޳ FPQ ^ E· h_.z2+r*8uph ?ZsOX/G˓.-UXt4\1ՐPR^.E,vTg?}QG#SyǩQGi)# qe2g`ީQe_o";AFMql>»yB[ ~cff{HLw AFq '`Fy!`s0q=sԝUV0s%oWF ̕"Ț"tT|.cx ߳eF-cdQ 8^uɔW3t4!=3QBy;}2.CJ隞Bfҏ:)e<>wCgwXINXi e8-Z,--Nf9Y 3*0Lss=xwn[N22 ͥSwC,CZmGK &q:zTݓ)s_@eq.+ !;K7 TD.|* _ y,Z<|1'+4`sza);dEg_$ʙ&y[A~V}b(ՃP(P{c"?]l9ETwd9D=`๼` ڮ8PQSMCZ.0YC?`}P]~J2`3c~c 4M)Y<<[~|=WNW7R : Gy\W9ili',mDˁ[eU*mgq'xjhŪ/| E;n.֐o빿JT}`7y 9p/ eh㝠:*yZky'f[-2s,?ظIF~q8BP>}| .D8[0C 6e2̀uo_{ =6RNC@ ?IUS14O䢣_dvT[ /zC5-4Bvm@IDATyT,f_$[J7S-*9-\5]*2 2--%d6xE0af7̻F6݌1YAr`!򼋑ch>[jK!W鹗cfP`Ɖ-s^I`-DPDL DQaM8!Ѫ ө nu0Vo{cJ_m ֋ԯu~?K 6X,  _ce_F/\#A5S!L(^/kCS`9GjB"!:zAeYx0_rRQ ̊bZ X -:\-h0+)?Mb$+󥰲쯭拮tAJ)wE>W]Byonj1DߙM;.y?1پK̠K8=1׾'c^nAtzG;f F:}&4ߩP`&4;e} +@(v_OŶR|4O1( T$޻]3& ,yf<(l(tV- i!lߞ=̺1|}(ШHfLx#hmO fd p$G@ g$4 LJ0%9I0櫐h@-QaEWCcUΕS /WzMGeu% sw  W  p(Ƞ~αzLS+e4C*W}C}J2 _+f·<ЛwM_y/ۍp,ߣIė,0\ +ӆߵl Uޘ>P0LӪ ᷖgLߦb)׳i w/Rsf*C РkQPt>EeGGFc;sUAUR(~L /Ȣr/P y%4e7O=|1gw6^1{3Ck іrИ1F>=WRz9bvەhbX>le9 e2ڍe2`b`;'|b{oj:76~` xnנ6 p}ˏvξ1kqV': ]x"0+y|l Hr^s{ӘqEG^έ2S73Lm*k;CDbu|^8_J蠨L+#p\ӽÖXna &:&O,zEv^tl݃f9(I)x ^U]H-TSQ*T}d׆THy@,4ps6rpG'LEK%uWƤ bГPns`jB" '2{Cտ-3X6pbEo4ϩ% 9;X3ٖJ 9X,_{?Kil3٣&wҎ~[Ξ;Fv4H#,z0a)i|ĩ{M))wm X&y+Vo9.3vc[m5S9-Pװprߩ= pjhMvI{ٺѥcg^6nkLk^ug ]|ȓ*B4hH0 Yu#>p)}2cUoD$|3PP. 6X,w~2EkYU沬)f<̪.@ !zHgwWs0 żz8ʲ:c 9v~?FVXL;K0&R7w`=kl!ѫb7"R/BmroO\Ӭ)rknv>AYYzN1Z4X|Crsa.|\Y}f}7Qv6݁Ehil@N |Bƚ.SpvTvTɿC1e՜g`S5y] &"dˀe2?@53xUnb=C>^D'} gOo2[~dtHX Dkxt/bg(HE`8:`B#k09ut5ò߽pzaj݅F+Cm/\-]r{tȑ._:~j";z7R ʰ[TFz4GT3@L'tO!=F{ń#AOUQ0-k@~#Ȧ|_3zK$'~2b7=^ ߕ^9[zJN*=s:$z]W3:[6?#PNw tf9M+~8DwP'@Դ"Gi7ЛDG?tX[k'3o{k +Dp3ꇆ#tlv(n5%d(gϞ}iqsԴ|*,X>K&RKwH8YC|'tE& ;/&%P/qżFaӀ;ͭpj̏[L{l X,g`ޏ~ |y7ݰw![TM&r&q7i&^"x?n4Cf,~8fN5k*w&UyX/)>%?9C^r NP }R"ESbn}-]Mq|#?#L`|zҟ}W[ O2k2n_EhN*$N\E~;-(r;9#1@Ll X XٺoD ˎ}:?'11 n r~H|7nHeղŧԜYJKrC)tL+oYZ@-#^Ԡ̕ آQV'#ݛ/h 8٭Fi⯐Aȯ7F#~\]>S)SSyRͽ-_aGgG'"=}.Qe IAW̊2$, >A?<>Æ(~ X,N!]eaθb_`o}F7\"pHb|!zE|@0#.GVEFFの, +s%?DZY4HU HQU9@"N^\9kYWY\YQs ^uM2c"jLdwםt1k#+>i2x.lyW1pu7$X*_~d2`8Z ܻ)s 4>Hq%l| ;ɞs^Cy;|aƺfb>0L;[i΍H|s~CiOΊhx`uU/a8gpst[ : x)"̒IнdMyk`k)nXl"h)g LnA䉼xC$QFy2FKWYNj[WL!rr܆ EvU`]hoc0.\0d1L1 Az21k9m2` X gKӓ_ӣPmcny* ;!nO`sMK`%PK^J); LӁ^-k|D9U8RUtJR X}.V$sUp Ot2m gw1XWtyxt|~@Қ0X.'N:ť{CuGVm]iiU{函 w>8/=㰯?fS %^YD,6߾ {'E_=3{9swTTTL,"&P3OAQ0b<1g%3"*T䁈s@.MoLsS|VwOlMwUuuu!|+].OTvKxG:" &c8wstM9EbSgq&G4I=paTJIPDzD1 &mKVwwdvHJf߉J*/EߤѸ@=YS4dW5(?Λ\G*s0A9٨_ "ME|2choAh ڷ^>?Oi`2a7g?Gvy|QMFt@|~4S|cz^;|kD @ @Jfoʹ7ltkj n4@(EHֶxC K11cb$oajO?rcwq}`jP2I䆥<#֓Z)VA@$vہCOPǨ!̫z#Zϑ'xg`Ou{_tX('^.m,P,Fyz}K.Qџ`}}K}|L놗#;L#z'ğNᑉo|d8h$WH pR>/zV́\sX@;]c|wJxl~|Fr=~&N`'܅[?p{U(;pLN!h0?~{4 _NߒGAx2Zӗc`=X+ "V V M6ͿRy}о,Q*aJԈCOճn&x9-K}wckP_Lc8ׁݺ(xiUTI Us+Bŋ5,aá-l鏜$3ivBFlh֟t4S] ȚP @_(ࣷ% Z|?SwSq& >>z1w{x't6{ ^9F}!mL0z1:>kLx0 S)f~6g ե=W)isPπ/]KM<~jF4`v0p5_ DX[Pi!&|P9jU&ճ6.Jr`>4bjBm:񮩟M1D?ŤȉC'i/\1 $H @ @ ?CW"x+ऄ78]ʟބrG:=Iv;ۃ_CvIEE)Cg>/RPBeR*.g=-|jj|""5EMjY?hMmsAj~f/sE2W~./Ck|~aGI/A7= |gP9A5/ (@ L/}.n&OWh [wJ5tx=7|Akq;x"ㅱ/eSp<H`Z+^!)~B opur'dO3:~iA VQZl`6/n$z._C5L0%}FٛoV @hB/ (@ @ 0Ak hf+S&L}cWbcqcv7q,ax?$|AUԱNbVW Q vTS ӐC PbӁUTUʑ khu#Zu {5Re?ر7r!E9װ2@q)z]ΨR?2νQ4`ĴGdX"8AAHx^9 ;i^{<ꢟ% l$"$j=czaNݲn,&a+c.ppD@Qn=lcbE|ԺPDzY arɑ (,q<ゆӲbF`UuT:m,|85ypjhW:'Oz?H LaJ9̑Qޙ8yq+(OHTdxƠJK}_=Ɔ=ư54nܞڸޔH @ @, y'g1y<76VC˯G2?imcCg[ږsmDK JQf|Քu ЦHbТ؃@Bu=1ʮހUG5EʞcqZ}KiV (w#XЋVgvWsW't0bw%nS5/8}ܣTN>^ЧHa4op[d-Z2͔AQdzH^8 GV. f $`0S6<~<]c·wS5 OصǧTa^? HZ q!:rj϶w?T~:/5\_?:iW:Ugfl >М sM#Vq `=7؇|Xa8@8@xB>z|ȪD}$gAvYNZZ:pҦ ҦuZ.@ @ $`%I&ҡ+d Dk/s+rp ‡e t9r@S8>;pCl^CORMj>,T)3)z;0Y8KΘNѧ喾]<kԟsKۀ] ,D/ t㎷nN 5r{%\4oގ YuA;4x /Ioo)pIHJH@ۢus!KR{'s0nJ ،_=AnzgODŽgBdn,nf ^)tt5+ gQva_KP0u(Ϫo ^?~cĝl(8 EL"]Ђ5"j!|3Qc3{`g2{ye?*%2@Ny3Al $H)9#O%\='f܆k+" r8Omye62)9 9NGRV+PF6")`[*k<^+Gz_X dG^4TUEtg8ec][8↥i^ߎN*J_V4?1/o0yK%<H VKJ[}apA ?V|כ6cww{sO<Ț}C&i꒱;MgS1Uu+b`)7G?~yql/<7 $H @ 6 )M7ؖ9 V;>`Vg_GGxqǩ8BwvP!k2˪k]p'ʭ\ETl0N \HfȥYvЦ-,UCJNjC V $Bg6АYd %p&ٽcݽg1s}z'Wv<H $' 6J`k ԯh+3O(DO9f?U N 2A?pOz_ RY'Ɨgcݓ0#c15fT PWM?o@ $H %͓^9<֛Ӧ# ز9.*p8rHդ#MJR&,  ,ʺ|*Mz^`WRr,p Pvz`&u RG7O8'X!Mf B$Ǣ~HqۮӏGL=}S͠(w\r FGiӖK<−_ j $8 h&J6D oB̄0'?5%O|:J s sSB(xי u{8]P Rj'ҡbϾbO<W@wpl{R [C[~k$H @ }>KƸ5RK\ yB+= /Ёkˎ<`=%cIy39e2IYgcM (3 cl-xuJAǤ_'ޱTߍ\#c}nt]̢@M\$szX G`%\G˓{w{ouVoeLfbקq:ϼCٓ0"qV]anq5&<*ɜ ty,vjϼ ^p ޫn+}E"j*ir &&sF?R{=^HE Wyz7%VxL̂&>O* 17W $H @ ?Sf#<>R{,p_> y_wځQk(b=?,uQȹ#ܾ:g̢|^NE*{8C^>Φƪ\dz][qkE.o>/g3pϡhE>y[)/!v`0yS@P lT01E>i@72P7A_2R1ZTF9f ΡcaQ?ђ|C.v&@TO=p6PmP|Zi@;6LݘLGYmW31ԥR9w?*͸/!6鯢9m_G/,MڛoŗrPc@7K`IH @ @oH?Ɛ]V^؇W[(Y~@o+|ЭR^,SbV@SҚ/}o-u/Ek؁=^H-8R@.&|Lz>BxEHu.۾,Q3Ogѝ nR4^3g饌HVf}QKo@  '4},w Z=ß>P{ʀ~3؍^uP@RN* Ԟ% _4Yѷlܗvg:>YEVlLJ>.S㚣^TjBIکBa(`Yd`&zPed?V;Z,༄vSG@zWՈ:GNS';~ )6s$^9='ph K!B9OJd lEu_eX/~APH`@78y_LdKvXc;2]iVݥoYD}" EbۏR,c' hL47;cOEAd٧f;KުVL@Yom%6Uݲ^K7?E+\žpϻTky"M"O b)oi?_6u[zGPH @ @ o%}w^qx]q upG Cʚ+웁[V4ERt6YTeÐ90ԱPceF9S(+tf:iM`ʨEޔTi#hx-LkG7G_~O7ݍz=CQpunNJ={([s#? $8~Ɇ3=W̯z/͜*ky`wjS)g,o;t]:1QP3+CS{٩n pFڤǘAǏwV."9U䜊})Qjtr=Z5A4I1[@e_JuMAgY)w#2ʀx+$.rcJ!vr`'x $H @ @d X>{Ѣ%o?YZ0Aّ1xp$9'B/ p 0w6奼ų-{9T ڭ ,#9}.nw<;쳗 [ i{/ohlS8bmXXQ0q [PxFmsJIf`I +^<@ۈ6Cl s ȯxT=?[ٯK ^oA\>F[)]0R}:& RkKa*U t B'ԡlؗQf.,GIfپ>JZs F(2yCץ^=:Ooa=<]_2!j38 >¼T:L5p08oޔ7T 1mo\$H @ @ =k2\Nsޘ T!ވ ,ho-ʶ a&"+#H` 'ㄯc0Z1 A? `-o)!;ۭtsԨq{]֞G79~ c]YkW^M􍸮͹:'7h>GmhEصVƖ!&pL44MOw|Wn[~(n7plY@A6 dn$S0lgF[F Hv?qh\;lSl`l1DuJ'FP?@9B'FG(ݐf?Cy?^ʯ?K\t, 7.L+ZcWМ;O-8e3;̴GQ;m]nű P;IGWðY{Aq{{=F@ $H _& _ m\CW,Y:.g}83Ml&mΧ9@;GߦJM_OP^:S4rjj.43h~ utޣb{iZmOu$ wSN}?^]m|Bk3 ;-G7,r4rχ#f)Ǩ%M{k mTƀFo/mT&׿?6y@\_!׎ ;?2).dyq0y RٗˏnPhIuvp/Ch578Mw 0L߬Mf+mSMV |fv78-&Wp) TLqD0 `(Af>x/dWyB`yx7N/ $H @ mJߘC ]1Cy*B&KfLکxS:XMEr`},NP` R5m);Fup aEbpb0{Ru%g;jUzکt2dv; Ճ86ǎ@-n9>_cb-=v}YD3?|`؄ l0ܶyw] x#~q l3Y-(Ov ›bHWeFw ³05_~ԥ|Lߜvx?zcw`cKv-1p[.]u9́6;Jsx`Բ˩(^L(i27ziHL%oW~Ҿ؆}poB=s ɓym" $I#H @ %`Aиa|3ID UOa?\Ք ,WRIÖ4I৴d /J&{ oFk.Z5/LBOl(LDMχC`QK/GEtWQ̻0ԑeڃQDMH`Ҁ $J`?m63'vּ9, YTd@\T00uޅ4G.UOHx[X}7;;,.=JF*T)np$MX5DWׁڅa4 P(Z]ƎfRZ.E!/i Ne :vf_* Ȳ.&3q{F D`3P <|R}cy?ʹ0r\n{>#@ `F&S-q\i=K\vХ4kg`VoY+jMY&42s ^ZKvV3ALSN(''G~ֽŒTŵTcr'E_m I>uS5NA>:GcaH_Jk|ֺ=tlmoH 9*u~'g_tÞ͍~A{t@o7~gזb-ٱN 6!*x=E50p*CEz0BEɧ`|919ڽlIӒR@G_Mu ՔYSV[6a87kTG{5Cj% ܁:XӀWepWϡ-+( mx>9o7Q7o c%`F 並%L62"dQɡQ9(]JR!qQgӧ}u+tm^ʪ1ǿy>\oFEs7%x%dQd#c`GX# 4MPR< 2q-}Jߢ=31_Le{ֵAM{r_䌼7ѓ;Ko{5~M-~dPH ._7>ȳbDa}ͥ.0Aa&`{!-^9ļNhXʏC/Ĩ|˩*r#hN9< P>7 aRUjڣޡ>Qr TUR#FMLL_}lvoS=4M;z;(cp] @ a k&O/TyЅ^; ~TP:0&d "Q?l Tߚu2%1>hOq~wC;2֒=#Z!bgV7 L]9]y 8fΠ|1%8 C1?/X Qb*b׳l M%`ԒMɎ4tL-UgNt8#L1c Z6S= C:Y>^ P> 7[xN c)73vnP)ꞴO @EoZTĪPt=yzp0G [^^xp8d,p2[JEOu͞l-25>w&L†(HYMƍ@mP:^ #$=h|wfެ#g}ӣ 5XHuԏdP]}%p2}[o30YM>L mغP=R-qHW1DMDaX; EVRKu&v2ݗwRDk9~$DHA|8GDJ-ScK6ǔ~?>ńn/o@LsDD|sMw7wl]%զDF4:m?C$H`yV~inϔ{ [QO[5Z ABUi(&GdSa(Eے_)f"Wg"J5OfmJ[ {)}5Mě5ؕ+Ap+~4<$Xn7?GkNf f5|op#N=9 S ^ 0_gozQ"=:7lr>]r@;EڋT#$Fu@]̫\xHuC k9EO 5k1 [~ ,R+J`uU9\ "{ԕyϦ1i Mx_`Hyfs'h#5aߌ3dBL7߻AqOoJ2=C C$`36ς1@c7KqZ as[ e_^JʷY1/ r[ch1x/!Xa5Czm>q|DA}t0۸my0s[,@6[e~u9iNJ#tG>Thw;]'5~Ir*5aVxc7{;lTPQfe ;ig}Gx5;TtDU'zG-u-?jY^*ݭq( z if& x.p5LBt"pFܬFd1Z<㟙x yS :3kMPH`TܛY N Xc.K&PaMl d s.8͕r=ޅ~TR"T&3 ЎO7QЭe'wS2~QjO&_17xb3P ݤYH#Kàv&V  |4 jzao1F]-bP:FꭤP#W>.u'm|߿}8O+p jz'650R<2 H{(cbw,<w68@"h_7~HI<+OeY^H}3Ʃcqa ˀ۰"3o2A>7[ AbMHTm)j TML\g^>L$A iCIK _:ɭ o *3O^u;$]eIt>%AvJ<#důxTE:}gZ,G0cG;+DxEԒyY+ʕJfA_ʗIPVy}om+nQvX^$>P iQXP0R0ߒQZsRI;?`C. *)H=;.vx\ / ?Dzft] ゥJ~W^ Q3}>*3S:Cu' S ',rR)koTuNܬ`溇^"O~^$ϩ;^oNg^"s}'`Ն#›湒|1ߙ %Aؑf8։Fv@^ tHR@᝶Jڀ@ n w5c2/џ1|Ì+T+]4F U<*P5 Owc0z&e3,3r-1А<V~saY{X2&X_ ^'!~qro ``ȼpdy <%$sq0Ko\$9_aˠ^" T%]5S_  4ް䯘/SR$b>=ܿFo'1F/VK7#MS =>S,xh^Z &K`U R7 GF[+}G2?7Iy9#_ fL?eҏt0I nd"<_'% $03yr^#j(=0FV z,nI^ u5gKx>}R|^EP}6ͩL˚%EoՔxx(fM̷%)`2#-w5 {a R[y"7juq*S~ݚe79UOπMތh`; ptV5m*dh\xJUESbPg xH5*N1 ™`fS^z[gdTʓY4x"0n*=u'P7M-uu2G#ނt`KSGWMSev;GEnq~i!!v31Fd -LTCJ%cx<|*GW wJ3*,ԭV ɛ 7u&>y|n[2+I~O.G)٠; ;YDl^,G`~b,ɽЌz\<+Gս_4H׉Z%AA#ip6,3P$qď ,uZF;Y>PQu@h&%T:ery<ʋXJZ Ln!Yϫ܌뮧O2 2uQJ>_P;*/VLJٵʆ<,J<'LH yǖa\FuFaȂH҉'흏RktV iJ=VuJ0Np_`Zd$hsoG_W%o-hյ?FI,266Yb$*{夗K^ҴZXǺwP ?Ah tWH`Ե3w=˩'p+{^Tkhx"uQj[wҐ*1گ#UuCC'j` [>V@Z*9]h< v~ޤ7&{kOh4 (aؽ%5^ެo8L@h "?W&BƬvQX>#r꯮ftLNɝ{ƪOjA uP[.1j8ujKO֮\巻b|%xTqub&(\ q *o ~Er/J+'ڻ“FUH~xϧoo0 lJ oXMgP?1A[/а8HpVhO)*j'9vaۧd Ji?1R?}w\%#S̻繻ƒD6ɛDk{/&;k[e@/ݥ\.FwLr7"\b;C/BuUínκ=9DVg+cY»~u``KryG_l/~Ѿ̑;kZh:$~$yǥ|ih&f8վ0#AsD_- Y t$:|& @69HRc9ڴ1]Ѡ dAId=x)#Ɋ:'Z1WV~,V5\5:*YܙLnif1̰W<Й6e 8yʌz 5MRG;c>J5ev[$.UNTp/rpcSq|U~Vg69\σ5.6 }ohV(Jh7vjӍǬ_cNcl8Nb(|_~! )S3FU71b_+ѤRܸ2.wua^@FC¸o)WOx+tU0߲PG<*+U')|Z&8oEbc);[3JXRӸŒOJ `zY-sm};?Qd=:u4M:9cFgՌvI^F GS[$@'Gr}rH|xh{ߏ|Ċ%>Vp ܟ.p2O$RdU̐TZ0o'. 2uoR];OAk7F9/z5*, _2)gJ<[ g5r`v*f?;tn<ßΧ\o%uT/#Qlݸed-!Rh( @ _LF?'n@q[z2nTV B UT#n_k2 x#h&]܉Y6e龣OKJ>߹pg0eT(q]@4 ?MLǭ,Bu`^ $Ԁ,~+GC r)J7gݳFp=0U.*X1}i0>DQ>K^6@``=x5{ ngV̀b!nP @0fT&ȚE^U73_;'cZߊᵧ^Z^FV߾~cb0s}0{ǎbXi+\_J{Qt h~I-Aށ =}00MB8[ɇ4v1~#!0Бʻ>>:p2WTkfU-T}Ȉc' b2j)\LO$H1@:_]BJ#T:C3Rj~tDu4"߶8pEޖ Oqyz.cLLC"-0F*#j)섃y0P{AJܴ1CYA(F|e^=3H=^d g5;"/PƬ758bn2٩<ޞ~lX 9;sR` H) 3/M{{L\˼{cQĔ5ΡΙ!fQ9GMM5&.@~YތobДsy6<_[ϴΕ '`$K6,=xB4 "RTMfPi `  W@+=p8_l57w;9g/'EU@X ??נmHV{.ߎ:PX#_a4*IT+/hCh*x ?^5@ %h0x5fedo̞oLgx {y+,jP( _XjgM>Tky'(>vy&,織̇>LV< Q{";2o]ڇ&! ɷc33[;ӣ= bk9SI%ivHGmY)r54(=joQ%r3}@'8AOm vw[bqx!W^Z!qd8"`ԷËRc\ܛq3 >)NYXm<4*ļ.`D|0VLMelݑ%@ ?\ތ FmxxX#ǝXMUG쵈c -OG6E܁:Qc^n'dZ=߲ҺV2ΦSYPiwc4\ȝ /6%@?ϠmJj1(ֹJCv +oUUH-LlI;pNx:wLmlOI f0'Y:ECye&.5  [g],O9V={" }K=}[/lچckʹC+[=|* jҚ[' (y$+z@݅'?ˆmK N9G] ־$[{ԞuSBoɻ yQEO~cɈ  f<Ֆz$_-[ٲ;1o`vG^$Aߐޡ>Rr;c}DvJ1xwz#ҏg>eu]ޘ낔va7K̇ڦ^RY@c8w=Á~`5b~ҳ!x $IX(#;28D-#X0.Y-CvC1 i- $}v sJrӺ=FpZTWsP?NJ4_oMS$KSaA+.0Z }1/SG9aaV>UX5jJmV>[~O@z&ԑ1Å˅[@ (@ .cVsE9<8h[~թzF6}1VuŕO3V_HVXvUX?RZ1!q?#M f $=O1Q+rrK͘<4.++F1dD9qyM^hÈbc0*N"FJc=j*Yw#͸׹g9!;KʽZ0rcYKW{[wN=Mjb ߭b^{p7Fg|{rFpIdS/;1S];A*;H3W3oUʧ(qAJlw ~N[!++,Bc ;,9[NB}5Z2P ?AO6Z^-h֚@3Iz Q7֟ؼ&SXũֲ v{'EzfX2͂bs̘*3 =ÙŜ&s:3*(㲻3;S}Š'{UMPjROCR(e2JmJ~qO#F?y,/1@ 5íV̈́T3G> P7|M۫naY5A`Bw\O"^/"o^FY󹶍&L9W"&!%=I']Ŷb0eUk>Kx!mFUiDT4 +uFAx c'sbdΌn806b)(Ζo(/3 80˦z<.:;a\_gৎqlD?] +e{@rxu.arbT?B'Bw\`3N䨚x{DSR `VNtdkk/X<`EͷݵV;5ԨB}&?Lc&)NrW G=/^p7[\r)bCŸp=] o˫DrcVV^I6z,zh%$1@l`^@c(:\o"ӗ*1Wڦf:>lcU82J &;||M!NhHf>CX}ZgΧQ/l \8fvInXg!_ئPFzMjC35b@mZ5|46;'%1TbhCegi>ɑ!oUSߌt*x *nxMyE,{5a2_Nw^6M&Łen?s=  $;+:7ԶImD߱8r8P ,1=w 3Rut8dXvaY ݵ$LŊ#RN|;'(c^m"rmђTO 0+g>fՆ51@nWԢU}rS?3EAw29AtO; ll-=3R`J9TFRڦyWj'T i^X(AЅh&CNJ$D,OxdQ!1ʀ)7Qsp!^-2?W/@8xژPCDLw_Xέ;9֞> m(57\Vaq99e:x)ni @ק7kwE#sќIx~ds5Q/G?.5DiMY{7,jb9_m8rLE!(Eo%}pðv?GwuC.$[yoƎM~ _PZnjߕbSqI.ӆz:&翐ŠPL)= \-FK3 4wťTXV$yvP|t M~e+y w~jzYA obC+|ҾH4}K6>_f91R<2uMjԧRJc` 1'_OQwxjGbKr}>)u}f Qf'Nٝf & / %*SC26zϣU_EbYٿ6X#;1;HA\؆ IJq7uĦ)8cR3K LZqa٣%,x’*8֒J|KnKzg8hr]cSҋw<;<[Ş@0@f~٫Xl12(C7cf  2?qU`F!)&OD"oGD$ OzYSkFM߅Y}'}0ߧaBO*>!ԅzDVZ>ګZHњhk^rSyʹ(64101,ӗ8dtҧ.[v.p_\>01UՀW-0yq(T%9YbCB9ęC'(CWZ3ԄF 3 03`甏 0U~R:J&:E35F&T ,DrxO&ޖ|Tf< -~;&kLG@7Nnr- bϨ?0YlHX]{%J/yى&MY҆ҭ}T[[s@]/NMnhkRŶr?运;x&w$}b}JQ#P, dP%*7 }j_Q3arRo|XP'''tލoM/"Yϩ%Ktpjo$SDȜo 03`㖏 0/1`#_EEژ"fr7qzDô;`e*g6[!Ҙ<}f<j\s\D:C/IUk배h7Zh ^@ao5O2WԶm9ہl<99:$`8;g;pSc&~uNj-)-h|rL?'=I޴D`E*ܧ ?U"W"S&uVzO"̤Cb! U3%uհ_°?P=He%7̍f0\*PF((PJ:tH9J + = }KXR٦ aSRyu$Wqvډ"c Yd;KX܇_$lsiWL# !6ȘIϭHиve_k%wO̎&rBTd<Utq,Ӟ;%=of`@|3 0̀eRv5SOWPcmԭ~΅5I50ړg}I\d 02҇AȦ'H7G]VpYͺhy#jV^ղ羖OWv0B8~ U|J#d>Bum2Ug df-`ܙ1& ;|Żަqɋ$MJ9SnܗiۓPd*)2&K4_ˀ_g ՗L-Oo#"K @$003 0+vaMt̥[s,@4C${0w9|;CAr3ѯ'|Ϙvl5B$rbt:&SE@I"B./ˬD]Cd63 0c8ۢgU )^Q6VOH\7D:V[({#I_oO?0rݙZy45P]|̠55H6]lzԱRXkz-hbmt&!8;tp8^ Pw>HX.q,|4/㯦#L~Szjr<%*pB;|MJl+ݮ 1/b1.!Mvb_JzXtADž*OrBx %z> M }0[$S <`R6vRX 03 \'v`Uc 75W&4Y'[ 5M5#ZS|#F־EX?vHם9VbK~$>% Nwo' >a<2l!D t[M?_+܏=瞍"v4@sHN>TShsP/RԟX$?Ւ4a%a<zjH $DYO&Lx09t a4}] 6ǀ{;w#sĺ;!JǙQK`&RQz](B _>o[ӣiQ̚y 03 O ߒ`Z=M *#Z"qq p/ @]H_&ώ?av a݃ru~/pJ9/-5,.o<,oQߊ:D'ξN0v~[V9@IDATrTxKjT~%j́/ĤmF䕥[&:N@rlm:`g`"#SpOO#>>&y?Ǿ6ε$ˍ$5'HkW'(Au /OS6EcAt2?5k{Of`f91i0@gD`{=֠n#:BI1GEN>ۇ䮛\X*af _7adᑄz GORmHkdt25htHuP`ްohh Py7~Kc5Dmmhqٗۖ0Zx$" KJWދKm{aGVw\ѱ#eNu{ҧ7E/^Dr| O '9J RP eU};)0ℨ^Iz^^2Stc*\[`fh ?-ęfhV 4 bA-"|Wi"H>w 2"30,D2ntK1p6S&IśTZ>c<߇_<h?dojzeAܟrs8 qv]G8:_;I_zg淽;[{'}WC }eY'D%ݪْ:bw㟘Mr#ߚ.IԙbpC5ph+G+?VdcBMxb|Dhз=3 0@+g/`Pb:NB Y&Ҿ [;Hv&ƺ|7! ˤg^l+0E;Ps@l"LwÀY1Xmn ϝ9`+323 0vڏ/`RQuW^!0GZ/v)S= BDHU}%CD߿Cۢʻ5ɽ^/j6r^L.oc ʀ蛭􊚝aϾ2Z03_kOJg G?IVS7!򟾮%K#:ྫྷlyM+/\8Jʪ!9Jk"E-gBq)*(0@˳)S\3uUj%7Xe`a:` !,23 : 8Υ230WiTt&nKx;ax'q_$(! 3oT;~6Y\EF!2`L\;צą/'OT$$9c)2RJU>Gry[VkQs$_ UYKINW ab'S[:oƦʎ+ X''D5n7k~XC {Ff`f`e3Vُ/`V 0`Q5 )!(% LMPqt:ބ1o%}'OLԬaش@c\5|KW/{90c*R%hԚm'V ؅[V;* q?_{]?&Փй'#ҵBvB5OL5@`c{}lG003 0v^yf`( l=X"/Wk~ 8I9Xrz {>uq!RZc*R:Yh|C\ "Xd8w>JFE*Vv%KnayAm>XPaCm0?񗒎$P~ N$sZj|%L*ZT^92b7Q 0'"ԛFG023 0;'x'f`@0rgo%_ ^Kp7ˣ1 {; Adl.'Y ,[!h8h 4:e$96E~t}xoR%_*yd ˟>U܇/wY_Jg$9!b#c+y2~`g]ܙ,6F\ڑ ~f`f`3`fѭfX0LIU-_(`Hj@8_>qFޟ/ p0 2 ,cc FCk3`'omM]u!u^]˾^qG\ޗ7UZbD$dž$ņ,wu(8;,K VtzJ r-gk 03 0g+S>"3 "H0WU0_uo&r)ś tVETu/laXCXfH,u+[vb.Gdp% H,sź$uy$WG²Q$0տ'z18<"j{5P0EE|P2‹5]Ae2Ul v 3 03 <x 㖏 0UlL|6ó߿+b-Xa_B!~/BP|_-}UfEk}\>Jd8 b7>16u2a$Ɠ\vXKwt@JvIUѕILU3HVatIKL]R=G6DqH̔Fÿ`f`VX9Qfu3ИdJzR"UZ죖uBju0ԇ۵>O0t IEXdB1]`Mev|Cg2I'lxd,@6OT"AIitj[%TqT0PҟPT" e~=dX[5Y1h#Y^Rva3 03 "Xc0€5.j1]H K>(~up9D^B6 a\ 7>aPf)y:IQ??Zi*e52LWt du_vk(#+ҟSKa;q ,vW":^$i#`A䀞qof`fH13'2`#oX HP(:aCj70 9pG4d 5IV+T]WĻ$sk Txp3_(30H|2/QSqڥ~Ir0N,g, lu\QMf`fh @==>3f`6u9!_tn)vjOw!Q> SD[XҀ9ŵ{,@P5]}Az@y%Wh;;%@lq8_}ڡ|2Dф:=li:ai3fh~ ģTJ MZQ*kEag?>R- G\Ivq =>9[aoyZ0Mh-Sl  c ܏Kp?,Ŷn aټꞄ%7UnI8[B/qP>95b 配{{&f`fh @|z3ЬHd~jȯ&ׇ\QjoB+ 8 79q4xkՅ3!w`Y@6>Bp8P|%^fbO,?À2&,ـ0+0_: OU3I_yHepLŻ%ǓM(c3՗)CM@fIFx 03 0͐x3<'>%f`+)iSnS/HU(pdB+MV@սs /p!,ޓC$p[ u0 w~Ć 7'yud5m7țU trjAwO!99k’+7nPU ܩVT2d $z?#0>]fX .h@wd(&9X!0:P@ } gG-ܚw%,>" nvMalUxqL٨A3ZbSq] aԅWq_ַA~mi>aO\W҅0VPo28b&5E-PEs!`f`Z.r?;>sfX ؈cQ3QѲk]"rG9o>M $g fվDrf0aڣ |1B+¬fXgp]„LNTQi O䠿X ~ UkGBh5b 03 0h"_3 0l$=EJ;G}VVg(L N $SrufϘ?0sΟTȬwy\M:]vmY:"lu`ڗZ.+aɏK ^)!sI0PEE+Vۑ^ "́߉~JM73 03r`@̙f`3`#iQۢ QU_!&0胸7\23ugfM0Daz°W&GXsfX.@^%"tNasbE$c夏!$ݝ0/d } 8kb[x 03 0-vϐ`V6_&᠕fn6ahӤWVgァ3^HΗ#lp! Ʌ30̼nE85o)eo8%{^W _}"wCz)pMqBcBT>y,ƑU./(X?Լaf`;Z' 0 6幭D~QE q^ wq_ yn}DZsN"9f]{z0#d G}i&RAJM 9Te ..Ŏ>!ƉCC뻸 )Q 3 03 r?`̲j1dE<7~tw,?0Ne~y8 ޤ ~ Fˬ {s7̀e`^ DHmRDJeq*A=0 NSE؈@n$v&T u35/k23 0@e3ZG 0P_)1_n!޻J9nj\h =Zޡ}I_|9^!nЛQ S]݋ DmA'2bQhd@Ez BwESO+@Bp-PKb`(y 03 0vϔ`wK.`8n8<a~dE gf-͙T׋P-Ӭ@&͘^JM,2B_ *>"n] EOS(N)+چr]bkB8] 73 0@kebƀ1|ڈ.mqp 8`C`~F߫̿;4@;IV!_/mUY&#] vu~Nb))0 r?XKl f@ 3 03 ^@lʘf0d:2y^ Mpœm)nn,7;rf?B{~GƒCf6þNV X&j q> t"/J(.aX\CVu-3 1h7(!Ŏ) #3 03 3Ā5-ڃTɝP&oE0|%7rE( akpY\PZdLaǻ{6^X6o=>PfR#/%cf`V8 `1P=b/W/ =2H.t͸CIa9&K]nK',{,^fGS4SP_b|1ܺU&yÄ9:X}D'Nl:JHB#|j0 badf`Z$"?6>if HE{(˾'`IFFqa»rKWaHvE,\Ex &IfrwDVH&LS\pP>(h 9.~C .a$f 'dv aP| k0jO yH'.,\Iz|)n,o` ='CT`Q4;5mj@@ 3 03 \x @̙f3`#֠"(9D_ 䘨ױeHfrBKB}PKBuȿBe!P<%$3+&xA~Tz9Ź] a7;g0Nq~8T\-76(8s:?x 03 0-vO`g 6DǪӀs\kdR}YB݇Ѝ=&pZkdo\(BIBuO؉P|+&y 1)K.>.Ƒ޻,o/AxZ?J@(/ZE?b8S ldzȼaf`Oha.3 .bTmq*1̽(YfMTSZMW#IFfqKosCZ& o TlBm!"׼a~-5b*?Erg=]Dz?t%+@~I.ܰ6yngqO`[(Բ Oۈ FyQ)@t`f`Zhy13 j颓\ + $:gHhp߇ H>sO>XKrI ћ↨l3:0ĀUa3VQ ~vQ~=Օs%)QP2?Ʌ;e*e#8)$"=Lle;J8tD*173 03`@ f`1%8XWBsDROanu82\c 0sps<?͇A L>J@;Q'f\ o1` l'T+KN`|^Nw!jW>Zhd%w Btq ߊR9h"' })0:3 f`fh @|z3P8]֬u_! lNABwgEDF;I TtDS h,3K2` _3{;~%$֮0؂BQ${n# 7J EZe0oH'' E7iFVX/f`fy31a^bc:\Wl7Ȉj50t$ 5.2п!r0T8ҋ$eFnYoUeR̼h4ۨЃ0_n =k S%_;A;ρT輕__mQ 9=Ovaf`@3 0+(@ >FR&2kA_b\𙇹a<@}Xظ15(ڴevU] "߻. ǞNH(I=MޡbaYm*^Ar/B98U,$"PTP_ߪh5 ;Evj`f`<8ߙ`xRQs(ymN"Pyí̑ ^ pM&MPa@Zz7b7_=\S7&.+s>Iu9p j8d|Bu o'TCFjHZ Kb1PCzFvoUT#bFu,/f`f`1-`@w'0E}4H.Hk )S۴F'K/YGs/3k(` !onٹg/Ar *H讕ПR<0|/8Pg @d2Ecҋz@j =4s[C4f,>*څ`f`V><`s 0́cX@et"hIaƐbA_P1S0C39_u0Uy3iZG8ܗӓ_|/0G!RnɉSƑ5ULrrJ$&$#r^%Y] `hkĄuL3ș/ 3 0;hfd^;PCM 6 n`kS7j,B_ff`8oŀ9a P! trNK3 A VHnY/L?J&J1?|S b&@sf֡~3X'ClT`zr Dߠ8C73 0g~3rht eYcE!Um?t:0S/F0+[m?!R8r*J&oaa$g;ͻ.;u5…MCMgHf拹pBD?fOqnBSG(_qi sA#^$܈$~բZe[* v Pk73 03`o`@hX@H ?. bу>0)ќ'̍X X(^gҨpq\|.=_[ k~&a3Q/>ɹz" _/"TO 1p9P+v}U2*$2 D@ިEEU123 0`3RHRjgf@R'$%+)vw~ Ї{Ǔ^@g!ʠ 3"EMIW@>wR}C@?9L)eR<-}&;94~ NKcp *Pk@l(8 RĀ Q04`f sG`ǀ6= U-?ElON65j/;R_I7IV3Q1h+scV63m*=ҩ('4Orpw?AE&@p>|%uNq5WW8Fq:uN5$4Rc2qÔyp^!P9ӕ8#'PS uX`f`~v1fɀ5dщWFp}rc F ï?d_?_ؙ*(&^4;f` EK":ͩFSL/qZWT mShKN'("T?ogjaxPL8Dҗ\Cٕ(.:'J#z0v\P [5r^#x@ԝ@Gu<ڷ1cP`f`~;~ kf3XrqZVk׎x\ؙ:V]H!}ҤPO^hƋ"EfdeNhfU݄nE-fJӄ#g}B(+8{#Qn/Q3 Y*M rC`D-hQD?of`f`9 `9q73 (raqf=E)E}o' y ppS i"Vn5g{Wʼ߽ Ob ehu$Tz7] o`pAVUdw"-b 8 lG 7 p!al`82 1dȞʩ_̀|ѩ7j9g123 0<Xo&hU 8Q ob&sR499rm:'܁0*Cov'./!8,w 0t*j?l╤ H/%`#d:S iMfSC`p0y~Cq@| r}Vx {y*#C(+*n L]a+ c&d!j ۉ=j4ptEGe!aؠ#of`;Z' Ģ |;O0h! !G0LfDͲlG W_ ?+GrxRЗP|" 3<1mL"b{ <7B{).+#E{ ;HW]Z q/U%Tۇ o 濬*<7-* 9_4eH6p a *=j[eoRI'ex 43E bY0Xh 6B=,(uo$ٕ (G$环CX198݋ȴ gpɧ$8)$r2V :>QJJN|"_Ej E5Blğ] 73 0vϘh] 6ricw}7>]'?C*ŏS7@se:~dd0~=lTL꿪!2lDw|yikһz' gjdfYpp(u]KU@rb$B21rXg[r-Y%րV58_?rrfuȨ`fh %z|ǀ5=6u`Q% s}C=!ˍl> =gO!}f_MGJ! ŗQjm@,f%2` U4\-FwQ 6XP;DT:G:p ȭ:va%ےA_<>KW_чԬfaEBV yYvPԪ$2ztWc%wbѡK/Y KdJ8Q!;mfu,6u303 0-h ?3j1`VDh "eBy\pNЃSEߒyLyo:axd fu?%Y?^"K(Y`ZI_ޔ]f Q} ӃLBofUGEĽ84}!w 18LA9 iM93饔HE5CQvz:kf`fE2I3&"i#s hQ Wf}po""ŵ`(GSý5f;x|"L$s8:__ =?'"C߶mY>,7s* Ճj ?LY/Rp{&ǐ|@snT8p)pYP#Q$~ΉEt#GAc~ݵ2O~n*ȡP$u)x񷣬`eFf%3`_Mɽ_}yo+zNjO-|ÿd!)9>x/pC&Kd䝺$oX>yVgƀ/_. %j=vq T9=*'nG1lߢ]Taf` h63 hl,vf\Ũ(YBA@10WNW.;;T\vO3DXȼ:we=%II#2H6Y`:l7E;`,~L3Ϸ}ϡn )n$'ʡ΄^yGo}dygR2,Ho36~/έɤBF8Oz_`EQqR=U Ѵ;鍽~+323 0+{`Ā1m#jvNm茣m% ,HU"a5Xv㑾٘Khv@z]PՄ(B_f_E))Q+Ƣ`y 01`HCke/z~MD^Xi xx/6~5aW3^(n.G촏K(fY/kB̈́ſef aˑtK:Hb4Rc1gꗓl>k1X#g*8ĬbF̃>.jq,6 3 03>d>"3 0k#LT 6r6_V4zKwzפ~7 A+Gte.i|F/=zAPe@XlTiGe@X +]|[7O0MOW[qgE$۵CY. 9JVVwK]ҿ˿g ;ѿ1hFp оUH9{ȓsiJ$MtJPV@}S'l-e7@xUhX:k[E ۿƱW6s0wi``zQ3=k"[Dg 0Y:FEG/ч[\x^^_x?= ( cv(Ɗ/%hvE-muAGr0ZG`9K^tzq_QXJЭ[?܏v>zX,ȲIU̕]ē)9?OV"F .dMDI I aD:k (J0Jδd r*5lv uq2ъ8QHI2P P Vʀ2(\jW6ҋrfMZGGAY936`zޔ9NUI\iō).y( ~~+> ǣ݋ 䓍Aڬn趂7l<|u`do ŸBx#g2Y2 j:R~ Qˍ_0U<|k%mG]kiCek>v6ʿ_oWĀ~EVhu+QiG+q^L ge6{uY8m̹X0w~A {o^q >?QDe@Xn Sз.m>DXY,ha(GOȹCfn%zz[YVUBC<偄l̠q\cfs`Vt}FdoA+e@1 Ll0I ,Oݴe_`U8(^7Ul:Т 5^2 ,‡W%a9ʎ$fo#.Wf4su33Gnl'~?)W`:Q+gpLQ=kEa7DpdQ^v9Â8B0xdg7|r6+/ĀOʨZ?>gW: oq5*bs?8GG NK$xcf/ IOwDˬ4c_&u9^;D7Sj (nob}(ϓ/~EJϽEl`l[ľokw<6ԉouB(˚X֌e "+9b3L9[?$Y"QsIKthosoWYm :ߺUKpQUD uW_\'y:bޚWkw\l7+MT^9R(srV0! <,k7Iw# Unfs-Vt`{lEp(֢ (-?ww= Iͱ' M&6?: g-F_F vE(!^[/ݲX\]/yͯ2\e Fea+"u=d~9}Ɠm9(Db`/xNnwbY/E()iY0JFEU8w?xK~`VK}nlw$Y+e@P@(~_Pyi dƎX~~6]&vppe8"0z_q/$6AJ([1HH p{*qo׫^ߤrRb&/Lm UKѕh'ĸ)M/ů3.8Z)@IԹ$z1&\g G ӗ \hKo9N^nγfmcH5ZeπW--r+c: ,v4@X޼ YJo50]Cs$UȆcT\n ɡZ)`'ؠZ;'κ1Fy; mQ&=GM_wYf#yW"Oʀ2+gǚ?NNŮc:y6aB`_6 NJnE~*}:{v `tl_@} H;p20.|oe.ӵ]IƹyT+(L72m&eD ?43cXFЛ{tOveڼɍYno=2Dg|_Aù&BТ 5֖tQw#+tST)٧,2)emOlDڢ/اpi6 4S~VBPWo(cZǮ t+wC:MgrU챲8{},YGPV ~+~7~u!vv9t /,<_(+ys;Khhg z3nmlGB0tJPJZЖbvLzY&} /P`:DBN<# x>Ŭ_v޿^\SXyCTkP4m/,Jߋ :yxb&A3n` aۜ= r#+f \Nv([es:@p;UM s(]ʀ22s'Y{i"n,I5s+5'T| >m760v5a_(~ma{=f}u5\d3/ɈeI ge`29!-RvRm~Hol?BE9/΄0UCY=l.X[h"v'El/{$Zʈﯨ &Ee]cVq扶>cO@X1` Yl@;E}ˏk?>-ʀ2[g0xLġM?N( ~nƓ!g*WG+Pe+Lt`>[q М\H;N[IA~'KM,'i (ˉQ\Zu=s'{*058’E pXx#XS1Xqn-@I𓸒~^d2jriG1Dvc 8ft,tH vTvr?h<&l5$-O29~ͣ-qo~ką HEP.H]p\\`vPÎs=kș5抇@^BGtNBC!â[L'8 Dkm cR_ C4$П:A}v}G4>4Y4.4G+E()Φ\үЋ ᦷ;\.5|;#k'+F6Ή)["N49馕2 _{/{4e@P7\!:<,XXkS5 QRA+~h{MA8H+G38'KЏ7 C!z&1JCl ^2 ,_6-O`u6}S7 h؇=yy=yE2P2&]Ln;_; M!"ӏӧ1ڴ3Qd;p.5O Nd/`~"-OuQӫݯuy$8x_\Ù1dG׏u]AP@k;|_\89 f79[m@?8n֤m}nYK-0 eL C?Q~OMAy+x"'sbW~ڜ8Y3I?YP~Q|(67 29$+(h|W7 8C.8 ߽@R2a$;I |e% ݄K,.633hiI_/ NiXHDxe5T'1 K2Adaxj S+xack#kgk](ZC0G6GNqSOi/_rP+e@P|KC\7q,0I$WMn'Cbȶf5tBG@f#&\hs4{[2 yhE[akO&|֡1?XOIqy1J4s`u5e OԸ]GQ@>h W2$%!'"ALW0 #.t~~<+rVʀ2 ,P㹼O m+?rU(P /JNO<G'K! ӣ/{`;ZU 4]~*M)o ʀ2PB''!cmn4Mжe=f6' |9o'@ه j 5s#U܋9'yA(z\bb|''B6+1J=L(ccFP09 V"x51r*9|al: v d%\1Wn+] kQe 4ƻ|LߚK+Oů Gտ89/96s}?*!f({' yA?NMEn2gv=@i1Aۧ(7 О`[nD|diT 0iY0;k8 cY<a0ITbp1g+ ~[y?npK >UAmWia&A4``2vcl\܏66{R%2 (ˋؐ9K难uQ4[.X8890fP4¨(9㑌l*üS'Q`6WŇVe@(N/FmLSo`N4=Q-<<´[u L(i dWV#渘=(C\"x&1nVʀ2 7~e6i,ʄP}r3ͽRfiㅣCfڣڼU8IjY7P(?bW-ʀ2lhJ6\dMJ~m'/-nvWiл` n6f gDz[2 +'HY*e8"N$(^͋kBң[LЎ΋PwA2?2ʯ/Hg㼉"W|؈ˬ<ٜJ9=..k6cfAh'A3US?]2 ,/xBk{3PF|&-k׏AV>s4 Fx5dO(dP 4Iwe` &=E5`]N\Zak?]=8VxHbڋCӉWc˾`=;m*J( j( -.4?)GpXV 85?EMZ%b%hWah79VA`M3FphOeɖϋSozqX>ʀ20?c]i~LZ\|w-Ku[OV3AƱ*'Owڱ2a'>{ TS+>$@Rbÿӗa ȱ\Y3xҾ #|Kэpɉ }~6}p^t~]de` (EvbcWr0mg S`}"oj$Μf8h F d zfo;ct!ÞNW#ʀ2 xTO-Ch:6-ΈG2 ,j n h`\{E-r3]p`I(8OsR?(n1]v|mRe3|}Oxz "vyJU3[ם&ub]S gi^?d{jY KS pj7qN*i=Ƚ=^#Vʀ2,Ͽ3 zr#?op&`%YώLpprX>nl[qe `vDOoas ,'_Dz`b=IL K3&~kU2PlOG9|cCwQ&*Cz ggFdhvz9 0j 1l^yWʀ2 n7DU gwӓf[׋~0?#@F% u<P9 Vʀ2D 8hHr,pbz ۲@زλ (RJƀؘKvupK`XzUnc/ZWYz $BoF٧yOtyC+o0F?}O0¦&74 0IJIpd.25U2יS}z`Wsd_)c(h/e@X ~(ʀ2H~`.3oW/:1 Sc!&6^UlV`bكL< π{< c`EPJ4cs V0`K ^Pxl n[A@GIӶEJX 紥]q;"nlˆXwOa mqBfzMLhʬ P5DSIZ+brl#G)~%~eO{j 4Γ&S<l>wfrp:iL`2vM"ܜe 4/ԺRo=*|@3{re`DgAxZG4mܱ (K̀6l2b&n܆ht,ڹ*X͎ϕ~V@XUT d%|hx8zZl4V g  3SK;m{-ƀwAuLb%E hWoo5ÿ Otbͷ_E.dFAW[e@(=}hcIzvb6as`kvΐ|+G8<#.\S7#E_gN24yZ|Vʀ2 4f 8`+c'зl; @F7 t߲_>(Tϓk?_?3 Dt(IVصU tif`nhflՇ^_jheʀ2 v\81BI1$Lھrw`ٷ_:yc90+Oh{ٲ颶Ŀ܂8[i 4MpaP(boνr7b8.Z;;;3}2UiKXIy(ʀ2<BxܪךCɯv yH3th6drwѐ̰m|.8@>bRaO=ZȟQV/MX85k5`4/`PtBl͚v}ִ`UOaڴ5ݖq}܈#1@)hD/ʚH6 p}#&ˀ%'%.s8) bhe rH+e`p濟BOgٳ}M3TXl]f D6Q9VpTe@P'> Qt/%&,[ X֪r_`Uգ/ *KnD*Zߣbjӛ[R`/xCYc0-:\<v.ЯM2e΀[ ^n4#e8Ovچ&?;WXusNJ܈9FQ[gX_ȇ(K&w@C VIM՞^/08*<HOepU6dORe`y1=|lLE;~he3b(h fygLŞM:Ir6cEMmIPbp zƕfɢW_@svPmGə<3Gs7< j (-3#v;9U Vg.hgbꄉ?4 n8ZV=_#{/e6cKY b4]r,q۸d6{SkQe ̅/K,X(SaEaڋs%.G㚐0Z#7r8OmeOt_ f:_0q9XqEe@1}1BkЗ[]d\iLw% 32'B_r/c}`7-@ Hz@"vOYցVΏ Q>(b kKCl=Rqrm0[jh~~d4HY9VRe`y1={qX1S{W^?;#?OOs'vLIø\-Y깊;!SoGO ݭ3gj sAohS(2 d k ` $g'i]ѫGO{~ ,jX<~ͽSe1@21 UPH] D_ TUgC?/KM3ٚ$6ՈȊY02 y.v9$yyA=q@yܪE('v% /@BL膮$; dL]0'~sZ+˞Ȯr\cKq[:\F<L~ c.׏EPR0c=6ĞL3'|du ee}N|%TpsM7 i 4Cۂq?ڔWQ:!B+e@X øZ`~VyBЭ J+~` q~?sm%x^~@'= q2C< v*q4&e` 0oku{P25D?#4H? [슠2 (%`<.+Zw[#I?v՗m޳y|,/Vg Ze`OQsW-I4[4v*֧OǑX^~['zsL`ᯫ ,sef΢0L qz5[Dn]l4t( -'!}-LK[;6EĿ9J'%b) `_ƻp2n;s 08$Q ;$ݰ̹uV>k (@K`/8ܧ**C@l/[L[08#)S@02gL?QƆD^=;Xy^ Y2PeiKtLs HҩDVC}k}pѾ7_ ?.8 v"h Y++Ņ-Y`9l:&Z*UM Г1lyrk NZd 6 w"%{S%fC'2+~zp1.4ҏN1lj\Ij (@Ka`} ([+v`ePܨf7`Ů LU=%H l{Mt`g6̰6ĆU^Vʀ2D `;M^g?2Y(kEmD^z լ{'Џ79.rwM_R0RڲY c,r!xx Ccn ,F# ۲SO7PUke`0nlC(G@;d %.tHn%>!+]ft &@#d-ʀ2 &Л}$I{΅ d%Iȅr'=Hg]\EE>>4d[A?D ;I'e`! 8O="& Y1N97m]hM܊ϱ/蒼),hgiQJȀJHn 4bP  }ᐜxDC198}WpM`c|PAPo0Sd!T:miYK;yݶaU,3psj\R2P:P:n[ʕͼ{0@0eY6[!7ʮk7Z|"5)|[UqhO\tCS!\.PY2 (-w߸hhK`+sH6sf;X;$0ohؗt.>=*"r3Ze`qp479=V~0O.Hp{$M]*S 9xt ޅ 7%c@'tKۯ,M V+b$O8l (%c@֢xz My6ża6;.&,v|l(/HV@)P@)XmY!yVP9.Q1 |2TfePsL ,9vbB{Ȧ  eSYPjjO0#L};bRX#u(K\}0K'z~A|;9WtҢ (@K`N/Ʒޯ/#ţ*\&AΜ_7YpBiܳ+k ͑Oѧ|o|4WJPwl䇉?W8ɘ=p'5>ϻeJ8i'] 4{hQJɀJn˸34 7b7{ t$'#du~Jc[aV4,P4 hT h} ;eyrN Dt<їdg.M+灦^b䵌߹9K(ʀ2hǙ\-_&kvv${aXm6ݯ^~.JCwyW@{M$IyҁvE(\$rgSW>̷+*02y +'įJ5@YKp8?={y#Fӛ:E(!T/K S>_6o?eޑ 1w;,dOh!tMo5ܔ,P2d G!'!G$tW#3 0%SU~7Wye_WWMVXԇjs7]ap~oAwx(ʀ24 ď |]c(bq`v فunPڐוD{ Wn]>m tɹ|+iȾO/7{~l:e`AΤi>&l@{7j-8t?ձMR"!eˀ--jr[ͮX˴[6;k5R9۷1gc25rlg,ly:\G92 $sNQ:VLd+d^~sLNw!e#Nd57/I^Q*?VOʀ2 ,MP7/O_eq׺X6-e PR d+, i}kA_E'_7)*@3t_kY@.ii,`a7o-rì}8W|e$ $v5{t]A_A/3Z43g>(YOg,ಈ(0xE#Z(K@ڊ~BWLw{\!*\L1)y0E[?d,ug%~-ĤC!wÊK.S_"X'u/[2 (`齹xW}Dc#ɧ H N ,{=`? 3Pxx0XLL<uGLOcO++Sb|N٢rP+e7V]i944Oyo:?֎7[f%??;B[O[]ю希q2Pf] KdHy1&m2O8:`8R Qlň-ȇ(35`}aw}OLd&p`ڮb0J (_Y)T›ZF `tTQ vR-d~/WA+e@h qh-`Xp$AH4L{a40V`yY7CS vgb1bf dj @l_A,NSi =<[e,op:z kx2[;P 9&yH$c_?>E2Pef&TfI0L`g48f}F&yi'7[܏<@Yg%gX89\Kg u`bLSח\O,]ſjv`YJba}!L>S&!A|fvZ)ʀ2R&{.=72?4e# =ʍJ˸Q C3KC)>6k~4 6`Em2Vd) у'#ZvqDl?g< m#n+~~Ŋh}ml{:ѧ6giQJ@K̋.E4hosl8Dt'YP(R=O811ExCZ%f 'rDS'rTZV`@@B=Ծ7T ,J<*l\qrGCvSx) 7(*ǵRef8&7e*] ^Ԥ0*3r~Fs4ٟu_ NM~}N<:Mbia.I̤~"$Vo@'.`.,^wy53mp{ڟeMbFkb-xf[r+;҆O2PPR[%/r/ns4sMQg~@5 3C0P^b T2bܠEX r90”/k]ieioû0<>Ebk! JXR^.%OD:@[Epc)TN+ՀUsJ۶89)+g9BK}Ok =M(ʀ2 x"?^{+z ف:H4^;+A e?hOhPNC64iOj_ x ESkOԅFp?n:;2!pI;tyȉ~,iQJȀJHn 5N0hMbfKRfM{˭iXM"nJ@ Vr0\" MZ)Kɀwy+ ݡxESz]ģmo~rs '/XgjqbT@nЁ_2~Tvxy $G>/Pxv}`Na=-ʀ2 ,~Wbu߷/ұT@inʍf7jq2!_#윺1 keC`J)ɸB6<&k餕2a#0$؃ jUT^HF ;17{y Nʞ{!)`P!g D)(%d@ %$\zlT)Ӵy œo_vN>KI )vV@ N>O&b(d+wM_[_"cᒒM*)x)1Y+i-!0ՙvC!zl'9rUBl(2MW:~o,>)a$|. 9(['e@P~?&b/?̉gT3/} ~~`iw(~\a_@xEIJG4 ]R~3 o.Keȷ祳KXslm8ʬayCY*Qv$)C}?kxcӃgi%kQJǀJm 2ˋ̶}LCP {=q `Q ` T@?6D:n#(%fjٵ 磸Sp %yN_NVtl8r6b8F UH΀[}CS%|1 m E{.>W ?A6)2aC;׉= 3{Չa cީaRU`I!JBI >GKb^ghnRV07{?'0TPlו'װ3m 5͛4W/aCs;SوG5:b1-@iP@ixmAWv6Mx`M3ΰW7 mdMvN C?#'2P"/?-Q^=v /%1B[\9+jV lț,Z}109,~zTS[W>e@PO)\:"ꧧ?U\vf 2?ll)\EX %%o*\q N_208Q⇔R+ĥbh,[=~`Q^юu9F {!|eO>F cÀ?Q$Z2 (t~S2Jpnf'w20)?{`Eg^HF怊b9`g8=s9 s,9w&__4 zw?[K>f:TWWo**1<6`e.?sN#s`;ނSszN,n/De`d ӊ ʐ$M4KFt$Eu,lzs7RP I#-'x#i{'kypZY)nRL!|CmcyrDyGT[K~2r6<>)6 4fj>jr4OS*:SktUh,kRVnv0N[}9D`V\a>zz\'ydZ :5ȧ[Y(IL<Ŝj,ˀ0` <;]䅯{޹{o "{cE4vCx&}D ªAQyۍqA4SDe`9g@ſ`@ˡY/35,Nޟ+>C<Gy(Nj)<\;< b,E+m&^!:踯#[qSqC1J]aI**qI^U= + r@1`67IcSJ$.l40V|QoB:ogBwOTu4`xm%#ht =B`"p苑` a`1G,ˀe2{#U= IG_?Pi`跉=/֤Һш3O-t\hj#`$GG5)6 ,W y`/-d M㰙1S]U vV1vzyhdO#5u5|Z&DRXHmfܖv'Kj/z ӷi~? ѱxlSN #@g2T ~Q>. ܱϹSNVFc'Og߀t7}Y}\&q?>)  v ?,.w rM,b0E_!LEs%z @:%H.#8p0ѐT:)vTcDsߋ1q@1S +^4 ||E[>'+} :4ަwt|10 Kf#{ X ,U=[7/j C v J'xVk U[Eo6ݨ ٥R<\<>T oy09rM,Kc0hn6-h!Z=@H{KJ:=PuSJ,|zmm/-XIΫ:QYy0yqA:)UNsvdSes (2`X LvјgKh;ѻqV6  4{12<+SNø?MpwS+1PyፆSV1aZ'|=3T;`R` i/ټFlwdUv3a= 4Ч^؃^3W2JkFJ*!@m6̔$zCASG`Uo#y.tWNTН.W`.Ԛuu@/95_L#³nЭX,%Vϑ䤏нwp2 2R#6 uoHiГ}!bOrwK}h,[ܸO'JuYM%!ljX Xf]z"%+KhM끌 5T0Mt5tbr#S@f gF a ?:.C#S]19-'^J&'k{2W6ixԋ'G#\[f6 X,M -K(#a`3:Fn} -Eö,-.8㟖NbX0_Ex6XГhD.#û  4Z )ut+|Y~a[gCiSd$Z`{u<˼ ׌L=qU@WR1]-y"b`h vĄT#JgALPdHtlPvI'J L>`}]}iꜱe~z=vAe2` 4 SKfC/ƿTDmOѽ5npw S/NSc+6 ,s ,6yظ5_2N FmXؙݺ (3l/0_%Ȁ5,A2xFx25Z; ~CЗa QJV'H[.d%p*cφܜGT @Ζ=2|0oiq=Z?_?՗v|+OL~|`uGn?YfGyBӤӃNˀe2 q(n`'*$MDMzM}o'ĔFϠ촉e`9f>w I#d~Ev5(/>785v>JmŭDzp&ۢe`2` Kfx5'rZwgH +zHn͸{zx3o[Z _L ϖF>w|422ׄ_b 9iي?eߖq y]neCT8">M8Uk QsA\ۊe`0r̀`L=<w %ˑl_qHN2.z=Km)6K8^>,0 QUEcnW"@R+ PGmH?3R,eŌ4Wk@?4sct@TjC*&+w'SR%҂nǤ,g w[xz!XAmz$XņuZ ,o ,8sW?KyF PA{rn=eYzC  7! V,%eJJS=5ZYg!q=Yp!ølAp(H!8RefUgs@eM5ƏpAhp,l c4Z5t]7@3~7iQKu*zG'dlr$>N' mG' Qb#31{Lo 8 DAc|u9Z{pb 015}!0YR601:u:9P)y )xUQlbXXB y?뾌+57w6pDp&wbkbs0 m~SǒEV}9_ IIȽ5WY-#\o0Ae23P~'}JojAҁW)A{}2{y53e3ߒ2ʹtueA1#8 f, m-@#hYxkSu2ߜ@ॲ3'<%s <|G-Ju+ I=#92(6 , D V~n4F`zc,C;4Ig5һs@ i ooH2u`'@6ж#6.ԏ Տ#H>eLz,Cet#ױ,' ^s 9׏G`Q E#cI?|;.jRf-5'@s{Φό;p,wfEˀe2G @q LCCS2r)W9|`r@$Bs`Gb t7ZJQ?Qt7c`Xv0|MEC0MPVvX)2{ҷ20)J9ϊe X@ Ho[^?3w9NƹT pQ5D?\U;S*/Ni:U:@EA! 74#=(!e2|2@ 8$% %'gZԉ60 Hc4_ lóX,D,'w*1<'\OO86T2)R2Ǔ/@y>*Y̐VQ?.?{zE>j3BMqGA|n;5p,;3j5Lg9v>Xq/a@}lXJʀ5&yhβ.)ΓهnO0XObk^ TF{H,$u\.|Q+`Z , d̽_WL hއ6t&N.bM|L[aWvԶeb H}MHxC$u* 2` ƆQ˅N;j:3{&N&^KL Q7Lsқj(*/cbCi* d``_<`ȉ95xdiF >H)4WM#a&q4 b()PRjBqA{ؕ;zGh.a@ Ss!(,܎%u(2T<gHʂ?nP[8Dwo9R~IJ \ &M3eJKFv2 3էf@ԮQ_@K`6{fMctq:!h2PR7͝t D?=ū<C}\-8H0V>gqbÀ(6 , -ސ {q{gWqka*c @V,%eJJS\}J>\Q)YPQ-5_˹PAk>08hcs::?Sh?7($F h@ԡ63%lч|H ?ZY3!sf?;JFj!+ߩ+OUÁ N. *Ѵˀe`x.IǞJlcʆʛgLe o.Ejy{ _q 0?7RnhqT_|@)dc ~QKWяSa?Ll~Ee5z?\+2%|{̀3$F~8-X=s aH69 XD\9Fz[q(JΗƆ,ahv ,g/kh^ݠd$mF~U{DuBo8|NstJ[rNsxJ0H7`,?f #\8\ < NĀrix,n`8'8]LhZC:\ER«1A$[&f@cm.n>170 6b%GA?#B8VÈvQ>X%eD X@o:"@rh U?gT:)x3`RB3hj%w9&ZVa \RX/kR#V G])O1찉e3`A3MfLZF*!IY){Vx7t?G`jpȥHK}SoKIhp#n , \;8(Sq%`q^53 tK~ `H7=vFctzKU*GJ`lF)Re33wl,w䣨= C=Z*XZ\Ok;F̆E@S3` MRj,>It$˗C4[筌ڣ1Y_Nޜ4DWHY=Gb쬺HP(6|HE.`20u 5]DOcD?P?4 s&F12h@/)UOԮe#R3ΫNd0F,Ch"zX X,@Or>3yw-N ]6W<GV&.:h"LZ MnT Jt4`NNL;-͙߿@IDATJbWO~2`LS*DԌ{ 0iN%(챉e X@)_Fe3:7u/ʅ*`mu9-J) _y?}8cKj%HV\ v,DI1lF~_6 4k!Odu_ 0jK'Fv}g;*/؃o߀W*JT2JW L϶&L W#_­s2QM,D2RG%U,cnRm?)&v>f)1N,r(^̀N+=%h 8Y.j*FlbXfPv-:.et)tatx L ӿ=yK*5Fce X@ F0" ؇ͻ0WoI5^V[M˨yY1P[ `XE攨F XC04ς|+eM6#'S49BYWj;[o9U^T q1]C2Br!Z9fLS@5[L5 .Ӭ<d22`5C\Tl^)9 ǧ,{}J e[l8#w70|;8O)ҨFU2`X!jqSCbk(wRk1stu8Hp,y|%ER.zՋgR~:ڝT@JZOp)1b@eU;wNdLr]S/e̐`O*zgF|EFx~sj2PB7McaqJvJzTT`=ׯ>˳M>Ɍ(x4m( @gwZ ,c  e?!o;M1}ds]ѿqed-UrmmhPv^m)m(fް-;96wt]Cx432h+asEˀe`Y`ԬٳN$)gסׁ+I:_#8֋vêнjCW#wXr/ΎLQ 9DӾIq`ZtdM,0W2%6b b,6!y_<6e=X-%+kٷ)RjKS__pdܑOb%=85Ƙފ^%cԖ_G.}ȿE aDX ̈[u" u! R/NP5{NfמּXqqki{3xgp;E=ot-r%n|~}q<ˀe`d`L#z7^!^5 ~^ze.q ^ל+0X[YaLP;ҭ/C p2h#X 4W5e;gdek9'Ɍ挚fr CBg,+V,`Jzhrp.J$cyMQw ԸTb(pV,/ @7>뻴꫓dL%8w `/KWk"oE4UCuG7=fG.. 3Ӏ~wͰ XVq=oVYSޅy) zM3]4)QJ aP3ފ rM,͖E[\EI1hj;jbyO`vaT") g (Qycs2稍@5qm\h2PR7o0?qQQ .}x"0@rg:F(lbX.0:IIwwNhU=&>&ͮL.|P!eު].{N$!tS/I^ҕ0Њe2b2pǿq5?eCHp@Z  zϽR3sj23Wן Uj-?i0V#`v\]oZCafÀ1Dv,:W:1{R]ghֳ,mipmQ_%V,%d@޺ \0e٭X'U,a*4Wlȅsw0uwqddaOA`*#*r f95H0mjX 6<~5~ڂk%AN `xhP`j2AK[. NX _{P0A+o0 M,q#ӱ6D-b[x8;-/&&ggmqПP| gY=z%/1-b<"sv|F0*#83EnU2/c )/d F' 2Ŷ=εb(Pқ-Dll_yƙzFǾJUJГM OavcC#uY4Mj>c҉Gm.d`1> 1f|jWFT*0uj}`j*trɜRfP9X\'Mput}&snO2'6 XV,;050.Q*(ā'~`òcz~Ou0IOj:#=]¸(FJ1L(vR#v dQ;\̏Ppu ZqUb'W88U X k()Add./ˑ7'wm`q;@܋/ HF^H\Қ@ 0A9Z 3dhonsW3b#O=KQK 킛Ew$ed D]޸0p'oIyn/$g< alKm@BX<<7NFsC^jkoeEi|,n[,+3`'5Z:`-SRy;7~\X;&Z~ ˭;Y5J >C$sB9Q9%;mbh2{gm ? _%cH!L! n~-PbT& "OB>[ T@ w.&O R% a#O:{̑h]nvQ-(c{(D_,Rk blbXMWBjD=0 Tʻtܿ͋ҫa\܍ճ΍r#j]:7(6%mbhbmjY0=t[~b /\o6e+cHiMF}8SHY6 45l5Q<~I?3>Cu39e|[EpN 3iZy(:\Eq Ày;O*g=7/՛Ɏ 29WCO\e7ܢ^;TL# bZ%|sM҂Vdo&42GF6>jǀ) KeLAP U;&o5ŃTo0TC y23TR+cb@0AtG3g"i_ : Uؑq*)gFJΛu@IƦJ%f`0HpW|7#Ww4FO Qb:ƃ=1O?:I@ xyDk~tWgZ;71z1NYt.i Z^ GTpP $M=mGB47L}yl~٥cÈ\jQ8Cups]5w* J2&8iރp|VXJ5u/h+qt?4 ?/+S؉Mo816YI~]"MD] ]YolHT2mbX!^O_,B-HCZ$Cjk5s2]Eﮐa!SlDo ezyH?JLGt_oĘmI=A^9`I@Kʋ|0sZʡcVp`S/#$ { vD &MR XJƀ"T J yST82NrX6ǧA X{KSd@gY 4-д|7ǻ}B_cuNӐZOg\V+;"gsr=XCWb+8Z]dEfsMe`d d5`ΤOHFxGFuӠIuq//WGje-VֵZtb8X<R< \> rFbFMFt[~0tP hU Q8)Rl88T Ήl/23`5bZhZ_tΔ%)%a&XGtOgo>M0\@Ԛ '`42r~A2д wEKYe M~:c- g&;Yԥ0)+Z^5;4φN!'`mS@2` MHv~E+1Iimt =W~]7f\(Qf=][v#yAgYKRt&B 8Hqp;{9[ O[P<%T&/UA/!+,hRT"<Зla7 Y+h\p+Aٹ|K uќB?P.G)1{6cD]rr&(5᏷*9_wG2H}C@obf4U}ذX3E rM,%b`qa0pl49+*3|iJw]VH2z)\o*recLZ 4=wwl. Oɣ.ȟ-pm?;=n1m D tM<)K MGAXVhz@LC3҄c$`؜C7dx`H26U")o貱;__/ʵey0h)+K0"Gݝ)vjO^eHa5:_߆ѡ0Ĥ`H޴b( Pޛ]oQEuqtBY4cgb}!5_I]/:X@s3jTiF(YoD .XVxL`ψ:jx!t.s< 'V> zk@u+ɡyBoVqT$D(LJg pIm56{wxz gy~.81RpLθ((1Ö1=}})aaT Q6V/l QQ>G:hɲ@u^<5gI6 ,^\{\)sEgէHd @k*/b=EUc9`aO3?V,%aJB{sCWñwQQb2h .bOixs^z.ni4xDM-͉c ).VⱤڨcEopc_AqJ3sϏj& @h=%t971I xc96m7b3cke'Ѭz5K9XJʀ5fqWXyuKq~8ìC ~P'ؖqQ|!{ ߍɺ?+ 46sVL.%~ΓE5GAO e:*Wv70߶_5gU9XܫaUjG`p}ȇk 8-0}8 %7J&:w;#wk4HB n-%ţ͝qs'k142}$_cC_#ղ8= HЩ qGij!ƭnVp@(z:P1y9SQ7+10R$e BD?ƞ< VQl҄ ,Z&^4oA}Wx o1`lG!pV8SVuro;47GNVGsm2P$7GtSy#=4ܐ *+ŘuhRiucp<%.֡'P.R]39 *M} )\gfX~X+0Ga3qp5DuEL<ďʫ_fMd 49649V_w٬J`xOp0ԗ<< |)ufUkq;-g̦zA=|r8z_ -J@' 传Fo%X9k{5v }mӷ`sKL_b,$=}2G,W H=ăHp"=_y 1u4mRcԸ~|=dJ~^ȘXCKiV-z^U-܉\2>a!DKj@3`^&aa@##h`On8[4Z]7νq k.flGЄA\q4 dt0c/C15!Evro_oݙxw:[DAգjqq{-3MZHؿכ] LdYz?_ =rb:YB.wϏhJDM^C ;$ͨڣYE*:%5_o =-XɈBнyOpHAoboyvM?(82?Jm^<&)3tFG9Aovb _gk5_kˀrmh5޴ப`5VcEV%8,]( tZ S\HaGMs0?zRNLc5npWfzGuy^n2Ms@iޜZ/n}1ĉHr VT7|X׵vu #'P*܊q职QG_L4:p+3`zx@?n(qt:kAR+O K^Vaqxb0^;ԝ ;XL~zG'zcJ: pTqޭ1ZQj[ͅ<>=E$ýy_b1_N r‘ C/_RC!vC[NFrGC1p@5P.x酘Iܜ.8Q(п1c\[J 2+^qnf?pEm2`ޗY4F8o8O44Bt<+E jZ@S0,c)Wr4SUfO 4,Ǧb}- \ؔЯ!UYߐΗpqiεb(J%dg}H{\+~@g=rAvsOݼ4=ȚEv>pIgnzg`xB EU i CyZ /hA?XuDe`)0H/<7M ܸjMIBS#xE߇0꾠_a̱abdb()޼900^S=:t .kj[ŽQqW@ݓ1C@AVs;c4~{anu=T :q=Az\w];PGEД11촉e`c~xƠqŝc'&OTt.5ɕD?osO:)uu@ 篘t[~ _#® @fc(D nrm`~^v: '>`J0 /gg3“71:d~m ,*m*#@5uo.vy9{ZGW ^^,'.E1Xzbx7_ȱC =|JA U-D70%`᠚'Bw{.JyNE~07@9sƫkhDb`X z\#Y`:cU(Ps)̫wcdOU\ F|羦!yw}_9_ p=oӚKQ9<rL6 45_sc@͵kVLA/1isDA~wwM#2`wɿbu\aiF酐mmƼ\q*6!JFj.: 0mbXN0EF'qq!~dhVwIPOn Jά-^нL] ]† 18_A=dO0I?Cx8A@S𲂜￝(zj>%*Hقa^ 8| {%t~P]P, ݁ o 7CsQ~%pu{7 #6@~f p;;}?g]@kt58N_[a#6 4Ffp*)[ěDa"C- 1)]XG7-\XF]_?Q`_>M&˭563^=_̜x ͆m2P%i2poJG SejYQMo{%*kYx[(`'ῷ5篥}D^ȌE˭fO3P7AhfY7?n@NbX:R4PS*W $3 102\bs9=#>0N9`Yy>7huY5YIGa.nHQ:a_ |7YH;Q8Z Mgt˽ngz7 ^ ,ޟrDAW=o lxkt 5^?="^5ZndՏc?;jrcUs>׃L?cTxzN,w L7:q=u1sӁ )_7&:/'/P?d&ȳbX r 50!S"c\ʂ! Įlҹ]{.gԼZV7 ەqu%j݊+^ƹv:8Vl=iW?Q ПvB[TuNUZY,%D4IЅ1TT8ڊe`Eg *LlZYL"zJ߱m/G:NOWFiOţ@ u(4{D~ӺWN=E~8DX/T24 WFspʟX ns@`ꄲ[t4ʾjӉ1{ij`}t&DIz'A> 9o9i*x$ޑss2&s u1݃/8yY>\J_>xipnTaL,T$ ?cu" R_a؛nqSw/@l9U8(4Vű>TӉbF%L5_fک]Uߛfz+g,g*\1BDYā+(RnѲr#lt㭕4.js :tR Av[C)b?3 #Su'2h/U :m`u>fclT cew;gnSE`h`͓KCb\ h=$0|<ڙk,z^C97R"8ĠVsMe:U6={{B? Ч^<770i>`Sl+ Ucv`p3\pf^;dϥQ^ܽ t. /z ނ*#ynʬ\0-˜Fz,חϿ$.ϽYmKp`Y+$:q8(MWF2NJdf;1A/9_wдCm=g9hH&'9e~mWD/uX!SԐoSS.c4mAX@1RSVgMRqy,cueVM,Ł{qe_ _n!ZL&/J@=} v.Ѕqfℜ|Sۢ|9ޯ=dhK5K9 Rn+{]Dݫd$uo$hozpP]2z'`pwűQܯ!ʋMql~Г{zMUY`nq[`njvN,}zjh6܆ >[o_v a"$= ?ET=ߩ A/K;*\:Yʒ2%_~LԻ J}"8U"hX/e6:#~^)&x)cgLԹz8 JKYy70'+숿e-aāߕz-(r {_:^Yr+H++Gm99~[~* k@IDAT#[G.+ΟOɅO{Q,Rdz-HJR. hn\HdYXXddsHDq /aRmrEZ*m󚉊﵉ߏS&g hj   3a,zd9tvۥ>?נ,דO4R! ]'0FF =)1359~./(5|)!Ɏ} ;Htwܓ.B#}O^F A?4ILPY.pg:$o.;srjW8]aW{ӹ pz wTg h#=ϓ^N0kzItd+RLJ p>//t|pWR/lL ,ܒߚx/Iv !vRIKBDƁ&w7T2$H8gFy,*?tpiQڽ. O&iFM =d A<""BXvǢSkqXJlNԔ5e&7 1h^"F; $c!}v\<ğ;BZDkYrzK=xyoQDz#Oj7=FldU[)eA@*.*4y[@qm+`E8+8`G؛i3tt7m ЇfGŐsfؐ8+tM/4AXdANTt0LL {~I1C1ɼ"VԱki2FJPcx~N)PԆCKINJ1XR;|Mh1Ym4J/kMvn z1T?mS $I??8,9NB)KtiO]/v&(O*tuyW`0jkUHξ@ͥWLT d'kW6T3茪Y /y @}s| %uK %tlCpɾ }[z,nf<sǀgM/BjTכ$HVK;$aY$D)/―2A/^ʇkO:K_؇zN#peZj+-tS^Z1 zȇ8N6 hP}D^0㺴Z Y&c J_cSPr4#2,2 9GjV "\ؒT}OoUHAsL;u$ yES22ܯo7n-)Ǥܹ9tPf쳡Mf$pJ?!,1[\_ ဿRQF e}ٲ3xW=/<7E!!@^F4i_%Ɛne[%/ pPbBk Te`y2̌"mqlB\D٭ ӄn}|kASmf$ܬkAsk.Ʊ{=)rY%v+IR*t|K+ ) tnyׄSA2n@} 41(n !e +vR3`t,Hѽ ]X"{W d%5ˋ*qwZ\z9 ES@l5ᒦ*Rā_tK-7c{̑* X؎<$jo7ntc!LWdߙShZzyQ&xqof7#Rā4(E!tmб-+*2xKlzE`sp&C1WLQ 6yVx}L7;y{&v-f8_?LIH(}> |7b^G(ѷRs`_^s`{R:] sÙCBW]sr3hw h7Λ7Q}o\),rX7i=YpG b|\l20K>`_S(W%}&np'_1E ~C> vzԇk]W|*"?QXvS[Ovn< ށ@zRaBDjb}T=L@ Z@sC9{*)0VP6?2=5݋f4؟>M}؊jsW3Υꌳki"Gs!J-NZ&/y;}N-I `n}L To}"AZ-KW\*B /  rV"\XCfȩÑV`\*H+sg XyO xUJЍty 1t(8d : ,ezzFEP(l;.0$~<_j# e||,<-c(gGR_KR CAMfv ; B"FTH H(.GKH?RYX64; 3 RSCBk9|'&i|sR7-x?(Eh*Ѣo5f=H)DP?7Di}MP;}jQzSV19NAuE_cLлtcn,V@mgkFyā Ek0Lgskk3rggWyor{ޤfȽI̓*(ٷk98fA5ŏA3v@ ާjG=9Aʁ,[j 2E-9nGp.GNTEqapgE=ZԽ@ba٦KTc获nsJ׫ ]t:HW6C4ZB>jnWtQspqb>QqBAj.USsE~)q  VYf\7Q#U'A-+~~_.=3pdq,t.%g@ZlFESiƛiQ}_r[z%w7qSzdf5Ka|f"PX^t[-sX!Vbvb).=x+}YnGOݸ|]MXIkgz3ƙ$ 8{Xed;F.mNA#V7׊>E8s8` &v,46-mfPNS7MSxd[)w$ 8a h*rpu}_Ѡ]Q+8I@6Z z#٨U~vdvR9*;3ܕaJ)_}~IoUܶ#[Ts}kH̊/y:%+lӷYB-$g *5:{K{QdnG.81:a  NעB!wFpp־wvW۾VtbӃ*Áɮٸ!lF6bU^F9ӗFHviRp uhY-;C599@5@I -=GH LGR'Re8er+e]쪌GԵ%W=^X*J'ctv#c|% ˧F)@2o+ VnQy 벟}|е\*} mSݓ- ?NXSPR?嫆kݙB.V$@D}*"BnE)o,5_Sum:;:ǿV6Sc] z:- P\}Hxe^Nx' n]@uw)O6m'g$_Bw8HXTs?̓Kk0ٙ6p r%Ც1LUm:Cݭz78!kcǗ{d wwyfɇ08 4hCK\FsЛPᥬ\ǿ+/—1-8)ˈlY1WmQ˖/POyf*2Mbg@}Ubf^Cv`@/&A0ݐB\ï!.vӾ$~9?<zj&>4;0S=)Aqٗ.lJdˬ/*lč"\I6ַU׉RāǁIu'F³l~wqU}8 N0ft==zh1x1#r-xhdHuQ%rjE8=7ɾO 0_ w0BYN@xAI1bxxa@#!"^~dG;n%HՕ9$UK^ k)6].ڂ3;k &r$1L@=%<%o{hPsX|?^=:>d0qp|Oμ]SSȟY zJncyz/N֑cۋ5m?c_9hJPe퀟qN(rW+ Ov`\BAO0ّcڵÃ9`ہEW?O:hXOAl31~"ϙ<c*W>9ݨݦ;,{%3+"l>A7}E)@1Z-F7p?o]1`}ݥγP{ i<ڭ7j#RPKogX:-> ¡͞:|N+\~~:O7 >>}2b6mx13q7yeX7O_Zis C[=1tl$=if|=:n\XzX:$` u\^} t8TWwsedF&(HA?T2jXHawkq+/pfDtO ݛ@޸_"`"Q~Ы t0YB1nط펠A>K - ޠiމtTÓxlp\N5$ŸÁZ ^ T9[ éz5} ({sQU0.R jR8X٠k3Zlt5<(}8`E<@*X1KNOn "Xɘd#$v齹 SƲ\E4UVBҤ6 :Iyy8}JF~2Eq@nN#<ֆJLqNf/vЫgWe㭙rkGq!2 jXa),{!{0R۟;MKW`0ӶC (E)@ā߉vp]zML WdCHjio96J/8jyb0xVkC:#k}רł)dA tD99V" 4-?,m$kgBN<bfb(Q}^z`}b]?1 gý79]p5&:ҾT;% wqwx<,,x&P4@Љzhv -h+6M,_j_fS7ı3}HݶM+wg*G&.%x7Ƿ˽rî4 E놔pHpgI0 N/]}3r>W<{KA4\FyƌEJBrT&sPTU<r0W)j6kWAO.*E\t9,_ḛ̇5qq rтnvI_8 2/1l}ʿ}{MM-HC?Q)&=XEU\>F4ꌦc|&P|LB*;,:QO-zk q  OD"&1NoFچSg;;3ǟBA(L­GCwx^%(VKCoWx%OWL%V ˎJ :KaLt8Nb ̣UְVuB^8u:wry׬N4 }Ƽ1Nju޻@/ޱ P)q[9>k \ 0{Bǵ=r} uBy-d C|-.2 ~qt 萙9~0L=_sʽ='y+9eT6<'Of%oVʌnLMKH7pX@}_`&|;Ь]4O+l n222{#"؅1Iu2K^;c,$G5Uwf܎ߘ1\wk(x}a?&$q˱ KC+X*\awLL٨GLR\r^#`kJyCMS`mz1O_d WH~'7mp}|_ fCA;y^Xcmu\ʝ (q]䴟Ŕ1$PPH|9AP))Ec@z@[2 .g9d_<00/|x )naؐޥ8@=GQӎ?A{ nl-bRY[* {jU/m8l tU@/?ts!!~0?1~ER B( jA7˷N7u;f詹m8,t; f +*])uz<]8| RS!d,bsyT!Md_RjEkC=`FkЋ6Zz}iP#\K,\RiPЗiepL0'K^L*EYāB˻cC3)tܴ=/g7Jw@wU_?m|iίoi٩NJcAu8%Q8q1{x5\=% 9wG6A#<AۑƮ=/!ePW%!)ib ~q}ßg,#ξatGl41ųCjvXBhۙ"4M ]@2ҟ ;‘&y\};ۨK`rOV|Z &#mzY`]VONMbr^|8{otj`?2nJjn=v`>H(xiL`ݦ_}_vF`/MQeDqI(b)ԗGs7<)4f]|`W8h][^}`c۴^ J}v|BGٟ)a+BǭQKn៖la,,$BԀ6҅V_ Ӌ6ݜܰ*jP cG4n'OVW)" vJG軣m-wǍ,7d?pYOXCGodD5KXwзҁ YSЦplLXJ B8*jP٭".$+Fe\͓ŠD839 w&L=SS uhuc=Q )oN_Co5@L0ʼ.'k~Jgנ/))8z.,nX%)$ڎl;KܡR7 ߭Bm`i#(-8%=+}<! aruBW OJ%; ߭7ᴉ,` ${ vS/ }sb"`Pg n.n]Cd/?>si&_|}^U3zjU"FЁsdzkumq3j(#*eg2VK5OP+qmmUCC܇G%5k&E]uȈ"LKs gvfZ-V'QMq('0g@_j'xC|g? |EkX`|QWdh}cg_vFDp5 'G1.!La7kFxHHb ?ggvmu:I y+ӅhXJufw +#mVρξBYf{8=0XyǘްaĎe+S.L?0, kyp mpfWx?>: gK[:ϴ,sp(z _u/[ 6DuϛC jhX\w.8%XQiv:C\z6tl;Yh$'FM A hYeX,ak5eh-`T9ܭ1 zdǮat~#R!Lӟ鞣{]9c_ke\c<4b글ng:86wwSx;.V]g* a1}U81#17{`w1Y$8B$C[v(Rā?Fmv"hy7uǛ(q0wI+zț 4 s|wWݶnkx0ѩ j9g'zp7;!x+3U1H|*U #HO!RY8X([!sS陥Rб2Q'KC6Jړ3 {pz]T=kɲr1 K,zn](3 _ vr&@=18[p sb9u9(2\? ;ư9`oնv^[~ 3>h3Ơڸ^ԮhV0nժФl 0X9_e ۮmy[੘%hry(ۆ* RD 32Τ0'Z7Qט^3 :r*A*|iL 7E)Z=;-}%mIt=,ӯ4}s+QދL?)aA[V\ҜFtP9zރW[s!/Syb^?) &%F~ +Fq @8PH 9] _Lю=\Yʝx)1i9|nέmG;m/%m={9j>͝-ўz ke H>>F:ݗQ6y0җat])BD 9` x8Bn+HZˡncNvI9^G)iOηE@gy~mK8BM Ut|܋b>hU~*c Ģ\U`f;:kZɮ%pɃmwZ{j|E׮)Re/w03.;|q.bw?͈'@Gz Ml }+N&Y}ZGVT&>aJcc$8+QeW 9gErˑPH-70,"™[6sӅ;ϠR^bTB:P=NP}| ,?֦R^TY=|xG)ESzt-A*8w7s}OO->ْNS*>=]if5haBhl'~F/i#Z ).GfB03qWr FF@VJdD2 ʝ<KMRa?&J?;} %bE^fWD}`CC` Z=SFLcK9$k^fkPO+:Xj v2_zb+q0u`~*cbIА HvF5-g;%k[\Af?M᣾ .˷Kj/6p819LT#tUˠs5+y-R ΪX"@(cNC\tYy SZ@,}ڔ)ާ (c̳~cLsJxJ?:rS0R i=Ff?]$xK x 0 }6bx{nEp XU_Q`.Xexj@ z$؁?3fӿY^NncSǷQžXY5)3 ,Wa / Rā߀V Jىr.ٻ}Ȕ]g4{}\ Xtu+1q^6Ӿa$N{lc:6QpGc&G4bS>Dh t/A^ B,ˮT41%~rk͓s8XvaU5}is)?Z iMr$Y :}@E`BOk? $NIffRqk ˾i|Yc }iOR%jyUew7 WAuLuC(9DJiA)*)I%3˚򩡦,T}s&n`MHTP*~@{ܟlfn7kpPkia >1Jli" 8]?{C0 %zgGq+ݙd4WM#hT>c]oK Oѧjqe q9:^|d!,@āhSI g$ IS*1{uo1y7&ƞL(@v{pdU2k%k+:Rw)^-J|wJmȎǒ21WK^Ş׊ :ޱAwCQd7 ˳ @v Շ.IQ XiY rmrd)G7]ufGYQ}%U/[Dwvʝq@vm"e?Ɓ@*X?<>ky'E \3)szVSs9^8'j3#0^}+` N x /4jD~q83!gͿ~]o83bKzg|l@z֫x6ixb6K;J{G'oUWZƋy[OJC"Y9`|ֻ >oFNQNYRMHut_݋~ɇxzn0+Rҡ.#׻}SDLU4 .uy Q?ϦFv8Pl(lXeI>~&rY:!ՆQy잓]%n 8T{.v`I\ psy\( ^*͘)503s3E>&]UЉO7&TH1wK ܪV%0V TuE'-_ |7XR"ȧ/ပv^.\R4=NnWcWR' kX:\}vNtAu!\ꞌrȊ!YytЯ ZoŽA_ |dI{2BXøyi/Glev;G TՇcyE;2O|jh(85/r1ۗB$m Mp@g]fPuzp 0b i%?(.!ɳ,VgR!]KHU.FOHn=z6m8]OͲP]#2QqIou᣼W ϳiG<"_6ݸ"--<z'+2vcMJ<l8sy0w_{{0>@% ] jȂxmSp4 ޭ:$౺|UV)jkXp#t9$X e""ةٵzMKWw\DvPr \P6w{>R@8Ҟ fCWW#MGAlߩuo@Qld 0Vߺty&,{(+* 5(>d'CY{wlGcہ+vrRe+׶YLXïV_*9,':B6` n懥Eqϕ6m(t!-[tpβ t(%}^+bg9Z}ﮢQ|"UWsoDo 6e`"87h`W^|d a Sr>wb"G ݽq\-T) 7 v酎{!գWp`WLN˖ώ?ɘdaU7'MWk;0\{c=[ '&cLےIOn4S4qi'=6| \b >Δŧy q Y*ˆ-^ Z&A-{Bv8kN Wd;QG-3:zq~1tGMUozuW>OX~/W\JԁQ)c)%L:li>&ոaāKsFl$;R*j/;]=)w0rFx{I7Z\#tpZ|n, gC.mLrz{"}]^U=a`Vh'|ɛݞMTkP``u `d̥KϿ'HLP.#yD>"\省buB/B4-@$q098JGzt `pmg?xTNe җ^DXǏAGٵ?P7YCl {#1?H%D8i JFVL\Pc8P>亼; ' c4&0'umʢ8`e5- >/ǙP0sgRGggtyzEE}*[x`84%p-UPx0WۉL5ۀno|ށGi~ d`%tHFqer@Tyk] 8 b?.{_J K)"jU3q0U4}.-ǞY&'6P*yǗrt v |.3GL.,@āȁ*vʥo&3ޏzE!x jίz;PH[H6JNJpf-QeA6NunuWv+eĿ VX\NR-^ EBc VH(8`|RJuv[U8u.6>K:qW %ۡtbuv˯i'^ꡠc tdX Sǁүu/Ye^t9_2+cmGnMI}R'Qs(xZ`C|eiX >CJPT$n!veJ5OEswRhRXJt%c5dގr у#1my5VMy46O) 3,u/KD"XDhZY'xlx|N7vF0g O.YOԣS Xt.+s_ϤĜ'QE9ƹԦ}z>e KdnQ}HFE1a R-"D)m zU(~ EO) }uQFma8T4] l=Yv4պjh/01LVTyn)V;'إQʈobݑN/ }3;: QqJmܔ˭h H;zYAOv8ݜ81^/COeQ OmR JnOEy&ϯñ"vp;i  eL#;>]Ț%Gtm_`[@IDATЅI^g\Z;&YEٯ?/0uN8|rRO.h &@R13ysRj-]ڙ*R$XI놵CsP[cЏk$Kœ v\ؖӞ -Zʽ[rb8{깅=VE-{ZFs`[g} ЉR>DF2M vB9@\,=f.ͱ+*N~2P?ś,xn ?l6^"€N˜!Gz4=q -U2OD9f@3I$YS 8b_H\ԓ<8 )@e)Otɍ' 2ÀQf hI,rų?tZ]UǛ;t\ X~V[-j/Љ+@-NB#E_mcE,]O[h{I*FY}:vppdT[:b : =1{Iq1ݵcwV z[͜o᯽|)`gz,#:2q_t>Яk0#&8>!;'.c~ XzgkKU^:ѻ湳 W|K BOEMH /~*C&YD"; cO8Ku^'~hOաK֧7p)բN$\՟y"_?gYǾW(ܼ>,ϫ[Y_OX;3ɞvj 3r,o#:Շvd|J Q0}8I7k2՞&@VAp b NRāBe5t-݉@+~K9< xX*xpIFFݴo+5>ZLn?`4mf$ʌ/|I cpRD~muŻNǷ6烎=8趎T(}8(p<!v.˟N֠S.>pé卬#Ն# ĻHJg'rP>u nM"lde_p)r)I;UB@W0#9ISy\}3C_iIӳ.M $>kcAf xQP5…Q=`YDŹ9[2v`_X}1>T$K^u0>AG^Z-~1ti๭zgR ~tfL\-9YD~[U~侏PJcl%19ʑn`? VqN֮(3ީʲgWM[a1+zsyO@4 1 X |?Mq/;f׸۟h%EQ똑`CX;2tm`Ӻ-fg ENm3ȦkQ>F/AfCw}?[~|ߚ獝rlIGFyrBYxH01c!@p/C"G sQ6el)񽁪zVpLx(=e ~q8P8#&e?́=uv%aW%؆yW4Tt/czx`;+׽,~g sQGqpscj]Α&Her)J~  ;K4(7~ 0=7R/`Ùps[u7-bZދj`B_czs}fdƽ{{W]Qtٽ>t+"-"vbwaawvca v(!uAD}o%aϙݻ{vf33gަiz{h2# 򇜣1 "<۩C0a-! C}2˵L^,E䷍2ҲK-/`+g:% B:G".cW h[,v't,|oJ2w_xi]bOwGU;Gxu#}cm@aoFs0UYnG` F7d>j\ԥ#ЕzlPj+8N XHv7s#.6.icqKȟre3 w"kocqK,%MY 9!f i>o/-g~|z8ffSŦ'P>}M\CwSu?HuzH*q,HCYG+2ySVsXѓ)YD&slW[%f/4\U4wӞCyuYrcMo/b%JP0>;Pi?`hk ,<ٌRo^;JL}yU߶*9IhIV^O?܍zlRCk[7г'餦y{U1j6T]rlf kK91A-/Gw<+t;%dC  sA0oZC1PcHgQ\Xr#0`15#yy78Rv*<q8Y_$}߶~Z^2WϷfFYHR''5G2|ь95<]~+҂7Z;DaOD ;39S֏irWǺR(W7Vg "7&(أGxi(@ʢK!fo 4c#p ^m>V'7znbBwo8q>E`ӌ<țy53 yۛ/DnYBY )%;UǤ@mhUG]7hEޛU٫']1[Bݢˍ3?{/w֏_F(%ŭH8(owV͎mP|UnY&Eݭ"ǁ0P<ɷ;j_V} X@̘xc/P8Jzɪ#S}_HP+3]|6#fz$~'.U+Ay<_kAN+5k/Ȍ ڥ>B$ü<03?=01aG`s]`ӐTULl%)̟]Cǭ'8Q7 .m<`ykYskXph철pA/Hq*/e| 2N8pսKY43O}9Ak*|ʩ4mJ[\~`yVl`+JšB >? kMonb]rVn\|αU^gm%Ʃ뭍1^ Oh{ԫP#|CNzGpG淢XwZƣ[xw FPH' A񷝌M 1.;(0pKHRGa];zsМ3]:?;: .hDךqy>hz׼0c4hEwLP+od+I c;OƎEsѥڛj!1/%w?4pHl輪鲖)HMjul2 Qooj>ciAW ېcz[b`"t;b )"HZ@o'7G9_J/ڜ|I chA>zF3S)cwۯ%_SV!ֻ tLHwxҹJyjB?Џ N9B  N>X_h[hE f*2-lt^9 .n&*2KLI}v&G/Gz[cF&yQl'Į/> |${k?xV*EYL?e/f3(ߵ?2o Ya:\f!`~NF LcS?;q hjfq$eM5i16.A@:]Z̼6Q0cd=iW'E!#rD,'Sq:nqR+gS]l-e@g{(_14; cW}z$> &Gr8kh>2/,\jLHD[}/|~+}:T:B3ǃOyPu(1ǽC:7q^Ҍobxx/V##3K8qaSuƅ|;8S]|=x ;w#tE>b|4!Ph^xc&uC '#|1Xr ٰ9~ 0F(r~ⴆ%j`@\ fG|,:ɱEkJ*n``ya{wTZZHhafLFdMGf%@=R{A5 5lCKInj۵qTSoIL]ș&ؕ瘁F](B/D* ^tzwE1i=_GJh#KzSAn 0wuF_S/\ Ԟ!Yvfu>^`5ϰY~|EH;s\/fi}'r "h%Tpu!C;]c;=wHLw}(xZ+I=Wg80_c@KYI/x*9>_ߗ>!Kʩ>'l]<`8urpf%9v% FͥHU6gk.I6Jw!X%`>-SK`2Ok,6[='D&6ྲྀ%pzy2~Ec >YbJ5 B?Heuި/M?b:`Bp*v 2ECŇ*H)<&IՍdDG$u bCz6y0tkgYbj>~`O']^3Ym<"T)V\ҽ_W,FF˯nϷ,zREw 5Z?մ 0|Ű}[ɬh b:wm)8eRO2rNbϤf98bq@Ύ bf _|`qmRoNm/V!^t6|J('d:''!YF۰=f /ߟYdI\L$0u8N wzf639=< }q(OgC_ U0gtYv _;#%sv^A~@" 6p GOG`AuIg`9K,?N٬v?/ٷR[%؊ sKoaoNZk0ytcDrI ߒyYɖ'ԝ Z'q#}:6kui`{#15 vwuDzO,biKc 9IyoK.GnÖz'PA͓C],}նMN~":믭Xƶ ,{uNJ`@dFW ~v{Hi&~Z;Rt~pSq.?Dv\v'\2&՟hģ;n7f==>q~FMCc]E5J<&j5d<$ nj.L;jȒ˝C #L%~d.ɥ/<xzXaj+f&v&hCe~m'-[xnC=RR sȼ̑'kPp21̋m5 |驭<]`7 m ,8XȉFtawSzhA߬eCo$Hy/KHU5*WM^-Dʫag;m{1@w߈3wLt3W őP\9 -ŮޏYC;/H2I%fMA$gFK^=X9S5ϿLon)*$+zBB|L|Ȋ2;5)#}l|z.Fn,`/6|@g4x'~swm5 t K'^R`N.]EN^E XZ<3賾o'GMg-wwjXHѦ#Tؘ`*~bճ)HZJ2']hsB O> 8#Ս}́Z<;,>T#.xu;s>䃆IuhQN(|{'bFiKM%} ZO|0m` r;VRZsHE(蒠@خ U1MB c Ԇ 2YLq6=t͈by%~1ғ?5kk||ad&oA椄8(玎URAsGe_1]V~ G9FȻ ?.hM ]4 ŰP1~BǂvR"%:P;:w]ιcw$?,Q)`h1<- PcFsl.U8"u(mHYRvƀ`_Gm׀$k2Ȏ6vrK~H~ La@=1#rvņy3j89yIV%@ݩjG%jsA`5\eȢ>E9K22f"9ѥz<*K/Z|&vi<.^?0.;o&|kzcA玡B=.e=-h=٥FBZ$4k6moza# e daP7e2#X)gލJ:j;|W 5J Bu,|C]pcjqpu!Ս3ORPԒ } U $18خɦ-C ,S߻̴>o y&}^O ջ5| 0;"5ŰO> h|YHOLn`uGXbgO?<ŕG>_V}:m^zkVx K=m-8DKyMג:ႬB f74ۮjcf+opa~HQo T5)vF*U~ڊYVnd;>/%Ƕ*AzriFӣN-Az O.n5 vAmΊ߁9IO'5ܹz4im-5<6l|t_WK#+:HC[Y7)=74[a;\_9{&Q|^? p%[qի1:1ں3ܧQ [$Ww>7_sp)x,.<t1d%3<X%WHp2&Nn'uT>Fʝ P_Kv/\/w39/>wsA5|<"UXڹ].H^.6i^lo/bQM]:qqذq哀Q>`0齂yf&)fq]1#횿&IvizJwirG^w}s>>zW `FbpGqف06*[(zsz4Tޟo䩱 ~} D>ȁgB\$` `kuqnF[hm-eR/RofIG@ ol|- c rRU\ښ9g}3کw$s@ M /ҎTˌ8oc\82tq[B`}_P(03y8-+},пӓuOSO{U_|uؘut LI}#F}ʋ@7Sh#g'aV򃕩[>0d0%cZ%jZu2lWԺ (ڂy#QJzܢzЩ]w\RV$O:jvx⫛#yzq!X%:V㗻r<ڰ;A~v!z -`q(6_1S9pN7OVobi{0u9?.kN.eճ9 ==j,Jg EW1nI;JOԙ:3ǖ D.TR XJ uWu`r"aBb][ b`> [6ekөOo.eB :{À:N` ,]4V]6PרuEG N-|w!pff*d~~嘦14E /%[3A0 fz+<r )}n'`[Oy1F:#1Xjt7Dw80urK`}jPo'7e%4ROf޽%H$헧Hc|Kc fxhfJiuWB~mǽ4_Id@8B3o/DzO~Fe/:׀{0պf& HeZtѓ;4_n,@]@M<]ȣі e.%́fI':"3vԇ]##YeC %K tx%yaÞŅoVR@>1ƌq?l 0=.wʩ}#L{%?]x/glF{/HU)5XLg~PX#@Wmѧ4ԑ|$5 $ ֘I* P<+k gV#e>Մ堘Àu"/Ő >uRP`ZVxoLwk] ԭ|cUFDzR*ڿjŷUMGME/ eQ`l~@v@us%I}j/$Q`쥆UזWJ`EAQ?]o ,uLjwuJunsO>c1})xucx3*%V3lNF,Kʤ)Q| Ρ#ob^&H?G8y(dۏFpo̳^bȰK6B qd_xzf ޘyRxi> w417P'nv4Q”23IDfu"}wdTq~]iK\HΧRƬjߊ1I[ ]Xt cz׸%B7XTǜ1\ZUr읚/gJ`uF8C %wJ;>ot7OS_@c}=N.>e~]}n4h.`e| `O.Ncgc@0SݓqD#„P#Lm?U+IzQ [/$ I֟)U >~JdJ^ r`W`.㉗lQ)M:oV֫XxRGE#1\}" D+FTϠG= Lx$`kf9VA$EbL;g[ql9_b9/<⌐MMz bDLYk`В%m+GE+.|z%?UF^lxG.^|g+8ʂ)s2?/Zy~L#hL_(z( oG^[{|wOJ<"ͤF`{ZWzewsU`%%OQe7 <Ĩl2쌀Z'|cD2j9e>Mp+`jbfR[U>ybJS]%EU,qL-;1f`dݘ3 p.w$_ݧ牛%s6J0!);+m䊛׮Eˌ}AHQ=s,(蝐}PjF'VfHm_^ V_r{g+__ 3m \To t:B_YJļQj+:{Irx :ʟ6<7EDZ zg]$x87H0/>Ƶ0Xow;AᕛRzw!2 ÞUy|ԪM[Z5UDjF,]tto>myGEm=>A O's# b6}gV3 DV g+V'~bY\6YU{i\I]˸8:>yZ+#ں7ӣja$C0.\cຊB(c?%(gPęXT_L'^:-aJ/;RiG )ihn(2ÄIN>(.,y^HZwԌf1@r=3{;~@wIT a%XO=`Y϶z, U&Ucaxh# +v:U3=1x4A{X~M1$` 9Zɶjmx1 }|Q}]T&oA02}6@:C]-#j_:HWq[:{̌^=ҳ/W <~@/K ^}n~_ {C'vRHv$fUy[n֣3wf0L*H,2:] OS@znttGZIKdEϲi}so՜#?1O,z$b-r^4QC@c:.qEΙ-Zo;Sr:;{os<(R?p_L sB >J)&7wed1{f~'SQ/cp t'mfNBF,K19sp&}F4P 0ַ,sqz;SG*cpw[J3lY<:(DyF@a+R( ^U0UPO*8]^0AtQ[]gRߴ &{n](M>AƌFcbY3TvY+^(RŢ/m5@+@ɹ HSz\ -g~@vh4Xc  5Tl=VFQz],|_>%X_'@ 퓵{6ϤӁfǢa3S Bfb6fU#9p Apb'c+zZq}ս砈1 r=ӽ3=S_]]}i4NφÃ5!3Av愕^`5ɰrW$OGZlC:!0‹"AUn ]惕ybBDZ}\ cd ;2ufcRRHp.%2^nK9a]XL恞u:<9~%)N@aTIH~#`2J qt:xy){_ܕF`a=gXc]5Fz:Õږ+MO ?0 އ铹wߕK1*/X1B\68c2I១G0N Ct1xjbZ_>?1jǥDL?|ml2JiSG}? Ż .v0:H[|zŦˆV^ө="Jm>Y~3 z7-ҬMF:ӁrfHJO$`Gs=Rf$Uu69*|O tz5ۇs||OҳZ =řz@:M=.{t3U Ԥx켞 (1݉11 ?,]ߌlue {g7?_̝@yq@CGGxAG-<:9?|՚1 6eŏ. 򠂖AQ;;z"#ŤF|`f|_{&~zQ JEV"9[l̰ះk҉(^ @ ,>A-XV}+_t!OQn /Ylzf?bo r E6B %J`+KQ~lG4 U&g\d֨0ccO?CbÿFO? m+0P|~1ZBkP ,M1{Y2wŁnPDIg%Q53Au5G<~xqfĈR5O4XGge'u/.YcѻCハh jA 欨 z*4#C(P"VY4pMT.Cg:o >jܙi&< TˆaI?E3wszW5!?60~5LhJf.꛹cO?w(Cy&OV\.Xga%R(fdSvgduQpg ЏxMٵRg~[-j^ܩZԠxȌN= V [;Q :qu?h%O{GD9'뿌|ͭiP0̬I#GHC DoE8D[G{ іCv|c{0ށ_~I&Mrb{šg#fҥuXpAp$I;%h}I<7CSb88g"xz0Q Ɣ}6l)9wAW ĠLn8|fq1E{RkvIaac3,WYKL{%crkA2%%m##}wq~R`&ԇ^z<`V2ڙ5a((Ek f+x0P&"c9%[ bj1CU 0ΥŋP㿤ڝ iAq tK^}'r}. Zڜ|B 05ç^$} n|Mbb}+ey611>f}\.@%i{8.ƭuFtTkֺ"ǪޝXk[Í@goocl"5-lM"I*'^ngG6zX®~T1w_xٳ׋to7/z?$305*}TESDpRW9bhGm^~0zfB9pKұ&,}(^ Qm!.NWq{o~Ŭ5›l-hn5mZ6tݱN=Ӻ^?}xf{vjn8+P"^fp jF6R]0Y H|-LJԏܵFʵV-#I(nVz2/ |Z ssȁVwu~_zV7Kj:x^3l4ZrrdulXGǚ:r(B  5$ knCG ֛w}?9qP.\I/]*ҟj@_1ob{[ / ;Il^NNW֚vߡ;%sϤ9^ruEzie۩ʻ;'xM׵7K۷ ,jU!߅)%"hPoddz;qw =`٢uDf0)|[T=зyR=2˓!==y 05y0{yB=׷`=Fp D)lXDu-S+inz.xW:;g՜:G#L]T%Q޺^5?'Kb2_Vl3dž/aj(5S5ç^$p z7i]M(uU;,.'ǖ.,qNtGwfU}K'szgQA\*}Y]3u>ӟUG EyYxfSC ٌmJ@;8H*ϐV{ lRۂ`FI`?Mo՗ABzWN ֔&#g/L,lOs&?usi3{}r^Y*~X4\1CKڶ|Mh1E"PH5蠍irh]rSCM2C(V3~6[+iZiGg}RC`K4 iђyi~ P/uI;L~,6YR㿝 CizϽ.{{+&Nfd^k s)@'H{v^pOoS~\3=QY\+7>{Kj`}sg Fr/o"L;GZ 7' /$7̲6A[ЏU,)t& }7<-McD`/7Ji#y_̲ Iy0g#9)7H͢\-ZDZjcc.) c?4KGKa{ܤ=`n}=2g,&+ղIP"9)- FE R R#̫]yjv7UjZeNO{!cfA7ZȦdJ-T+NI}Cu{#Lueai0TaU݉7t0 i1)YH2j) y<(kۑBdu*4!P^MMC "(KT[>~(ɛAz惄1 pİ^7|`?_<1`їfi@ԒGΌA#Uu.azNbK}=k d۴$PI>~{ŶHm/g\}|z?.5ߩvuSGYT{=kaP~TM6vK#-SROHGgޡy910I$F:_6Li<,Q;:_P V1h00 ~LN,Xu`̆+AihɷҒm=q8pߚGm߱ =ߒͲi ҿŅ]mӍ"'-Iji,ذd]`E@7rUm VԁF o|/'B b6!/* X~03q%.flºT%.|1MeU3SQq>-B,?yѹݕsw%9*:Y^ ҃fFiP ¢+l$WpW5` nQSrg^xt0xOWp*I0M?M}cQ۩?xƂT<;IweV\6-;K~EM/`fk}Lj75YPܫfF?3/4[8$%'5[ <",l;O+YM /3Bvn4{Eٱe/`zp|8ds$}h.(OVH4d5:a\m/X~^j3<}gKLͻ1֒[u%c,x Gjbv9&5i(s)-M|V~s8^}n9~zĂ⾽ee܎H)@(Wߕ\x)!57a@xGz^Doq|Һo:1ejTw@g+%>/D}e= uW{sm?r P# At續!l{#Zq`U#s]X0Ixo͍>tO%L^F^ިZ^c\Z DɗYI7OS#W8 dhѤǥ{o徔[-#˿>oj7юrv7 K si2P7Aül~ -ݵhvɈO5)imw"Po Ɍ]Z܋ff3;)RfhB 츤%]zs#^>'}:CG]" i߼{`<4;828&ȡ]NP){_OR1#Nqy~dgqEj_r8Od nYF_(A{L/0|ݳ -Y&ks~ϡ?Oz==u=*q|0HJ/EڃLt5d30`X>B$pKa>O{h Ѷp ŅMOfᥖ!?PtI=}I8 3-^gjutn|. ܾ<e8FK|, \6li!J J#{Utd oZwŠQՅ*/c<];/uG&WΥ 6kMgMv~ߨ'rǨʧszINRP9}? &M$N;v jc,r֯'&hk5`pat* F X6xa0H9N.ي3Q8ʷ(|նn}ۨI2S[}nŨ5Dill~٬}sǦf!=EE^WWtI!_&jzO,r-xqt`lP('XH,C(Rq4G=B=+2Uzh/hۑAk0Zo 94brV5YA k &ZDvl1Q0K99[?$s 8XyZl`ߏl &vb{+eA+"( pۥ-v8'ST~k炩6\:h7< hy0PD7݄Rͯ5;.NfiW) C'7h8EIy2w ϛŠ_^3 vKAv\ fb ȬtE_4mcdǒnsmR@zpPܫӑvJ͎.8 :#bvauy{MTʻ|2N|}gMwko%|s_盘l&m׷ʅs}]Ks5@wl&`D90wNRk~YpHz'}D=P b/h#+ƞӁ寖hH8Xɻ\S|/PsxM?"H%C*&rKf.>T}y!zUEWԺqiyfmuQ 4ZB=H}f F/q@ wih!.C %Ht5+̈́JNbE PoGW ryimvs8;І4@pkfW bh@QW)Z +4bH0Oʕ̤n{ JLQjlb`ↆi5nzZFZ bdM >`N~ȗ#7F xzN2&m=I8a3 oo;kn=L]U`[u4N3:P#ְ[5|Xe`rRAУo@~I*f᭡kZ|}wXU-H1<О8]  YHzj[jėkvL\8nt}YB?J3 p{v`{ 8r$?v#+1S@>[o7"1y^꽿Ksf0%=)7{nJ @ȏ[߭6Ojqs̔p򴔣I; TbO8&MJ Pݱd{Gy$0NWlJmWғO432|K${Vjov/-b? %vi맩Z#Sz/;$?\~x3/{;|S}KeEt^Cc4cP;:jLS ayIɛ\;e>ō;̒/s+S1'"͝_PjhpA{?|pBB ,+np!X$`{OCpˆwރ~K=N `C5CaEE[}5wL' u1ҋuPzn#h3UM5^QU4)"/3}#JX>nv|1,k[^ UzKցW ~ߐvv 2щHp$NHaAu- Y@2@oO:`~~RQ`5bQ]/Ԛ -^ᵢ8&5|>oU-\˹IMFh;e;=ຑ{[C<wl9 1;z"z]7Ubc†c'I?=tkۙ`ߏ iG`*fJ:%ʤ'hoư]FINŪB.>ᗶFaט}n;boX&2}_] ^ IE* o&jzK38nxS4A"@4S嗢ٮN_OF@%I9sz2fgy3&ehϒrǥyt?Oz,]zPf!f@10  kJg/N+\ڥ?C8(ߓ( z+TS"J %_ꙤJe(//T9aZ(M+* f WF0`D? [mO7~O8Xnݼ']F锑IגfHrv/{S{܅ΛQ<<(q?{!z?5߮&󷨁kFuRci5PSƘx`)!x/HI>R=J'~XNL_ل,)l(&(2!:ijJ.a[.$ʫn'DV1,Nl0pɍ,VnBb ťC,~3KjQP(]Fa:FDNd~;8ҝ@fLXQ o%?͍Ҽ0 L=N} 6 ]d012b*F?ˆXJIRtko2ۨVoh ;%փ> TL+R`Z8H}0`Kdd eVmk %֬w6KXībɿ+Ɣ)Q -\|flt|egR0$?5O]*Pn33 tޞpFe#ƥU}aUdߨ tpnjoʐ+a`bL !+- STw=&3¸=<>\VɰLj)V+KZqJ#}K-CaA q1]e bYX!N}zsQ.Hf|vsc4:y!ߨ?b=&f@Sђqoࠑ:gGOac/۰L[ENH۬18M{  F{q/c(}oo-Y!kMw!48|T˦aR-De(Jn|,:l={m~虢Ʀ 6O&rVj!nuY=2$M;UO8u7UeiSQI;tۅl=| 5q6;V33| k_ۗk57h@K<$hCk 'f?GT.לe=D}xg+T]Eźn:%4~D!IC~Fр''?I>+$*r|;vi+ J)eDSy2n4FHEh xT.hnv + z5f #%z n`gwV!d&f_kچZU, !n[}'G5ĺzNT}@¦̿,ƨ@1)Ѽ%Ћr}/PN.ԭq nWʿS:zkKur]%MxU-%s sk5+&+c1hZy]Rs 0σnU3+tʆ@`A3zPE\:/]Fd&}|F=eV\b~epPXJ#{!ݝ3ΩNvg<ۡ g2N2`?/ꙌQ̀]q!z@Z([wk)nWz{mLHVurY4zQf\op4$S*RO9 ϗ[ VJ6H$Y_z nda]OR;v 3ZT2ꇶq{KU3ZP煗;&ctX0gDmpLuAVjf![R: [G^(wV4vmwY@W(-Rƾ_cu.wyoi;/!HdžZphEWyP":s8=W݊0wxz<?P )y-0*RV}l'G4ŭXtnr /" EiHrv;ȜUOc+;jQT#%\k _ #h1[H?p=;pǗT\;[diXf?6#ͣ%{.~fv(YkQ_=Ƚ7ҽ2v:⋧S9< k/S5jt9|| @44Н"KW:[Rވpbޞ_$MahKҔpoq7لIyGx Yg5{d%рtΨr r7lw Dt/!cS4R LGGE$հvFP<؊AFGɯ~4e?G=?2DVFbfZF33I(997P W$d8>"V{160񹉌3$Czoe+og0>-p0:,3V)e[mXnwK4.?Y?JqWUZj3ur~~VglYa+:,/,_d{v0`ir?f͊nkfu .(Uq5<ld / 9;?6@D6(Եwχ9ǁvtoLUT/fk'J6D^wjSW)_53'kS袄_?5wvȺv<˳&}1<}υ~c۞ jwe%(l64=(VԾ*1~Wƒ5bq.D;cz;ə f^F0>b T+Y ! X6~UOn={33~r;ՐHaԐV> ң@Xbiwz wZ{P񲙙Q;7ь*nv{RMb3.zbN :{U̚3 nw]'Ǜ }5vtZvgqvw[vOw/N&ziFJsĮ,D!E^]{jP27!g0HO7dʹpWc܎cσP7_XЖ3@N>>_Ǚ)xhQHc_ZTm$k _ASՀ}Hكa$

YEX / >Y +X!Y 9/ +X!Y9 а  +X!Y01!!632#"&'332654&#"E%csī bpysiB)CJ0Ҵұ[Vqj*0 P9 EX / >YEX/>Y 9/ +X!Yа в 9013##!'3!5Bs/N& '(9EX/>YEX/>Y9/]q]/]or +X!Y а% +X!Y%9а  +X!Y0132654&#"#4632#"&5332654!#`zvlpb泼e[깃lpqcTS`[MO%@њOcb[NV 9EX/>YEX/>Y +X!Yв9  +X!Y в901!!56654&#"#4632!g]t^yöc~^ARipkκQA9EX/>YEX/>Y9/ +X!Y901!#5%3cc H9EX / >YEX/>Y  +X!Y +X!Y01#"'5432'#"32zrI᧨SG FEX/>YEX/>Y +X!Y9 +X!Y 901%!!5!5!/gqx|xy 1EX/>YEX/>YEX/>Y9013#38RXJC i&1 SEX/>YEX / >YEX/>YEX/>Y999 9013##3(usEKB1`9EX/>YEX/>YEX/>YEX / >YEX/>Y 9 9  9017373#'#3  Ƹ֮׷&P@w;PeskS1EX/>YEX/>YEX/>Y90173#3@77$^\kst =9EX/>YEX/>YEX/>Y  +X!Y01#"&'33265 Ӷy{ (/EX/>YEX/>Y +X!Y01!#!5!qs C%]EX / >YEX/>Y 9  а  +X!Y +X!Y а# +X!Y014&$'&54632#4&#"#"$53326#yVyq{8Vﺚ~*PXJ+bȜbkYPAXPe[ˢfr[% c9EX/>YEX/>YEX / >Y9/ +X!Y 9 +X!Y01!#!2#32654&##Z u~?Y Xm]dnY6W!O"#9EX/>YEX/>Y9 +X!Y +X!Y01%#"54632'4&#"3265Upf|6F$Fo 1>ϹU O 9  EX/>YEX/>Y 9 / +X!Y +X!Y01#!2#%!2654&'!C|wJǨjd`w`Z H9EX / >YEX/>Y  +X!Y +X!Y01#"5324&#"3265Z$2>4BX EEX/>YEX/>YEX/>YEX/>Y9901!##33X]lmw`9EX/>YEX/>YEX/>YEX/>YEX / >Y99 901 3###zrsqsZo)EX/>YEX/>Y +X!Y01%!!3CHW LEX/>YEX/>YEX/>YEX / >Y99 901#373#֓!Րz+M69EX/>YEX/>Y а  +X!Y013#"&533265Աۺqr\nŝŷ^fm_QEX/>YEX/>Y01!#3QX TEX/>YEX / >YEX/>YEX/>Y 9| / ] +X!Y01!#!#3!3X\c5b 9EX / >YEX/>Y 9/  9  +X!Y +X!Y +X!Y01%#"'532#&#"3275!5!5B &QіSS*Z'TJ CEX/>YEX/>Y а / ] +X!Y +X!Y01!#!!!K Cs+iEX / >YEX"/">Y" 9  а а  +X!Y +X!Y"а"&а") +X!Y014&$'&546753#4&#"#5&&53326#yV˦ƹyq{8Véߺ~*PXJ+bˆbkYPAXPe[”fr[0 cEX/>YEX/>Y9/ +X!Yа +X!Yаа +X!Y01!!!53677'#53'&632#4&#"!p8 O ˵ʹh`]h"oF"y{̷pw{ m9EX/>YEX / >Y 9 9/а/ +XY +XYаааа0133!!!#5!5!5!533M@yDxxKyt39EX/>YEX/>Y +X!Y01!#! S= 9EX/>YEX/>Y9 +X!Y01!!3'!Sɭ=C\^0`ZaEX/>YEX/>Y9|/`pq`p] +X!Y +X!Y +X!Y01!5!#"5324&#"3265Un2>4BS8 9EX/>YEX/>YEX/>Y9013#3#'ɭsj\^>K f 9а EX / >YEX/>Y +X!Y 9/] +X!Y  +X!Y01!!5!!5!!5!K CwC {ID@ 9EX/>YEX/>YEX/>Y +X!Y01!#!#!D ? E 9EX/>YEX/>Y +X!Yа  +X!Y01!!55!!owQWJ:__`^EX/>YEX/>Y9/в 9 /а  +X!Y +X!Yа01#5&$54$7534&'66?6 nn vr `]9EX/>YEX/>YEX/>YEX / >Y 9/а  +X!Y01$3#&'33ٺ3k4K-u~!^"#9EX/>YEX/>YEX / >Y +X!Yаа +X!Yа01%66554&#"!53&54323!>=&! :#˜&,n9EX/>YEX/>YEX/>Y +X!Yав9/ +X!Y +X!Y01!5!!632#52654&#"#}1ľmxy2`0 9EX / >YEX/>Y 9  +X!Y 9|/]`p]0q`pq +X!Y +X!Y 901#"546632#&&#"!!32670{~Ay'^ӻtïo' z!"9EX/>YEX/>YEX / >Y +X!Y  +X!Y9/ +X!Y +X!Y01!!#7766!!%!2654&#+^ M{;.`Q $;rsneu J-Yuc_p 9EX/>YEX/>YEX / >YEX/>Y 9|/] 9/  +X!Y +X!Y  +X!Y01!3!!!#3!2654&'CH$+s}nJYwa[q(.\9EX/>YEX / >YEX/>Y +X!Yав 9/ +X!Y01!5!!632#4&#"#}1dy2C P 9/EX/>YEX / >YEX/>YEX/>Y +X!Y 01!!#!3!3CGe  a9 EX / >YEX / >Y  +X!Y 9/   +X!Y +X!Y01!!2!!2654&'!+ s}nĥ wa[qY.]9 /EX/>YEX / >Y +X!Yаа  ааа +X!Y0177667!3#!#!!!)GG.Bd 1V T\9EX / >YEX / >YEX/>YEX/>YEX/>YEX/>Y 9|/]`p] +X!Yв9а 01####33333#cd,YY,  Q<G($)*9EX / >YEX/>Y  +X!Y 9' 9'/'/']']'']$ +X!Y$'9 9 +X!Y014&#"#4632#"&'&5332654%#536}nngvq[=yyPT]XOV)$[,.YV``Xa L 9EX/>YEX/>YEX/>YEX/>Y9 9013##3st, i 9EX/>YEX/>YEX/>YEX / >Y9|/]`p] +X!Y 901##333#jd5 '6O9EX/>YEX/>YEX/>Y +X!Y  +X!Y01#!#776676^ D)^P s^" D9EX/>YEX/>YEX/>Y9  +X!Y013"'72673-^%P&P\1I f0xEI 1; F 9/EX/>YEX / >YEX/>Y +X!Yа 01%3#!3!3DPGT =G9EX/>YEX/>YEX/>Y 9 / +X!Y01!##"&'33273߹~0py21 P 9EX/>YEX/>YEX / >YEX/>Y +X!Yа 01!!3!3!3Ĺ  uY 9/EX/>YEX / >YEX/>YEX/>Y +X!Yа а а 01%3#!3!3!3Ǯ͹T   a9EX/>YEX/>Y +X!Y 9 / +X!Y  +X!Y01!!5!!22654&#!* hQrsnJXuc_pYg& R9 EX/>YEX/>Y9/  +X!Y +X!Y01!3!22654&'!+Ps}nnJwa[qYK} 9EX/>YEX/>Y9 +X!Y 9| / ]` p ]0 q` p q +X!Y  +X!Y9013267!5!&&#"#6632#"&'A~xyotuλ!"#9EX/>YEX / >YEX/>YEX/>Y  9| /` p q ]` p ] +X!Y +X!Y +X!Y01#"'##336324&#"3265 ع$ BP c9EX/>YEX/>YEX / >Y9/  +X!Y 9 +X!Y013&&5467!#!!!"P"zqѹ. &hs!0|  R9EX/>YEX/>Y 9 / +X!Yа а  +X!Y01###53!!3"9EX/>YEX/>YEX/>YEX / >YEX / >YEX/>Y 9|/]`p]`pq +X!Y9 +X!Y в9013######33333c&zcd,YY,Z<T  Q<N9/EX / >YEX/>YEX / >YEX/>Y 9| /` p q ]` p ] +X!Y 9 +X!Y013####333AoiqjdRDT y 9EX/>YEX/>YEX / >YEX/>Y9|/]`p]`pqа +X!Y9 0135333###5##3DP<4qAP #9EX/>YEX / >YEX/>YEX / >Y9|/]`p]`pq +X!Y +X!Y 901##!5!33#i c4 `[#./09$EX / >YEX/>YEX/>YEX/>Y9/   +X!Y +X!Y& +X!Y&9!&9, +X!Y01"'# 53"327&54323654&#"[٦~62ϵͶ^vbj;<E*(!E'8ڲy8 &&D ]01&ql 9/EX/>YEX/>YEX / >YEX / >Y 9 9 9  +X!Y 901353###3(u1tsJTEKB&^ 9/EX/>YEX/>YEX/>Y +X!Y +X!Y а а а 01%3#!!5!!!3DPFT=P9EX / >YEX/>YEX/>Y 9/ +X!Yа01!##5&&'353673߹cighge! ɺm{x "1,G9EX/>YEX/>YEX/>Y9/  +X!Y013632#4&#"#~>1dy3k$l%&9EX/>YEX/>Y!9!/!] +X!Yа! а +X!Y +X!Y01"5&&53>32!3267"!54&Φ_fLP9<" ƨ^w ((/¤^ia 9EX/>YEX/>Y 9 / +X!Y +X!Y  +X!Y012#"5!54&#"'66267!G)R9AgH)/ơGp9EX/>YEX / >Y +X!Y9 9/ 9  +X!Y +X!Y901!5!#"&'&5332654&##58YYEX/>Y +X!Y 9|/]`p]`pq +X!Y  +X!Y01#"532267!"!&&Z v  $2>4wì0'()9EX/>YEX / >Y 9/q]Oqа/@ /?O]] +X!Y +X!Y   +X!Yааааав!9$ +X!Y01!!!!!!5367#535'#53'&632#4&#"nl $ ?˵ʹh`]hy]yjGy]y@̷pwB!"#9EX/>YEX/>Y!9!/!]! !] +X!Y +X!Y а! а!а/@ /?O]] +X!Y +X!Yа01!!27#"&'#535#536632&# !!!/h bhvo`Yy dymyym()*9ааEX'/'>YEX%/%>YEX/>YEX"/">YEX / >Y а /а/] +X!Y  +X!Y +X!Y!' 9& '901%!5!46 #"&5326554&#"##33n-4^WT^aSRa]PYji\RZhg^lm(f !9EX / >YEX/>Y 9/ +X!Yаа а /@   / ? ] ] +X!Yа а  +X!Y01%!#5#535#53!2!!%!2654&#!rp괴YP̨Yxbdz> &tEX/>YEX/>Y9|/] +X!Y 9& +X!Y&9  +X!Y& 90132654&#"#4632#"&5332654'# TJH?F9K|FBOCFIX=0-:3)b{yh7[)j}~k-<<3q6 JEX / >YEX/>Y 9/ +X!Yа в 9 9013##5!'33Pkky+f![dEX/>YEX / >Y +X!Y 9/ +X!Y9 а  +X!Y01!!632#"&'332654&#"p2AJy AHNJI;y|~ecKD>M+VQEX/>YEX / >Y +X!Y 9/ +X!Y  +X!Y01#632#"&55467"3264&(Hrv~3MS?=NGMwt3n, "TUO|L:3EX/>YEX/>Y +X!Y901#!5!];kEO (}EX/>YEX/>Y$9$/$$$]$$/$]$q$$r +X!Y$9 $9 +X!Y +X!Y01 &5467&546324&#"26"264&wJ@w}~N>?KL~L7??p?@Cv7;jyyjBa7vgvv:4::45::50.88\7I ]EX/>YEX/>Y9//] +X!Y +X!Y +X!Y01#"&54632526'2754&#"Eevs7{^*O<;LJ@A~y=dbGYа/@ ?O_o]а/?O_]а/@/?O_o]/  +X!Y +X!Y013#4632#"&732654&#"rdHDcaFHdU3$#00#%2rFa^IG\^E#21$&24 WEX/>YEX/>Y а / ] ] +X!Y +X!Y +X!Y01!!!!!!WkJN)7DEX&/&>YEX/>Y&)а)/ +X!Y&9/9/]7 +X!Y79 &90 +X!Y; +X!Y&B +X!Y01##"'3#"&5467&547&554632!32654&'#326554&":oxOI4z΍^T8sPGo<8YEX / >YEX/>YEX/>Y 9 9 +X!Y  +X!Y01%!"553 73#325&&#"l l"jquHk=$c 9EX/>YEX/>YEX/>Y9/ +X!Y 9 +X!Y01#!2#&'54&#%!265!!rA;9tcE=6x| iEX/>YEX/>YEX/>YEX / >Y9|/cs]3C]] +X!Y 901##333##Ur~> TEX/ >YEX/>YEX/>YEX / >Y9/ +X!Y 901##333#̀~;  LEX/>YEX/>YEX/>YEX / >Y99 901#333#r ckKy; LEX/ >YEX/>YEX/>YEX / >Y99 901##333#P+ u  H9EX/>YEX/>Y  +X!Y  +X!Y013!2!326554&#iƽM@`0N9EX / >YEX/>Y а  +X!Y +X!Y01#"546632#&&#"32670{~y'^ӻt˽jokEX/>YEX/>Y9/]/]] +X!Y9 +X!Y +X!Y013!2!2654#%32654'#_Xctszl|Q~!ebUčUSp GEX/>YEX/>YEX/>Y 9 / +X!Y 901!#3#!Fnߦؼs; /а/01#546+k;T;ScoM `/а/@ /?O_]  +X!Y а /а/а/@/?O_o]/01#"&533265%3#ਇOIGOpe_rr_7=?5/]]p]а/@ /?O] а / +X!Y +X!Yаа/@?O_o ]а/@ /?O]/01#"&&#"'46323265'3#`F5q"#/T`F/,#0x}JiB 3&KkK3&nX ]/]а/а//]/9/ а /а//]   /013#'#3#"ũ"ɍ^F ]/]//а/а//]9а// а /  / ]01#'#3#3FŪ"ϞUis/а//]9/аа/9|/@ /?O_]а/@ /?O_] в 9901#'#3'6654#72FũA;J<人|!C\XI;B<iF/а/а/@ /?]9/в9 а /? O ] а /@   / ? O _ ] а/  +X!Y  +X!Y01#'#%37#"&#"'46323265Fũ-`A6n(6M`@*|&4䞞>^G.?bF-3 9EX/>YEX/>Y +X!Y013!#!̹B0  `/а/@ /?O_]  +X!Y а /а/а/@/?O_o]/01#"&533265'3#ਇOIGO`f_rr_7=?5 f/а/@ /?O_]  +X!Y а /а/а/@/?O_o]в9901#"&533265''6654#72ʡJIELJBQD^rs]5>=6|;RNB2;>PEX / >Y016 EX / >Y 01[!EX/>Y01V"EX/>Y01:#EX/>Y01O$EX/>Yа01I%EX/>Y01~N  9EX / >YEX/>Y а  +X!Y +X!Y01#"$'54$32#&&#"3267/n}GDJ㣨7~"p #$9EX / >YEX/>Y 9/  +X!Y +X!Y" 9"/?"O"]""] +X!Y01%#"$'54$32#&&#"3267!5!C㰻֨!" xӅr*arG-NڕF:0F H9EX/>YEX/>Y  +X!Y  +X!Y013!23254#8>*$(~_"H#$9EX / >YEX/>Y  +X!Y +X!Y01#"$'54$324&#"325_⯫! n}xrqyJ7O5;~_&O'(9#EX/>YEX/>Y9 +X!Y# +X!Y01%#"$'54$32'4&#"325_9<"!n}xqqyZy F:P3;3EX/>YEX/>Y9/ +X!Y01!#5%3ɹ  V 9EX/>YEX/>Y +X!Yв99  +X!Y 01!!56774&#"#46632! } }fzx~xsT5TluplQ /EX/>Y +X!Yв 9/  +X!Y +X!Y901!5!#"'732654&##5tr4׹<vlgXʥg> LEX / >YEX/>YEX/>Y +X!Yа/ в 901%3##!53!ź< Im! 5eQ /EX/>Y +X!Y 9/ +X!Y9  +X!Y01!!676#"'732654&#"f~6o:әju"tt@reϤ:SJ&/EX/>Y +X!Y901#!5!W#? !~/а/@ /?O_]  +X!Y а /а/а/@ /?O]а/ +X!Y +X!Y!01#"&533265#"&#"'46323265ҡJHGJ`F:w,"0S`E0,#0_vv_6@@6 JiK3&KkK3&g!/а/а/01#3!`m9 EX / >YEX / >YEX/>YEX/>Y   +X!Yа/]] +X!Y +X!Y +X!Y  +X!Y01!!"53!!!!!7'"mc[l얯2>4 g B?%N/EX / >Y +X!Y 9/ 9 +X!Y   +X!Y01267#"546632#"'726754&#"߱wu҄v&zi"i~<2\RëKg ( /EX/>Y  +X!Y  а /01%#"'73255g;4C ; L,EX/>Y01sNEX/>Y01#MEX/>Y 01wKEX/>Y01vO,EX/>Y017HeEX/>Y01~EX/>Y01_SEX / >Y 01pEX/>Yа"01JTKe:Ke:U:EX/>Y01YZ:& U:!fEX/>YEX/>YEX/>Y +X!Y9//] +XY а  +X!Y01%32654&##5&#"#6632#"'RXarTNcke׵wh3{cbU'>Ub1x ;EX/>YEX/>Y +X!Y +X!Y01 5 '4&#"3267"<<> 4;3EX/>YEX/>Y +X!Y901#!5!@%H4f9 /EX / >YEX/>YEX/>Y 9 9  +X!Y +X!Y01#"'#3632'4&#"3264oɀpp񹣌PUË֪,\NK9EX/>YEX/>Y +X!Yаа +X!Y01%2673#"5546632#&&#"@cxnvۓhxZ^c* ڮiο![f9/EX/>YEX / >YEX / >Y 9  9  +X!Y +X!Y01466323#'#"&&'7327&#"[q΀oo|uRS&4x؟[VN&'(9 EX/>YEX/>YEX / >YEX/>Y9  +X!Y9 +X!Y$ +X!Y0143273#"&'732655#"5327&#"[oVH7?OoSS&272*2(8١ZDN8EX/>YEX / >Y +X!Y +X!Y0146632#"&&'732654&#"Z~咏' į`2Np9 EX / >YEX / >YEX/>YEX/>Y 9 9  +X!Y +X!Y01#"'#36324&#"3262nȁqt TS}}'ە[`Nm9EX/>YEX/>YEX/>YEX / >Y 9  9 +X!Y +X!Y0143273##"5327&#"[opVX%4r&x5ߓ]Ne9EX/>YEX/>Y9/]  +X!Y +X!Y +X!Y01"''46632!327"!54&q |݀$™x9s NtZrʠ`VN%#&'9# EX/>YEX/>YEX / >YEX/>Y9  +X!Y9 +X!Y# +X!Y0143273#"&'732655#"5327&#"`pRA7zo뺕RU%/-)I:2ӠWg&2,349,а,EX / >YEX/>YEX/>Y* 9! 9*!9!*9 +X!Y 9 9 99 9 0 +X!Y01"&54677'&54632653#''277654&#"NhKK]I E^ёjdLk?6BSHB8HVK6Ohlspo4taqK3I;TI]:F90YEX/>Y  9 / +X!Yа +X!Yаа  а а01!!573%MH U[,},,U 9EX / >YEX/>YEX/>Y 9/ +X!Y +X!Y 9/ +X!Y   +X!Y 901!!!!#!!!!5&& f) ;D-2 Y9 EX/>YEX / >Y 9/ 9/  +X!Y  +X!Y0133###32654&'ִwŦ*Zlb`w`Z'j()9а$EX/>YEX/>Y99 +X!Y!9"9$ +X!Y01#"'#7&53273&#"%4'3265քtK{E=Or4;Jj>Gp ?4Ngni;b\409EX / >YEX/>YEX/>YEX/>Y 9/] +X!Y 9/ +X!Yа аа01##!##5353!533!5![ZZ\[\OOKX[9EX / >YEX/>YEX/>YEX / >Y +X!Y 9 901"'73255#33<4 #@]K Qkm% iEX/>YEX/>Y9/]/]q +X!Yа +X!Y +X!Y013#53!2#32754'#3$)]ʦ]iEX/>YEX/>Y9/]/]q +X!Yа +X!Y +X!Y013#53!2#32754'#3$)]ʦ]l/EX/>YEX/>YEX/>Y/]]9/ +X!Yв9  +X!Y01#63 #&&#"##53533^{WioZ&ȹ}5up`Nҗ1NEX / >YEX/>Y 9/ +X!Yаа  +X!Y 01###53!5!!3-f,77Dp@vEX/>YEX/>Yа/ +X!Yа/] +X!Y  +X!Yааа013#3#327#"&5#535#536A 8IE|~@AA N6&%D06EX/>Y 016&%u6EX/>Y 016&%6EX/>Y01"&%:EX/>Y01&%j6EX/>Y01&%PAEX/>Y01&%'Z"wD&'yFB&)DBEX/>Y 01FB&)uBEX/>Y01FB&)BEX/>Y01F&)jBEX/>Y01B&-DBEX/>Y01QB&-u5BEX/>Y01FB&-@BEX/>Y01^&-jpBEX/>Y 01"&2:EX/>Y 01v 8&3DR8EX / >Y!01v 8&3u8EX / >Y"01v 8&38EX / >Y"01v $&3<EX / >Y#01v &3j8EX / >Y'0016&9D+6EX / >Y016&9u6EX/>Y016&96EX / >Y01&9j6EX / >Y#016&=u6EX/>Y 01m&EDEX/>Y* 01m&EudEX/>Y+ 01m&EnEX/>Y+01m&EjEX/>Y,01m&EjEX/>Y0901m[&E EX/>Y,601m_&E'\DN&Gy?]&IDEX/>Y 01]&IuTEX/>Y 01]&I^EX/>Y 01]&IjEX/>Y%.01g&DEX/>Y 017&uEX/>Y 01,&&EX/>Y01D&jVEX/>Y 01&RaEX/>Y01[4&SDEX/>Y 01[4&Su^EX/>Y 01[4&ShEX/>Y01[4&SdEX/>Y01[4&SjEX/>Y#,01&YDEX/>Y 01&YuVEX / >Y 01&Y`EX/>Y01&YjEX/>Y!01K&]uEX/>Y 01K&]jUEX/>Y 01&%p>EX/>Y 01m&EplEX/>Y*01&%7EX/>Y 01m&EEX/>Y+01OiEX/>YEX/>YEX/>YEX / >Y +X!Yа/9/ +X!Y901#327#"&547!#!-&:qN04 FZYg,P-[VHy,hVlsjmON-7EX/>YEX/>YEX/>YEX)/)>Yа/9 9 / +X!Y 9)$ +X!Y. +X!Y 3 +X!Y01%&'#"&54$3354&#"#46632#327#"&54'2675# $tqcsv&!:qN04 FZYgW#t&EUasdGQXX-[VHy,hVZHWbwW&'uWEX / >Y01\&Gu3EX/>Y 01wW&'WEX / >Y01\&G=EX/>Y 01w&'WEX / >Y#01\&GEX/>Y$01wW&'XEX / >Y!01\&GREX/>Y"01B&(CEX/>Y01_+&HHr]]qqr_rOq]O_]`]q]01F&)pJEX/>Y 01]&Ip\EX/>Y01F&)CEX/>Y01]&IEX/>Y!01F&)qBEX/>Y01]&I;EX/>Y%01OFzEX/>YEX/>YEX/>YEX/>Y9/ +X!Y +X!Y  +X!Y +X!Y01!!#327#"&547!!!!I:qN04 FZYg]-w-[VHy,hVi,]hN%-~EX/>YEX / >YEX/>Yа  +X!Y*9*/**] +X!Y" +X!Y%9& +X!Y01%3327#"&547&5546632!3267"!5&&Gs:qN04 FZYgb{݁#b3pn6-[VHy,hVlZ!!MPBFB&)CEX/>Y01]&IsEX/>Y"01zW&+WEX / >Y"01`V&KUEX/>Y'01z/&+XEX / >Y"01`V&KEX/>Y'01z&+WEX / >Y'01`V&K2EX/>Y,01z&+`V&K4+XEX/>Y*01B&,BEX/>Y01A&LA /01z.&-<FEX/>Y01`&"EX/>Y01l&-p>JEX/>Y01R&p$EX/>Y01C&-kCEX/>Y01)&QEX/>Y01Xx&- Oh&M&-BEX/>Y 01&-.-KJ&MN55&.|5EX/>Y01K9&3EX / >Y01X&/E &O1&0u&1EX/>Y014&PuEX/ >Y 01 &0lW U&P&0EX / >Y01&PVP]]/qq/?rr_orqOq]O_]`]r01&0&P86&2u6EX/>Y 01&Ru[EX/>Y 01 &2 N&R36&27EX/>Y01&RzEX/>Y01&R`/O]]01v &3p@EX / >Y!01[4&SpfEX/>Y01v &39EX / >Y"01[4&SEX/>Y01v 7&3k8EX / >Y&"01[4&SEX/>Y" 016&6u6EX/>Y01&VuEX / >Y 01 &6cS N&V6&67EX/>Y01c&VEX / >Y01Pr8&7u8EX/>Y)01_&WuQEX / >Y) 01Pr8&78EX/>Y)01_&W[EX / >Y)01PMr&7y_EN&Wy]Pr&7u_N&W3Pr8&79EX/>Y+01_&WpEX / >Y+011&8f V@&X1M&8y M@&Xy16&87EX/>Y 01 y&X]]O]01"&9:EX/>Y01&Y\EX / >Y01&9p>EX/>Y01&Yp^EX/>Y01&97EX / >Y01&YEX/>Y01&9KAEX / >Y 01[&Y EX/>Y015&9D6EX/>Y01 &YEX / >Y 01{ UEX/>YEX / >YEX/>Y в 9  +X!Y +X!Y01327#"&547"'33265N04 FZYgO!;r`Hy,hVaS&O:oEX/>YEX/>YEX/>YEX/>YEX / >Y +X!Yа/9 +X!Y01!327#"&547'#"&'33273:qN04 FZYglѭF-[VHy,hVjeE=6&;6EX/>Y01+&[$EX / >Y016&=6EX/>Y 01K&]%EX/>Y01&=j6EX/>Y01Vz6&>u6EX/>Y 01X&^u!EX/>Y 01Vz&>n6EX/>Y01X&^EX/>Y01Vz6&>7EX/>Y01X&^@EX/>Y01WB&uBEX/>Y01N|&uzEX/>Y@ 01v&uEX/>Y,01[z4&u7EX/>Y) 01&0&/x,qq/]rOq]_]01&0&/x6]Oqrrorqq_]/]01(&&E  ] ]01p&3DEX/>Y 01p&3udEX/>Y 01p&3nEX/>Y01p &3j"EX/>Y01p&3jEX/>Y01py&3)EX/>Y01p|&3' `J0&1yt&(DEX/>Y 01&(u7EX/>Y01&(AEX/>Y01&(jqEX/>Y01_&DEX/>Y01/&uEX/>Y01$&EX/>Y01<&jNEX/>Y 01X &"EX/>Y 01`Z&DEX / >Y01`Z&u}EX / >Y01`Z&EX / >Y 01`Z &"EX / >Y01`Z&jEX / >Y#,01t &DEX / >Y01t &u^EX/>Y01t &hEX / >Y01t &jEX / >Y"01 &u3EX/>Y 01p&3pl&EX/>Y 01p&3EX/>Y01OpiEX/>YEX/>YEX/>YEX / >Y +X!Yа/9/ +X!Y901#327#"&547!#!&:qN04 FZYghnxs-[VHy,hVl !`0&1uiEX / >Y01`0&1sEX / >Y!01`0&1PEX / >Y#01`0&1EX / >Y!01&01EX/>Y01&(p?&EX/>Y 01&(lEX/>Y01&(EX/>Y01O|EX/>YEX/>YEX/>Yа/]] +X!Y +X!Yа  +X!Y +X!Y01!!#327#"&547!!!!Wk=:qN04 FZYg-[VHy,hVi&(VEX/>Y01c5&qEX / >Y 01c5&EX / >Y 01c5&NEX / >Y%01c5&OX&EX/>Y01X &"EX/>Y01J&p&EX/>Y01!&IEX/>Y01Of&c&EX/>Y 01+ &EX/>Y01W&&uEX/>Y01&&~EX / >Y01&f7X&uEX/>Y 01X&lX&EX/>Y01`Z&p&EX / >Y01`Z&EX / >Y01`Z&EX / >Y"01%&u'EX/>Y01%& %&FEX/>Y01C&u>EX / >Y(01C&HEX / >Y*01CM&ySC&]EX / >Y*01(&(&PEX/>Y 01(O&y>t  &d"EX/>Y01t &pf&EX / >Y01t &EX / >Y01t y&)EX / >Y01t&EX/>Y01tt  UEX/>YEX/>YEX/>Y в 9  +X!Y +X!Y01327#"&547"&'33265 xo2lN04 FZYgZz0([RHy,hVhVθy{ 1&;EX/>Y01 &=EX/>Y 01 &jmEX/>Y01G&u3EX/>Y 01G&EX/>Y01G&REX/>Y01?&%)F?&)r7A&,=w@&-?&3/?&=d]?&2t&*EX / >Yа!01%&F)Vz>,w-/R12v 3418=9<^&-jpBEX/>Y 01&=j6EX/>Y01dw:&uEX/>Y$01c9&+EX/>Y(01a:&FEX/>Y01K%&*EX / >Y01t&!EX/>Yа'01?:[4NS`:v!:ZZLtInEX/>YEX/>YEX/>YEX/>Y999  +X!Y9 +X!Y012337#"&'#&#'6®X=DH/%[x>IkDDI/^rn&jEX / >Y01&jwEX/>Y#01[4:&SCEX/>Y01%&"EX/>Y01z"&SEX/>Y&01F&)jBEX/>Y010B&uBEX/>Y01Pr&d'(9EX/>YEX/>Y а +X!Y&9& +X!Yа" +X!Y01&&54$32#4&#"#"$&533264&VܖkcãGϘty}oY{f{os|uw-^&-jpBEX/>Y 015.,0&/u{0EX/>Y01M&CEX/>Y01%&0F)&1CEX/>Y 01R1,v 34w'189<mNE]NI&EX/>Y 01[4NS`NT\NK9EX/>YEX/>Y +X!Yаа +X!Y01%2673#"546632#&&#">cvntٔixZ]d'ڮi#K:]):\]&IjEX/>Y%.01G&uEX/>Y 01_NWhMD&jVEX/>Y 01KYN?&u;EX/>Y 01K&]PEX/>Y01=6&;D,6EX/>Y01+&[DEX / >Y 01=6&;u6EX/>Y01+&[uEX / >Y 01=&;j6EX/>Y#01+&[jTEX / >Y016&=D6EX/>Y 01K&]DEX/>Y 01g! #&K?&HEX / >Y010GR6&1u6EX/>Y01x&QuEX/>Y 01k&%mkN&EFB&)DBEX/>Y 01B&DmBEX/>Y 01]&IDEX/>Y 01&DEX/>Y 01Z!_(C:&9EX/>Y01 &EX/>Y 01[K@N&S]vK 0&3]PQj&QXRM&QCwQ&'Q\QN&GQR=.`:w-5&CEX / >Y01&_EX / >Y01w-&%7EX/>Y01m&EEX/>Y,01&%j6EX/>Y01m&EjEX/>Y0901WN|NF&)CEX/>Y01]&IEX/>Y!01]&XjEX/>Y'001bOb&jEX/>Y$-015&jBEX / >Y&01&jdEX / >Y&01Pj&jWEX / >Y0901X&j^EX / >Y.701&pJEX/>Y 01&puEX/>Y 01&j6BEX/>Y01&jEX/>Y01v &3j8EX / >Y'001[4&SjEX/>Y#,01g[4Ng&j'=EX / >Y'001[4&jEX/>Y$-01&j XEX/>Y'001d&j|EX/>Y'001M&pJEX/>Y01K&]p#EX/>Y01M&jBEX/>Y"01K&]jUEX/>Y 01MA&/BEX/>Y01K&]EX/>Y 01&j BEX / >Y#01g&jdEX / >Y!010&'-jBEX / >Y(01&'*jmEX / >Y(01_H&%mN&EJ&%FEX/>Y 01m&EEX/>Y)01&%7.EX/>Y 01m&E7hEX/>Y,201&%8=EX/>Y 01&E8lEX/>Y,101&%9EX/>Y 01mY&E9mEX/>Y*001&%:EX/>Y 01m&E:lEX/>Y*3016&%'6EX/>Y01m&E&nJEX/>Y-01&%<-EX/>Y01m&E<EX/>Y,901&%5-EX/>Y01m&E5EX/>Y,:01@&%==EX/>Y'01m &E=EX/>Y,E01&%PEEX/>Y01m&EPEX/>Y,:01&%'7EX/>Y01m&E'JEX/>Y,01F&) ]N&IF&)REX/>Y 01]&IEX/>Y01F.&)FEX/>Y01]&IZEX/>Y!01&)7:EX/>Y 01]&I7XEX/>Y!'01F&)8IEX/>Y 01&I8\EX/>Y!&01&)9'EX/>Y 01]I&I9]EX/>Y%01F&):EX/>Y 01]&I:\EX/>Y!(01FB&)'B EX/>Y01]&I&^EX/>Y 01&-dREX/>Y01&JEX/>Y01~&-k h&MM v &3[4N&Sv &3HEX / >Y.01[4&SEX/>Y*01v=&370EX / >Y# )01[&S7bEX/>Y%01G &38?EX / >Y! (014&S8fEX/>Y$01v &39EX / >Y! '01[S&S9gEX/>Y#01v &3:EX / >Y! *01[4&S:fEX/>Y&01v 8&3'8EX / >Y"01[4&S&hEX/>Y01e1&u1EX / >Y(01[&ueEX/>Y& 01e1&DN1EX / >Y'01[&DEX/>Y% 01e& AEX / >Y401[&EX/>Y201e&5EX / >Y)01[&kEX/>Y'01e7& [&&9:&YQ&9FEX / >Y01&YEX/>Y01B&uBEX/>Y01&ucEX/>Y 01B&DEBEX/>Y01&DEX / >Y 01&REX/>Y)01p&EX/>Y(01.&FEX/>Y01&iEX/>Y01& &&=:&]c&=FEX/>Y 01K&]JEX/>Y01"&=:EX/>Y 01K&]!EX/>Y01_&H'&GCd/]011&8Q?(:&Q&Qg;&Q0&QG:&Q?U&LQYcN&MQLdEX/>YEX / >Y 9/9/  +X!Yаа +X!Y  +X!Y01#!!#53533!2654&'Pj_PPݘ{dEX/>YEX / >Y 9/9/ +X!Y аа +X!Y  +X!Y01#!!#53533!2654&'Pj_PPݘ{0 PEX/>YEX/>Y 9 /z ] +X!Yа а  +X!Y01!##53!!!B Tm1G: KEX/>YEX/>Y 9 / +X!Yа а  +X!Y01!##53!!!xܺ $!ߗę1EX/>YEX/>YEX/>YEX/>Y9//]] +X!Y9/ +X!Y а в901###53533#33#7Ur7>(vEX/ >YEX/>YEX/>YEX/>Y9/ +X!Y9/ +X!Y а в901###53533#33#~; W 9EX/>YEX / >YEX/>Y9/ +X!Yв 901###53333۔Qz|Q  %.`:d 9EX/>YEX / >YEX/>YEX/>YEX/>Y +X!Y 9 а01###53333Jܿ k&R9dEX / >YEX/>YEX/>YEX/>Y 9/ +X!Y 9а в 901####53333Ĥk_]kb8{.):dEX / >YEX/>YEX/>YEX/>Y9/ +X!Y9а в 901####53333<AA֧ku>cM/&*&"Fff@]3^5P-0"dzW&+uWEX / >Y"01`V&KuKEX/>Y' 016&2Df6EX/>Y 01&RDEX/>Y 01 &%m2EX/>Y 019&EEX/>Y* .01_F,&)8>EX/>Y 01)&IEX/>Y #01 ,&->EX/>Y 01&EX/>Y 01v "&34EX / >Y!%0134&S EX/>Y !01U &6.2EX/>Y01&VdEX / >Y 01 &9h2EX / >Y01+&YEX/>Y 01?&d&&  &F&( _&H &(e]01_&Hi&, &L 0&/u{0EX/>Y01 A&OuDA /01&/Y &OeF&0 a&PN R&1 xN&Q &2$ N&R v &36 S*EX / >Y#ܲ#q#qO#q/#q701B&4u|BEX/>Y01`&TuEX / >Y 01&6 N&VJ Pr&7_N&W1&8 V@&X&96QEX/>Yܰ*01.&:FEX/>Y 01!&ZEX/>Y 01&: !:&ZM =&; +:&[S Vz&> X:&^b 2O&3Fqp&3c&(<&<&<d& X&<d& 7p32(GXQWwX`Z( &1<&jNEX/>Y 01 &jmEX/>Y01&(jqEX/>Y01&u4EX/>Y01CQ<&jNEX/>Y 01+MW&u%EX/>Y01" &gEX/>Y01p32(a&EX/>Y 01wX`ZD`01(&1GP)EX / >YEX/>YEX/>Y  +X!Y 9' 9|'/']'q']`'p']0'q`'p'q& +X!Y&'9в 9  +X!Y014&#"#4632#&&5332654%#536}nngvq˯yPT]XOV)$[[V``X_/EX / >YEX/>YEX/>Y  9| / ] +X!Y  а +X!Y01##!#3!33\g `V0ZEX/>YEX/>YEX/>Yаа +X!Y +X!Y01#&5546632#&&#"32670˩{~y`aӻt˽jo Qk&Qa&p&EX/>Y 01" &p:&EX/>Y01`5& &su`Z&uu}C&)1&D1&u11&jk &DO&%|mON&EYF&): ]ON&IOp&3W&(`:&M T$aaaaa:@?rUJQ~[pJ 5 0 r  a |  ( v  T  u3Xoq$?9dco 9M-a1.? P p !!B!t!!!!""{"###$`% %%&U&','''(A((),)*L*}*+L+,,l,,-Z----..?.u../+/H/e/n///0 0N0Z001,1Y112 2~23A34.4a45B556k667c788l899J9::x:;D;<<= =~=>>i>?1??@8@@A(AmAABMBBC}DDkDETE{EFFFFGRGGH?HnHI&I\IIJ JxJK&KL L|LMwMN]NOOdOP.PQNQQRTRS9ST5TURUVpVW/WuWXJYYZAZ[[a[[[\\\]]]x]]^Y^^_(_~____``[`aasaaab@bbcd9dEdQddddeNeefPfgggghhhhhhi$iiijjjjijkUkl6llmkmn`no@oop8ppppppppppppppppppqqqq2qVqzqqqqrrGrrrrs sstt+t?tuuv?vKw+wx xyyyzQ{{j||^|||}}*}}}~~M~",erˁ4ÃÅv2^}y>ĊK{ċLuԍs!dVgƐ&@?r^J͘f)i gכUv؝9,=3uJ!;ңEUܥYϦ5z%=ĩN Jd(pbv­٭IhѯP=dձoҲ 3DUh{ͳسHĵ%xٶTfʸCK3hֻ''/Z1H_x׽5Le|ؾ6Of}ٿ !8Ng}3Lcz3—/F]tÊáø-DZqĈğĶ ŦŽ.E\hƖƨƿ2=H_kwǎǥDZǽMYe|ȓȟȫ1Hazɑɨɴ2HT`lxʏʥʱʽ/F\sˊˣ˼L̳'>Ul͚̓Ͱ /Wj΁Θή%F]sۊۡ۸/7?Kbj܁ܘܤܰ 5NZfr~݊ݖݞݦݮ+DLTkނޛޣ޼6Le~ߗ߰߸ #:Pi&2>Ul0Ke~-Hco{ 8Qi !-D[t:Tk #/;Ri ,8DPg~ (+k.x!x2Kd},E^jv(4@LXz5AMYeq} %-5=EMf~ #+BJRZbjrz Z&2>JVbnz#`C<_<.R 0s dw~nieeg&rN5%L~s~~]~^~5~~~M~p~d)Hd.K/j85w?lsz-j5Nv mP10=9VH( X@y9Zm}0\_=]<}`hj[}_ _ i!+)X@q`i[i3ZXeI[fnJZFaB>{CtzzfU5P9oDzDYvN~G[_sO")"hDa]~e[7bjy*2{^Z~o^'8  qsqg>2xEMZRqd.`Pc%mzn%e)Me`,Q]W_zyBHJ*d{1> 2CP/M,Szd'Yla[. XR,(dYgx6XMdd/hMg'+V+(F   #PLqg[ .qg[$~+2uGdtgqf, Vca ~D>1qm9*),4\gojo/? Z/,O>]hi:;.9@)WYdV6+1IRyDu?ve# Fd/, o)) \04%4%@? `0$Oh<$iFWZ~RDflfY;6`z[Uv+~_"*t H]Ozh:g&TdcjYjE?:b ed>/+Ln\<n<<<<_3[5\BzPU`Br0NNc#G+ T&1g|t&( CJY\`T+c C30 g`g>?g``ur&|`A'Ot(Y$. ?GN'"(j=QN{KvP Gy 7#`_ &a&j=j^?G`30B"(>6[V:OI:dL$=|`Pn^iiP6[V:OI~~~~X>ke.Jg`;s#wv7~_pPx ;}2\[[Z[=]}`yWg9 `05%]]188888885w----vvvvv0000ZmZmZmZmZmZmZm0\=]=]=]=]j[[[[[iiii8Zm8Zm8Zm5w0\5w0\5w0\5w0\?_=]=]=]=]=]sz}`sz}`sz}`sz}`h-----j5NNWNNjjjjv[v[v[ScP _P _P _P _P _1 1 1 0i0i0i0i0i0i=+VXVXVXzNv[&(|``````|t|t|t|t+ |`|`|`|`cccc+T```JJJ C C C C&(&(&(|t|t|t|t|t|t1+ + #G#G#G8)7-=2f8V-v 19-dPc]s[!)][]zsP--j5$M8sv 5w19Zm=][}0\)=][ _R=+=+=+eg08Zm=]Z_ Y[ IvPX5w0\.-C -8Zm8ZmzN=]]7b7bC PXv[qg[qg[dMdMMMzYg6_8Zm8Zm8Zm8Z8Zm8Zm8Zm8Zm8Zm8Zm8Zm8Zm=]=]=]=]==]=]=]--v[v[v[Gv[v[v[~e[~e[~e[~e[~e[0i0i_1(zYgs[/?hs[8'.9)Pcl?~]~^~5~dsz}`j8Z9_=)- v3U0i+}?_?_hNjv }P _1 0!!=+VX2"c$gP#GT`\&(+ T&+  C+T"P`\|`&(T&?G|`+ "g`9 ` C111+ 8Zm=]l IJ 033fP [ GOOG@f :                    nt ~%'0S_g~7Y #%/EOboy?M    " ' 0 3 : < D t  !!!!"!&!.!^"""""""+"H"`"e% &(1T`h7Y #&0FPcpz>M    % 0 2 9 < D t  !!!!"!&!.!["""""""+"H"`"d%eD# (%^S~|}rsolkiaYP!ߔyMߪެߞߝߖߓ߇kTQ 222tt~lt0Rb{z|  }~+,-.   ()*+,-./012345678wxLM}~NOPQRSTUyzVWXYZ{|[\]^_opv,K PXY _^-, EiD`-,*!-, F%FRX#Y Id F had%F hadRX#eY/ SXi TX!@Yi TX!@eYY:-, F%FRX#Y F jad%F jadRX#Y/-,K &PXQXD@DY!! EPXD!YY-, EiD` E}iD`-,*-,K &SX@Y &SX#!#Y &SX#!#Y &SX#!#Y &SX#!@#Y &SX%EPX#!#!%E#!#!Y!YD- ,KSXED!!Y- ,(E- ,)E- ,' SX@cTX(pY#SX TX(pYYY- ,@ ZX)D)DY- ++++:0%+H;.!+XH8(+RC4%+^M<++6,"+q]F2+w\:#+~gP9+ TE6&+ v`K6+ dN:#+ ٲc<+  +<2'+@4)+PA.!+ + E}iD?s_ss/tOtottttu?u_uussst_tttt?uou/ so s*xdNZ`V4<` ! :  ^  ^ j  ^  ^ &x  @   & \@ TCopyright 2011 Google Inc. All Rights Reserved.RobotoRegularVersion 2.137; 2017Roboto-RegularRoboto is a trademark of Google.GoogleGoogle.comChristian RobertsonLicensed under the Apache License, Version 2.0http://www.apache.org/licenses/LICENSE-2.0jd(Y%>E^yy  "$%*+3466;<ADGHKMQQTX]^bbddhhjlnnpp  ((++--03_cz|  ,$%&'y 2LDFLTcyrlgreklatncpspkern $H %&'()*+,-./0123456789:;<=>eg/3579;ACEIKLXYz{}   "$%')+- }  :44^67497zd88788898D  89X9469 F7\8f5 8:8:8:78f8|9v&5<9v@8f956969v8:xjp55!8"`#^4%885B888&585(@)))*5+n5<3F+-r8f11:3$3$8f2p23$3$3$679X9v3F8f5545<777845<889545<43p444:44`:499:9999949499998666666647z7z7z7z888889999967\7\7\7\7\7\7\55558:777779v9v67\67\67\444497z57z57z57z57z588:888887888888:88:88:8:9797978|8|8|888969v6999:::9999999:::::999:94444::::67z8896677z98878898D864868:79v77z588775B6757z8898D4847\578f9v5<559v99969v44488:67\7z59X9v469v845<867\67\7z55545<9778f5B9v5B9v5B9v67\67\67\67\67\67\67\67\67\67\67\67\7z57z57z57z57z57z57z57z58897979797979797769v69v69v8558:557688:67\7z8978|78f9988:77888:88:98D8f8|89X9v9X9v9999:99:99:: %*,- /6 88:?EFIJLL OO!QT"VV&XX'Z](__,-./0589;=@HITdehjm  p  qr""u.0v35y77|99};;~CDTTVVXX\^0033EEGHz{}}  "%''))/8CGMOTTeimoxx!"(89:;<>@GJPRVXYZ^deghrt  xz{FHHJW__puww{| 89Ew:;= "$prt %V.8EGHIKSUVYZ]VV V"9BE`ak3VVVVVVVVVV#2345678MNOVVVVVV V V!"V#$V%&V'(V)*V+,V-.V/0V12V34V579;=?ACEKMOQSUWY[]_acegikmoqsuwV38:;=9E3 "$2345678MNOprtw8:=9E"$prtw.9bdM  AGHIKUa"B`ak79;=?ACEY[]a@GHIKU"B`ak79;=?ACEY[]aS KMOQSUW_.9bd  Z]#qsu?'+35 !AjEFHI-  JLNPRTVXZ\^`@'+35!AjEFHI-  JLNPRTVXZ\^`8%<= 3C]"$ "$&(*,.024prt(%  "$&(*,.024GHIKQRSTUYZ]"+6<>BSUW\`ak#  79;=?ACEKMOQSUWY[]_acegikmoqsu|| GHIKUYZ]"B`ak#79;=?ACEY[]acegikmoqsu< JYZ] #cegikmoqsuAGHIKU"B`ak79;=?ACEY[]a:m  GHIJ KSUZ ]  "B`ak        13  # 23456789CDEFGL MNOPQRSZ[\]mnostuvx               79;=?ACEKMOQSUWY[]_aq s u       \^4D^&(* \^4D^&(*"Z\]^4D^#&(*qsu 8:<=QRTZ\]  +3469:<>CDEGISUW\]^bcdlm"#$ pqrstuwy|(8Z]  9:ELcm#qsuw?8:<=\349:CDEGI]^bdlm"$prtwy%'+358:= !9AEGHIJMPQXbdfjlnopEFHI"$-   "$&(*,.024JLNPRTVXZ\^`prtwyz58:<=39CEP]bdflo"$prtwj%8:<=  39:CEGHIJLPQ]bdflmop"$     "$&(*,.024prtwyz18<=39CEPQ]flop"$prtw$8<39CEPQ]fopw8=9E"$prtw9QRT\  +46:<>DSUW\^m |# Z] :m#qsu :HJmzvGHIKSU"B`ak19CDEFGPQRSZ[\]mno 79;=?ACEKMOQSUWY[]_a EGHIJ KSUZ ]   "BQ`ac e kp        13  # 23456789CDEFGL MNOPQRSZ[\]mnostuvx               !#%')+-/13579;=?ACEKMOQSUWY[]_aq s u        :HJQmpzMG H I K U :   " :B HJQ` a k mp                               7 9 ; = ? A C E Y [ ] a z   "Z\]4DQ^p#qsu    :PJcemL  (L O P SW[     KMOQSUW_   LxLx[  AaM:JLMXb d mn1.08@JM_il :ILbdlm/Vm[m|}+KaFRIh < .0<8:j@IJ L?MX_c1e_i lm0n AJVXam| 1#X[:IQJ{LMXbudlOm  :cemJ[   :cm l[  :JXcemn1[T1IJLbdlX_:mJX2[3V[m|(M~gejs^t}y}  .08}:@J|LMlX_kcei{lmn1 AVa1J  A Va1[1l1  h&% x -&~| v8{q?;QyVD3DK>,r'jzb m %),4 8>EGIILLQTVV"ZZ#\^$'()-./02347>?@ABD  F  GH.0K35N77Q99R;;SCDTTTVVVWXXX\^Y\cefgilm00p33qEErGHsz{u}}wx  "*/8CGMOTTeimoxx  "#$%&(25;BDEFJPQS_a  eghFoHHJW__bbddpuww{|t !!%%&&''(()).. // 0033448899 ::;;<<== >>EEFFGGIILLQRSSTTVVZZ \\]] ^^"  %      ..//"00334455 77 99 CCDDXX\\]]^^!!!# $ 00 33EEGHz{}}             "" ## $$ %%&&''(())**/0 11#28CG MOTT eefi$mo xx#     "  %"           % % %   !!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEJJKKLLMMNNOOPPQQRRSSTTUUVVWW__bb dd pp qq rr ss tt uu ww{{"|| "        # ##       " !   !$     #         $    #"      " " " !   !        bDFLTcyrlgreklatnH .AZE CRT FRA ZMOL NAV ROM TRK      c2scccmpdligdnomfracligaligaligalnumloclloclloclnumronumpnumsmcpss01ss02ss03 ss04ss05ss06ss07$tnum*        60nL`tflq3210(sutvrwR   ; /0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwyxz{|}~    %&'()*+,-./0123456789:;<=>eg/3579;ACEIKLXYz{}   "$%')+- } q3210(ds0ut/rwR   ; v123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abdefghijklmnopqrstuvwyxz{|}~    EFGHIJKLMNOPQRSTUVWXYZ[\]^0468:<BDFJMZ|~   !#&(*,.~ *BZrMxN`H0I$'a_bc` MNI26rJd~"<N$.8J| <Fh.8BLV( &,   &,68:  &,HF  $$*06JL   $*06bd  $prt % &,!  &,79;I  $ &,KM    &,ce  $qsu &+-,. $G $X`Z\^ $Ya[]_ $fnhjl $goikm%)+-/46;=>EIKMOTV[$]^*,-./015     OX{@JMMJPPJ*  JXXJWKo6,- .//O EGFHIghijklm '(+35FGHKSTU nooIKj.Z^XUWV[Y]\OJKLMNSeff pp  .pfLNMKOeSJU^ .[]^XUWVY\ZJKLMNOSefp.pfJOSSU^ eel%<  !"#$% >zst?@ABCDriseup-vpn-0.24.5+ds1/gui/resources/gear-fill.svg000066400000000000000000000014631461742244100215670ustar00rootroot00000000000000 riseup-vpn-0.24.5+ds1/gui/resources/globe.svg000066400000000000000000000034201461742244100210100ustar00rootroot00000000000000 riseup-vpn-0.24.5+ds1/gui/resources/help.svg000066400000000000000000000006031461742244100206500ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/gui/resources/icon-noshield.svg000066400000000000000000000116271461742244100224630ustar00rootroot00000000000000 image/svg+xml riseup-vpn-0.24.5+ds1/gui/resources/language.svg000066400000000000000000000035741461742244100215150ustar00rootroot00000000000000languageriseup-vpn-0.24.5+ds1/gui/resources/lightning.svg000066400000000000000000000037231461742244100217110ustar00rootroot00000000000000 image/svg+xml riseup-vpn-0.24.5+ds1/gui/resources/location.svg000066400000000000000000000047041461742244100215360ustar00rootroot00000000000000 riseup-vpn-0.24.5+ds1/gui/resources/power.svg000066400000000000000000000015411461742244100210560ustar00rootroot00000000000000 riseup-vpn-0.24.5+ds1/gui/resources/quit.svg000066400000000000000000000015611461742244100207060ustar00rootroot00000000000000 riseup-vpn-0.24.5+ds1/gui/resources/ravens.gif000066400000000000000000000035601461742244100211710ustar00rootroot00000000000000GIF89aU!2! NETSCAPE2.0,Uڋ޼H扦ʶ L ĢL*̦ JԪjܮ N (8HXhx)9IYiy *:JZjz +;K[k{ ,N^n~/?O_o0 <0… :|GL4`b/jѢǏ@D0I+M2(;N|93& ^pS'?#ZShD{^<3RDڼ5+ϩjZ=5lSP~+6+Yf^Mt2VnoݢWo]|i,p\'Vc ❼˘3CnygС&]iͩMN백e.\mo'^|亇3o9UG9v'X:x~n<o|4k__d|%58݃fwӄd$wuv ܙb*b.c2Hc6ވc:c>dBIdFdJX!2,Uڋ޼H扦ʶ L ĢL*̦ JԪjܮ N (8HXhx)9IYiy *:JZjz +;K[k{ ,N^n~/?O_o <a" :É#⠈E;>ãȀ gYɎ)c2˙bM9{ܹOX HG?&UASOBڰ QzW:Ŋ Kled[qvk-ۼw/.|/b WhXĥVF~\`V//CͬAgtfztiXV}5nXa?ۖQc)Yײ>nqV|.朡GƵW?`o?ۿ?=`H`` .`>aNHa^ana~b"Hb&b*Y!2,Uڋ޼H扦ʶ L ĢL*̦ JԪjܮ N (8HXhx)9IYiy *:JZjzjp 0kKK: {|\j,ًی|y,|[m} m,=.>]n~N.>IOo#$XΠ""bС!%"!5 8!E!Yd)UaIK2YS͜xv眠Bu,J(R4Q ѨlRMsU3Y+A\$[l@[Vdm0i .zv,`/vk؊ܖ,~c|LXewl&9gСm&]z˩Uu &vZA+8C|т1_XΜ >F7ASO{'Lg|lw >ۿ?o`H`` .`>aNHa^ana~b"Hb&b*b.c2Hc6ވc:c>dBIdFdJ.dN> eRNyD;riseup-vpn-0.24.5+ds1/gui/resources/ravens.svg000066400000000000000000000337321461742244100212270ustar00rootroot00000000000000 image/svg+xml riseup-vpn-0.24.5+ds1/gui/resources/ravens2.svg000066400000000000000000000323431461742244100213060ustar00rootroot00000000000000 image/svg+xml riseup-vpn-0.24.5+ds1/gui/resources/ravens2_01.png000066400000000000000000000037411461742244100215730ustar00rootroot00000000000000PNG  IHDRUڑ pHYsrItEXtSoftwarewww.inkscape.org<nIDATxWG&H\ ƮD-7 `Ëb^XPcC5HP] k,1t51ٍ-g96 _{gf/wy 8(lKQQߧnzfuEkrpקV۫wUjmfヲJuNḥnNl_Uiu]F }uꫳחWHdVp;1*_@.y۫˪VǬsw_n4RVO fw_TwZW&v\cs5nܞT_j%PUmSZ=>kH?_oϟU 8zUu]#PzSc>○jLK\dw^|#9:#?,/nVW2zNv ?nnLE+`vMB~O̾Xc.v klGXJ'TnsT={{꭭kfg{)W,aTW4Fon^Y}JOo図zNQmTiTnʲ?42{sF6#rfp\=Hƭ7Ti%ȞP}:ykw|X?s&:L:XV $֕;Kv^z}uJcCz7sq" fW7g;U/m߷V:V^i[ژ9ПmY:v>]Um,_mӍKg~r  k-+%Q/mQë'N`m?2u#f3uTW\[rF83M݈aTStk$Ƴ. n`]XzD_8Q: {waӝ ˉc[n몛-s3Rݷ?5H59!5Rꍻ:o] &w7 \m Au|ŝ/Id|ϩ4x?]X}|W6 pl?{EyEWW[W{rsn9C>^.iLLmi$8q;.ye4UO\ݿ4:ō^\:f]XGVhQbXzgE͗>eXMHU7jt RZ}?T9SXZ7c㫋7muHu~_8s`N>bLUO)!MLQ=|m8ߛ]QK# ;/ol=g7VpPt"T~\7{9ɍI/mW9AsOPZkMiZ@~u>؞A.(5R}LϪTo,Ey66F>^=XQY=P~X]]qM+뫻MDW+n.ސlǫ_6$Ryz 0/gWT?mD\9Pyf:ax]}04?WljW_lMey6`vVTO4n2GuCu\[ 0'/nn#)_Μosf7CLWb6,ꒆLkXtjuZՋڜwW;U6~s5۟`Nnkd8rL!u:q'YCFH;FsrGywk&oF'To;`{JluEE(α˳҆c-|Wц+ٵ̱b)U_]XzU'wV >݁}Z;{+]sl7,@ڬU5JReZ;Ud~$UXKGReZ*.;IigX;Ii=0vxHLcs†T_3vl/*zg Vܱ`{To*WeCIw`;ERe.;Ux^$Ufտb6U+Wff<?\kіsn8fƆMT/쓭!ՕpNѐD]^=;[`)іy$jِ/6$+ߴ|buyߋ ?'l9k!]_}O8+w`ÜսI siwt)_M6 vDuK龆7$}-㸆}.]-_v{NÃI?^(C6U+[=i.\]zq<#_ soGbXܰQmfdG׺wRԃ' I`#Q>䳽 :p†0w*[׽ .EÓSMW1>-I-/=uQ)T4w364j-y[H{oOa] ^сg+7y}a Esz T߶!l1W5D/ozmԿL-:ĎSe+anݓ VS=V}dR߽C =[zâ+>=nns?`SL?3:u ?ϪpWIENDB`riseup-vpn-0.24.5+ds1/gui/resources/ravens2_03.png000066400000000000000000000040501461742244100215670ustar00rootroot00000000000000PNG  IHDRUڑ pHYsrItEXtSoftwarewww.inkscape.org<IDATxkeW]/m@ %J,&4QK)5*PT!A bL PhѠ)4V a_f@oo=խƃg[>fyl^ tά>Buz= zuؗή~w7_w~zʌW74-#gSkf x}ӅVcV}տ7m^>[o6EMW_;[o խ`I`a~nAsu{;}`9XلxwMxq~:o>մz.kP=}ڦ ˯΍*XΙM5nosl3vzOu\XM?գ~G`y.7UV8Ӫ'UoLGQ}붉k:% UXw5?8yWos7WOkKp,w4nvzmuO6ɶӖ.ƥ[uY-1?ָD_zTT=yNLY-1`bg4n-j e U[.T_0}uzOg"^}yCZk:8}o˭z^VS#[&XW/ΞS;Pvsy؃~K u},뫫Wj,XqOFEo4(Gh=ϖڛ cjtMޘ`f{zzɲ~!|EչK ӻktsjiW4V0MsG:.= UY]v_}[ӄ6֏n/~'75zdyZz ܧC?^z?и e:O꓍Q?)wq]kƯž:F-sO ]=?ߴu~ؚj?Zx]q|2_3AmgUnXwT?^LO_4$NyգV%_)XE03g4j{9{w}U`V`T?-WTR}zCj3ܖ}/4huGVmՍ'Gۧ7B.]}.u9 wVol^mOUY֬Q/l,\ИNx]co\DP;˽Fbbί.\`NI@K`^IENDB`riseup-vpn-0.24.5+ds1/gui/resources/reception-0.svg000066400000000000000000000006061461742244100220500ustar00rootroot00000000000000 riseup-vpn-0.24.5+ds1/gui/resources/reception-0@24.svg000066400000000000000000000045021461742244100223150ustar00rootroot00000000000000 image/svg+xml riseup-vpn-0.24.5+ds1/gui/resources/reception-2.svg000066400000000000000000000006621461742244100220540ustar00rootroot00000000000000 riseup-vpn-0.24.5+ds1/gui/resources/reception-4.svg000066400000000000000000000007411461742244100220540ustar00rootroot00000000000000 riseup-vpn-0.24.5+ds1/gui/resources/reception-4@24.svg000066400000000000000000000053661461742244100223320ustar00rootroot00000000000000 image/svg+xml riseup-vpn-0.24.5+ds1/gui/resources/riseup-icon.svg000066400000000000000000000142011461742244100221540ustar00rootroot00000000000000 image/svg+xml riseup-vpn-0.24.5+ds1/gui/resources/riseup-logo.png000066400000000000000000000115171461742244100221600ustar00rootroot00000000000000PNG  IHDRgu1btEXtSoftwareAdobe ImageReadyqe<(iTXtXML:com.adobe.xmp OU"IDATx T;00.傦bJVjYz,KUWӧ'{XQiPkIH+9i}:NanS !I2؜H^8[kh98P2hVq-areZel_m8Nd2$u(B=ǡf7\R؇PO%[[x-gи)w-$̵+dSkuM- n&&]Ԑ6]}a|?"mѐ njZ5+>QL-7.0@PCnS F{1Vz *mm$cF- F CEDvrO=N}Z5 B<+JP 4`P4鏋65T.Ic`R/K)ly6 :ZuTZG ,]nmWI:@ו5wSwߡGkhhҦ[!֩J!W ٿ30[@;.ƱL*Df:F1I'XPH%_3+qgiCS}V|} VۺƗ1pF$5kxt(wTP@C91f]~h/Ɂ_>K+cuV2G`L[ǻfqc7LerkJb 5w)Xf> M a!ff{%G7| =_yAL/}cܡ۲,xP[ řKF;N sPQ@q 0SI4#"B2WPA~n sNomJj*>OR{۴{&D64?>VQVGwp}L_dO nΆO,xK]7qIظf qyH3s)!|`VWx;Hx.Uxe']@@IgA ɟ;c@U!063{Ì>;n7agO֕B}T agC(G4GZ䃕hEܽJjd#gL g(rend\a d#U(CUG$W:-3e}=6e 6~4гX}E|>%fz}W2߬_j6ȎWSc%lQӻgR2-.Yf#MN hbh&X"U^ 9Q|, [kgd` {-8ϭs磒kf5ֺIxb=lX#lk,,V'^}QHM1L*-AWKX{XѦ|\!հ"( ]Ya=2Ƃ˾~egEqMLlԠښ س @6kJzĶz|ku-'\$ݱQCҬ}yFcbν3:.vhDZ%os|E%2'  &V/5\l?!6sT1>CW %/9RP3拥˳Txco%SR܌BjH߮54SPO,HpM[?9WSf{-;n].j|耵SjGԠ};S;RqƎ "M r!~{4S[/TBVjHV5X>.`Ur0ƢtSCҪ}d>3IG: P3Ham˘-7r+4VRc⽾I1ϨTĵR̟ʚ-f-xaLR3N[wnLjfGOdS3xlqZ~s w80af:'xnԞ Vl~!2@!o3#jvù@c 478M NUU'펚qvgU%Ȕv ѭY g_IENDB`riseup-vpn-0.24.5+ds1/gui/resources/settings.svg000066400000000000000000000063261461742244100215700ustar00rootroot00000000000000 riseup-vpn-0.24.5+ds1/gui/resources/snowflake.svg000066400000000000000000000122621461742244100217150ustar00rootroot00000000000000 riseup-vpn-0.24.5+ds1/gui/resources/speed-green.svg000066400000000000000000000075751461742244100221350ustar00rootroot00000000000000 riseup-vpn-0.24.5+ds1/gui/resources/speed-red.svg000066400000000000000000000075751461742244100216070ustar00rootroot00000000000000 riseup-vpn-0.24.5+ds1/gui/resources/speed-yellow.svg000066400000000000000000000075751461742244100223500ustar00rootroot00000000000000 riseup-vpn-0.24.5+ds1/gui/resources/spy.gif000066400000000000000000000051461461742244100205100ustar00rootroot00000000000000GIF89a~9VVVFFF)))uFF%%%2++bbc666kkkJJJ$HHHuNN9**YYY>>><<}\V(z 'z?lx՟]FFvҀ51D3g@1(1gVQMR_n "Y*.x 'FcAdېD&rPFIdVe nɥ^~)_bGfܝftjInfIp鞝zg (jYRh-ʨ_oh䲅JB+id(0K~X R0/(pt7+Y D 7 ljiP,lkcN$qHw8!-!†! a!&E QF:%cAq9 [֌Q(8Z`$B0`8Kƨ8sX#HS * @pDaB %6*fJEf`0( 5@& zB6VH!QP J3a hHE~pMaw# ) aJDN1~ '|Xi?GhAC8ׂ AB'x]D&-XAPa g`IEC r'/0'PsbS fC?0"uoAXA_6(:bG'lpO! f ! 7$va ?`@b1=Y.&Y#X_(#CpD. JcdJbPaG#R0a|\IŔ8! eJ^1%.1%`54l'%L'&%Ϩ4vJ8ń0h>&`*)Jx2"Ṫ8YBM!܂6zS &lqbt&HeMRҙbҔyҘ012?Bv&`dL~ϗL-i/0;]ʟSum 2&5p'OY¤a1MhUJu&[M I@͉%o'1+xֿDyI (`u>٫җ$$46(1X띆X@%z*JeSK>5_t(-RP 0Iq"/1e] f7Ȕ&)}.S~{%6KP)n(Ff$nW*T^VNU.|".Yegk*SV+P:[RVor ܕ+潰W\ܕ_ne ~g4 ,M1Y؋'6gl΢eB<~o-4ZpXQkq@Pf g-LN]dpÇ,C-(7v3uL$ 3A+聠 E Ŀc#-PZ 7?N_: ;riseup-vpn-0.24.5+ds1/gui/resources/tools.svg000066400000000000000000000014071461742244100210630ustar00rootroot00000000000000 riseup-vpn-0.24.5+ds1/gui/themes/000077500000000000000000000000001461742244100164535ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/gui/themes/Bitmask.qml000066400000000000000000000005171461742244100205630ustar00rootroot00000000000000import QtQuick ThemeObject { bgColor: "#f3f3f3" fgColor: "#ffffff" iconOn: "../resources/bitmask/state_connected.png" iconOff: "../resources/bitmask/state_disconnected.png" iconConnecting: "../resources/bitmask/state_connecting.png" iconSplash: "../resources/bitmask/splash_logo.png" } riseup-vpn-0.24.5+ds1/gui/themes/Calyx.qml000066400000000000000000000005121461742244100202440ustar00rootroot00000000000000import QtQuick ThemeObject{ bgColor: "#D3E9AC" fgColor: "#F2FFDA" iconOn: "../resources/calyx/calyx-shield-green.png" iconOff: "../resources/calyx/calyx-red-shield.png" iconConnecting: "../resources/calyx/calyx-yellow-shield.png" iconSplash: "../resources/calyx/calyx-hand.png" } riseup-vpn-0.24.5+ds1/gui/themes/Riseup.qml000066400000000000000000000004361461742244100204400ustar00rootroot00000000000000import QtQuick ThemeObject { bgColor: "#f3f3f3" fgColor: "#ffffff" iconOn: "../resources/riseup-icon.svg" iconOff: "../resources/icon-noshield.svg" iconConnecting: "../resources/ravens.gif" iconSplash: "../resources/icon-noshield.svg" } riseup-vpn-0.24.5+ds1/gui/themes/ThemeObject.qml000066400000000000000000000011411461742244100213540ustar00rootroot00000000000000import QtQuick QtObject { // property var theme; // here we expose any var contained in // the js file. This object can be accessed as the global // customTheme, since it's loaded in main.qml // TODO it'd be real nice if we can implement a fallback mechanism so that any value defaults to the general theme. property string bgColor: theme.bgColor property string fgColor: theme.fgColor property string iconOn: theme.iconOn property string iconOff: theme.iconOff property string iconConnecting: theme.iconConnecting property string iconSplash: theme.iconSplash } riseup-vpn-0.24.5+ds1/gui/themes/theme-calyx.js000066400000000000000000000006151461742244100212330ustar00rootroot00000000000000.pragma library const iconOn = "../resources/calyx/calyx-shield-green.png"; const iconOff = "../resources/calyx/calyx-red-shield.png"; const iconConnecting = "../resources/calyx/calyx-yellow-shield.png"; const iconSplash = "../resources/calyx/calyx-hand.png"; const lightGreen = "#F2FFDA"; const darkGreen = "#D3E9AC"; const bgColor = darkGreen; const fgColor = lightGreen; riseup-vpn-0.24.5+ds1/gui/themes/theme-riseup.js000066400000000000000000000004431461742244100214210ustar00rootroot00000000000000.pragma library const iconOn = "../resources/riseup-icon.svg"; const iconOff = "../resources/icon-noshield.svg"; const iconConnecting = "../resources/ravens.gif"; const iconSplash = "../resources/icon-noshield.svg"; const bgColor = "#f3f3f3"; const fgColor = "#ffffff"; riseup-vpn-0.24.5+ds1/gui/themes/themes.js000066400000000000000000000032161461742244100203000ustar00rootroot00000000000000.pragma library const borderColor = "#6D6D6E"; //const fontColor = "#6D6D6E"; const fontColor = "#666666"; const fontColorDark = "#3D3D3D"; const fontFamily = "Metropolis"; const fontBoldFamily = "OxaniumBold"; const fontInterFamily = "InterUI"; const fontSize = 15; const fontSizeLarge = 22; const fontSizeSmall = 13; const fontSizeSmallest = 11; const fontWeightBold = 600; const iconSize = 16; const labelLineHeight = 22; const cityListTopMargin = 18; const controllerInterLineHeight = 18; const hSpacing = 20; const vSpacing = 24; const vSpacingSmall = 16; const listSpacing = 8; const maxTextWidth = 296; const windowMargin = 16; const popupMargin = 24; const iconSnowflake = "../resources/snowflake.svg"; // XXX unused? move definitions here const desktopAppHeight = 520; const desktopAppWidth = 360; const darkFocusBorder = fontColor; const lightFocusBorder = "#d5d3e0"; const red = "#af0909"; const yellow = "#ffcc33"; const green = "#669933"; const accentOff = red; const accentConnecting = yellow; const accentOn = green; const signalLow = red; const signalMedium = yellow; const signalGood = green; const blue = "#007ac6"; const blueHovered = "#0250BB"; const bluePressed = "#054096"; const blueDisabled = "#a3c0f3"; const blueFocusOutline = "#4d0a84ff"; const blueFocusBorder = "#0a84ff"; const blueButton = { "defaultColor" : blue, "buttonHovered": blueHovered, "buttonPressed": bluePressed, "buttonDisabled": blueDisabled, "focusBgColor": blue, "focusOutline": blueFocusOutline, "focusBorder": blueFocusBorder, }; const buttonFontSize = 18; const buttonColor = "#eeeeee"; const bgColor = "#f3f3f3"; const fgColor = "#ffffff"; riseup-vpn-0.24.5+ds1/helpers/000077500000000000000000000000001461742244100160445ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/helpers/README.txt000066400000000000000000000001651461742244100175440ustar00rootroot00000000000000The helpers now live in pkg/pickle/helpers/ this folder is kept for backwards compatibility with the build process. riseup-vpn-0.24.5+ds1/helpers/bitmask-root000077700000000000000000000000001461742244100266402../pkg/pickle/helpers/bitmask-rootustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/helpers/se.leap.bitmask.policy000077700000000000000000000000001461742244100323462../pkg/pickle/helpers/se.leap.bitmask.policyustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/helpers/se.leap.bitmask.snap.policy000077700000000000000000000000001461742244100342462../pkg/pickle/helpers/se.leap.bitmask.snap.policyustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/pkg/000077500000000000000000000000001461742244100151635ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/pkg/backend/000077500000000000000000000000001461742244100165525ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/pkg/backend/README.md000066400000000000000000000007151461742244100200340ustar00rootroot00000000000000# how to add new fields to backend api 1. add to the struct in `status.go` 2. populate it in `toJson()` method. 3. modify the `bitmask` interface in `pkg/bitmask/bitmask.go` (note: this is a relict from the past, we can probably get rid of since there'll be a single implementation in the foreseeable future). 4. modify the `bitmask` struct in `pkg/vpn/main.go` 5. modify the bitmask instantiation in `pkg/vpn/main.go:Init` 6. implement functionality... riseup-vpn-0.24.5+ds1/pkg/backend/actions.go000066400000000000000000000005131461742244100205400ustar00rootroot00000000000000package backend import ( "log" ) func startVPN() { setError("") err := ctx.bm.StartVPN(ctx.Provider) if err != nil { log.Println("ERROR: ", err) setError(err.Error()) } } func stopVPN() { err := ctx.bm.StopVPN() if err != nil { log.Println(err) } } func getGateway() string { return ctx.bm.GetCurrentGateway() } riseup-vpn-0.24.5+ds1/pkg/backend/api.go000066400000000000000000000121701461742244100176530ustar00rootroot00000000000000/* All the exported functions should be added here */ package backend import ( "C" "encoding/json" "log" "os" "strconv" "strings" "unsafe" "0xacab.org/leap/bitmask-vpn/pkg/bitmask" "0xacab.org/leap/bitmask-vpn/pkg/config/version" "0xacab.org/leap/bitmask-vpn/pkg/pickle" "0xacab.org/leap/bitmask-vpn/pkg/pid" ) func Login(username, password string) { success, err := ctx.bm.DoLogin(username, password) if err != nil { if err.Error() == "TokenErrTimeout" { ctx.Errors = "bad_auth_timeout" } else if err.Error() == "TokenErrBadStatus 502" { ctx.Errors = "bad_auth_502" } else { log.Println("ERROR: bad login", err) ctx.Errors = "bad_auth" } } else if success { log.Printf("Logged in as %s", username) ctx.LoginOk = true ctx.LoginDialog = false } else { log.Printf("Failed to login as %s", username) ctx.LoginDialog = true ctx.Errors = "bad_auth" } // XXX shouldn't this be statusChanged? go ctx.updateStatus() } func setError(err string) { ctx.Errors = err go setStatus(off) go ctx.updateStatus() } func SwitchOn() { go setStatus(starting) go startVPN() } func SwitchOff() { go setStatus(stopping) go stopVPN() } func UseLocation(label string) { if ctx.ManualLocation && label == ctx.CurrentLocation { return } ctx.bm.UseGateway(label) go trigger(OnStatusChanged) if ctx.Status == on && label != strings.ToLower(ctx.CurrentLocation) { go ctx.bm.Reconnect() } } func UseAutomaticGateway() { if !ctx.ManualLocation { return } ctx.bm.UseAutomaticGateway() go trigger(OnStatusChanged) if ctx.Status == on { ctx.bm.Reconnect() } } func SetTransport(label string) { err := ctx.bm.SetTransport(label) if err != nil { log.Println(err) } if label == "obfs4" { // XXX this is an expedite way of avoiding the corner case // in which user has selected a manual location that does not offer bridges. // In the future, we can be more delicate and 1. do the switch only if the manual location // is incompatible with obfs4; 2. notify the user of the change. // But tonight we're in problem-solving mode, and we can assume that user wants to use bridges, // no matter what. So let's assume that "use obfs4" supersedes everything else and be done. UseAutomaticGateway() ctx.cfg.SetUseObfs4(true) } else { ctx.cfg.SetUseObfs4(false) } go trigger(OnStatusChanged) } func SetUDP(udp bool) { log.Printf("DEBUG udp:%v\n", udp) ctx.cfg.SetUseUDP(udp) ctx.bm.UseUDP(udp) go trigger(OnStatusChanged) } func SetSnowflake(snowflake bool) { log.Printf("DEBUG snowflake:%v\n", snowflake) ctx.cfg.SetUseSnowflake(snowflake) ctx.bm.UseSnowflake(snowflake) go trigger(OnStatusChanged) } func GetTransport() *C.char { return C.CString(ctx.bm.GetTransport()) } func Quit() { if ctx.autostart != nil { ctx.autostart.Disable() } if ctx.Status != off { go setStatus(stopping) ctx.cfg.SetUserStoppedVPN(false) } else { ctx.cfg.SetUserStoppedVPN(true) } if ctx.bm != nil { ctx.bm.Close() } pid.ReleasePID() } func DonateAccepted() { donateAccepted() } func DonateSeen() { donateSeen() } func SubscribeToEvent(event string, f unsafe.Pointer) { subscribe(event, f) } type Providers struct { Default string `json:"default"` Data []bitmask.ProviderOpts `json:"providers"` } type InitOpts struct { ProviderOptions *bitmask.ProviderOpts SkipLaunch bool Obfs4 bool UDP bool DisableAutostart bool StartVPN string } func InitOptsFromJSON(provider, providersJSON string) *InitOpts { providers := Providers{} err := json.Unmarshal([]byte(providersJSON), &providers) if err != nil { log.Println("ERROR while parsing json:", err) } var providerOpts *bitmask.ProviderOpts providerOpts = &providers.Data[0] if len(providers.Data) != 1 { chosenProvider := os.Getenv("LEAP_PROVIDER") if chosenProvider != "" { for _, p := range providers.Data { if p.Provider == chosenProvider { log.Println("Selecting provider: " + chosenProvider) return &InitOpts{ProviderOptions: &p} } } panic("BUG: unknown provider") } } return &InitOpts{ProviderOptions: providerOpts} } func InitializeBitmaskContext(opts *InitOpts) { bitmask.ConfigureProvider(opts.ProviderOptions) initOnce.Do(func() { initializeContext(opts) }) if ctx.bm != nil { ctx.LoginDialog = ctx.bm.NeedsCredentials() go ctx.updateStatus() } if ctx.AskForDonations { runDonationReminder() } } func RefreshContext() *C.char { c, _ := ctx.toJson() return C.CString(string(c)) } func ResetError(errname string) { if ctx.Errors == errname { ctx.Errors = "" } } func ResetNotification(label string) { switch label { case "login_ok": ctx.LoginOk = false break default: break } go trigger(OnStatusChanged) } func InstallHelpers() { pickle.InstallHelpers() } func EnableMockBackend() { log.Println("[+] Mocking ui interaction on port 8080. \nTry 'curl localhost:8080/{on|off|failed}' to toggle status.") go enableMockBackend() } func EnableWebAPI(port string) { intPort, err := strconv.Atoi(port) if err != nil { log.Fatal("Cannot parse port:", port) } go enableWebAPI(intPort) } func GetVersion() *C.char { return C.CString(version.VERSION) } riseup-vpn-0.24.5+ds1/pkg/backend/auth.go000066400000000000000000000023201461742244100200370ustar00rootroot00000000000000package backend import ( "io/ioutil" "log" "math/rand" "os" "path/filepath" "runtime" "strings" "time" ) /* functions for local authentication of control endpoints */ const bitmaskToken = "bitmask-token" func generateAuthToken() { if runtime.GOOS != "linux" { log.Println("Authentication token only implemented in linux at the moment.") return } t := getRandomString() tokenPath := filepath.Join(os.TempDir(), bitmaskToken) err := ioutil.WriteFile(tokenPath, []byte(t), os.FileMode(int(0600))) if err != nil { log.Println("Could not write authentication token.") } } func readAuthToken() string { if runtime.GOOS != "linux" { log.Println("Authentication token only implemented in linux at the moment.") return "" } tokenPath := filepath.Join(os.TempDir(), bitmaskToken) token, err := ioutil.ReadFile(tokenPath) if err != nil { log.Println("Error reading token:", err) } return string(token) } func getRandomString() string { rand.Seed(time.Now().UnixNano()) chars := []rune("ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789") length := 40 var b strings.Builder for i := 0; i < length; i++ { b.WriteRune(chars[rand.Intn(len(chars))]) } return b.String() } riseup-vpn-0.24.5+ds1/pkg/backend/callbacks.go000066400000000000000000000034311461742244100210210ustar00rootroot00000000000000package backend import ( "fmt" "sync" "unsafe" ) /* ATCHUNG! what follow are not silly comments. Well, *this one* is, but the lines after this are not. Those are inline C functions, that are invoked by CGO later on. it's also crucial that you don't any extra space between the function block and the 'import "C"' line. */ // typedef void (*cb)(); // inline void _do_callback(cb f) { // f(); // } import "C" /* callbacks into C-land. We keep a registry, and protect its updates with a mutex. */ var callbacks = make(map[string](*[0]byte)) var callbackMutex sync.Mutex var initOnce sync.Once // Events are just a enumeration of all the posible events that C functions can // be interested in subscribing to. You cannot subscribe to an event that is // not listed here. type Events struct { OnStatusChanged string } const OnStatusChanged string = "OnStatusChanged" // subscribe registers a callback from C-land. // This callback needs to be passed as a void* C function pointer. func subscribe(event string, fp unsafe.Pointer) { callbackMutex.Lock() defer callbackMutex.Unlock() /* I'm commenting this check because it imposes 1.14, which is only in buster-backports. We can re-add it after buster is oldstable e := &Events{} v := reflect.Indirect(reflect.ValueOf(&e)) hf := v.Elem().FieldByName(event) if reflect.ValueOf(hf).IsZero() { fmt.Println("ERROR: not a valid event:", event) } else { callbacks[event] = (*[0]byte)(fp) } */ callbacks[event] = (*[0]byte)(fp) } // trigger fires a callback from C-land. func trigger(event string) { callbackMutex.Lock() defer callbackMutex.Unlock() cb := callbacks[event] if cb != nil { C._do_callback(cb) } else { fmt.Println("ERROR: this event does not have subscribers:", event) } } riseup-vpn-0.24.5+ds1/pkg/backend/donate.go000066400000000000000000000017431461742244100203600ustar00rootroot00000000000000package backend import ( "time" ) // runDonationReminder checks every six hours if we need to show the reminder, // and trigger the launching of the dialog if needed. func runDonationReminder() { go func() { for { time.Sleep(time.Hour * 6) if needsDonationReminder() { showDonate() } } }() // to test manually, uncomment this line. // time.AfterFunc(1*time.Minute, func() { showDonate() }) } func needsDonationReminder() bool { return ctx.cfg.NeedsDonationReminder() } /* to be called from the gui, the visibility toggle will be updated on the next status change */ func donateSeen() { statusMutex.Lock() defer statusMutex.Unlock() ctx.DonateDialog = false } func donateAccepted() { statusMutex.Lock() defer statusMutex.Unlock() ctx.DonateDialog = false ctx.cfg.SetDonated() go trigger(OnStatusChanged) } func showDonate() { statusMutex.Lock() defer statusMutex.Unlock() ctx.DonateDialog = true ctx.cfg.SetLastReminded() go trigger(OnStatusChanged) } riseup-vpn-0.24.5+ds1/pkg/backend/gatewaychecker.go000066400000000000000000000011761461742244100220740ustar00rootroot00000000000000package backend import ( "time" ) // The gateway selector gets populated asynchronously, so this spawns a goroutine that // checks whether they've been fetched to update status. func (c connectionCtx) delayCheckForGateways() { go func() { cnt := 0 for { if cnt > 60*2 { break } cnt += 1 time.Sleep(time.Second * 5) transport := c.bm.GetTransport() locs := c.bm.ListLocationFullness(transport) if len(locs) != 0 { c.Locations = locs updateStatusForGateways() break } } }() } func updateStatusForGateways() { statusMutex.Lock() defer statusMutex.Unlock() go trigger(OnStatusChanged) } riseup-vpn-0.24.5+ds1/pkg/backend/init.go000066400000000000000000000070501461742244100200460ustar00rootroot00000000000000package backend import ( "log" "os" "0xacab.org/leap/bitmask-vpn/pkg/bitmask" bitmaskAutostart "0xacab.org/leap/bitmask-vpn/pkg/bitmask/autostart" "0xacab.org/leap/bitmask-vpn/pkg/config" "0xacab.org/leap/bitmask-vpn/pkg/config/version" "0xacab.org/leap/bitmask-vpn/pkg/pid" ) // initializeContext initializes an empty connStatus and assigns it to the // global ctx holder. This is expected to be called only once, so the public // api uses the sync.Once primitive to call this. func initializeContext(opts *InitOpts) { var st status = off // TODO - now there's really no need to dance between opts and config anymore // but this was the simplest transition. We should probably keep the // multi-provider config in the backend too, and just // switch the "active" here in the ctx, after the user has selected one // in the combobox. ctx = &connectionCtx{ AppName: opts.ProviderOptions.AppName, Provider: opts.ProviderOptions.Provider, TosURL: opts.ProviderOptions.TosURL, HelpURL: opts.ProviderOptions.HelpURL, DonateURL: opts.ProviderOptions.DonateURL, AskForDonations: opts.ProviderOptions.AskForDonations, DonateDialog: false, Version: version.VERSION, Status: st, IsReady: false, } errCh := make(chan string) go checkErrors(errCh) // isReady is set after Bitmask initialization initializeBitmask(errCh, opts) go trigger(OnStatusChanged) ctx.delayCheckForGateways() } func checkErrors(errCh chan string) { for { err := <-errCh // TODO consider a queue instead ctx.Errors = err go trigger(OnStatusChanged) } } func initializeBitmask(errCh chan string, opts *InitOpts) { if ctx == nil { log.Println("BUG: cannot initialize bitmask, ctx is nil!") os.Exit(1) } bitmask.InitializeLogger() ctx.cfg = config.ParseConfig() setConfigOpts(opts, ctx.cfg) ctx.UseUDP = ctx.cfg.UDP err := pid.AcquirePID() if err != nil { log.Println("Error acquiring PID:", err) log.Fatal(err.Error()) } b, err := bitmask.InitializeBitmask(ctx.cfg) if err != nil { log.Println("ERROR: cannot initialize bitmask") errCh <- err.Error() return } // right now we just get autostart from an init flag, // but we want to be able to persist that option from the preferences // pane ctx.autostart = initializeAutostart(ctx.cfg) helpers, privilege, err := b.VPNCheck() if err != nil { log.Println("ERROR: vpn check") errCh <- err.Error() } if helpers == false { log.Println("ERROR: no helpers") errCh <- "nohelpers" } if privilege == false { log.Println("ERROR: no polkit") errCh <- "nopolkit" } ctx.bm = b ctx.IsReady = true } // transfer initialization options from the config json to the config object func setConfigOpts(opts *InitOpts, conf *config.Config) { conf.SkipLaunch = opts.SkipLaunch if opts.StartVPN != "" { if opts.StartVPN != "on" && opts.StartVPN != "off" { log.Println("-start-vpn should be 'on' or 'off', not ", opts.StartVPN) } else { conf.StartVPN = opts.StartVPN == "on" } } if opts.Obfs4 { conf.Obfs4 = opts.Obfs4 } if opts.UDP { conf.UDP = opts.UDP } if opts.DisableAutostart { conf.DisableAutostart = opts.DisableAutostart } } func initializeAutostart(conf *config.Config) bitmaskAutostart.Autostart { autostart := bitmaskAutostart.NewAutostart(config.ApplicationName, "") if conf.SkipLaunch || conf.DisableAutostart { autostart.Disable() autostart = &bitmaskAutostart.DummyAutostart{} } else { err := autostart.Enable() if err != nil { log.Printf("Error enabling autostart: %v", err) } } return autostart } riseup-vpn-0.24.5+ds1/pkg/backend/mocks.go000066400000000000000000000014341461742244100202170ustar00rootroot00000000000000package backend import ( "log" "net/http" ) /* mock http server: easy way to mocking vpn behavior on ui interaction. This * should also show a good way of writing functionality tests just for the Qml * layer */ func enableMockBackend() { log.Println("[+] You should not use this in production!") http.HandleFunc("/on", mockUIOn) http.HandleFunc("/off", mockUIOff) http.HandleFunc("/failed", mockUIFailed) http.ListenAndServe(":8080", nil) } func mockUIOn(w http.ResponseWriter, r *http.Request) { log.Println("changing status: on") setStatus(on) } func mockUIOff(w http.ResponseWriter, r *http.Request) { log.Println("changing status: off") setStatus(off) } func mockUIFailed(w http.ResponseWriter, r *http.Request) { log.Println("changing status: failed") setStatus(failed) } riseup-vpn-0.24.5+ds1/pkg/backend/status.go000066400000000000000000000123361461742244100204310ustar00rootroot00000000000000package backend import ( "bytes" "encoding/json" "log" "sync" "0xacab.org/leap/bitmask-vpn/pkg/bitmask" bitmaskAutostart "0xacab.org/leap/bitmask-vpn/pkg/bitmask/autostart" "0xacab.org/leap/bitmask-vpn/pkg/config" "0xacab.org/leap/bitmask-vpn/pkg/snowflake" ) const ( offStr = "off" startingStr = "starting" onStr = "on" stoppingStr = "stopping" failedStr = "failed" ) // ctx will be our glorious global object. // if we ever switch again to a provider-agnostic app, we should keep a map here. var ctx *connectionCtx // these mutexes protect setting and updating the global status in this go backend var statusMutex sync.Mutex var updateMutex sync.Mutex // The connectionCtx keeps the global state that is passed around to C-land. It // also serves as the primary way of passing requests from the frontend to the // Go-core, by letting the UI write some of these variables and processing // them. type connectionCtx struct { AppName string `json:"appName"` Provider string `json:"provider"` TosURL string `json:"tosURL"` HelpURL string `json:"helpURL"` AskForDonations bool `json:"askForDonations"` DonateDialog bool `json:"donateDialog"` DonateURL string `json:"donateURL"` LoginDialog bool `json:"loginDialog"` LoginOk bool `json:"loginOk"` Version string `json:"version"` Errors string `json:"errors"` Status status `json:"status"` Locations map[string]float64 `json:"locations"` LocationLabels map[string][]string `json:"locationLabels"` CurrentGateway string `json:"currentGateway"` CurrentLocation string `json:"currentLocation"` CurrentCountry string `json:"currentCountry"` BestLocation string `json:"bestLocation"` Transport string `json:"transport"` UseUDP bool `json:"udp"` OffersUDP bool `json:"offersUdp"` ManualLocation bool `json:"manualLocation"` IsReady bool `json:"isReady"` CanUpgrade bool `json:"canUpgrade"` Motd string `json:"motd"` HasTor bool `json:"hasTor"` UseSnowflake bool `json:"snowflake"` SnowflakeProgress int `json:"snowflakeProgress"` SnowflakeTag string `json:"snowflakeTag"` bm bitmask.Bitmask autostart bitmaskAutostart.Autostart cfg *config.Config } func (c *connectionCtx) toJson() ([]byte, error) { statusMutex.Lock() if c.bm != nil { transport := c.bm.GetTransport() c.Locations = c.bm.ListLocationFullness(transport) c.LocationLabels = c.bm.ListLocationLabels(transport) c.CurrentGateway = c.bm.GetCurrentGateway() c.CurrentLocation = c.bm.GetCurrentLocation() c.CurrentCountry = c.bm.GetCurrentCountry() c.BestLocation = c.bm.GetBestLocation(transport) c.Transport = transport c.UseUDP = c.cfg.UDP // TODO initialize bitmask param? c.OffersUDP = c.bm.OffersUDP() c.UseSnowflake = c.cfg.Snowflake // TODO initialize bitmask c.ManualLocation = c.bm.IsManualLocation() c.CanUpgrade = c.bm.CanUpgrade() c.Motd = c.bm.GetMotd() c.HasTor = snowflake.HasTor() } defer statusMutex.Unlock() b, err := json.Marshal(c) if err != nil { log.Println(err) return nil, err } return b, nil } func (c connectionCtx) updateStatus() { updateMutex.Lock() defer updateMutex.Unlock() if stStr, err := c.bm.GetStatus(); err != nil { log.Printf("Error getting status: %v", err) } else { setStatusFromStr(stStr) } go func() { snowflakeCh := c.bm.GetSnowflakeCh() for { select { case event := <-snowflakeCh: setSnowflakeStatus(event) } } }() statusCh := c.bm.GetStatusCh() for { select { case stStr := <-statusCh: setStatusFromStr(stStr) } } } func setSnowflakeStatus(event *snowflake.StatusEvent) { statusMutex.Lock() defer statusMutex.Unlock() ctx.SnowflakeProgress = event.Progress ctx.SnowflakeTag = event.Tag go trigger(OnStatusChanged) } func setStatus(st status) { statusMutex.Lock() defer statusMutex.Unlock() ctx.Status = st go trigger(OnStatusChanged) } // the status type reflects the current VPN status. Go code is responsible for updating // it; the C gui just watches its changes and pulls its updates via the serialized // context object. type status int const ( off status = iota starting on stopping failed unknown ) func (s status) String() string { return [...]string{offStr, startingStr, onStr, stoppingStr, failedStr}[s] } func (s status) MarshalJSON() ([]byte, error) { b := bytes.NewBufferString(`"`) b.WriteString(s.String()) b.WriteString(`"`) return b.Bytes(), nil } func (s status) fromString(st string) status { switch st { case offStr: return off case startingStr: return starting case onStr: return on case stoppingStr: return stopping case failedStr: return failed default: return unknown } } func setStatusFromStr(stStr string) { setStatus(unknown.fromString(stStr)) } riseup-vpn-0.24.5+ds1/pkg/backend/webapi.go000066400000000000000000000072571461742244100203630ustar00rootroot00000000000000package backend import ( "encoding/json" "fmt" "log" "net/http" "os" "strconv" "time" ) func CheckAuth(handler http.HandlerFunc, token string) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { t := r.Header.Get("X-Auth-Token") if t == token { handler(w, r) } else { w.WriteHeader(http.StatusUnauthorized) w.Write([]byte("401 - Unauthorized")) } } } func webOn(w http.ResponseWriter, r *http.Request) { log.Println("Web UI: on") SwitchOn() } func webOff(w http.ResponseWriter, r *http.Request) { log.Println("Web UI: off") SwitchOff() } func webStatus(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, ctx.Status.String()) } func webGatewayGet(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, ctx.bm.GetCurrentGateway()) } func webGatewaySet(w http.ResponseWriter, r *http.Request) { switch r.Method { case "POST": if err := r.ParseForm(); err != nil { fmt.Fprintf(w, "ParseForm() err: %v", err) return } gwLabel := r.FormValue("transport") fmt.Fprintf(w, "selected gateway: %s\n", gwLabel) ctx.bm.UseGateway(gwLabel) // TODO make sure we don't tear the fw down on reconnect... SwitchOff() // a little sleep is needed, though, because iptables takes some time time.Sleep(500 * time.Millisecond) SwitchOn() default: fmt.Fprintf(w, "Only POST supported.") } } func webGatewayList(w http.ResponseWriter, r *http.Request) { transport := ctx.bm.GetTransport() locationJson, err := json.Marshal(ctx.bm.ListLocationFullness(transport)) if err != nil { fmt.Fprintf(w, "Error converting json: %v", err) } fmt.Fprintf(w, string(locationJson)) } func webTransportGet(w http.ResponseWriter, r *http.Request) { t, err := json.Marshal(ctx.bm.GetTransport()) if err != nil { fmt.Fprintf(w, "Error converting json: %v", err) } fmt.Fprintf(w, string(t)) } func webTransportSet(w http.ResponseWriter, r *http.Request) { switch r.Method { case "POST": if err := r.ParseForm(); err != nil { fmt.Fprintf(w, "ParseForm() err: %v", err) return } t := r.FormValue("transport") if isValidTransport(t) { fmt.Fprintf(w, "Selected transport: %s\n", t) go ctx.bm.SetTransport(string(t)) } else { fmt.Fprintf(w, "Unknown transport: %s\n", t) } default: fmt.Fprintf(w, "Only POST supported.") } } func webTransportList(w http.ResponseWriter, r *http.Request) { t, err := json.Marshal([]string{"openvpn", "obfs4"}) if err != nil { fmt.Fprintf(w, "Error converting json: %v", err) } fmt.Fprintf(w, string(t)) } func webQuit(w http.ResponseWriter, r *http.Request) { log.Println("Web UI: quit") Quit() os.Exit(0) } func enableWebAPI(port int) { log.Println("Starting WebAPI in port", port) generateAuthToken() token := readAuthToken() http.Handle("/vpn/start", CheckAuth(http.HandlerFunc(webOn), token)) http.Handle("/vpn/stop", CheckAuth(http.HandlerFunc(webOff), token)) http.Handle("/vpn/gw/get", CheckAuth(http.HandlerFunc(webGatewayGet), token)) http.Handle("/vpn/gw/set", CheckAuth(http.HandlerFunc(webGatewaySet), token)) http.Handle("/vpn/gw/list", CheckAuth(http.HandlerFunc(webGatewayList), token)) http.Handle("/vpn/transport/get", CheckAuth(http.HandlerFunc(webTransportGet), token)) http.Handle("/vpn/transport/set", CheckAuth(http.HandlerFunc(webTransportSet), token)) http.Handle("/vpn/transport/list", CheckAuth(http.HandlerFunc(webTransportList), token)) http.Handle("/vpn/status", CheckAuth(http.HandlerFunc(webStatus), token)) http.Handle("/vpn/quit", CheckAuth(http.HandlerFunc(webQuit), token)) http.ListenAndServe(":"+strconv.Itoa(port), nil) } func isValidTransport(t string) bool { for _, b := range []string{"openvpn", "obfs4"} { if b == t { return true } } return false } riseup-vpn-0.24.5+ds1/pkg/bitmask/000077500000000000000000000000001461742244100166155ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/pkg/bitmask/autostart/000077500000000000000000000000001461742244100206435ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/pkg/bitmask/autostart/autostart.go000066400000000000000000000037101461742244100232210ustar00rootroot00000000000000//go:build !windows // +build !windows // Copyright (C) 2018 LEAP // // 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 . package autostart import ( "fmt" "log" "os" "path/filepath" "regexp" pmautostart "github.com/ProtonMail/go-autostart" ) const ( errorMsg = `An error has ocurred initializing the VPN: %v` ) // Autostart holds the functions to enable and disable the application autostart type Autostart interface { Disable() error Enable() error } // NewAutostart creates a handler for the autostart of your platform func NewAutostart(appName string, iconPath string) Autostart { exec := os.Args if os.Getenv("SNAP") != "" { re := regexp.MustCompile("/snap/([^/]*)/") match := re.FindStringSubmatch(os.Args[0]) if len(match) > 1 { snapName := match[1] exec = []string{fmt.Sprintf("/snap/bin/%s.launcher", snapName)} } else { log.Printf("Snap binary has unknown path: %v", os.Args[0]) } } if exec[0][:2] == "./" || exec[0][:2] == ".\\" { var err error exec[0], err = filepath.Abs(exec[0]) if err != nil { log.Printf("Error making the path absolute directory: %v", err) } } return &pmautostart.App{ Name: appName, Exec: exec, DisplayName: appName, Icon: iconPath, } } type DummyAutostart struct{} func (a *DummyAutostart) Disable() error { return nil } func (a *DummyAutostart) Enable() error { return nil } riseup-vpn-0.24.5+ds1/pkg/bitmask/autostart/autostart_win.go000066400000000000000000000006341461742244100241000ustar00rootroot00000000000000//go:build windows // +build windows package autostart // Workaround for broken autostart package on windows. type DummyAutostart struct{} func (a *DummyAutostart) Disable() error { return nil } func (a *DummyAutostart) Enable() error { return nil } type Autostart interface { Disable() error Enable() error } func NewAutostart(appName string, iconPath string) Autostart { return &DummyAutostart{} } riseup-vpn-0.24.5+ds1/pkg/bitmask/init.go000066400000000000000000000075501461742244100201160ustar00rootroot00000000000000// Copyright (C) 2018-2020 LEAP // // 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 . package bitmask import ( "fmt" "log" "os" "path" "0xacab.org/leap/bitmask-vpn/pkg/bitmask/legacy" "0xacab.org/leap/bitmask-vpn/pkg/config" ) type ProviderInfo struct { Provider string AppName string } type ProviderOpts struct { Provider string `json:"name"` AppName string `json:"applicationName"` BinaryName string `json:"binaryName"` Auth string `json:"auth"` AuthEmptyPass bool `json:"authEmptyPass"` ProviderURL string `json:"providerURL"` DonateURL string `json:"donateURL"` ApiURL string `json:"apiURL"` TosURL string `json:"tosURL"` HelpURL string `json:"helpURL"` GeolocationURL string `json:"geolocationAPI"` AskForDonations bool `json:"askForDonations"` CaCert string `json:"caCertString"` ApiVersion int `json:"apiVersion"` } func GetConfiguredProvider() *ProviderInfo { provider := config.Provider appName := config.ApplicationName return &ProviderInfo{provider, appName} } func ConfigureProvider(opts *ProviderOpts) { config.Provider = opts.ProviderURL config.ApplicationName = opts.AppName config.BinaryName = opts.BinaryName config.Auth = opts.Auth config.GeolocationAPI = opts.GeolocationURL config.APIURL = opts.ApiURL config.CaCert = []byte(opts.CaCert) config.ApiVersion = opts.ApiVersion } func InitializeLogger() { _, err := config.ConfigureLogger(path.Join(config.LogPath)) if err != nil { log.Println("Can't configure logger: ", err) } } func initBitmaskVPN() (Bitmask, error) { if config.ApiVersion == 5 { return nil, fmt.Errorf("API v5 is not implemented. Please use apiVersion=3 in config file") } b, err := legacy.Init() if err != nil { log.Printf("An error ocurred starting bitmask vpn: %v", err) } return b, err } func InitializeBitmask(conf *config.Config) (Bitmask, error) { if conf.SkipLaunch { log.Println("Initializing bitmask, but not launching it...") } if _, err := os.Stat(config.Path); os.IsNotExist(err) { os.MkdirAll(config.Path, os.ModePerm) } b, err := initBitmaskVPN() if err != nil { return nil, err } b.SetProvider(config.Provider) err = setTransport(b, conf) if err != nil { return nil, err } err = setUDP(b, conf) if err != nil { return nil, err } if !conf.SkipLaunch { err := maybeStartVPN(b, conf) if err != nil { // we don't want this error to avoid initialization of // the bitmask object. If we cannot autostart it's not // so terrible. log.Println("Error starting VPN: ", err) } } return b, nil } func setTransport(b Bitmask, conf *config.Config) error { if conf.Obfs4 { log.Printf("Use transport Obfs4") err := b.SetTransport("obfs4") if err != nil { log.Printf("Error setting transport: %v", err) return err } } return nil } func setUDP(b Bitmask, conf *config.Config) error { if conf.UDP { log.Printf("Use UDP") err := b.UseUDP(true) if err != nil { log.Printf("Error setting UDP: %v", err) return err } } return nil } func maybeStartVPN(b Bitmask, conf *config.Config) error { if !conf.StartVPN { return nil } if b.CanStartVPN() { log.Println("DEBUG starting") err := b.StartVPN(config.Provider) conf.SetUserStoppedVPN(false) return err } return nil } riseup-vpn-0.24.5+ds1/pkg/bitmask/interface.go000066400000000000000000000033171461742244100211100ustar00rootroot00000000000000// Copyright (C) 2018-2020 LEAP // // 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 . package bitmask import "0xacab.org/leap/bitmask-vpn/pkg/snowflake" // This interface is used to implement different versions (v3 + v5) type Bitmask interface { GetStatusCh() <-chan string GetSnowflakeCh() <-chan *snowflake.StatusEvent Close() Version() (string, error) StartVPN(provider string) error CanStartVPN() bool StopVPN() error Reconnect() error ReloadFirewall() error GetStatus() (string, error) InstallHelpers() error VPNCheck() (helpers bool, priviledge bool, err error) ListLocationFullness(protocol string) map[string]float64 ListLocationLabels(protocol string) map[string][]string GetBestLocation(protocol string) string UseGateway(name string) UseAutomaticGateway() SetProvider(string) GetTransport() string SetTransport(string) error UseUDP(bool) error UseSnowflake(bool) error OffersUDP() bool GetCurrentGateway() string GetCurrentLocation() string GetCurrentCountry() string IsManualLocation() bool NeedsCredentials() bool DoLogin(username, password string) (bool, error) CanUpgrade() bool GetMotd() string } riseup-vpn-0.24.5+ds1/pkg/bitmask/legacy/000077500000000000000000000000001461742244100200615ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/pkg/bitmask/legacy/certs.go000066400000000000000000000012451461742244100215320ustar00rootroot00000000000000package legacy import ( "crypto/x509" "encoding/pem" "io/ioutil" "log" "time" ) func isValidCert(path string) bool { data, err := ioutil.ReadFile(path) if err != nil { return false } // skip private key, but there should be one _, rest := pem.Decode(data) certBlock, rest := pem.Decode(rest) if len(rest) != 0 { log.Println("ERROR bad cert data") return false } cert, err := x509.ParseCertificate(certBlock.Bytes) loc, _ := time.LoadLocation("UTC") expires := cert.NotAfter tomorrow := time.Now().In(loc).Add(24 * time.Hour) if !expires.After(tomorrow) { return false } else { log.Println("DEBUG We have a valid cert:", path) return true } } riseup-vpn-0.24.5+ds1/pkg/bitmask/legacy/diagnose.go000066400000000000000000000004741461742244100222060ustar00rootroot00000000000000package legacy import ( "log" "net" ) func logDnsLookup(domain string) { addrs, err := net.LookupHost(domain) if err != nil { log.Println("ERROR cannot resolve address:", domain) log.Println(err) } log.Println("From here,", domain, "resolves to:") for _, addr := range addrs { log.Println(addr) } } riseup-vpn-0.24.5+ds1/pkg/bitmask/legacy/main.go000066400000000000000000000115261461742244100213410ustar00rootroot00000000000000// Copyright (C) 2018-2020 LEAP // // 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 . package legacy import ( "encoding/json" "io/ioutil" "log" "os" "time" "0xacab.org/leap/bitmask-vpn/pkg/config" "0xacab.org/leap/bitmask-vpn/pkg/config/version" "0xacab.org/leap/bitmask-vpn/pkg/launcher" "0xacab.org/leap/bitmask-vpn/pkg/motd" "0xacab.org/leap/bitmask-vpn/pkg/snowflake" "0xacab.org/leap/bitmask-vpn/pkg/vpn/bonafide" "0xacab.org/leap/bitmask-vpn/pkg/vpn/management" obfsvpn "0xacab.org/leap/obfsvpn/client" ) // Bitmask3 holds the bitmask client data // Bitmask3 implements Bitmask interface (api version v3) type Bitmask3 struct { tempdir string onGateway bonafide.Gateway ptGateway bonafide.Gateway statusCh chan string managementClient *management.MgmtClient bonafide *bonafide.Bonafide launch *launcher.Launcher transport string obfsvpnProxy *obfsvpn.Client certPemPath string openvpnArgs []string udp bool snowflake bool offersUdp bool failed bool canUpgrade bool motd []motd.Message provider string } // Init the connection to bitmask func Init() (*Bitmask3, error) { statusCh := make(chan string, 10) tempdir, err := ioutil.TempDir("", "leap-") if err != nil { return nil, err } snowCh := make(chan *snowflake.StatusEvent, 20) bf := bonafide.New() bf.SnowflakeCh = snowCh launch, err := launcher.NewLauncher() if err != nil { return nil, err } b := Bitmask3{ tempdir, bonafide.Gateway{}, bonafide.Gateway{}, statusCh, nil, bf, launch, "", nil, "", []string{}, false, false, false, false, false, []motd.Message{}, ""} // FIXME multiprovider: need to pass provider name early on // XXX we want to block on these, but they can timeout if we're blocked. b.checkForUpgrades() b.checkForMOTD() b.launch.FirewallStop() /* TODO -- we still want to do this, since it resets the fw/vpn if running from a previous one, but first we need to complete all the system/helper checks that we can do. otherwise this times out with an error that's captured badly as of today. err = b.StopVPN() if err != nil { return nil, err } */ err = ioutil.WriteFile(b.getTempCaCertPath(), config.CaCert, 0600) go b.fetchGateways() go b.openvpnManagement() return &b, err } func (b *Bitmask3) SetProvider(p string) { b.provider = p } func (b *Bitmask3) checkForUpgrades() { // SNAPS have their own way of upgrading. We probably should also try to detect // if we've been installed via another package manager. // For now, it's maybe a good idea to disable the UI check in linux, and be // way more strict in windows/osx. if os.Getenv("SNAP") != "" { return } b.canUpgrade = version.CanUpgrade() } func (b *Bitmask3) checkForMOTD() { b.motd = motd.FetchLatest() } // GetStatusCh returns a channel that will recieve VPN status changes func (b *Bitmask3) GetStatusCh() <-chan string { return b.statusCh } func (b *Bitmask3) GetSnowflakeCh() <-chan *snowflake.StatusEvent { return b.bonafide.SnowflakeCh } // Close the connection to bitmask, and does cleanup of temporal files func (b *Bitmask3) Close() { log.Printf("Close: cleanup and vpn shutdown...") b.StopVPN() time.Sleep(500 * time.Millisecond) err := b.launch.Close() if err != nil { log.Printf("There was an error closing the launcher: %v", err) } time.Sleep(1 * time.Second) err = os.RemoveAll(b.tempdir) if err != nil { log.Printf("There was an error removing temp dir: %v", err) } } // Version gets the bitmask version string func (b *Bitmask3) Version() (string, error) { return "", nil } func (b *Bitmask3) NeedsCredentials() bool { return b.bonafide.NeedsCredentials() } func (b *Bitmask3) DoLogin(username, password string) (bool, error) { return b.bonafide.DoLogin(username, password) } func (b *Bitmask3) UseUDP(udp bool) error { b.udp = udp return nil } func (b *Bitmask3) UseSnowflake(s bool) error { b.snowflake = s return nil } func (b *Bitmask3) OffersUDP() bool { return b.bonafide.IsUDPAvailable() } func (b *Bitmask3) GetMotd() string { bytes, err := json.Marshal(b.motd) if err != nil { log.Println("WARN error marshalling motd") } return string(bytes) } func (b *Bitmask3) CanUpgrade() bool { return b.canUpgrade } riseup-vpn-0.24.5+ds1/pkg/bitmask/legacy/openvpn.go000066400000000000000000000313401461742244100220760ustar00rootroot00000000000000// Copyright (C) 2018-2021 LEAP // // 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 . package legacy import ( "context" "crypto/rand" "encoding/base64" "errors" "fmt" "io/ioutil" "log" "math" "os" "path/filepath" "strconv" "strings" "0xacab.org/leap/bitmask-vpn/pkg/config" "0xacab.org/leap/bitmask-vpn/pkg/vpn/bonafide" obfsvpn "0xacab.org/leap/obfsvpn/client" ) const ( openvpnManagementAddr = "127.0.0.1" openvpnManagementPort = "6061" ) // StartVPN for provider func (b *Bitmask3) StartVPN(provider string) error { if !b.CanStartVPN() { log.Println("BUG cannot start") return errors.New("BUG: cannot start vpn") } var err error b.certPemPath, err = b.getCert() if err != nil { return err } b.openvpnArgs, err = b.bonafide.GetOpenvpnArgs() if err != nil { return err } ctx := context.Background() return b.startOpenVPN(ctx) } func (b *Bitmask3) CanStartVPN() bool { /* FIXME this is not enough. We should check, if provider needs * credentials, if we have a valid token, otherwise remove it and make sure that we're asking for the credentials input */ return !b.bonafide.NeedsCredentials() } func (b *Bitmask3) startTransportForPrivateBridge(ctx context.Context, gw bonafide.Gateway) (proxy string, err error) { proxyAddr := "127.0.0.1:8080" kcpMode := false if os.Getenv("LEAP_KCP") == "1" { kcpMode = true } b.obfsvpnProxy = obfsvpn.NewClient(ctx, kcpMode, proxyAddr, gw.Options["cert"]).(*obfsvpn.Client) go func() { _, err = b.obfsvpnProxy.Start() if err != nil { log.Printf("Can't connect to transport %s: %v", b.transport, err) } log.Println("Connected via obfs4 to", gw.IPAddress, "(", gw.Host, ")") }() return proxyAddr, nil } func (b *Bitmask3) startTransport(ctx context.Context, host string) (proxy string, err error) { // TODO configure socks port if not available // TODO get port from UI/config file proxyAddr := "127.0.0.1:8080" if b.obfsvpnProxy != nil { return proxyAddr, nil } gateways, err := b.bonafide.GetGateways(b.transport) if err != nil { return "", err } if len(gateways) == 0 { log.Printf("No gateway for transport %s in provider", b.transport) return "", nil } for _, gw := range gateways { if gw.Host != host { continue } if _, ok := gw.Options["cert"]; !ok { continue } log.Println("Selected Gateway:", gw.Host, gw.IPAddress) kcpMode := false if os.Getenv("LEAP_KCP") == "1" { kcpMode = true } log.Println("connecting with cert:", gw.Options["cert"]) b.obfsvpnProxy = obfsvpn.NewClient(ctx, kcpMode, proxyAddr, gw.Options["cert"]).(*obfsvpn.Client) go func() { _, err = b.obfsvpnProxy.Start() if err != nil { log.Printf("Can't connect to transport %s: %v", b.transport, err) } log.Println("Connected via obfs4 to", gw.IPAddress, "(", gw.Host, ")") }() return proxyAddr, nil } return "", fmt.Errorf("No working gateway for transport %s: %v", b.transport, err) } func maybeGetPrivateGateway() (bonafide.Gateway, bool) { gw := bonafide.Gateway{} privateBridge := os.Getenv("LEAP_PRIVATE_BRIDGE") if privateBridge == "" { return gw, false } obfs4Cert := os.Getenv("LEAP_PRIVATE_BRIDGE_CERT") if privateBridge == "" { return gw, false } bridgeArgs := strings.Split(privateBridge, ":") gw.Host = bridgeArgs[0] gw.Ports = []string{bridgeArgs[1]} opt := make(map[string]string) opt["cert"] = obfs4Cert gw.Options = opt return gw, true } // generates a password and returns the path for a temporary file where this password is written func (b *Bitmask3) generateManagementPassword() string { pass := getRandomPass(12) tmpFile, err := ioutil.TempFile(b.tempdir, "leap-vpn-") if err != nil { log.Fatal("Cannot create temporary file", err) } tmpFile.Write([]byte(pass)) b.launch.MngPass = pass return tmpFile.Name() } func (b *Bitmask3) startOpenVPN(ctx context.Context) error { arg := b.openvpnArgs /* XXX has this changed?? arg, err := b.bonafide.GetOpenvpnArgs() if err != nil { return err } */ /* XXX and this?? certPemPath, err := b.getCert() if err != nil { return err } */ b.statusCh <- Starting if b.GetTransport() == "obfs4" { var gw bonafide.Gateway var gateways []bonafide.Gateway var proxy string gw, gotPrivate := maybeGetPrivateGateway() if gotPrivate { var err error log.Println("Got a private bridge:", gw.Host, gw.Options) gateways = []bonafide.Gateway{gw} proxy, err = b.startTransportForPrivateBridge(ctx, gw) if err != nil { // TODO this is not going to return the error since it blocks // we need to get an error channel from obfsvpn. return err } } else { // get a gateway from bonafide looking at the services announced in eip-service log.Println("Getting a gateway with obfs4 transport...") gateways, err := b.bonafide.GetGateways("obfs4") if err != nil { return err } if len(gateways) == 0 { log.Printf("ERROR No gateway for transport %s in provider", b.transport) return errors.New("ERROR: cannot find any gateway for selected transport") } gw = gateways[0] b.ptGateway = gw proxy, err = b.startTransport(ctx, gw.Host) if err != nil { // TODO this is not going to return the error since it blocks // we need to get an error channel from obfsvpn. return err } } err := b.launch.FirewallStart(gateways) if err != nil { return err } proxyArgs := strings.Split(proxy, ":") arg = append(arg, "--socks-proxy", proxyArgs[0], proxyArgs[1]) arg = append(arg, "--remote", gw.IPAddress, gw.Ports[0], "tcp4") arg = append(arg, "--route", gw.IPAddress, "255.255.255.255", "net_gateway") } else { log.Println("args passed to bitmask-root:", arg) gateways, err := b.bonafide.GetGateways("openvpn") if err != nil { return err } if b.udp { os.Setenv("UDP", "1") } else { os.Setenv("UDP", "0") } err = b.launch.FirewallStart(gateways) if err != nil { return err } for _, gw := range gateways { for _, port := range gw.Ports { if port != "53" { if b.udp { arg = append(arg, "--remote", gw.IPAddress, port, "udp4") } else { arg = append(arg, "--remote", gw.IPAddress, port, "tcp4") } } } } } openvpnVerb := os.Getenv("OPENVPN_VERBOSITY") verb, err := strconv.Atoi(openvpnVerb) if err != nil || verb > 6 || verb < 3 { openvpnVerb = "3" } // TODO we need to check if the openvpn options pushed by server are // not overriding (or duplicating) some of the options we're adding here. log.Println("VERB", verb) passFile := b.generateManagementPassword() arg = append(arg, "--verb", openvpnVerb, "--management-client", "--management", openvpnManagementAddr, openvpnManagementPort, passFile, "--ca", b.getTempCaCertPath(), "--cert", b.certPemPath, "--key", b.certPemPath, "--persist-tun") // needed for reconnects // "--float") if os.Getenv("OPENVPN_LOG_TO_FILE") != "" { openVpnLogFile := filepath.Join(os.TempDir(), "leap-vpn.log") log.Printf("DEBUG: Logging OpenVPN output to %s\n", openVpnLogFile) arg = append(arg, "--log", openVpnLogFile) } if os.Getenv("LEAP_DRYRUN") == "1" { arg = append( arg, "--pull-filter", "ignore", "route") } return b.launch.OpenvpnStart(arg...) } func (b *Bitmask3) getCert() (certPath string, err error) { log.Println("Getting certificate...") persistentCertFile := filepath.Join(config.Path, strings.ToLower(config.Provider)+".pem") if _, err := os.Stat(persistentCertFile); !os.IsNotExist(err) && isValidCert(persistentCertFile) { // TODO snowflake might have written a cert here // reuse cert. for the moment we're not writing one there, this is // only to allow users to get certs off-band and place them there // as a last-resort fallback for circumvention. certPath = persistentCertFile err = nil } else { // download one fresh certPath = b.getTempCertPemPath() if _, err := os.Stat(certPath); os.IsNotExist(err) { log.Println("Fetching certificate to", certPath) cert, err := b.bonafide.GetPemCertificate() if err != nil { log.Println(err) } err = ioutil.WriteFile(certPath, cert, 0600) if err != nil { log.Println(err) } } } d := config.APIURL[8 : len(config.APIURL)-1] logDnsLookup(d) return certPath, err } // Explicit call to GetGateways, to be able to fetch them all before starting the vpn func (b *Bitmask3) fetchGateways() { log.Println("Fetching gateways...") _, err := b.bonafide.GetAllGateways(b.transport) if err != nil { log.Printf("ERROR Cannot fetch gateways: %v", err) } } // StopVPN or cancel func (b *Bitmask3) StopVPN() error { err := b.launch.FirewallStop() if err != nil { return err } if b.obfsvpnProxy != nil { b.obfsvpnProxy.Stop() b.obfsvpnProxy = nil } b.tryStopFromManagement() b.launch.OpenvpnStop() return nil } func (b *Bitmask3) tryStopFromManagement() { if b.managementClient != nil { b.managementClient.SendSignal("SIGTERM") } } // Reconnect to the VPN func (b *Bitmask3) Reconnect() error { if !b.CanStartVPN() { return errors.New("BUG: cannot start vpn") } status, err := b.GetStatus() if err != nil { return err } log.Println("DEBUG Reconnecting") if status != Off { b.statusCh <- Stopping if b.obfsvpnProxy != nil { b.obfsvpnProxy.Stop() b.obfsvpnProxy = nil } err = b.launch.OpenvpnStop() if err != nil { return err } } err = b.launch.FirewallStop() // FIXME - there's a window in which we might leak traffic here! if err != nil { return err } ctx := context.Background() return b.startOpenVPN(ctx) } // ReloadFirewall restarts the firewall func (b *Bitmask3) ReloadFirewall() error { err := b.launch.FirewallStop() if err != nil { return err } status, err := b.GetStatus() if err != nil { return err } if status != Off { gateways, err := b.bonafide.GetAllGateways("any") if err != nil { return err } return b.launch.FirewallStart(gateways) } return nil } // GetStatus returns the VPN status func (b *Bitmask3) GetStatus() (string, error) { status := Off if b.isFailed() { status = Failed } else { status, err := b.getOpenvpnState() if err != nil { status = Off } if status == Off && b.launch.FirewallIsUp() { return Failed, nil } } return status, nil } func (b *Bitmask3) InstallHelpers() error { // TODO use pickle module from here return nil } // VPNCheck returns if the helpers are installed and up to date and if polkit is running func (b *Bitmask3) VPNCheck() (helpers bool, privilege bool, err error) { return b.launch.Check() } func (b *Bitmask3) ListLocationFullness(transport string) map[string]float64 { return b.bonafide.ListLocationFullness(transport) } func (b *Bitmask3) ListLocationLabels(transport string) map[string][]string { return b.bonafide.ListLocationLabels(transport) } // UseGateway selects a gateway, by label, as the default gateway func (b *Bitmask3) UseGateway(label string) { b.bonafide.SetManualGateway(label) } // UseAutomaticGateway sets the gateway to be selected automatically // best gateway will be used func (b *Bitmask3) UseAutomaticGateway() { b.bonafide.SetAutomaticGateway() } // SetTransport selects an obfuscation transport to use func (b *Bitmask3) SetTransport(t string) error { if t != "openvpn" && t != "obfs4" { return fmt.Errorf("Transport %s not implemented", t) } log.Println("Setting transport to", t) // compare and set string looks strange, but if assigning directly // we're getting some kind of corruption with the transport string. // I suspect something's // not quite right with the c<->go char pointers handling. if t == "obfs4" { b.transport = "obfs4" } else if t == "openvpn" { b.transport = "openvpn" } return nil } // GetTransport gets the obfuscation transport to use. Only obfs4 available for now. func (b *Bitmask3) GetTransport() string { if b.transport == "obfs4" { return "obfs4" } else { return "openvpn" } } func (b *Bitmask3) getTempCertPemPath() string { return filepath.Join(b.tempdir, "openvpn.pem") } func (b *Bitmask3) getTempCaCertPath() string { return filepath.Join(b.tempdir, "cacert.pem") } func getRandomPass(l int) string { buff := make([]byte, int(math.Round(float64(l)/float64(1.33333333333)))) rand.Read(buff) str := base64.RawURLEncoding.EncodeToString(buff) return str[:l] // strip 1 extra character we get from odd length results } riseup-vpn-0.24.5+ds1/pkg/bitmask/legacy/status.go000066400000000000000000000065651461742244100217470ustar00rootroot00000000000000// Copyright (C) 2018-2020 LEAP // // 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 . package legacy import ( "fmt" "log" "strings" "0xacab.org/leap/bitmask-vpn/pkg/vpn/management" ) const ( On = "on" Off = "off" Starting = "starting" Stopping = "stopping" Failed = "failed" ) var statusNames = map[string]string{ "CONNECTING": Starting, "WAIT": Starting, "AUTH": Starting, "GET_CONFIG": Starting, "ASSIGN_IP": Starting, "ADD_ROUTES": Starting, "CONNECTED": On, "RECONNECTING": Starting, "EXITING": Stopping, "OFF": Off, "FAILED": Off, } func (b *Bitmask3) openvpnManagement() { // TODO: we should warn the user on ListenAndServe errors newConnection := func(conn management.IncomingConn) { eventCh := make(chan management.Event, 10) log.Println("New connection into the management") b.managementClient = conn.Open(eventCh) b.managementClient.SendPassword(b.launch.MngPass) b.managementClient.SetStateEvents(true) b.eventHandler(eventCh) } log.Fatal(management.ListenAndServe( fmt.Sprintf("%s:%s", openvpnManagementAddr, openvpnManagementPort), management.IncomingConnHandlerFunc(newConnection), )) } func (b *Bitmask3) eventHandler(eventCh <-chan management.Event) { for event := range eventCh { log.Printf("Event: %v", event) stateEvent, ok := event.(*management.StateEvent) if !ok { continue } statusName := stateEvent.NewState() status, ok := statusNames[statusName] if ok { b.statusCh <- status } if statusName == "CONNECTED" { ip := strings.Split(stateEvent.String(), ": ")[1] if ip == "127.0.0.1" { // we're using pluggable transports b.onGateway = b.ptGateway } else { gw, err := b.bonafide.GetGatewayByIP(ip) if err == nil { b.onGateway = gw log.Println("Connected to gateway:", b.onGateway.Host) } else { log.Println("ERROR: connected to unknown gateway", ip) } } } } b.statusCh <- Off } func (b *Bitmask3) GetCurrentGateway() string { return b.onGateway.Host } func (b *Bitmask3) GetCurrentLocation() string { return b.onGateway.LocationName } func (b *Bitmask3) GetCurrentCountry() string { return b.onGateway.CountryCode } func (b *Bitmask3) GetBestLocation(transport string) string { return b.bonafide.GetBestLocation(transport) } func (b *Bitmask3) IsManualLocation() bool { return b.bonafide.IsManualLocation() } func (b *Bitmask3) getOpenvpnState() (string, error) { if b.managementClient == nil { return "", fmt.Errorf("No management connected") } stateEvent, err := b.managementClient.LatestState() if err != nil { return "", err } status, ok := statusNames[stateEvent.NewState()] if !ok { return "", fmt.Errorf("Unkonw status") } return status, nil } func (b *Bitmask3) isFailed() bool { return b.launch.Failed } riseup-vpn-0.24.5+ds1/pkg/config/000077500000000000000000000000001461742244100164305ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/pkg/config/config.go000066400000000000000000000003121461742244100202200ustar00rootroot00000000000000package config var ( Provider = "" ApplicationName = "" BinaryName = "" Auth = "" APIURL = "" GeolocationAPI = "" ApiVersion = -1 ) var CaCert = []byte("") riseup-vpn-0.24.5+ds1/pkg/config/darwin.go000066400000000000000000000015031461742244100202420ustar00rootroot00000000000000//go:build darwin // +build darwin // Copyright (C) 2018 LEAP // // 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 . package config import ( "os" ) // Path for the config files var Path = os.Getenv("HOME") + "/Library/Preferences/leap" riseup-vpn-0.24.5+ds1/pkg/config/gui.go000066400000000000000000000054401461742244100175460ustar00rootroot00000000000000// Copyright (C) 2018-2020 LEAP // // 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 . package config import ( "encoding/json" "os" "path" "time" ) const ( oneDay = time.Hour * 24 oneWeek = oneDay * 7 oneMonth = oneDay * 30 ) var ( configPath = path.Join(Path, "systray.json") LogPath = path.Join(Path, "systray.log") ) // Config holds the configuration of the systray type Config struct { file struct { LastReminded time.Time Donated time.Time Obfs4 bool UserStoppedVPN bool DisableAutostart bool UDP bool Snowflake bool } SkipLaunch bool Obfs4 bool DisableAutostart bool StartVPN bool UDP bool Snowflake bool } // ParseConfig reads the configuration from the configuration file func ParseConfig() *Config { var conf Config f, err := os.Open(configPath) if err != nil { conf.save() } else { defer f.Close() dec := json.NewDecoder(f) err = dec.Decode(&conf.file) } conf.Obfs4 = conf.file.Obfs4 conf.DisableAutostart = conf.file.DisableAutostart conf.StartVPN = !conf.file.UserStoppedVPN conf.UDP = conf.file.UDP conf.Snowflake = conf.file.Snowflake return &conf } func (c *Config) SetUserStoppedVPN(vpnStopped bool) error { c.file.UserStoppedVPN = vpnStopped return c.save() } func (c *Config) NeedsDonationReminder() bool { return !c.hasDonated() && c.file.LastReminded.Add(oneWeek).Before(time.Now()) } func (c *Config) hasDonated() bool { return c.file.Donated.Add(oneMonth).After(time.Now()) } func (c *Config) SetLastReminded() error { c.file.LastReminded = time.Now() return c.save() } func (c *Config) SetDonated() error { c.file.Donated = time.Now() return c.save() } func (c *Config) SetUseObfs4(val bool) error { c.Obfs4 = val c.file.Obfs4 = val return c.save() } func (c *Config) SetUseUDP(val bool) error { c.UDP = val c.file.UDP = val return c.save() } func (c *Config) SetUseSnowflake(val bool) error { c.Snowflake = val c.file.Snowflake = val return c.save() } func (c *Config) save() error { f, err := os.Create(configPath) if err != nil { return err } defer f.Close() enc := json.NewEncoder(f) enc.SetIndent("", " ") return enc.Encode(c.file) } riseup-vpn-0.24.5+ds1/pkg/config/logger.go000066400000000000000000000023331461742244100202370ustar00rootroot00000000000000// Copyright (C) 2018 LEAP // // 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 . package config import ( "io" "log" "os" "path" ) // ConfigureLogger to write logs into a file as well as the stderr func ConfigureLogger(logPath string) (io.Closer, error) { dir := path.Dir(logPath) if _, err := os.Stat(dir); err != nil { if os.IsNotExist(err) { err := os.MkdirAll(dir, 0700) if err != nil { log.Println("ERROR: cannot create data dir:", dir) } } } logFile, err := os.OpenFile(logPath, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) if err == nil { log.SetOutput(io.MultiWriter(logFile, os.Stderr)) } return logFile, err } riseup-vpn-0.24.5+ds1/pkg/config/unix.go000066400000000000000000000015421461742244100177440ustar00rootroot00000000000000//go:build !windows && !darwin // +build !windows,!darwin // Copyright (C) 2018 LEAP // // 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 . package config import ( "os" "path" ) // Path for the config files var Path = path.Join(os.Getenv("HOME"), ".config", "leap") riseup-vpn-0.24.5+ds1/pkg/config/version/000077500000000000000000000000001461742244100201155ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/pkg/config/version/.gitignore000066400000000000000000000000131461742244100220770ustar00rootroot00000000000000version.go riseup-vpn-0.24.5+ds1/pkg/config/version/LICENSE000066400000000000000000000020631461742244100211230ustar00rootroot00000000000000Copyright (c) 2015 Vincent Batts, Raleigh, NC, USA Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. riseup-vpn-0.24.5+ds1/pkg/config/version/checknewer.go000066400000000000000000000036121461742244100225640ustar00rootroot00000000000000package version import ( "io/ioutil" "log" "net/http" "os" "runtime" "strings" ) const verURI = "https://downloads.leap.se/RiseupVPN/" // CanUpgrade returns true if there's a newer version string published on the server // this needs to manually bump latest version for every platform in the // downloads server. // at the moment, we hardcode RiseupVPN in the path, assuming that all clients // stay in sync. func CanUpgrade() bool { if os.Getenv("SKIP_VERSION_CHECK") == "1" { return false } log.Println("Checking for updates...") uri := verURI switch runtime.GOOS { case "windows": uri += "windows" case "darwin": uri += "osx" case "linux": fallthrough default: uri += "linux" } uri += "/lastver" resp, err := http.Get(uri) if err != nil { log.Println(err) return false } defer resp.Body.Close() verStr, err := ioutil.ReadAll(resp.Body) if err != nil { log.Println(err) return false } r := strings.TrimSpace(string(verStr)) if strings.Count(r, "\n") > 1 { log.Println("No remote version found at " + uri) return false } canUpgrade := versionOrdinal(r) > versionOrdinal(VERSION) if os.Getenv("DEBUG") == "1" { log.Println(">>> Remote version: " + r) log.Println(">>> Current version: " + VERSION) } if canUpgrade { log.Println("There's a newer version available:", r) } return canUpgrade } // https://stackoverflow.com/a/18411978 func versionOrdinal(version string) string { const maxByte = 1<<8 - 1 vo := make([]byte, 0, len(version)+8) j := -1 for i := 0; i < len(version); i++ { b := version[i] if '0' > b || b > '9' { vo = append(vo, b) j = -1 continue } if j == -1 { vo = append(vo, 0x00) j = len(vo) - 1 } if vo[j] == 1 && vo[j+1] == '0' { vo[j+1] = b continue } if vo[j]+1 > maxByte { log.Println("VersionOrdinal: invalid version") return string(vo) } vo = append(vo, b) vo[j]++ } return string(vo) } riseup-vpn-0.24.5+ds1/pkg/config/version/genver/000077500000000000000000000000001461742244100214035ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/pkg/config/version/genver/gen.go000066400000000000000000000000731461742244100225030ustar00rootroot00000000000000package main //go:generate go run . -output=../version.go riseup-vpn-0.24.5+ds1/pkg/config/version/genver/main.go000066400000000000000000000041771461742244100226670ustar00rootroot00000000000000package main import ( "flag" "io" "io/ioutil" "log" "os" "os/exec" "path/filepath" "strings" "text/template" "time" ) var ( flPackageName = flag.String("package", "version", "name for the generated golang package") flVariableName = flag.String("variable", "VERSION", "variable name in the generated golang package") flOutputFile = flag.String("output", "", "output filename (default stdout)") ) func main() { flag.Parse() dir := "." if flag.NArg() > 0 { dir = flag.Args()[0] } dir, err := filepath.Abs(dir) if err != nil { log.Fatal(err) } var output io.Writer if len(*flOutputFile) > 0 { fh, err := os.Create(*flOutputFile) if err != nil { log.Fatal(err) } defer fh.Close() output = fh } else { output = os.Stdout } vers, err := GitDescribe(dir) if err != nil { vers = ReadVersionFile(dir) } vp := VersionPackage{ Name: *flPackageName, Path: dir, Date: time.Now(), Variable: *flVariableName, Version: vers, } packageTemplate.Execute(output, vp) } // VersionPackage is the needed information to template a version package type VersionPackage struct { Name string Path string Date time.Time Variable string Version string } var packageTemplate = template.Must(template.New("default").Parse(packageLayout)) var packageLayout = `package {{.Name}} // AUTO-GENERATED. DO NOT EDIT // {{.Date}} // {{.Variable}} is generated by git-describe or static version file from gen.go var {{.Variable}} = "{{.Version}}" ` // GitDescribe calls `git describe` in the provided path func GitDescribe(path string) (string, error) { cwd, err := os.Getwd() if err != nil { return "", err } // TODO check if this is a directory if err := os.Chdir(path); err != nil { return "", err } defer os.Chdir(cwd) buf, err := exec.Command("git", "describe").CombinedOutput() if err != nil { return "", err } return strings.TrimSpace(string(buf)), nil } func ReadVersionFile(path string) string { versionFile := filepath.Join(path, "../../../version") content, err := ioutil.ReadFile(versionFile) if err != nil { return "unknown" } return strings.Trim(string(content), "\n") } riseup-vpn-0.24.5+ds1/pkg/config/windows.go000066400000000000000000000014651461742244100204570ustar00rootroot00000000000000//go:build windows // +build windows // Copyright (C) 2018 LEAP // // 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 . package config import "os" // Path for the config files var Path = os.Getenv("LOCALAPPDATA") + "\\leap" riseup-vpn-0.24.5+ds1/pkg/helper/000077500000000000000000000000001461742244100164425ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/pkg/helper/args.go000066400000000000000000000044541461742244100177340ustar00rootroot00000000000000package helper import ( "log" "net" "os" "path/filepath" "regexp" "strconv" ) const ( nameserverTCP = "10.41.0.1" nameserverUDP = "10.42.0.1" ) var ( fixedArgs = []string{ "--nobind", "--client", "--dev", "tun", "--tls-client", "--remote-cert-tls", "server", "--dhcp-option", "DNS", nameserverTCP, "--dhcp-option", "DNS", nameserverUDP, "--tls-version-min", "1.0", "--float", "--log", filepath.Join(LogFolder, "openvpn-leap.log"), } allowedArgs = map[string][]string{ "--remote": {"IP", "NUMBER", "PROTO"}, "--tls-cipher": {"CIPHER"}, "--cipher": {"CIPHER"}, "--auth": {"CIPHER"}, "--management-client": {}, "--management": {"IP", "NUMBER"}, "--route": {"IP", "IP", "NETGW"}, "--cert": {"FILE"}, "--key": {"FILE"}, "--ca": {"FILE"}, "--fragment": {"NUMBER"}, "--keepalive": {"NUMBER", "NUMBER"}, "--verb": {"NUMBER"}, "--tun-ipv6": {}, } cipher = regexp.MustCompile("^[A-Z0-9-]+$") formats = map[string]func(s string) bool{ "NUMBER": isNumber, "PROTO": isProto, "IP": isIP, "CIPHER": cipher.MatchString, "FILE": isFile, "NETGW": isNetGw, } ) func parseOpenvpnArgs(args []string) []string { newArgs := fixedArgs newArgs = append(newArgs, getPlatformOpenvpnFlags()...) for i := 0; i < len(args); i++ { params, ok := allowedArgs[args[i]] if !ok { log.Printf("Invalid openvpn arg: %s", args[i]) continue } for j, arg := range args[i+1 : i+len(params)+1] { if !formats[params[j]](arg) { ok = false break } } if ok { newArgs = append(newArgs, args[i:i+len(params)+1]...) i = i + len(params) } else { log.Printf("Invalid openvpn arg params: %v", args[i:i+len(params)+1]) } } return newArgs } func isNumber(s string) bool { _, err := strconv.Atoi(s) return err == nil } func isProto(s string) bool { for _, proto := range []string{"tcp", "udp", "tcp4", "udp4", "tcp6", "udp6"} { if s == proto { return true } } return false } func isIP(s string) bool { return net.ParseIP(s) != nil } func isFile(s string) bool { info, err := os.Stat(s) if err != nil { return false } return !info.IsDir() } func isNetGw(s string) bool { return s == "net_gateway" } riseup-vpn-0.24.5+ds1/pkg/helper/darwin.go000066400000000000000000000135111461742244100202560ustar00rootroot00000000000000//go:build darwin // +build darwin // Copyright (C) 2018-2020 LEAP // // 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 . /* This module holds some specific constants for osx, and it also contains the implementation of the pf firewall. To inspect the rules in the firewall manually, use the bitmask anchor: sudo pfctl -s rules -a com.apple/250.BitmaskFirewall */ package helper import ( "errors" "fmt" "log" "os" "os/exec" "path" "path/filepath" "strconv" "strings" "time" "github.com/sevlyar/go-daemon" ) const ( bitmask_anchor = "com.apple/250.BitmaskFirewall" gateways_table = "bitmask_gateways" pfctl = "/sbin/pfctl" LogFolder = "/var/log/" ) func _getExecPath() string { ex, err := os.Executable() if err != nil { log.Print("ERROR: cannot find executable path") } return filepath.Dir(ex) } func getHelperDir() string { d := _getExecPath() return d } func getPlatformOpenvpnFlags() []string { helperDir := getHelperDir() return []string{ "--script-security", "2", "--up", filepath.Join(helperDir, "client.up.sh"), "--down", filepath.Join(helperDir, "client.down.sh"), } } func parseCliArgs() { // OSX helper does not respond to arguments } func initializeService(port int) {} func daemonize() { cntxt := &daemon.Context{ PidFileName: "pid", PidFilePerm: 0644, LogFileName: "bitmask-helper.log", LogFilePerm: 0640, WorkDir: filepath.Join(getHelperDir(), "helper"), Umask: 027, Args: []string{"[bitmask-helper]"}, } d, err := cntxt.Reborn() if err != nil { log.Fatal("Unable to run: ", err) } if d != nil { return } defer cntxt.Release() log.Print("bitmask-helper daemon started") } func runServer(preferredPort int) { port := getFirstAvailablePortFrom(preferredPort) writePortToFile(port) bindAddr := "localhost:" + strconv.Itoa(port) serveHTTP(bindAddr) } func getOpenvpnPath() string { openvpnPath := filepath.Join(getHelperDir(), "openvpn.leap") log.Println("openvpn path:", openvpnPath) return openvpnPath } func kill(cmd *exec.Cmd) error { log.Printf("Sending kill signal to pid: %v", cmd.Process.Pid) err := cmd.Process.Signal(os.Interrupt) if err != nil { return err } return nil } func firewallStart(gateways []string, mode string) error { enablePf() err := resetGatewaysTable(gateways, mode) if err != nil { return err } return loadBitmaskAnchor() } func firewallStop() error { out, err := exec.Command(pfctl, "-a", bitmask_anchor, "-F", "all").Output() if err != nil { log.Printf("An error ocurred stopping the firewall: %v", out) /* TODO return error if different from anchor not exists */ /*return errors.New("Error while stopping firewall")*/ } for range [50]int{} { if firewallIsUp() { log.Printf("Firewall still up, waiting...") time.Sleep(200 * time.Millisecond) } else { return nil } } return errors.New("Could not stop firewall") } func firewallIsUp() bool { out, err := exec.Command(pfctl, "-a", bitmask_anchor, "-sr").Output() if err != nil { log.Printf("An error ocurred getting the status of the firewall: %v", err) log.Printf(string(out)) return false } return strings.Contains(string(out), "block drop out proto udp from any to any port = 53") } func enablePf() { cmd := exec.Command(pfctl, "-e") cmd.Run() } func resetGatewaysTable(gateways []string, mode string) error { log.Println("Resetting gateways") cmd := exec.Command(pfctl, "-a", bitmask_anchor, "-t", gateways_table, "-T", "delete") err := cmd.Run() if err != nil { log.Printf("Can't delete table: %v", err) } for _, gateway := range gateways { log.Println("Adding Gateway:", gateway) cmd = exec.Command(pfctl, "-a", bitmask_anchor, "-t", gateways_table, "-T", "add", gateway) err = cmd.Run() if err != nil { log.Printf("Error adding gateway to table: %v", err) } } nameserver := nameserverTCP if mode == "udp" { nameserver = nameserverUDP } cmd = exec.Command(pfctl, "-a", bitmask_anchor, "-t", gateways_table, "-T", "add", nameserver) return cmd.Run() } func getDefaultDevice() string { out, err := exec.Command("/bin/sh", "-c", "/sbin/route -n get -net default | /usr/bin/grep interface | /usr/bin/awk '{print $2}'").Output() if err != nil { log.Printf("Error getting default device") } return strings.TrimSpace(bytesToString(out)) } func loadBitmaskAnchor() error { dev := getDefaultDevice() rulePath, err := getRulefilePath() if err != nil { return err } cmdline := fmt.Sprintf("%s -D default_device=%s -a %s -f %s", pfctl, dev, bitmask_anchor, rulePath) log.Println("Loading Bitmask Anchor:", cmdline) _, err = exec.Command("/bin/sh", "-c", cmdline).Output() return err } func getRulefilePath() (string, error) { rulefilePath := filepath.Join(getHelperDir(), "helper", "bitmask.pf.conf") log.Println("DEBUG: rule file path", rulefilePath) if _, err := os.Stat(rulefilePath); !os.IsNotExist(err) { return rulefilePath, nil } gopath := os.Getenv("GOPATH") if gopath == "" { gopath = path.Join(os.Getenv("HOME"), "go") } rulefile := path.Join(gopath, "0xacab.org", "leap", "riseup_vpn", "osx", "bitmask.pf.conf") if _, err := os.Stat(rulefile); !os.IsNotExist(err) { return rulefile, nil } return "", errors.New("Can't find rule file for the firewall") } func bytesToString(data []byte) string { return string(data[:]) } riseup-vpn-0.24.5+ds1/pkg/helper/helper.go000066400000000000000000000120161461742244100202500ustar00rootroot00000000000000// Copyright (C) 2018 LEAP // // 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 . // This helper is intended to be long-lived, and run with administrator privileges. // It will launch a http server and expose a REST API to control OpenVPN and the firewall. // At the moment, it is only used in Darwin and Windows - although it could also be used in GNU/Linux systems (but we use the one-shot bitmask-root wrapper in GNU/Linux instead). // In Windows, this helper will run on the first available port after the standard one (7171). // In other systems, the 7171 port is hardcoded. package helper import ( "encoding/json" "log" "net" "net/http" "os/exec" ) var ( AppName = "DemoLibVPN" BinaryName = "bitmask" Version = "git" ) type openvpnT struct { cmd *exec.Cmd } // startHelper is the main entrypoint. It can react to cli args (used to install or manage the service in windows), and // eventually will start the http server. func StartHelper(port int) { initializeService(port) parseCliArgs() daemonize() runServer(port) } // serveHTTP will start the HTTP server that exposes the firewall and openvpn api. // this can be called at different times by the different implementations of the helper. func serveHTTP(bindAddr string) { log.Println("Starting HTTP server at", bindAddr) openvpn := openvpnT{nil} http.HandleFunc("/openvpn/start", openvpn.start) http.HandleFunc("/openvpn/stop", openvpn.stop) http.HandleFunc("/firewall/start", firewallStartHandler) http.HandleFunc("/firewall/stop", firewallStopHandler) http.HandleFunc("/firewall/isup", firewallIsUpHandler) http.HandleFunc("/version", versionHandler) log.Fatal(http.ListenAndServe(bindAddr, nil)) } func (openvpn *openvpnT) start(w http.ResponseWriter, r *http.Request) { args, err := getArgs(r) if err != nil { log.Printf("An error has occurred processing flags: %v", err) w.Write([]byte(err.Error())) return } args = parseOpenvpnArgs(args) log.Printf("start openvpn: %v", args) err = openvpn.run(args) if err != nil { log.Printf("Error starting openvpn: %v", err) w.Write([]byte(err.Error())) } } func (openvpn *openvpnT) run(args []string) error { if openvpn.cmd != nil { log.Printf("openvpn was running, stop it first") err := openvpn.kill() if err != nil { return err } } log.Println("OPENVPN PATH:", getOpenvpnPath()) // TODO: if it dies we should restart it openvpn.cmd = exec.Command(getOpenvpnPath(), args...) return openvpn.cmd.Start() } func (openvpn *openvpnT) stop(w http.ResponseWriter, r *http.Request) { log.Println("stop openvpn") if openvpn.cmd == nil || openvpn.cmd.ProcessState != nil { openvpn.cmd = nil return } err := openvpn.kill() if err != nil { log.Printf("Error stoping openvpn: %v", err) w.Write([]byte(err.Error())) } } func (openvpn *openvpnT) kill() error { err := kill(openvpn.cmd) if err == nil { openvpn.cmd.Wait() } else { log.Printf("Error killing the process: %v", err) } openvpn.cmd = nil return nil } func firewallStartHandler(w http.ResponseWriter, r *http.Request) { mode := "tcp" query := r.URL.Query() udp, udpParam := query["udp"] if udpParam && len(udp) == 1 && udp[0] == "1" { mode = "udp" } gateways, err := getArgs(r) if err != nil { log.Printf("An error has occurred processing gateways: %v", err) w.Write([]byte(err.Error())) return } for _, gw := range gateways { if !validAddress(gw) { w.Write([]byte("bad argument")) } } err = firewallStart(gateways, mode) if err != nil { log.Printf("Error starting firewall: %v", err) w.Write([]byte(err.Error())) return } log.Println("Start firewall: firewall started") } func firewallStopHandler(w http.ResponseWriter, r *http.Request) { err := firewallStop() if err != nil { log.Printf("Error stoping firewall: %v", err) w.Write([]byte(err.Error())) } log.Println("Stop firewall: firewall stopped") } func firewallIsUpHandler(w http.ResponseWriter, r *http.Request) { if firewallIsUp() { w.WriteHeader(http.StatusOK) w.Write([]byte("true")) } else { w.WriteHeader(http.StatusNoContent) w.Write([]byte("false")) } } func versionHandler(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) w.Write([]byte(AppName + "/" + Version + "\n")) } func getArgs(r *http.Request) ([]string, error) { args := []string{} decoder := json.NewDecoder(r.Body) err := decoder.Decode(&args) return args, err } func validAddress(ip string) bool { if net.ParseIP(ip) == nil { return false } else { return true } } riseup-vpn-0.24.5+ds1/pkg/helper/linux.go000066400000000000000000000036321461742244100201340ustar00rootroot00000000000000//go:build linux // +build linux // Copyright (C) 2018, 2020 LEAP // // 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 . package helper import ( "log" "os" "os/exec" "strconv" "0xacab.org/leap/bitmask-vpn/pkg/config" ) const ( openvpnUser = "nobody" openvpnGroup = "nogroup" LogFolder = "/var/log/" systemOpenvpnPath = "/usr/sbin/openvpn" ) var ( snapOpenvpnPath = "/snap/bin/" + config.BinaryName + ".openvpn" ) func getPlatformOpenvpnFlags() []string { return []string{ "--script-security", "1", "--user", openvpnUser, "--group", openvpnGroup, } } func parseCliArgs() { // linux helper does not reply to args } func initializeService(port int) {} func daemonize() {} func runServer(port int) { // defined in helper.go serveHTTP("localhost:" + strconv.Itoa(port)) } func getOpenvpnPath() string { if os.Getenv("SNAP") != "" { return snapOpenvpnPath } return systemOpenvpnPath } func kill(cmd *exec.Cmd) error { return cmd.Process.Signal(os.Interrupt) } func firewallStart(gateways []string, mode string) error { log.Println("Start firewall: do nothing, not implemented") return nil } func firewallStop() error { log.Println("Stop firewall: do nothing, not implemented") return nil } func firewallIsUp() bool { log.Println("IsUp firewall: do nothing, not implemented") return false } riseup-vpn-0.24.5+ds1/pkg/helper/ports.go000066400000000000000000000014041461742244100201370ustar00rootroot00000000000000package helper import ( "io/ioutil" "net" "os" "path" "strconv" ) func getFirstAvailablePortFrom(port int) int { for { if isPortAvailable(port) { return port } if port > 65535 { return 0 } port += 1 } } func isPortAvailable(port int) bool { conn, err := net.Dial("tcp", "127.0.0.1:"+strconv.Itoa(port)) if err != nil { return true } else { defer conn.Close() return false } } func writePortToFile(port int) error { exeDir, err := getExecutableDir() if err != nil { return err } portFile := path.Join(exeDir, "port") return ioutil.WriteFile(portFile, []byte(strconv.Itoa(port)+"\n"), 0644) } func getExecutableDir() (string, error) { ex, err := os.Executable() if err != nil { return "", err } return path.Dir(ex), nil } riseup-vpn-0.24.5+ds1/pkg/helper/windows.go000066400000000000000000000136241461742244100204710ustar00rootroot00000000000000//go:build windows // +build windows // Copyright (C) 2018-2020 LEAP // // 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 . package helper import ( "fmt" "log" "os" "os/exec" "path" "strconv" "strings" "golang.org/x/sys/windows" "golang.org/x/sys/windows/svc" ) var ( svcName = BinaryName + `-helper-v2` // XXX this is set to c:\WINDOWS\system32 on initialization. Do not use it, use a function call instead. appPath = getExecDir() LogFolder = getExecDir() openvpnPath = path.Join(appPath, "openvpn.exe") chocoOpenvpnPath = `C:\Program Files\OpenVPN\bin\openvpn.exe` httpServerConf = &httpConf{} ) func getPlatformOpenvpnFlags() []string { return []string{ "--script-security", "0", "--block-outside-dns", "--redirect-gateway", } } func getExecDir() string { ex, err := os.Executable() if err != nil { log.Println("Cannot find executable path") return "" } /* XXX filepath.Abs is buggy, maybe because of spaces in the path. fuck it, this is good enough for now */ return strings.Replace(ex, "\\helper.exe", "", 1) } type httpConf struct { BindAddr string } // parseCliArgs allows the helper binary to install/uninstall itself. It requires admin privileges. // However, be warned: if you intend to use it from the command line, you will have to compile it with the Go compiler yourself. // the version we're shipping (ie, cross-compiled with the mingw compiler) apparently is not able to output to stdout/stderr properly. // To compile a usable version, from the top of the repo you can do: // "cd cmd/bitmask-helper && GOOS=windows GOARCH=i386 go build" func parseCliArgs() { log.Println("Parsing CLI args...") isIntSess, err := svc.IsAnInteractiveSession() if err != nil { log.Fatalf("Failed to determine if we are running in an interactive session: %v", err) } if !isIntSess { runService(svcName, false) return } log.Println("Checking for admin") admin := isAdmin() fmt.Printf("Running as admin: %v\n", admin) if !admin { fmt.Println("Needs to be run as administrator") os.Exit(2) } if len(os.Args) < 2 { usage("ERROR: no command specified") } cmd := strings.ToLower(os.Args[1]) log.Println("cmd:", cmd) switch cmd { case "debug": // run the service on the foreground, for debugging runService(svcName, true) return case "install": err = installService(svcName, "bitmask-helper service") case "remove": err = removeService(svcName) case "start": err = startService(svcName) case "stop": err = controlService(svcName, svc.Stop, svc.Stopped) default: usage(fmt.Sprintf("ERROR: Invalid command %s", cmd)) } if err != nil { log.Fatalf("Failed to %s %s: %v", cmd, svcName, err) } return } func usage(errmsg string) { fmt.Fprintf(os.Stderr, "%s\n\n"+ "usage: %s \n"+ " where is one of\n"+ " install, remove, debug, start, stop\n", errmsg, os.Args[0]) os.Exit(2) } // initializeService only initializes the server. // we expect serveHTTP to be called from within Execute in windows func initializeService(preferredPort int) { port := getFirstAvailablePortFrom(preferredPort) writePortToFile(port) httpServerConf.BindAddr = "localhost:" + strconv.Itoa(port) log.Println("Command server initialized to listen on", httpServerConf.BindAddr) } func daemonize() {} // runServer does nothing, serveHTTP is called from within Execute in windows func runServer(port int) {} func getOpenvpnPath() string { openvpn := path.Join(getExecDir(), "openvpn.exe") if _, err := os.Stat(openvpn); !os.IsNotExist(err) { log.Println("DEBUG: openvpnpath found,", openvpnPath) return openvpn } else if _, err := os.Stat(chocoOpenvpnPath); !os.IsNotExist(err) { log.Println("DEBUG: choco openvpn found,", chocoOpenvpnPath) return chocoOpenvpnPath } log.Println("DEBUG: did not find system-wide openvpn...") return "openvpn.exe" } func kill(cmd *exec.Cmd) error { return cmd.Process.Kill() } func firewallStart(gateways []string, mode string) error { log.Println("Start firewall: do nothing, not implemented") return nil } func firewallStop() error { log.Println("Stop firewall: do nothing, not implemented") return nil } func firewallIsUp() bool { log.Println("IsUp firewall: do nothing, not implemented") return false } func isAdmin() bool { var sid *windows.SID // Although this looks scary, it is directly copied from the // official windows documentation. The Go API for this is a // direct wrap around the official C++ API. // See https://docs.microsoft.com/en-us/windows/desktop/api/securitybaseapi/nf-securitybaseapi-checktokenmembership err := windows.AllocateAndInitializeSid( &windows.SECURITY_NT_AUTHORITY, 2, windows.SECURITY_BUILTIN_DOMAIN_RID, windows.DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &sid) if err != nil { log.Fatalf("SID Error: %s", err) return false } // This appears to cast a null pointer so I'm not sure why this // works, but this guy says it does and it Works for Me™: // https://github.com/golang/go/issues/28804#issuecomment-438838144 token := windows.Token(0) member, err := token.IsMember(sid) //fmt.Println("Admin?", member) if err != nil { log.Fatalf("Token Membership Error: %s", err) return false } return member // Also note that an admin is _not_ necessarily considered // elevated. // For elevation see https://github.com/mozey/run-as-admin //fmt.Println("Elevated?", token.IsElevated()) } riseup-vpn-0.24.5+ds1/pkg/helper/windows_install.go000066400000000000000000000035111461742244100222110ustar00rootroot00000000000000//go:build windows // +build windows // Copyright 2012 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package helper import ( "fmt" "os" "path/filepath" "golang.org/x/sys/windows/svc/eventlog" "golang.org/x/sys/windows/svc/mgr" ) func exePath() (string, error) { prog := os.Args[0] p, err := filepath.Abs(prog) if err != nil { return "", err } fi, err := os.Stat(p) if err == nil { if !fi.Mode().IsDir() { return p, nil } err = fmt.Errorf("%s is directory", p) } if filepath.Ext(p) == "" { p += ".exe" fi, err := os.Stat(p) if err == nil { if !fi.Mode().IsDir() { return p, nil } err = fmt.Errorf("%s is directory", p) } } return "", err } func installService(name, desc string) error { exepath, err := exePath() if err != nil { return err } m, err := mgr.Connect() if err != nil { return err } defer m.Disconnect() s, err := m.OpenService(name) if err == nil { s.Close() return fmt.Errorf("service %s already exists", name) } s, err = m.CreateService(name, exepath, mgr.Config{StartType: mgr.StartAutomatic, DisplayName: desc}) if err != nil { return err } defer s.Close() err = eventlog.InstallAsEventCreate(name, eventlog.Error|eventlog.Warning|eventlog.Info) if err != nil { s.Delete() return fmt.Errorf("SetupEventLogSource() failed: %s", err) } return nil } func removeService(name string) error { m, err := mgr.Connect() if err != nil { return err } defer m.Disconnect() s, err := m.OpenService(name) if err != nil { return fmt.Errorf("service %s is not installed", name) } defer s.Close() err = s.Delete() if err != nil { return err } err = eventlog.Remove(name) if err != nil { return fmt.Errorf("RemoveEventLogSource() failed: %s", err) } return nil } riseup-vpn-0.24.5+ds1/pkg/helper/windows_manage.go000066400000000000000000000026111461742244100217730ustar00rootroot00000000000000//go:build windows // +build windows // Copyright 2012 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package helper import ( "fmt" "time" "golang.org/x/sys/windows/svc" "golang.org/x/sys/windows/svc/mgr" ) func startService(name string) error { m, err := mgr.Connect() if err != nil { return err } defer m.Disconnect() s, err := m.OpenService(name) if err != nil { return fmt.Errorf("could not access service: %v", err) } defer s.Close() err = s.Start("is", "manual-started") if err != nil { return fmt.Errorf("could not start service: %v", err) } return nil } func controlService(name string, c svc.Cmd, to svc.State) error { m, err := mgr.Connect() if err != nil { return err } defer m.Disconnect() s, err := m.OpenService(name) if err != nil { return fmt.Errorf("could not access service: %v", err) } defer s.Close() status, err := s.Control(c) if err != nil { return fmt.Errorf("could not send control=%d: %v", c, err) } timeout := time.Now().Add(10 * time.Second) for status.State != to { if timeout.Before(time.Now()) { return fmt.Errorf("timeout waiting for service to go to state=%d", to) } time.Sleep(300 * time.Millisecond) status, err = s.Query() if err != nil { return fmt.Errorf("could not retrieve service status: %v", err) } } return nil } riseup-vpn-0.24.5+ds1/pkg/helper/windows_service.go000066400000000000000000000032641461742244100222100ustar00rootroot00000000000000//go:build windows // +build windows // Copyright 2012 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package helper import ( "fmt" "log" "golang.org/x/sys/windows/svc" "golang.org/x/sys/windows/svc/debug" "golang.org/x/sys/windows/svc/eventlog" ) var elog debug.Log type myservice struct{} func (m *myservice) Execute(args []string, r <-chan svc.ChangeRequest, changes chan<- svc.Status) (ssec bool, errno uint32) { const cmdsAccepted = svc.AcceptStop | svc.AcceptShutdown | svc.AcceptPauseAndContinue changes <- svc.Status{State: svc.StartPending} changes <- svc.Status{State: svc.Running, Accepts: cmdsAccepted} // defined in helper.go // TODO should have a better way to stop it -- go serveHTTP(httpServerConf.BindAddr) loop: for { select { case c := <-r: switch c.Cmd { case svc.Interrogate: changes <- c.CurrentStatus case svc.Stop, svc.Shutdown: elog.Info(1, "shutting down service") break loop default: elog.Error(1, fmt.Sprintf("unexpected control request #%d", c)) } } } changes <- svc.Status{State: svc.StopPending} return } func runService(name string, isDebug bool) { log.Println("Running service...") var err error if isDebug { elog = debug.New(name) } else { elog, err = eventlog.Open(name) if err != nil { return } } defer elog.Close() elog.Info(1, fmt.Sprintf("starting %s service", name)) run := svc.Run if isDebug { run = debug.Run } err = run(name, &myservice{}) if err != nil { elog.Error(1, fmt.Sprintf("%s service failed: %v", name, err)) return } elog.Info(1, fmt.Sprintf("%s service stopped", name)) } riseup-vpn-0.24.5+ds1/pkg/launcher/000077500000000000000000000000001461742244100167645ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/pkg/launcher/launcher_darwin.go000066400000000000000000000102131461742244100224550ustar00rootroot00000000000000// Copyright (C) 2018-2021 LEAP // // 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 . package launcher import ( "bytes" "encoding/json" "fmt" "io" "io/ioutil" "log" "net/http" "os" "strconv" "strings" "time" "0xacab.org/leap/bitmask-vpn/pkg/config" "0xacab.org/leap/bitmask-vpn/pkg/vpn/bonafide" ) type Launcher struct { helperAddr string Failed bool MngPass string } const initialHelperPort = 7171 func probeHelperPort(port int) int { // this should be enough for a local reply timeout := time.Duration(500 * time.Millisecond) c := http.Client{Timeout: timeout} for { if smellsLikeOurHelperSpirit(port, &c) { return port } port++ /* we could go until 65k, but there's really no need */ if port > 10000 { break } } log.Println("WARN: Cannot find any working helper") return 0 } func smellsLikeOurHelperSpirit(port int, c *http.Client) bool { uri := "http://localhost:" + strconv.Itoa(port) + "/version" resp, err := c.Get(uri) if err != nil { return false } if resp.StatusCode == 200 { ver, err := ioutil.ReadAll(resp.Body) defer resp.Body.Close() if err != nil { return false } if strings.Contains(string(ver), config.ApplicationName) { log.Println("DEBUG: Successfully probed for matching helper at", uri) return true } else { log.Println("DEBUG: Another helper seems to be running:", string(ver)) log.Println("DEBUG: But we were hoping to find:", config.ApplicationName) } } return false } func NewLauncher() (*Launcher, error) { helperPort := probeHelperPort(initialHelperPort) helperAddr := "http://localhost:" + strconv.Itoa(helperPort) return &Launcher{helperAddr: helperAddr, Failed: false}, nil } func (l *Launcher) Close() error { return nil } func (l *Launcher) Check() (helpers bool, priviledge bool, err error) { return true, true, nil } func (l *Launcher) OpenvpnStart(flags ...string) error { byteFlags, err := json.Marshal(flags) if err != nil { return err } return l.send("/openvpn/start", byteFlags) } func (l *Launcher) OpenvpnStop() error { return l.send("/openvpn/stop", nil) } func (l *Launcher) FirewallStart(gateways []bonafide.Gateway) error { ipList := make([]string, len(gateways)) for i, gw := range gateways { ipList[i] = gw.IPAddress } byteIPs, err := json.Marshal(ipList) if err != nil { return err } uri := "/firewall/start" if os.Getenv("UDP") == "1" { uri = uri + "?udp=1" } return l.send(uri, byteIPs) } func (l *Launcher) FirewallStop() error { return l.send("/firewall/stop", nil) } func (l *Launcher) FirewallIsUp() bool { var isup bool = false res, err := http.Post(l.helperAddr+"/firewall/isup", "", nil) if err != nil { return false } defer res.Body.Close() if res.StatusCode != http.StatusOK { fmt.Printf("Got an error status code for firewall/isup: %v\n", res.StatusCode) isup = false } else { upStr, err := ioutil.ReadAll(res.Body) if err != nil { fmt.Errorf("Error getting body for firewall/isup: %q", err) return false } isup, err = strconv.ParseBool(string(upStr)) if err != nil { fmt.Errorf("Error parsing body for firewall/isup: %q", err) return false } } return isup } func (l *Launcher) send(path string, body []byte) error { var reader io.Reader if body != nil { reader = bytes.NewReader(body) } res, err := http.Post(l.helperAddr+path, "", reader) if err != nil { return err } defer res.Body.Close() resErr, err := ioutil.ReadAll(res.Body) if len(resErr) > 0 { /* FIXME why do we trigger a fatal with this error? */ return fmt.Errorf("FATAL: Helper returned an error: %q", resErr) } return err } riseup-vpn-0.24.5+ds1/pkg/launcher/launcher_linux.go000066400000000000000000000137271461742244100223450ustar00rootroot00000000000000//go:build linux // +build linux // Copyright (C) 2018-2020 LEAP // // 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 . package launcher import ( "errors" "log" "os" "os/exec" "strings" "0xacab.org/leap/bitmask-vpn/pkg/config" "0xacab.org/leap/bitmask-vpn/pkg/vpn/bonafide" "github.com/keybase/go-ps" ) const ( systemOpenvpnPath = "/usr/sbin/openvpn" ) var bitmaskRootPaths = []string{ "/usr/sbin/bitmask-root", "/usr/local/sbin/bitmask-root", } type Launcher struct { OpenvpnCh chan []string Failed bool MngPass string } func NewLauncher() (*Launcher, error) { l := Launcher{make(chan []string, 1), false, ""} go l.openvpnRunner() return &l, nil } func (l *Launcher) Close() error { return nil } func (l *Launcher) Check() (helpers bool, privilege bool, err error) { hasHelpers, err := hasHelpers() if err != nil { log.Println("Error checking helpers") return } if !hasHelpers { log.Println("Could not find helpers") return false, true, nil } isRunning, err := isPolkitRunning() if err != nil { log.Println("Error checking if polkit is running") return } if !isRunning { polkitPath := getPolkitPath() if polkitPath == "" { log.Println("Cannot find any usable polkit") return true, false, nil } cmd := exec.Command("setsid", polkitPath) err = cmd.Start() if err != nil { log.Println("Cannot launch polkit") return } log.Println("Checking if polkit is running after attempted launch") isRunning, err = isPolkitRunning() return true, isRunning, err } return true, true, nil } func hasHelpers() (bool, error) { /* TODO add polkit file too */ if _, err := bitmaskRootPath(); err == nil { return true, nil } return false, nil } func isPolkitRunning() (bool, error) { // TODO shouldn't we also check for polkitd running? var polkitProcNames = [...]string{ "polkit-gnome-authentication-agent-1", "polkit-kde-auth", "polkit-mate-authentication-agent-1", "polkit-ukui-authentication-agent-1", "lxpolkit", "lxqt-policykit-agent", "lxsession", "gnome-shell", "gnome-flashback", "fingerprint-polkit-agent", "xfce-polkit", "phosh", } processes, err := ps.Processes() if err != nil { return false, err } for _, proc := range processes { executable := proc.Executable() for _, name := range polkitProcNames { if strings.Contains(executable, name) { return true, nil } } } return false, nil } func getPolkitPath() string { var polkitPaths = [...]string{ "/usr/bin/lxpolkit", "/usr/bin/lxqt-policykit-agent", "/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1", "/usr/lib/x86_64-linux-gnu/polkit-mate/polkit-mate-authentication-agent-1", "/usr/lib/mate-polkit/polkit-mate-authentication-agent-1", "/usr/lib/x86_64-linux-gnu/libexec/polkit-kde-authentication-agent-1", "/usr/lib/kde4/libexec/polkit-kde-authentication-agent-1", // now we get weird "/usr/libexec/policykit-1-pantheon/pantheon-agent-polkit", "/usr/lib/polkit-1-dde/dde-polkit-agent", // do you know some we"re still missing? please send a merge request :) } for _, polkit := range polkitPaths { _, err := os.Stat(polkit) if err == nil { return polkit } } return "" } func (l *Launcher) OpenvpnStart(flags ...string) error { log.Println("openvpn start: ", flags) arg := []string{"openvpn", "start", getOpenvpnPath()} arg = append(arg, flags...) l.OpenvpnCh <- arg return nil } func (l *Launcher) OpenvpnStop() error { l.OpenvpnCh <- nil log.Println("openvpn stop") return runBitmaskRoot("openvpn", "stop") } func (l *Launcher) FirewallStart(gateways []bonafide.Gateway) error { if os.Getenv("LEAP_DRYRUN") == "1" { log.Println("dry-run: skip firewall start") return nil } log.Println("firewall start") arg := []string{"firewall", "start"} for _, gw := range gateways { arg = append(arg, gw.IPAddress) } return runBitmaskRoot(arg...) } func (l *Launcher) FirewallStop() error { log.Println("firewall stop") return runBitmaskRoot("firewall", "stop") } func (l *Launcher) FirewallIsUp() bool { err := runBitmaskRoot("firewall", "isup") return err == nil } func (l *Launcher) openvpnRunner(arg ...string) { running := false runOpenvpn := func(arg []string) { for running { err := runBitmaskRoot(arg...) if err != nil { log.Printf("An error ocurred running openvpn: %v", err) l.OpenvpnCh <- nil l.Failed = true } } } for arg := range l.OpenvpnCh { if arg == nil { running = false } else { running = true go runOpenvpn(arg) } } } func runBitmaskRoot(arg ...string) error { bitmaskRoot, err := bitmaskRootPath() if err != nil { return err } arg = append([]string{bitmaskRoot}, arg...) cmd := exec.Command("pkexec", arg...) out, err := cmd.Output() if err != nil && arg[2] != "isup" { log.Println("Error while running bitmask-root:") log.Println("args: ", arg) log.Println("output: ", string(out)) } return err } func bitmaskRootPath() (string, error) { if os.Getenv("SNAP") != "" { path := "/snap/bin/" + config.BinaryName + ".bitmask-root" if _, err := os.Stat(path); !os.IsNotExist(err) { return path, nil } } for _, path := range bitmaskRootPaths { if _, err := os.Stat(path); !os.IsNotExist(err) { return path, nil } } log.Println("Can't find bitmask-root") return "", errors.New("nohelpers") } func getOpenvpnPath() string { if os.Getenv("SNAP") != "" { return "/snap/bin/" + config.BinaryName + ".openvpn" } return systemOpenvpnPath } riseup-vpn-0.24.5+ds1/pkg/launcher/launcher_windows.go000066400000000000000000000071661461742244100227000ustar00rootroot00000000000000//go:build windows // +build windows // Copyright (C) 2018-2021 LEAP // // 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 . package launcher import ( "bufio" "bytes" "encoding/binary" "errors" "fmt" "log" "os" "strings" "time" "unicode/utf16" "0xacab.org/leap/bitmask-vpn/pkg/vpn/bonafide" "github.com/natefinch/npipe" ) const pipeName = `\\.\pipe\openvpn\service` type Launcher struct { MngPass string Failed bool } func NewLauncher() (*Launcher, error) { l := Launcher{} return &l, nil } func (l *Launcher) Close() error { return nil } func (l *Launcher) Check() (helpers bool, privilege bool, err error) { // TODO check if the named pipe exists log.Println("bogus check on windows") return true, true, nil } func (l *Launcher) OpenvpnStart(flags ...string) error { var b bytes.Buffer /* DELETE-ME var filtered []string for _, v := range flags { if v != "--tun-ipv6" { filtered = append(filtered, v) } } */ cwd, _ := os.Getwd() opts := `--client --dev tun --block-outside-dns --redirect-gateway --script-security 0 ` + strings.Join(flags, " ") log.Println("openvpn start: ", opts) timeout := 3 * time.Second conn, err := npipe.DialTimeout(pipeName, timeout) if err != nil { fmt.Println("ERROR opening pipe") return errors.New("cannot open openvpn pipe") } defer conn.Close() writeUTF16Bytes(&b, cwd) writeUTF16Bytes(&b, opts) writeUTF16Bytes(&b, `\n`) encoded := b.Bytes() rw := bufio.NewReadWriter(bufio.NewReader(conn), bufio.NewWriter(conn)) _, err = rw.Write(encoded) if err != nil { log.Println("ERROR writing to pipe") return errors.New("cannot write to openvpn pipe") } rw.Flush() pid, err := getCommandResponse(rw) if err != nil { log.Println("ERROR getting pid") } log.Println("OpenVPN PID:", pid) return nil } func (l *Launcher) OpenvpnStop() error { return nil } // TODO we will have to bring our helper back to do firewall func (l *Launcher) FirewallStart(gateways []bonafide.Gateway) error { log.Println("start: no firewall in windows") return nil } func (l *Launcher) FirewallStop() error { log.Println("stop: no firewall in windows") return nil } func (l *Launcher) FirewallIsUp() bool { log.Println("up: no firewall in windows") return false } func writeUTF16Bytes(b *bytes.Buffer, in string) { var u16 []uint16 = utf16.Encode([]rune(in + "\x00")) binary.Write(b, binary.LittleEndian, u16) } func decodeUTF16String(s string) int { var code int var dec []byte for _, v := range []byte(s) { if byte(v) != byte(0) { dec = append(dec, v) } } _, err := fmt.Sscanf(string(dec), "%v", &code) if err != nil { fmt.Println("ERROR decoding") } return code } func getCommandResponse(rw *bufio.ReadWriter) (int, error) { msg, err := rw.ReadString('\n') if err != nil { fmt.Println("ERROR reading") } ok := decodeUTF16String(msg) if ok != 0 { return -1, errors.New("command failed") } msg, err = rw.ReadString('\n') if err != nil { fmt.Println("ERROR reading") } pid := decodeUTF16String(msg) if pid == 0 { return -1, errors.New("command failed") } return pid, nil } riseup-vpn-0.24.5+ds1/pkg/motd/000077500000000000000000000000001461742244100161265ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/pkg/motd/fetch.go000066400000000000000000000022441461742244100175500ustar00rootroot00000000000000package motd import ( "io/ioutil" "log" "net/http" "os" "0xacab.org/leap/bitmask-vpn/pkg/config" ) const riseupMOTD = "https://static.riseup.net/vpn/motd.json" func FetchLatest() []Message { empty := []Message{} if os.Getenv("SKIP_MOTD") == "1" { return empty } url := "" if os.Getenv("DEBUG") == "1" { url = os.Getenv("MOTD_URL") if url == "" { url = riseupMOTD } } else { switch config.Provider { case "riseup.net": url = riseupMOTD default: return empty } } log.Println("Fetching MOTD for", config.Provider) b, err := fetchURL(url) if err != nil { log.Println("WARN Error fetching json from", url) return empty } allMsg, err := getFromJSON(b) if err != nil { log.Println("WARN Error parsing json from", url) return empty } valid := empty[:] if allMsg.Length() != 0 { log.Printf("There are %d pending messages\n", allMsg.Length()) } for _, msg := range allMsg.Messages { if msg.IsValid() { valid = append(valid, msg) } } return valid } func fetchURL(url string) ([]byte, error) { resp, err := http.Get(url) if err != nil { return []byte(""), err } defer resp.Body.Close() return ioutil.ReadAll(resp.Body) } riseup-vpn-0.24.5+ds1/pkg/motd/motd-example.json000066400000000000000000000011041461742244100214110ustar00rootroot00000000000000{ "motd": [{ "begin": "01 Nov 21 00:00 -0700", "end": "31 Jan 22 00:00 -0700", "type": "daily", "platform": "all", "urgency": "normal", "text": [ { "lang": "en", "str": "Thanks for using RiseupVPN! Please report us any issue or feature request."}, { "lang": "es", "str": "¡Gracias por usar RiseupVPN! Por favor reportanos cualquier bug o petición."} ]} ] } riseup-vpn-0.24.5+ds1/pkg/motd/motd.go000066400000000000000000000042441461742244100174240ustar00rootroot00000000000000package motd import ( "encoding/json" "io/ioutil" "log" "os" "time" ) const TimeString = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone const ExampleFile = "motd-example.json" func ParseFile(f string) (Messages, error) { jsonFile, err := os.Open(f) if err != nil { return Messages{}, err } defer jsonFile.Close() byteVal, err := ioutil.ReadAll(jsonFile) if err != nil { return Messages{}, err } return getFromJSON(byteVal) } func getFromJSON(b []byte) (Messages, error) { var m Messages json.Unmarshal(b, &m) return m, nil } type Messages struct { Messages []Message `json:"motd"` } func (m *Messages) Length() int { return len(m.Messages) } type Message struct { Begin string `json:"begin"` End string `json:"end"` Type string `json:"type"` Platform string `json:"platform"` Urgency string `json:"urgency"` Text []LocalizedText `json:"text"` } type LocalizedText struct { Lang string `json:"lang"` Str string `json:"str"` } func (m *Message) IsValid() bool { valid := (m.IsValidBegin() && m.IsValidEnd() && m.IsValidType() && m.IsValidPlatform() && m.IsValidUrgency() && m.HasLocalizedText()) return valid } func (m *Message) IsValidBegin() bool { _, err := time.Parse(TimeString, m.Begin) if err != nil { log.Println(err) return false } return true } func (m *Message) IsValidEnd() bool { endTime, err := time.Parse(TimeString, m.End) if err != nil { log.Println(err) return false } beginTime, err := time.Parse(TimeString, m.Begin) if err != nil { log.Println(err) return false } if !beginTime.Before(endTime) { log.Println("begin ts should be before end") return false } return true } func (m *Message) IsValidType() bool { switch m.Type { case "once", "daily": return true default: return false } } func (m *Message) IsValidPlatform() bool { switch m.Platform { case "windows", "linux", "osx", "all": return true default: return false } } func (m *Message) IsValidUrgency() bool { switch m.Urgency { case "normal", "critical": return true default: return false } } func (m *Message) HasLocalizedText() bool { return len(m.Text) > 0 } riseup-vpn-0.24.5+ds1/pkg/motd/motd_test.go000066400000000000000000000027251461742244100204650ustar00rootroot00000000000000package motd import ( "testing" ) func TestGoodMotd(t *testing.T) { m, err := ParseFile(ExampleFile) if err != nil { t.Errorf("error parsing default file") } if m.Length() == 0 { t.Errorf("zero messages in file") } for _, msg := range m.Messages { if !msg.IsValid() { t.Errorf("invalid motd json at %s", ExampleFile) } } } const emptyDate = ` { "motd": [{ "begin": "", "end": "", "type": "daily", "platform": "all", "urgency": "normal", "text": [ { "lang": "en", "str": "test" }] }] }` func TestEmptyDateFails(t *testing.T) { m, err := getFromJSON([]byte(emptyDate)) if err != nil { t.Errorf("error parsing json") } if allValid(t, m) { t.Errorf("empty string should not be valid") } } const badEnd = ` { "motd": [{ "begin": "02 Jan 21 00:00 +0100", "end": "01 Jan 21 00:00 +0100", "type": "daily", "platform": "all", "urgency": "normal", "text": [ { "lang": "en", "str": "test" }] }] }` func TestBadEnd(t *testing.T) { m, err := getFromJSON([]byte(badEnd)) if err != nil { t.Errorf("error parsing json") } if allValid(t, m) { t.Errorf("begin > end must fail") } } func allValid(t *testing.T, m Messages) bool { if m.Length() == 0 { t.Errorf("expected at least one message") } for _, msg := range m.Messages { if !msg.IsValid() { return false } } return true } riseup-vpn-0.24.5+ds1/pkg/pickle/000077500000000000000000000000001461742244100164325ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/pkg/pickle/helpers.go000066400000000000000000000051371461742244100204310ustar00rootroot00000000000000// Copyright (C) 2020 LEAP // // 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 . package pickle import ( "embed" "fmt" "io" "log" "os" "os/exec" "path" "runtime" ) //go:embed helpers var helpers embed.FS const ( bitmaskRoot = "/usr/sbin/bitmask-root" // TODO parametrize this with config.appName policyFile = "/usr/share/polkit-1/actions/se.leap.bitmask.riseupvpn.policy" ) func check(e error) { if e != nil { panic(e) } } func alreadyThere(path string) bool { if _, err := os.Stat(path); err == nil { return true } return false } func isRoot() bool { uid := os.Getuid() return uid == 0 } func copyAsRoot(orig, dest string, isExec bool) { if alreadyThere(dest) { fmt.Println("> File exists: ", dest) return } cmd := exec.Command("false") if isRoot() { cmd = exec.Command("cp", orig, dest) } else { var confirm string fmt.Println("> About to write (with sudo):", dest) fmt.Printf("> ok? [y/N] ") fmt.Scanln(&confirm) if confirm != "y" { fmt.Println("aborting") os.Exit(1) } cmd = exec.Command("sudo", "cp", orig, dest) } err := cmd.Run() check(err) if isExec { if isRoot() { cmd = exec.Command("chmod", "776", dest) } else { cmd = exec.Command("sudo", "chmod", "776", dest) } err = cmd.Run() check(err) } else { if isRoot() { cmd = exec.Command("chmod", "644", dest) } else { cmd = exec.Command("sudo", "chmod", "644", dest) } err = cmd.Run() check(err) } fmt.Println("> done") } func dumpHelper(fname, dest string, isExec bool) { // TODO win/mac implementation if runtime.GOOS != "linux" { fmt.Println("Only linux supported for now") return } fd, err := helpers.Open(path.Join("helpers", fname)) if err != nil { log.Fatal(err) } tmpfile, err := os.CreateTemp("/dev/shm", "*") check(err) defer os.Remove(tmpfile.Name()) _, err = io.Copy(tmpfile, fd) check(err) copyAsRoot(tmpfile.Name(), dest, isExec) } func InstallHelpers() { dumpHelper("bitmask-root", bitmaskRoot, true) dumpHelper("se.leap.bitmask.policy", policyFile, false) } riseup-vpn-0.24.5+ds1/pkg/pickle/helpers/000077500000000000000000000000001461742244100200745ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/pkg/pickle/helpers/bitmask-root000066400000000000000000001015221461742244100224330ustar00rootroot00000000000000#!/usr/bin/env python3 # -*- coding: utf-8 -*- # # Copyright (C) 2014-2019 LEAP # # 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 . # """ This is a privileged helper script for safely running certain commands as root. It should only be called by the Bitmask application. Expected paths: When installed by distro path: /usr/sbin/bitmask-root When installed by bundle or from git: /usr/local/sbin/bitmask-root When installed by snap: /snap/bin/riseup-vpn.bitmask-root USAGE: bitmask-root firewall stop bitmask-root firewall start [restart] GATEWAY1 GATEWAY2 ... bitmask-root openvpn stop bitmask-root openvpn start CONFIG1 CONFIG1 ... All actions return exit code 0 for success, non-zero otherwise. The `openvpn start` action is special: it calls exec on openvpn and replaces the current process. If the `restart` parameter is passed, the firewall will not be teared down in the case of an error during launch. """ import ipaddress import os import re import signal import socket import syslog import subprocess import sys import stat import traceback import tempfile cmdcheck = subprocess.check_output # # CONSTANTS def get_no_group_name(): """ Return the right group name to use for the current OS. Examples: - Ubuntu: nogroup - Arch: nobody :rtype: str or None """ import grp try: grp.getgrnam('nobody') return 'nobody' except KeyError: try: grp.getgrnam('nogroup') return 'nogroup' except KeyError: return None def is_ipv6_disabled(): """ Return True if ipv6 support is disabled by the kernel. """ code = os.system("sysctl -a 2>/dev/null | grep all.disable_ipv6 | grep 1") return code == 0 def tostr(s): return s.decode('utf-8') VERSION = "19" SCRIPT = "bitmask-root" NAMESERVER_TCP = "10.41.0.1" NAMESERVER_UDP = "10.42.0.1" if os.getenv("UDP") == "1": NAMESERVER = NAMESERVER_UDP else: NAMESERVER = NAMESERVER_TCP BITMASK_CHAIN = "bitmask" BITMASK_CHAIN_NAT_OUT = "bitmask" BITMASK_CHAIN_NAT_POST = "bitmask_postrouting" LOCAL_INTERFACE = "lo" def swhich(binary): """ Find the path to binary in sbin :rtype: str """ for folder in ["/bin", "/sbin", "/usr/bin", "/usr/sbin", "/usr/local/sbin"]: path = os.path.join(folder, binary) if os.path.isfile(path): return path raise Exception("Can't find %s" % (binary,)) IP = swhich("ip") IPTABLES = swhich("iptables") IP6TABLES = swhich("ip6tables") SYSCTL = swhich("sysctl") OPENVPN_USER = "nobody" OPENVPN_GROUP = get_no_group_name() LEAPOPENVPN = "LEAPOPENVPN" OPENVPN_SYSTEM_BIN = "/usr/sbin/openvpn" # Debian location OPENVPN_LEAP_BIN = "/usr/local/sbin/leap-openvpn" # installed by bundle OPENVPN_SNAP_BIN = "/snap/bin/riseup-vpn.openvpn" # installed by snap FIXED_FLAGS = [ "--setenv", "LEAPOPENVPN", "1", "--nobind", "--client", "--dev", "tun", "--tls-client", "--remote-cert-tls", "server", "--management-signal", "--script-security", "1", "--user", "nobody", "--auth-nocache", "--tls-version-min", "1.2", ] if OPENVPN_GROUP is not None: FIXED_FLAGS.extend(["--group", OPENVPN_GROUP]) if is_ipv6_disabled(): FIXED_FLAGS.extend([ "--pull-filter", "ignore", "ifconfig-ipv6", "--pull-filter", "ignore", "route-ipv6"]) ALLOWED_FLAGS = { "--remote": ["IP", "NUMBER", "PROTO"], "--tls-cipher": ["CIPHER"], "--cipher": ["CIPHER"], "--auth": ["CIPHER"], "--management": ["DIR||IP", "UNIXSOCKET||NUMBER", "FILE"], "--management-client-user": ["USER"], "--route": ["IP", "IP", "NETGW"], "--cert": ["FILE"], "--key": ["FILE"], "--ca": ["FILE"], "--fragment": ["NUMBER"], "--keepalive": ["NUMBER", "NUMBER"], "--verb": ["NUMBER"], "--management-client": [], "--tun-ipv6": [], "--log": ["LOGFILE"], "--pull-filter": ["ignore", "route"], "--socks-proxy": ["IP", "NUMBER"], } PARAM_FORMATS = { "NUMBER": lambda s: re.match("^\d+$", s), "PROTO": lambda s: re.match("^(tcp|udp|tcp4|udp4)$", s), "IP": lambda s: is_valid_address(s), "CIPHER": lambda s: re.match("^[A-Z0-9-\:]+$", s), "USER": lambda s: re.match( "^[a-zA-Z0-9_\.\@][a-zA-Z0-9_\-\.\@]*\$?$", s), # IEEE Std 1003.1-2001 "FILE": lambda s: os.path.isfile(s), "DIR": lambda s: os.path.isdir(os.path.split(s)[0]), "UNIXSOCKET": lambda s: s == "unix", "NETGW": lambda s: s == "net_gateway", "UID": lambda s: re.match("^[a-zA-Z0-9]+$", s), "LOGFILE": lambda s: s == f"{tempfile.gettempdir()}/leap-vpn.log", "ignore": lambda s: s == "ignore", "route": lambda s: s == "route", } # Determine Qubes OS version, if any QUBES_PROXY = os.path.exists("/var/run/qubes/this-is-proxyvm") if os.path.isdir("/etc/qubes"): QUBES_CFG = "/rw/config/" QUBES_IPHOOK = QUBES_CFG + "qubes-ip-change-hook" QUBES_FW_SCRIPT = QUBES_CFG + "qubes-firewall-user-script" if subprocess.call([IPTABLES, "--list", "QBS-FORWARD"]) == 0: QUBES_VER = 4 else: QUBES_VER = 3 else: # not a Qubes system QUBES_VER = 0 DEBUG = os.getenv("DEBUG") TEST = os.getenv("TEST") if DEBUG: import logging formatter = logging.Formatter( "%(asctime)s - %(name)s - %(levelname)s - %(message)s") ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) ch.setFormatter(formatter) logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) logger.addHandler(ch) syslog.openlog(SCRIPT) # # UTILITY # def is_valid_address(value): """ Validate that the passed ip is a valid IP address. :param value: the value to be validated :type value: str :rtype: bool """ try: socket.inet_aton(value) return True except Exception: log("%s: ERROR: MALFORMED IP: %s!" % (SCRIPT, value)) return False def split_list(_list, regex): """ Split a list based on a regex: e.g. split_list(["xx", "yy", "x1", "zz"], "^x") => [["xx", "yy"], ["x1", "zz"]] :param _list: the list to be split. :type _list: list :param regex: the regex expression to filter with. :type regex: str :rtype: list """ if not hasattr(regex, "match"): regex = re.compile(regex) result = [] i = 0 if not _list: return result while True: if regex.match(_list[i]): result.append([]) while True: result[-1].append(_list[i]) i += 1 if i >= len(_list) or regex.match(_list[i]): break else: i += 1 if i >= len(_list): break return result def get_process_list(): """ Get a process list by reading `/proc` filesystem. :return: a list of tuples, each containing pid and command string. :rtype: tuple if lists """ res = [] pids = [pid for pid in os.listdir('/proc') if pid.isdigit()] for pid in pids: try: res.append((pid, open( os.path.join( '/proc', pid, 'cmdline'), 'rb').read())) except IOError: # proc has already terminated continue return filter(None, res) def getIPv4AllowAddresses(): lines = [] try: with open("/etc/bitmask/ipv4.allow", 'r') as f: lines = [l.strip() for l in f.readlines()] except FileNotFoundError: return lines lines = filter(lambda x: ipaddress.ip_address(x).version == 4, lines) return list(filter(lambda x: ipaddress.ip_address(x).is_private, lines)) def getIPv6AllowAddresses(): lines = [] try: with open("/etc/bitmask/ipv6.allow", 'r') as f: lines = [l.strip() for l in f.readlines()] except FileNotFoundError: return lines lines = filter(lambda x: ipaddress.ip_address(x).version == 6, lines) return list(filter(lambda x: ipaddress.ip_address(x).is_private, lines)) def run(command, *args, **options): """ Run an external command. Options: `check`: If True, check the command's output. bail if non-zero. (the default is true unless detach or input is true) `exitcode`: like `check`, but return exitcode instead of bailing. `detach`: If True, run in detached process. `input`: If True, open command for writing stream to, returning the Popen object. `throw`: If True, raise an exception if there is an error instead of bailing. """ parts = [command] parts.extend(args) debug("%s run: %s " % (SCRIPT, " ".join(parts))) _check = options.get("check", True) _detach = options.get("detach", False) _input = options.get("input", False) _exitcode = options.get("exitcode", False) _throw = options.get("throw", False) if not (_check or _throw) or _detach or _input: if _input: return subprocess.Popen(parts, stdin=subprocess.PIPE) else: subprocess.Popen(parts) return None else: try: devnull = open('/dev/null', 'w') subprocess.check_call(parts, stdout=devnull, stderr=devnull) return 0 except subprocess.CalledProcessError as exc: if _exitcode: if exc.returncode != 1: # 0 or 1 is to be expected, but anything else # should be logged. debug("ERROR: Could not run %s: %s" % (exc.cmd, exc.output), exception=exc) return exc.returncode elif _throw: raise exc else: bail("ERROR: Could not run %s: %s" % (exc.cmd, exc.output), exception=exc) def log(msg=None, exception=None, priority=syslog.LOG_INFO): """ print and log warning message or exception. :param msg: optional error message. :type msg: str :param msg: optional exception. :type msg: Exception :param msg: syslog level :type msg: one of LOG_EMERG, LOG_ALERT, LOG_CRIT, LOG_ERR, LOG_WARNING, LOG_NOTICE, LOG_INFO, LOG_DEBUG """ if msg is not None: print("%s: %s" % (SCRIPT, msg)) syslog.syslog(priority, msg) if exception is not None: if TEST or DEBUG: traceback.print_exc() syslog.syslog(priority, traceback.format_exc()) def debug(msg=None, exception=None): """ Just like log, but is skipped unless DEBUG. Use syslog.LOG_INFO even for debug messages (we don't want to miss them). """ if TEST or DEBUG: log(msg, exception) def bail(msg=None, exception=None): """ abnormal exit. like log(), but exits with error status code. """ log(msg, exception) exit(1) # # OPENVPN # def get_openvpn_bin(): """ Return the path for either the system openvpn or the one the bundle has put there. """ if os.environ.get('SNAP') and os.path.isfile(OPENVPN_SNAP_BIN): # the snap option should be removed from the debian package. return OPENVPN_SNAP_BIN if os.path.isfile(OPENVPN_SYSTEM_BIN): return OPENVPN_SYSTEM_BIN # the bundle option should also be removed from the debian. if os.path.isfile(OPENVPN_LEAP_BIN): return OPENVPN_LEAP_BIN def parse_openvpn_flags(args): """ Take argument list from the command line and parse it, only allowing some configuration flags. :type args: list """ result = [] try: for flag in split_list(args, "^--"): flag_name = flag[0] if flag_name in ALLOWED_FLAGS: result.append(flag_name) required_params = ALLOWED_FLAGS[flag_name] if required_params: # flatten if separated by spaces flag_params = [i for sublist in map( lambda s: s.split(), flag[1:]) for i in sublist] if len(flag_params) != len(required_params): log("%s: ERROR: not enough params for %s" % (SCRIPT, flag_name)) return None for param, param_type in zip(flag_params, required_params): for tpe in param_type.split("||"): if PARAM_FORMATS[tpe](param): result.append(param) break else: log("%s: ERROR: Bad argument %s" % (SCRIPT, param)) return None else: log("WARNING: unrecognized openvpn flag %s" % flag_name) return result except Exception as exc: log("%s: ERROR PARSING FLAGS: %s" % (SCRIPT, exc)) if DEBUG: logger.exception(exc) return None def openvpn_start(args): """ Launch openvpn, sanitizing input, and replacing the current process with the openvpn process. :param args: arguments to be passed to openvpn :type args: list """ openvpn_flags = parse_openvpn_flags(args) if openvpn_flags: OPENVPN = get_openvpn_bin() flags = [OPENVPN] + FIXED_FLAGS + openvpn_flags if DEBUG: log("%s: running openvpn with flags:" % (SCRIPT,)) log(flags) # note: first argument to command is ignored, but customarily set to # the command. os.execv(OPENVPN, flags) else: bail('ERROR: could not parse openvpn options') def openvpn_stop(args): """ Stop the openvpn that has likely been launched by bitmask. :param args: arguments to openvpn :type args: list """ plist = get_process_list() for pid, proc in plist: if bytes("openvpn", 'utf-8') in proc and bytes(LEAPOPENVPN, 'utf-8') in proc: os.kill(int(pid), signal.SIGTERM) break # # FIREWALL # def get_gateways(gateways): """ Filter a passed sequence of gateways, returning only the valid ones. :param gateways: a sequence of gateways to filter. :type gateways: iterable :rtype: iterable """ result = filter(is_valid_address, gateways) if not result: bail("ERROR: No valid gateways specified") else: return result def get_default_device(): """ Retrieve the current default network device. :rtype: str """ routes = subprocess.check_output([IP, "route", "show"]) match = re.search(rb"^default .*dev ([^\s]*) .*$", routes, flags=re.M) if match and match.groups(): return tostr(match.group(1)) else: bail("Could not find default device") def get_local_network_ipv4(device): """ Get the local ipv4 addres for a given device. :param device: :type device: str """ addresses = cmdcheck([IP, "-o", "address", "show", "dev", device]) match = re.search(rb"^.*inet ([^ ]*) .*$", addresses, flags=re.M) if match and match.groups(): return tostr(match.group(1)) else: return None def get_local_network_ipv6(device): """ Get the local ipv6 addres for a given device. :param device: :type device: str """ addresses = cmdcheck([IP, "-o", "address", "show", "dev", device]) match = re.search(rb"^.*inet6 ([^ ]*) .*$", addresses, flags=re.M) if match and match.groups(): return tostr(match.group(1)) else: return None def run_iptable_with_check(cmd, *args, **options): """ Run an iptables command checking to see if it should: for --append: run only if rule does not already exist. for --insert: run only if rule does not already exist. for --delete: run only if rule does exist. other commands are run normally. """ if "--insert" in args: check_args = [arg.replace("--insert", "--check") for arg in args] check_code = run(cmd, *check_args, exitcode=True) if check_code != 0: run(cmd, *args, **options) elif "--append" in args: check_args = [arg.replace("--append", "--check") for arg in args] check_code = run(cmd, *check_args, exitcode=True) if check_code != 0: run(cmd, *args, **options) elif "--delete" in args: check_args = [arg.replace("--delete", "--check") for arg in args] check_code = run(cmd, *check_args, exitcode=True) if check_code == 0: run(cmd, *args, **options) else: run(cmd, *args, **options) def iptables(*args, **options): """ Run iptables4 and iptables6. """ ip4tables(*args, **options) ip6tables(*args, **options) def ip4tables(*args, **options): """ Run iptables4 with checks. """ run_iptable_with_check(IPTABLES, *args, **options) def ip6tables(*args, **options): """ Run iptables6 with checks. """ run_iptable_with_check(IP6TABLES, *args, **options) def toggle_ipv6(status='disable'): if status == 'disable': arg = 1 elif status == 'enable': arg = 0 else: return cmdcheck([SYSCTL, '-w', 'net.ipv6.conf.all.disable_ipv6=%s' % arg]) # # NOTE: these tests to see if a chain exists might incorrectly return false. # This happens when there is an error in calling `iptables --list bitmask`. # # For this reason, when stopping the firewall, we do not trust the # output of ipvx_chain_exists() but instead always attempt to delete # the chain. # def ipv4_chain_exists(chain, table=None): """ Check if a given chain exists. Only returns true if it actually exists, but might return false if it exists and iptables failed to run. :param chain: the chain to check against :type chain: str :rtype: bool """ if table is not None: code = run(IPTABLES, "-t", table, "--list", chain, "--numeric", exitcode=True) else: code = run(IPTABLES, "--list", chain, "--numeric", exitcode=True) if code == 0: return True elif code == 1: return False else: log("ERROR: Could not determine state of iptable chain") return False def ipv6_chain_exists(chain): """ see ipv4_chain_exists() :param chain: the chain to check against :type chain: str :rtype: bool """ code = run(IP6TABLES, "--list", chain, "--numeric", exitcode=True) if code == 0: return True elif code == 1: return False else: log("ERROR: Could not determine state of iptable chain") return False def enable_ip_forwarding(): """ ip_fowarding must be enabled for the firewall to work. """ with open('/proc/sys/net/ipv4/ip_forward', 'w') as f: f.write('1\n') def firewall_start(args): """ Bring up the firewall. :param args: list of gateways, to be sanitized. :type args: list """ default_device = get_default_device() local_network_ipv4 = get_local_network_ipv4(default_device) local_network_ipv6 = get_local_network_ipv6(default_device) gateways = get_gateways(args) # allow local address in listed exception list # this will allow all ports and both tcp and udp. def allow4(ip): ip4tables("--append", BITMASK_CHAIN, "--destination", ip, "-o", default_device, "--jump", "ACCEPT") def allow6(ip): ip6tables("--append", BITMASK_CHAIN, "--destination", ip, "-o", default_device, "--jump", "ACCEPT") # add custom chain "bitmask" to front of OUTPUT chain for both # the 'filter' and the 'nat' tables. if not ipv4_chain_exists(BITMASK_CHAIN): ip4tables("--new-chain", BITMASK_CHAIN) if not ipv4_chain_exists(BITMASK_CHAIN_NAT_OUT, 'nat'): ip4tables("--table", "nat", "--new-chain", BITMASK_CHAIN_NAT_OUT) if not ipv4_chain_exists(BITMASK_CHAIN_NAT_POST, 'nat'): ip4tables("--table", "nat", "--new-chain", BITMASK_CHAIN_NAT_POST) if not ipv6_chain_exists(BITMASK_CHAIN): ip6tables("--new-chain", BITMASK_CHAIN) ip4tables("--table", "nat", "--insert", "OUTPUT", "--jump", BITMASK_CHAIN_NAT_OUT) ip4tables("--table", "nat", "--insert", "POSTROUTING", "--jump", BITMASK_CHAIN_NAT_POST) iptables("--insert", "OUTPUT", "--jump", BITMASK_CHAIN) # route all ipv4 DNS over VPN # (note: NAT does not work with ipv6 until kernel 3.7) enable_ip_forwarding() if QUBES_PROXY and QUBES_VER >= 3: # rewrite DNS packets for VPN DNS; Qubes preconfigures masquerade ip4tables("-t", "nat", "--flush", "PR-QBS") ip4tables("-t", "nat", "--append", "PR-QBS", "-p", "udp", "--dport", "53", "--jump", "DNAT", "--to", NAMESERVER + ":53") ip4tables("-t", "nat", "--append", "PR-QBS", "-p", "tcp", "--dport", "53", "--jump", "DNAT", "--to", NAMESERVER + ":53") else: # allow dns to localhost ip4tables("-t", "nat", "--append", BITMASK_CHAIN, "--protocol", "udp", "--dest", "127.0.1.1,127.0.0.1,127.0.0.53", "--dport", "53", "--jump", "ACCEPT") # rewrite all outgoing packets to use VPN DNS server # (DNS does sometimes use TCP!) ip4tables("-t", "nat", "--append", BITMASK_CHAIN_NAT_OUT, "-p", "udp", "--dport", "53", "--jump", "DNAT", "--to", NAMESERVER + ":53") ip4tables("-t", "nat", "--append", BITMASK_CHAIN_NAT_OUT, "-p", "tcp", "--dport", "53", "--jump", "DNAT", "--to", NAMESERVER + ":53") # enable masquerading, so that DNS packets rewritten by DNAT will # have the correct source IPs. Apply masquerade only to the NAMESERVER, # we don't want to apply it to the localhost dns resolver. ip4tables("-t", "nat", "--append", BITMASK_CHAIN_NAT_POST, "--dest", NAMESERVER, "--protocol", "udp", "--dport", "53", "--jump", "MASQUERADE") ip4tables("-t", "nat", "--append", BITMASK_CHAIN_NAT_POST, "--dest", NAMESERVER, "--protocol", "tcp", "--dport", "53", "--jump", "MASQUERADE") # allow local network traffic ipv4_exceptions = getIPv4AllowAddresses() if local_network_ipv4: if len(ipv4_exceptions) == 0: # allow all local network destinations if no explicit allow rules defined ip4tables("--append", BITMASK_CHAIN, "--destination", local_network_ipv4, "-o", default_device, "--jump", "ACCEPT") # allow local network sources for DNS # (required to allow local network DNS that gets rewritten by NAT # to get passed through so that MASQUERADE can set correct source IP) ip4tables("--append", BITMASK_CHAIN, "--source", local_network_ipv4, "-o", default_device, "-p", "udp", "--dport", "53", "--jump", "ACCEPT") ip4tables("--append", BITMASK_CHAIN, "--source", local_network_ipv4, "-o", default_device, "-p", "tcp", "--dport", "53", "--jump", "ACCEPT") # allow multicast Simple Service Discovery Protocol ip4tables("--append", BITMASK_CHAIN, "--protocol", "udp", "--destination", "239.255.255.250", "--dport", "1900", "-o", default_device, "--jump", "RETURN") # allow multicast Bonjour/mDNS ip4tables("--append", BITMASK_CHAIN, "--protocol", "udp", "--destination", "224.0.0.251", "--dport", "5353", "-o", default_device, "--jump", "RETURN") ipv6_exceptions = getIPv6AllowAddresses() if local_network_ipv6: if len(ipv6_exceptions) == 0: # allow all local network destinations if no explicit allow rules defined ip6tables("--append", BITMASK_CHAIN, "--destination", local_network_ipv6, "-o", default_device, "--jump", "ACCEPT") # allow multicast Simple Service Discovery Protocol ip6tables("--append", BITMASK_CHAIN, "--protocol", "udp", "--destination", "FF05::C", "--dport", "1900", "-o", default_device, "--jump", "RETURN") # allow multicast Bonjour/mDNS ip6tables("--append", BITMASK_CHAIN, "--protocol", "udp", "--destination", "FF02::FB", "--dport", "5353", "-o", default_device, "--jump", "RETURN") # allow ipv4 traffic to gateways for gateway in gateways: ip4tables("--append", BITMASK_CHAIN, "--destination", gateway, "-o", default_device, "--jump", "ACCEPT") # TODO allow ipv6 traffic to gws too # log rejected packets to syslog if DEBUG: iptables("--append", BITMASK_CHAIN, "-o", default_device, "--jump", "LOG", "--log-prefix", "iptables denied: ", "--log-level", "7") # allow explicit private exceptions if len(ipv4_exceptions) != 0: for ip in ipv4_exceptions: allow4(ip) ip4tables("--append", BITMASK_CHAIN, "--destination", local_network_ipv4, "-o", default_device, "--jump", "REJECT") if len(ipv6_exceptions) != 0: for ip in ipv6_exceptions: allow6(ip) ip6tables("--append", BITMASK_CHAIN, "--destination", local_network_ipv6, "-o", default_device, "--jump", "REJECT") # for now, ensure all other ipv6 packets get rejected (regardless of # device). not sure why, but "-p any" doesn't work. ip6tables("--append", BITMASK_CHAIN, "-p", "tcp", "--jump", "REJECT") ip6tables("--append", BITMASK_CHAIN, "-p", "udp", "--jump", "REJECT") # reject all other ipv4 sent over the default device ip4tables("--append", BITMASK_CHAIN, "-o", default_device, "--jump", "REJECT") # On Qubes OS, add anti-leak rules for proxyVM qubes-firewall.service # Must stay on 'top' of chain! if QUBES_PROXY and QUBES_VER >= 3 and run("grep", "installed\ by\ " + SCRIPT, QUBES_FW_SCRIPT, exitcode=True) != 0: with open(QUBES_FW_SCRIPT, mode="w") as qfile: qfile.write("#!/bin/sh\n") qfile.write("# Anti-leak rules installed by " + SCRIPT + " " + VERSION + "\n") qfile.write("iptables --insert FORWARD -i eth0 -j DROP\n") qfile.write("iptables --insert FORWARD -o eth0 -j DROP\n") qfile.write("ip6tables --insert FORWARD -i eth0 -j DROP\n") qfile.write("ip6tables --insert FORWARD -o eth0 -j DROP\n") qfile.write("iptables --insert INPUT -i tun+ -j DROP\n") qfile.write("ip6tables --insert INPUT -i tun+ -j DROP\n") os.chmod(QUBES_FW_SCRIPT, stat.S_IRWXU) if not os.path.exists(QUBES_IPHOOK): os.symlink(QUBES_FW_SCRIPT, QUBES_IPHOOK) if QUBES_VER == 4: run(QUBES_FW_SCRIPT) elif QUBES_VER == 3: run("systemctl", "restart", "qubes-firewall.service") # toggle_ipv6('disable') def firewall_stop(): """ Stop the firewall. Because we really really always want the firewall to be stopped if at all possible, this function is cautious and contains a lot of trys and excepts. If there were any problems, we raise an exception at the end. This allows the calling code to retry stopping the firewall. Stopping the firewall can fail if iptables is being run by another process (only one iptables command can be run at a time). """ ok = True # -t filter -D OUTPUT -j bitmask try: iptables("--delete", "OUTPUT", "--jump", BITMASK_CHAIN, throw=True) except subprocess.CalledProcessError as exc: debug("INFO: not able to remove bitmask firewall from OUTPUT chain " "(maybe it is already removed?)", exc) ok = False # -t nat -D OUTPUT -j bitmask try: ip4tables("-t", "nat", "--delete", "OUTPUT", "--jump", BITMASK_CHAIN_NAT_OUT, throw=True) except subprocess.CalledProcessError as exc: debug("INFO: not able to remove bitmask firewall from OUTPUT chain " "in 'nat' table (maybe it is already removed?)", exc) ok = False # -t nat -D POSTROUTING -j bitmask_postrouting try: ip4tables("-t", "nat", "--delete", "POSTROUTING", "--jump", BITMASK_CHAIN_NAT_POST, throw=True) except subprocess.CalledProcessError as exc: debug("INFO: not able to remove bitmask firewall from POSTROUTING " "chain in 'nat' table (maybe it is already removed?)", exc) ok = False # -t filter --delete-chain bitmask try: ip4tables("--flush", BITMASK_CHAIN, throw=True) ip4tables("--delete-chain", BITMASK_CHAIN, throw=True) except subprocess.CalledProcessError as exc: debug("INFO: not able to flush and delete bitmask ipv4 firewall " "chain (maybe it is already destroyed?)", exc) ok = False # -t nat --delete-chain bitmask try: ip4tables("-t", "nat", "--flush", BITMASK_CHAIN_NAT_OUT, throw=True) ip4tables("-t", "nat", "--delete-chain", BITMASK_CHAIN_NAT_OUT, throw=True) except subprocess.CalledProcessError as exc: debug("INFO: not able to flush and delete bitmask ipv4 firewall " "chain in 'nat' table (maybe it is already destroyed?)", exc) ok = False # -t nat --delete-chain bitmask_postrouting try: ip4tables("-t", "nat", "--flush", BITMASK_CHAIN_NAT_POST, throw=True) ip4tables("-t", "nat", "--delete-chain", BITMASK_CHAIN_NAT_POST, throw=True) except subprocess.CalledProcessError as exc: debug("INFO: not able to flush and delete bitmask ipv4 firewall " "chain in 'nat' table (maybe it is already destroyed?)", exc) ok = False # -t filter --delete-chain bitmask (ipv6) try: ip6tables("--flush", BITMASK_CHAIN, throw=True) ip6tables("--delete-chain", BITMASK_CHAIN, throw=True) except subprocess.CalledProcessError as exc: debug("INFO: not able to flush and delete bitmask ipv6 firewall " "chain (maybe it is already destroyed?)", exc) ok = False # toggle_ipv6('enable') if not (ok or ipv4_chain_exists or ipv6_chain_exists): raise Exception("firewall might still be left up. " "Please try `firewall stop` again.") # # MAIN # USAGE = """ This is bitmask-root version {VERSION} This program manipulates the Bitmask firewall. It is *not* intented to be used manually. Commands: {SCRIPT} version {SCRIPT} restart {SCRIPT} openvpn start {SCRIPT} openvpn stop {SCRIPT} firewall start {SCRIPT} firewall stop {SCRIPT} firewall isup """.format(SCRIPT=SCRIPT, VERSION=VERSION) def main(): """ Entry point for cmdline execution. """ # TODO use argparse instead please. if len(sys.argv) >= 2: command = "_".join(sys.argv[1:3]) args = sys.argv[3:] is_restart = False if command == 'help' or command == '-h': print(USAGE) exit(0) if args and args[0] == 'restart': is_restart = True args.remove('restart') if command == "version": print(VERSION) exit(0) if os.getuid() != 0: bail("ERROR: must be run as root") if command == "openvpn_start": openvpn_start(args) elif command == "openvpn_stop": openvpn_stop(args) elif command == "firewall_start": try: firewall_start(args) except Exception as ex: if not is_restart: firewall_stop() bail("ERROR: could not start firewall", ex) elif command == "firewall_stop": try: firewall_stop() except Exception as ex: bail("ERROR: could not stop firewall", ex) elif command == "firewall_isup": if ipv4_chain_exists(BITMASK_CHAIN): # too verbose since bitmask polls this pass else: bail("INFO: bitmask firewall is down") else: bail("ERROR: No such command. Try bitmask-root help") else: bail("ERROR: No such command. Try bitmask-root help") if __name__ == "__main__": debug(" ".join(sys.argv)) main() exit(0) riseup-vpn-0.24.5+ds1/pkg/pickle/helpers/se.leap.bitmask.policy000066400000000000000000000017521461742244100243020ustar00rootroot00000000000000 LEAP Encryption Access Project http://leap.se/ Runs bitmask helper to launch firewall and openvpn Ejecuta el asistente de bitmask para lanzar el firewall y openvpn Bitmask needs that you authenticate to start Bitmask necesita autorizacion para comenzar package-x-generic yes yes yes /usr/sbin/bitmask-root riseup-vpn-0.24.5+ds1/pkg/pickle/helpers/se.leap.bitmask.snap.policy000066400000000000000000000021231461742244100252330ustar00rootroot00000000000000 LEAP Encryption Access Project Project http://leap.se/ Runs bitmask helper to launch firewall and openvpn (${applicationName}) Ejecuta el asistente de bitmask para lanzar el firewall y openvpn (${applicationName}) ${applicationName} needs that you authenticate to start ${applicationName} necesita autorizacion para comenzar package-x-generic yes yes yes /snap/bin/${binaryName}.bitmask-root riseup-vpn-0.24.5+ds1/pkg/pid/000077500000000000000000000000001461742244100157375ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/pkg/pid/pid.go000066400000000000000000000045761461742244100170560ustar00rootroot00000000000000// Copyright (C) 2018-2020 LEAP // // 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 . package pid import ( "fmt" "io/ioutil" "log" "os" "path/filepath" "strconv" "strings" "syscall" "0xacab.org/leap/bitmask-vpn/pkg/config" "github.com/keybase/go-ps" ) var pidFile = filepath.Join(config.Path, "systray.pid") func AcquirePID() error { pid := syscall.Getpid() current, err := getPID() if err != nil { log.Print("Error reading pid file:", err) } if current != pid && pidRunning(current) { return fmt.Errorf("Another systray is running with pid: %d", current) } return setPID(pid) } func ReleasePID() error { pid := syscall.Getpid() current, err := getPID() if err != nil { return err } if current != 0 && current != pid { return fmt.Errorf("Can't release pid file, is not own by this process") } if current == pid { return os.Remove(pidFile) } return nil } func getPID() (int, error) { _, err := os.Stat(pidFile) if os.IsNotExist(err) { return 0, nil } if err != nil { return 0, err } file, err := os.Open(pidFile) if err != nil { return 0, err } defer file.Close() b, err := ioutil.ReadAll(file) if err != nil { return 0, err } if len(b) == 0 { return 0, nil } return strconv.Atoi(string(b)) } func setPID(pid int) error { file, err := os.Create(pidFile) if err != nil { return err } defer file.Close() _, err = file.WriteString(fmt.Sprintf("%d", pid)) return err } func pidRunning(pid int) bool { if pid == 0 { return false } proc, err := ps.FindProcess(pid) if err != nil { log.Printf("An error ocurred finding process: %v", err) return false } if proc == nil { return false } log.Printf("There is a running process with the pid %d and executable: %s", pid, proc.Executable()) return strings.Contains(os.Args[0], proc.Executable()) } riseup-vpn-0.24.5+ds1/pkg/pid/pid_test.go000066400000000000000000000004361461742244100201040ustar00rootroot00000000000000package pid import ( "syscall" "testing" ) const ( invalidPid = 345678 ) func TestPidRunning(t *testing.T) { pid := syscall.Getpid() if !pidRunning(pid) { t.Errorf("pid %v is not running", pid) } if pidRunning(invalidPid) { t.Errorf("pid %v is running", invalidPid) } } riseup-vpn-0.24.5+ds1/pkg/snowflake/000077500000000000000000000000001461742244100171545ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/pkg/snowflake/bootstrap.go000066400000000000000000000071301461742244100215210ustar00rootroot00000000000000package snowflake import ( "context" "fmt" "io/ioutil" "log" "net/http" "os" "path/filepath" "strconv" "strings" "time" "0xacab.org/leap/bitmask-vpn/pkg/config" "github.com/cretz/bine/tor" ) // TODO // [ ] fix snowflake-client binary // [ ] find tor path const torrcOrig = `UseBridges 1 DataDirectory datadir ClientTransportPlugin snowflake exec /usr/local/bin/snowflake-client -log /tmp/snowflake.log -url https://snowflake-broker.torproject.net.global.prod.fastly.net/ \ -front cdn.sstatic.net -ice stun:stun.voip.blackberry.com:3478,stun:stun.altar.com.pl:3478,stun:stun.antisip.com:3478,stun:stun.bluesip.net:3478,stun:stun.dus.net:3478,stun:stun.epygi.com:3478,stun:stun.sonetel.com:3478,stun:stun.sonetel.net:3478,stun:stun.stunprotocol.org:3478,stun:stun.uls.co.za:3478,stun:stun.voipgate.com:3478,stun:stun.voys.nl:3478 \ -max 5 Bridge snowflake 192.0.2.3:1 SocksPort auto` const torrc = `UseBridges 1 DataDirectory datadir ClientTransportPlugin snowflake exec /usr/local/bin/snowflake-client -log /tmp/snowflake.log -url https://snowflake-broker.azureedge.net/ \ -front ajax.aspnetcdn.com -ice stun:stun.l.google.com:19302 \ -max 5 Bridge snowflake 192.0.2.3:1 SocksPort auto` type StatusEvent struct { Progress int Tag string } type StatusLogger struct { ch chan *StatusEvent } func (e *StatusLogger) Write(p []byte) (n int, err error) { raw := strings.Split(string(p), ":") if len(raw) > 1 { l := raw[1] parts := strings.Split(string(l), " ") if len(parts) > 2 && parts[2] == "STATUS_CLIENT" { if parts[4] == "BOOTSTRAP" { if len(parts) > 6 { pr, _ := strconv.Atoi(parts[5][9:]) event := &StatusEvent{Progress: pr, Tag: parts[6][4:]} go func() { e.ch <- event }() } fmt.Println() } } } return len(p), nil } func writeTorrc() string { f, err := ioutil.TempFile("", "torrc-snowflake-") if err != nil { log.Println(err) } f.Write([]byte(torrc)) return f.Name() } // TODO pass provider api func BootstrapWithSnowflakeProxies(provider string, ch chan *StatusEvent) error { rcfile := writeTorrc() logger := &StatusLogger{ch} conf := &tor.StartConf{ DebugWriter: logger, TorrcFile: rcfile, } fmt.Println("Starting Tor and fetching files to bootstrap VPN tunnel...") fmt.Println("") t, err := tor.Start(nil, conf) if err != nil { return err } defer t.Close() // Wait at most 5 minutes dialCtx, dialCancel := context.WithTimeout(context.Background(), time.Minute*10) defer dialCancel() dialer, err := t.Dialer(dialCtx, nil) if err != nil { return err } /* regClient := &http.Client{ Transport: &http.Transport{ DialContext: dialer.DialContext, }, Timeout: time.Minute * 5, } */ //fetchFile(regClient, "https://wtfismyip.com/json") apiClient := &http.Client{ Transport: &http.Transport{ DialContext: dialer.DialContext, }, Timeout: time.Minute * 5, } eipUri := config.APIURL + "/3/config/eip-service.json" eipFile := filepath.Join(config.Path, provider+"-eip.json") err = fetchFile(apiClient, eipUri, eipFile) if err != nil { return err } certUri := config.APIURL + "/3/cert" certFile := filepath.Join(config.Path, provider+".pem") err = fetchFile(apiClient, certUri, certFile) if err != nil { return err } return nil } func fetchFile(client *http.Client, uri string, file string) error { fmt.Printf("Fetching %s over snowflake", uri) resp, err := client.Get(uri) if err != nil { return err } defer resp.Body.Close() c, err := ioutil.ReadAll(resp.Body) if err != nil { log.Println(err) } if os.Getenv("DEBUG") == "1" { fmt.Println(string(c)) } return ioutil.WriteFile(file, c, 0600) } riseup-vpn-0.24.5+ds1/pkg/snowflake/lib/000077500000000000000000000000001461742244100177225ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/pkg/snowflake/lib/interfaces.go000066400000000000000000000014601461742244100223750ustar00rootroot00000000000000package lib import ( "net" ) // Interface for catching Snowflakes. (aka the remote dialer) type Tongue interface { Catch() (*WebRTCPeer, error) // Get the maximum number of snowflakes GetMax() int } // Interface for collecting some number of Snowflakes, for passing along // ultimately to the SOCKS handler. type SnowflakeCollector interface { // Add a Snowflake to the collection. // Implementation should decide how to connect and maintain the webRTCConn. Collect() (*WebRTCPeer, error) // Remove and return the most available Snowflake from the collection. Pop() *WebRTCPeer // Signal when the collector has stopped collecting. Melted() <-chan struct{} } // Interface to adapt to goptlib's SocksConn struct. type SocksConnector interface { Grant(*net.TCPAddr) error Reject() error net.Conn } riseup-vpn-0.24.5+ds1/pkg/snowflake/lib/lib_test.go000066400000000000000000000155221461742244100220630ustar00rootroot00000000000000package lib import ( "bytes" "fmt" "io/ioutil" "net" "net/http" "testing" "git.torproject.org/pluggable-transports/snowflake.git/common/util" . "github.com/smartystreets/goconvey/convey" ) type MockTransport struct { statusOverride int body []byte } // Just returns a response with fake SDP answer. func (m *MockTransport) RoundTrip(req *http.Request) (*http.Response, error) { s := ioutil.NopCloser(bytes.NewReader(m.body)) r := &http.Response{ StatusCode: m.statusOverride, Body: s, } return r, nil } type FakeDialer struct { max int } func (w FakeDialer) Catch() (*WebRTCPeer, error) { fmt.Println("Caught a dummy snowflake.") return &WebRTCPeer{}, nil } func (w FakeDialer) GetMax() int { return w.max } type FakeSocksConn struct { net.Conn rejected bool } func (f FakeSocksConn) Reject() error { f.rejected = true return nil } func (f FakeSocksConn) Grant(addr *net.TCPAddr) error { return nil } type FakePeers struct{ toRelease *WebRTCPeer } func (f FakePeers) Collect() (*WebRTCPeer, error) { return &WebRTCPeer{}, nil } func (f FakePeers) Pop() *WebRTCPeer { return nil } func (f FakePeers) Melted() <-chan struct{} { return nil } func TestSnowflakeClient(t *testing.T) { Convey("Peers", t, func() { Convey("Can construct", func() { d := &FakeDialer{max: 1} p, _ := NewPeers(d) So(p.Tongue.GetMax(), ShouldEqual, 1) So(p.snowflakeChan, ShouldNotBeNil) So(cap(p.snowflakeChan), ShouldEqual, 1) }) Convey("Collecting a Snowflake requires a Tongue.", func() { p, err := NewPeers(nil) So(err, ShouldNotBeNil) // Set the dialer so that collection is possible. d := &FakeDialer{max: 1} p, err = NewPeers(d) _, err = p.Collect() So(err, ShouldBeNil) So(p.Count(), ShouldEqual, 1) // S _, err = p.Collect() }) Convey("Collection continues until capacity.", func() { c := 5 p, _ := NewPeers(FakeDialer{max: c}) // Fill up to capacity. for i := 0; i < c; i++ { fmt.Println("Adding snowflake ", i) _, err := p.Collect() So(err, ShouldBeNil) So(p.Count(), ShouldEqual, i+1) } // But adding another gives an error. So(p.Count(), ShouldEqual, c) _, err := p.Collect() So(err, ShouldNotBeNil) So(p.Count(), ShouldEqual, c) // But popping and closing allows it to continue. s := p.Pop() s.Close() So(s, ShouldNotBeNil) So(p.Count(), ShouldEqual, c-1) _, err = p.Collect() So(err, ShouldBeNil) So(p.Count(), ShouldEqual, c) }) Convey("Count correctly purges peers marked for deletion.", func() { p, _ := NewPeers(FakeDialer{max: 5}) p.Collect() p.Collect() p.Collect() p.Collect() So(p.Count(), ShouldEqual, 4) s := p.Pop() s.Close() So(p.Count(), ShouldEqual, 3) s = p.Pop() s.Close() So(p.Count(), ShouldEqual, 2) }) Convey("End Closes all peers.", func() { cnt := 5 p, _ := NewPeers(FakeDialer{max: cnt}) for i := 0; i < cnt; i++ { p.activePeers.PushBack(&WebRTCPeer{}) } So(p.Count(), ShouldEqual, cnt) p.End() <-p.Melted() So(p.Count(), ShouldEqual, 0) }) Convey("Pop skips over closed peers.", func() { p, _ := NewPeers(FakeDialer{max: 4}) wc1, _ := p.Collect() wc2, _ := p.Collect() wc3, _ := p.Collect() So(wc1, ShouldNotBeNil) So(wc2, ShouldNotBeNil) So(wc3, ShouldNotBeNil) wc1.Close() r := p.Pop() So(p.Count(), ShouldEqual, 2) So(r, ShouldEqual, wc2) wc4, _ := p.Collect() wc2.Close() wc3.Close() r = p.Pop() So(r, ShouldEqual, wc4) }) }) Convey("Snowflake", t, func() { SkipConvey("Handler Grants correctly", func() { socks := &FakeSocksConn{} broker := &BrokerChannel{Host: "test"} d := NewWebRTCDialer(broker, nil, 1) So(socks.rejected, ShouldEqual, false) Handler(socks, d) So(socks.rejected, ShouldEqual, true) }) }) Convey("Dialers", t, func() { Convey("Can construct WebRTCDialer.", func() { broker := &BrokerChannel{Host: "test"} d := NewWebRTCDialer(broker, nil, 1) So(d, ShouldNotBeNil) So(d.BrokerChannel, ShouldNotBeNil) So(d.BrokerChannel.Host, ShouldEqual, "test") }) SkipConvey("WebRTCDialer can Catch a snowflake.", func() { broker := &BrokerChannel{Host: "test"} d := NewWebRTCDialer(broker, nil, 1) conn, err := d.Catch() So(conn, ShouldBeNil) So(err, ShouldNotBeNil) }) }) Convey("Rendezvous", t, func() { transport := &MockTransport{ http.StatusOK, []byte(`{"type":"answer","sdp":"fake"}`), } fakeOffer, err := util.DeserializeSessionDescription(`{"type":"offer","sdp":"test"}`) if err != nil { panic(err) } Convey("Construct BrokerChannel with no front domain", func() { b, err := NewBrokerChannel("test.broker", "", transport, false) So(b.url, ShouldNotBeNil) So(err, ShouldBeNil) So(b.url.Path, ShouldResemble, "test.broker") So(b.transport, ShouldNotBeNil) }) Convey("Construct BrokerChannel *with* front domain", func() { b, err := NewBrokerChannel("test.broker", "front", transport, false) So(b.url, ShouldNotBeNil) So(err, ShouldBeNil) So(b.url.Path, ShouldResemble, "test.broker") So(b.url.Host, ShouldResemble, "front") So(b.transport, ShouldNotBeNil) }) Convey("BrokerChannel.Negotiate responds with answer", func() { b, err := NewBrokerChannel("test.broker", "", transport, false) So(err, ShouldBeNil) answer, err := b.Negotiate(fakeOffer) So(err, ShouldBeNil) So(answer, ShouldNotBeNil) So(answer.SDP, ShouldResemble, "fake") }) Convey("BrokerChannel.Negotiate fails with 503", func() { b, err := NewBrokerChannel("test.broker", "", &MockTransport{http.StatusServiceUnavailable, []byte("\n")}, false) So(err, ShouldBeNil) answer, err := b.Negotiate(fakeOffer) So(err, ShouldNotBeNil) So(answer, ShouldBeNil) So(err.Error(), ShouldResemble, BrokerError503) }) Convey("BrokerChannel.Negotiate fails with 400", func() { b, err := NewBrokerChannel("test.broker", "", &MockTransport{http.StatusBadRequest, []byte("\n")}, false) So(err, ShouldBeNil) answer, err := b.Negotiate(fakeOffer) So(err, ShouldNotBeNil) So(answer, ShouldBeNil) So(err.Error(), ShouldResemble, BrokerError400) }) Convey("BrokerChannel.Negotiate fails with large read", func() { b, err := NewBrokerChannel("test.broker", "", &MockTransport{http.StatusOK, make([]byte, 100001, 100001)}, false) So(err, ShouldBeNil) answer, err := b.Negotiate(fakeOffer) So(err, ShouldNotBeNil) So(answer, ShouldBeNil) So(err.Error(), ShouldResemble, "unexpected EOF") }) Convey("BrokerChannel.Negotiate fails with unexpected error", func() { b, err := NewBrokerChannel("test.broker", "", &MockTransport{123, []byte("")}, false) So(err, ShouldBeNil) answer, err := b.Negotiate(fakeOffer) So(err, ShouldNotBeNil) So(answer, ShouldBeNil) So(err.Error(), ShouldResemble, BrokerErrorUnexpected) }) }) } riseup-vpn-0.24.5+ds1/pkg/snowflake/lib/peers.go000066400000000000000000000066231461742244100213760ustar00rootroot00000000000000package lib import ( "container/list" "errors" "fmt" "log" "sync" ) // Container which keeps track of multiple WebRTC remote peers. // Implements |SnowflakeCollector|. // // Maintaining a set of pre-connected Peers with fresh but inactive datachannels // allows allows rapid recovery when the current WebRTC Peer disconnects. // // Note: For now, only one remote can be active at any given moment. // This is a property of Tor circuits & its current multiplexing constraints, // but could be updated if that changes. // (Also, this constraint does not necessarily apply to the more generic PT // version of Snowflake) type Peers struct { Tongue BytesLogger BytesLogger snowflakeChan chan *WebRTCPeer activePeers *list.List melt chan struct{} melted bool collection sync.WaitGroup } // Construct a fresh container of remote peers. func NewPeers(tongue Tongue) (*Peers, error) { p := &Peers{} // Use buffered go channel to pass snowflakes onwards to the SOCKS handler. if tongue == nil { return nil, errors.New("missing Tongue to catch Snowflakes with") } p.snowflakeChan = make(chan *WebRTCPeer, tongue.GetMax()) p.activePeers = list.New() p.melt = make(chan struct{}) p.Tongue = tongue return p, nil } // As part of |SnowflakeCollector| interface. func (p *Peers) Collect() (*WebRTCPeer, error) { // Engage the Snowflake Catching interface, which must be available. p.collection.Add(1) defer p.collection.Done() if p.melted { return nil, fmt.Errorf("Snowflakes have melted") } if nil == p.Tongue { return nil, errors.New("missing Tongue to catch Snowflakes with") } cnt := p.Count() capacity := p.Tongue.GetMax() s := fmt.Sprintf("Currently at [%d/%d]", cnt, capacity) if cnt >= capacity { return nil, fmt.Errorf("At capacity [%d/%d]", cnt, capacity) } log.Println("WebRTC: Collecting a new Snowflake.", s) // BUG: some broker conflict here. connection, err := p.Tongue.Catch() if nil != err { return nil, err } // Track new valid Snowflake in internal collection and pass along. p.activePeers.PushBack(connection) p.snowflakeChan <- connection return connection, nil } // Pop blocks until an available, valid snowflake appears. Returns nil after End // has been called. func (p *Peers) Pop() *WebRTCPeer { for { snowflake, ok := <-p.snowflakeChan if !ok { return nil } if snowflake.closed { continue } // Set to use the same rate-limited traffic logger to keep consistency. snowflake.BytesLogger = p.BytesLogger return snowflake } } // As part of |SnowflakeCollector| interface. func (p *Peers) Melted() <-chan struct{} { return p.melt } // Returns total available Snowflakes (including the active one) // The count only reduces when connections themselves close, rather than when // they are popped. func (p *Peers) Count() int { p.purgeClosedPeers() return p.activePeers.Len() } func (p *Peers) purgeClosedPeers() { for e := p.activePeers.Front(); e != nil; { next := e.Next() conn := e.Value.(*WebRTCPeer) // Purge those marked for deletion. if conn.closed { p.activePeers.Remove(e) } e = next } } // Close all Peers contained here. func (p *Peers) End() { close(p.melt) p.melted = true p.collection.Wait() close(p.snowflakeChan) cnt := p.Count() for e := p.activePeers.Front(); e != nil; { next := e.Next() conn := e.Value.(*WebRTCPeer) conn.Close() p.activePeers.Remove(e) e = next } log.Printf("WebRTC: melted all %d snowflakes.", cnt) } riseup-vpn-0.24.5+ds1/pkg/snowflake/lib/rendezvous.go000066400000000000000000000130401461742244100224530ustar00rootroot00000000000000// WebRTC rendezvous requires the exchange of SessionDescriptions between // peers in order to establish a PeerConnection. // // This file contains the one method currently available to Snowflake: // // - Domain-fronted HTTP signaling. The Broker automatically exchange offers // and answers between this client and some remote WebRTC proxy. package lib import ( "bytes" "errors" "io" "io/ioutil" "log" "net/http" "net/url" "sync" "time" "git.torproject.org/pluggable-transports/snowflake.git/common/nat" "git.torproject.org/pluggable-transports/snowflake.git/common/util" "github.com/pion/webrtc/v3" ) const ( BrokerError503 string = "No snowflake proxies currently available." BrokerError400 string = "You sent an invalid offer in the request." BrokerErrorUnexpected string = "Unexpected error, no answer." readLimit = 100000 //Maximum number of bytes to be read from an HTTP response ) // Signalling Channel to the Broker. type BrokerChannel struct { // The Host header to put in the HTTP request (optional and may be // different from the host name in URL). Host string url *url.URL transport http.RoundTripper // Used to make all requests. keepLocalAddresses bool NATType string lock sync.Mutex } // We make a copy of DefaultTransport because we want the default Dial // and TLSHandshakeTimeout settings. But we want to disable the default // ProxyFromEnvironment setting. func CreateBrokerTransport() http.RoundTripper { transport := http.DefaultTransport.(*http.Transport) transport.Proxy = nil transport.ResponseHeaderTimeout = 15 * time.Second return transport } // Construct a new BrokerChannel, where: // |broker| is the full URL of the facilitating program which assigns proxies // to clients, and |front| is the option fronting domain. func NewBrokerChannel(broker string, front string, transport http.RoundTripper, keepLocalAddresses bool) (*BrokerChannel, error) { targetURL, err := url.Parse(broker) if err != nil { return nil, err } log.Println("Rendezvous using Broker at:", broker) bc := new(BrokerChannel) bc.url = targetURL if front != "" { // Optional front domain. log.Println("Domain fronting using:", front) bc.Host = bc.url.Host bc.url.Host = front } bc.transport = transport bc.keepLocalAddresses = keepLocalAddresses bc.NATType = nat.NATUnknown return bc, nil } func limitedRead(r io.Reader, limit int64) ([]byte, error) { p, err := ioutil.ReadAll(&io.LimitedReader{R: r, N: limit + 1}) if err != nil { return p, err } else if int64(len(p)) == limit+1 { return p[0:limit], io.ErrUnexpectedEOF } return p, err } // Roundtrip HTTP POST using WebRTC SessionDescriptions. // // Send an SDP offer to the broker, which assigns a proxy and responds // with an SDP answer from a designated remote WebRTC peer. func (bc *BrokerChannel) Negotiate(offer *webrtc.SessionDescription) ( *webrtc.SessionDescription, error) { log.Println("Negotiating via BrokerChannel...\nTarget URL: ", bc.Host, "\nFront URL: ", bc.url.Host) // Ideally, we could specify an `RTCIceTransportPolicy` that would handle // this for us. However, "public" was removed from the draft spec. // See https://developer.mozilla.org/en-US/docs/Web/API/RTCConfiguration#RTCIceTransportPolicy_enum if !bc.keepLocalAddresses { offer = &webrtc.SessionDescription{ Type: offer.Type, SDP: util.StripLocalAddresses(offer.SDP), } } offerSDP, err := util.SerializeSessionDescription(offer) if err != nil { return nil, err } data := bytes.NewReader([]byte(offerSDP)) // Suffix with broker's client registration handler. clientURL := bc.url.ResolveReference(&url.URL{Path: "client"}) request, err := http.NewRequest("POST", clientURL.String(), data) if nil != err { return nil, err } if "" != bc.Host { // Set true host if necessary. request.Host = bc.Host } // include NAT-TYPE bc.lock.Lock() request.Header.Set("Snowflake-NAT-TYPE", bc.NATType) bc.lock.Unlock() resp, err := bc.transport.RoundTrip(request) if nil != err { return nil, err } defer resp.Body.Close() log.Printf("BrokerChannel Response:\n%s\n\n", resp.Status) switch resp.StatusCode { case http.StatusOK: body, err := limitedRead(resp.Body, readLimit) if nil != err { return nil, err } log.Printf("Received answer: %s", string(body)) return util.DeserializeSessionDescription(string(body)) case http.StatusServiceUnavailable: return nil, errors.New(BrokerError503) case http.StatusBadRequest: return nil, errors.New(BrokerError400) default: return nil, errors.New(BrokerErrorUnexpected) } } func (bc *BrokerChannel) SetNATType(NATType string) { bc.lock.Lock() bc.NATType = NATType bc.lock.Unlock() log.Printf("NAT Type: %s", NATType) } // Implements the |Tongue| interface to catch snowflakes, using BrokerChannel. type WebRTCDialer struct { *BrokerChannel webrtcConfig *webrtc.Configuration max int } func NewWebRTCDialer(broker *BrokerChannel, iceServers []webrtc.ICEServer, max int) *WebRTCDialer { config := webrtc.Configuration{ ICEServers: iceServers, } return &WebRTCDialer{ BrokerChannel: broker, webrtcConfig: &config, max: max, } } // Initialize a WebRTC Connection by signaling through the broker. func (w WebRTCDialer) Catch() (*WebRTCPeer, error) { // TODO: [#25591] Fetch ICE server information from Broker. // TODO: [#25596] Consider TURN servers here too. return NewWebRTCPeer(w.webrtcConfig, w.BrokerChannel) } // Returns the maximum number of snowflakes to collect func (w WebRTCDialer) GetMax() int { return w.max } riseup-vpn-0.24.5+ds1/pkg/snowflake/lib/snowflake.go000066400000000000000000000121621461742244100222440ustar00rootroot00000000000000package lib import ( "context" "errors" "io" "log" "net" "time" "git.torproject.org/pluggable-transports/snowflake.git/common/turbotunnel" "github.com/xtaci/kcp-go/v5" "github.com/xtaci/smux" ) const ( ReconnectTimeout = 10 * time.Second SnowflakeTimeout = 20 * time.Second // How long to wait for the OnOpen callback on a DataChannel. DataChannelTimeout = 10 * time.Second ) type dummyAddr struct{} func (addr dummyAddr) Network() string { return "dummy" } func (addr dummyAddr) String() string { return "dummy" } // newSession returns a new smux.Session and the net.PacketConn it is running // over. The net.PacketConn successively connects through Snowflake proxies // pulled from snowflakes. func newSession(snowflakes SnowflakeCollector) (net.PacketConn, *smux.Session, error) { clientID := turbotunnel.NewClientID() // We build a persistent KCP session on a sequence of ephemeral WebRTC // connections. This dialContext tells RedialPacketConn how to get a new // WebRTC connection when the previous one dies. Inside each WebRTC // connection, we use EncapsulationPacketConn to encode packets into a // stream. dialContext := func(ctx context.Context) (net.PacketConn, error) { log.Printf("redialing on same connection") // Obtain an available WebRTC remote. May block. conn := snowflakes.Pop() if conn == nil { return nil, errors.New("handler: Received invalid Snowflake") } log.Println("---- Handler: snowflake assigned ----") // Send the magic Turbo Tunnel token. _, err := conn.Write(turbotunnel.Token[:]) if err != nil { return nil, err } // Send ClientID prefix. _, err = conn.Write(clientID[:]) if err != nil { return nil, err } return NewEncapsulationPacketConn(dummyAddr{}, dummyAddr{}, conn), nil } pconn := turbotunnel.NewRedialPacketConn(dummyAddr{}, dummyAddr{}, dialContext) // conn is built on the underlying RedialPacketConn—when one WebRTC // connection dies, another one will be found to take its place. The // sequence of packets across multiple WebRTC connections drives the KCP // engine. conn, err := kcp.NewConn2(dummyAddr{}, nil, 0, 0, pconn) if err != nil { pconn.Close() return nil, nil, err } // Permit coalescing the payloads of consecutive sends. conn.SetStreamMode(true) // Set the maximum send and receive window sizes to a high number // Removes KCP bottlenecks: https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40026 conn.SetWindowSize(65535, 65535) // Disable the dynamic congestion window (limit only by the // maximum of local and remote static windows). conn.SetNoDelay( 0, // default nodelay 0, // default interval 0, // default resend 1, // nc=1 => congestion window off ) // On the KCP connection we overlay an smux session and stream. smuxConfig := smux.DefaultConfig() smuxConfig.Version = 2 smuxConfig.KeepAliveTimeout = 10 * time.Minute sess, err := smux.Client(conn, smuxConfig) if err != nil { conn.Close() pconn.Close() return nil, nil, err } return pconn, sess, err } // Given an accepted SOCKS connection, establish a WebRTC connection to the // remote peer and exchange traffic. func Handler(socks net.Conn, tongue Tongue) error { // Prepare to collect remote WebRTC peers. snowflakes, err := NewPeers(tongue) if err != nil { return err } // Use a real logger to periodically output how much traffic is happening. snowflakes.BytesLogger = NewBytesSyncLogger() log.Printf("---- Handler: begin collecting snowflakes ---") go connectLoop(snowflakes) // Create a new smux session log.Printf("---- Handler: starting a new session ---") pconn, sess, err := newSession(snowflakes) if err != nil { return err } // On the smux session we overlay a stream. stream, err := sess.OpenStream() if err != nil { return err } defer stream.Close() // Begin exchanging data. log.Printf("---- Handler: begin stream %v ---", stream.ID()) copyLoop(socks, stream) log.Printf("---- Handler: closed stream %v ---", stream.ID()) snowflakes.End() log.Printf("---- Handler: end collecting snowflakes ---") pconn.Close() sess.Close() log.Printf("---- Handler: discarding finished session ---") return nil } // Maintain |SnowflakeCapacity| number of available WebRTC connections, to // transfer to the Tor SOCKS handler when needed. func connectLoop(snowflakes SnowflakeCollector) { for { timer := time.After(ReconnectTimeout) _, err := snowflakes.Collect() if err != nil { log.Printf("WebRTC: %v Retrying...", err) } select { case <-timer: continue case <-snowflakes.Melted(): log.Println("ConnectLoop: stopped.") return } } } // Exchanges bytes between two ReadWriters. // (In this case, between a SOCKS connection and smux stream.) func copyLoop(socks, stream io.ReadWriter) { done := make(chan struct{}, 2) go func() { if _, err := io.Copy(socks, stream); err != nil { log.Printf("copying WebRTC to SOCKS resulted in error: %v", err) } done <- struct{}{} }() go func() { if _, err := io.Copy(stream, socks); err != nil { log.Printf("copying SOCKS to stream resulted in error: %v", err) } done <- struct{}{} }() <-done log.Println("copy loop ended") } riseup-vpn-0.24.5+ds1/pkg/snowflake/lib/turbotunnel.go000066400000000000000000000035341461742244100226370ustar00rootroot00000000000000package lib import ( "bufio" "errors" "io" "net" "time" "git.torproject.org/pluggable-transports/snowflake.git/common/encapsulation" ) var errNotImplemented = errors.New("not implemented") // EncapsulationPacketConn implements the net.PacketConn interface over an // io.ReadWriteCloser stream, using the encapsulation package to represent // packets in a stream. type EncapsulationPacketConn struct { io.ReadWriteCloser localAddr net.Addr remoteAddr net.Addr bw *bufio.Writer } // NewEncapsulationPacketConn makes func NewEncapsulationPacketConn( localAddr, remoteAddr net.Addr, conn io.ReadWriteCloser, ) *EncapsulationPacketConn { return &EncapsulationPacketConn{ ReadWriteCloser: conn, localAddr: localAddr, remoteAddr: remoteAddr, bw: bufio.NewWriter(conn), } } // ReadFrom reads an encapsulated packet from the stream. func (c *EncapsulationPacketConn) ReadFrom(p []byte) (int, net.Addr, error) { data, err := encapsulation.ReadData(c.ReadWriteCloser) if err != nil { return 0, c.remoteAddr, err } return copy(p, data), c.remoteAddr, nil } // WriteTo writes an encapsulated packet to the stream. func (c *EncapsulationPacketConn) WriteTo(p []byte, addr net.Addr) (int, error) { // addr is ignored. _, err := encapsulation.WriteData(c.bw, p) if err == nil { err = c.bw.Flush() } if err != nil { return 0, err } return len(p), nil } // LocalAddr returns the localAddr value that was passed to // NewEncapsulationPacketConn. func (c *EncapsulationPacketConn) LocalAddr() net.Addr { return c.localAddr } func (c *EncapsulationPacketConn) SetDeadline(t time.Time) error { return errNotImplemented } func (c *EncapsulationPacketConn) SetReadDeadline(t time.Time) error { return errNotImplemented } func (c *EncapsulationPacketConn) SetWriteDeadline(t time.Time) error { return errNotImplemented } riseup-vpn-0.24.5+ds1/pkg/snowflake/lib/util.go000066400000000000000000000026731461742244100212360ustar00rootroot00000000000000package lib import ( "log" "time" ) const ( LogTimeInterval = 5 * time.Second ) type BytesLogger interface { AddOutbound(int) AddInbound(int) } // Default BytesLogger does nothing. type BytesNullLogger struct{} func (b BytesNullLogger) AddOutbound(amount int) {} func (b BytesNullLogger) AddInbound(amount int) {} // BytesSyncLogger uses channels to safely log from multiple sources with output // occuring at reasonable intervals. type BytesSyncLogger struct { outboundChan chan int inboundChan chan int } // NewBytesSyncLogger returns a new BytesSyncLogger and starts it loggin. func NewBytesSyncLogger() *BytesSyncLogger { b := &BytesSyncLogger{ outboundChan: make(chan int, 5), inboundChan: make(chan int, 5), } go b.log() return b } func (b *BytesSyncLogger) log() { var outbound, inbound, outEvents, inEvents int ticker := time.NewTicker(LogTimeInterval) for { select { case <-ticker.C: if outEvents > 0 || inEvents > 0 { log.Printf("Traffic Bytes (in|out): %d | %d -- (%d OnMessages, %d Sends)", inbound, outbound, inEvents, outEvents) } outbound = 0 outEvents = 0 inbound = 0 inEvents = 0 case amount := <-b.outboundChan: outbound += amount outEvents++ case amount := <-b.inboundChan: inbound += amount inEvents++ } } } func (b *BytesSyncLogger) AddOutbound(amount int) { b.outboundChan <- amount } func (b *BytesSyncLogger) AddInbound(amount int) { b.inboundChan <- amount } riseup-vpn-0.24.5+ds1/pkg/snowflake/lib/webrtc.go000066400000000000000000000127501461742244100215440ustar00rootroot00000000000000package lib import ( "crypto/rand" "encoding/hex" "errors" "io" "log" "sync" "time" "github.com/pion/webrtc/v3" ) // Remote WebRTC peer. // // Handles preparation of go-webrtc PeerConnection. Only ever has // one DataChannel. type WebRTCPeer struct { id string pc *webrtc.PeerConnection transport *webrtc.DataChannel recvPipe *io.PipeReader writePipe *io.PipeWriter lastReceive time.Time open chan struct{} // Channel to notify when datachannel opens closed bool once sync.Once // Synchronization for PeerConnection destruction BytesLogger BytesLogger } // Construct a WebRTC PeerConnection. func NewWebRTCPeer(config *webrtc.Configuration, broker *BrokerChannel) (*WebRTCPeer, error) { connection := new(WebRTCPeer) { var buf [8]byte if _, err := rand.Read(buf[:]); err != nil { panic(err) } connection.id = "snowflake-" + hex.EncodeToString(buf[:]) } // Override with something that's not NullLogger to have real logging. connection.BytesLogger = &BytesNullLogger{} // Pipes remain the same even when DataChannel gets switched. connection.recvPipe, connection.writePipe = io.Pipe() err := connection.connect(config, broker) if err != nil { connection.Close() return nil, err } return connection, nil } // Read bytes from local SOCKS. // As part of |io.ReadWriter| func (c *WebRTCPeer) Read(b []byte) (int, error) { return c.recvPipe.Read(b) } // Writes bytes out to remote WebRTC. // As part of |io.ReadWriter| func (c *WebRTCPeer) Write(b []byte) (int, error) { err := c.transport.Send(b) if err != nil { return 0, err } c.BytesLogger.AddOutbound(len(b)) return len(b), nil } func (c *WebRTCPeer) Close() error { c.once.Do(func() { c.closed = true c.cleanup() log.Printf("WebRTC: Closing") }) return nil } // Prevent long-lived broken remotes. // Should also update the DataChannel in underlying go-webrtc's to make Closes // more immediate / responsive. func (c *WebRTCPeer) checkForStaleness() { c.lastReceive = time.Now() for { if c.closed { return } if time.Since(c.lastReceive) > SnowflakeTimeout { log.Printf("WebRTC: No messages received for %v -- closing stale connection.", SnowflakeTimeout) c.Close() return } <-time.After(time.Second) } } func (c *WebRTCPeer) connect(config *webrtc.Configuration, broker *BrokerChannel) error { log.Println(c.id, " connecting...") // TODO: When go-webrtc is more stable, it's possible that a new // PeerConnection won't need to be re-prepared each time. c.preparePeerConnection(config) answer, err := broker.Negotiate(c.pc.LocalDescription()) if err != nil { return err } log.Printf("Received Answer.\n") err = c.pc.SetRemoteDescription(*answer) if nil != err { log.Println("WebRTC: Unable to SetRemoteDescription:", err) return err } // Wait for the datachannel to open or time out select { case <-c.open: case <-time.After(DataChannelTimeout): c.transport.Close() return errors.New("timeout waiting for DataChannel.OnOpen") } go c.checkForStaleness() return nil } // preparePeerConnection creates a new WebRTC PeerConnection and returns it // after ICE candidate gathering is complete.. func (c *WebRTCPeer) preparePeerConnection(config *webrtc.Configuration) error { var err error c.pc, err = webrtc.NewPeerConnection(*config) if err != nil { log.Printf("NewPeerConnection ERROR: %s", err) return err } ordered := true dataChannelOptions := &webrtc.DataChannelInit{ Ordered: &ordered, } // We must create the data channel before creating an offer // https://github.com/pion/webrtc/wiki/Release-WebRTC@v3.0.0 dc, err := c.pc.CreateDataChannel(c.id, dataChannelOptions) if err != nil { log.Printf("CreateDataChannel ERROR: %s", err) return err } dc.OnOpen(func() { log.Println("WebRTC: DataChannel.OnOpen") close(c.open) }) dc.OnClose(func() { log.Println("WebRTC: DataChannel.OnClose") c.Close() }) dc.OnMessage(func(msg webrtc.DataChannelMessage) { if len(msg.Data) <= 0 { log.Println("0 length message---") } n, err := c.writePipe.Write(msg.Data) c.BytesLogger.AddInbound(n) if err != nil { // TODO: Maybe shouldn't actually close. log.Println("Error writing to SOCKS pipe") if inerr := c.writePipe.CloseWithError(err); inerr != nil { log.Printf("c.writePipe.CloseWithError returned error: %v", inerr) } } c.lastReceive = time.Now() }) c.transport = dc c.open = make(chan struct{}) log.Println("WebRTC: DataChannel created.") // Allow candidates to accumulate until ICEGatheringStateComplete. done := webrtc.GatheringCompletePromise(c.pc) offer, err := c.pc.CreateOffer(nil) // TODO: Potentially timeout and retry if ICE isn't working. if err != nil { log.Println("Failed to prepare offer", err) c.pc.Close() return err } log.Println("WebRTC: Created offer") err = c.pc.SetLocalDescription(offer) if err != nil { log.Println("Failed to prepare offer", err) c.pc.Close() return err } log.Println("WebRTC: Set local description") <-done // Wait for ICE candidate gathering to complete. log.Println("WebRTC: PeerConnection created.") return nil } // Close all channels and transports func (c *WebRTCPeer) cleanup() { // Close this side of the SOCKS pipe. if c.writePipe != nil { // c.writePipe can be nil in tests. c.writePipe.Close() } if nil != c.transport { log.Printf("WebRTC: closing DataChannel") c.transport.Close() } if nil != c.pc { log.Printf("WebRTC: closing PeerConnection") err := c.pc.Close() if nil != err { log.Printf("Error closing peerconnection...") } } } riseup-vpn-0.24.5+ds1/pkg/snowflake/tor.go000066400000000000000000000003121461742244100203030ustar00rootroot00000000000000package snowflake import ( "errors" "os" ) func exists(path string) bool { _, err := os.Stat(path) return !errors.Is(err, os.ErrNotExist) } func HasTor() bool { return exists("/usr/sbin/tor") } riseup-vpn-0.24.5+ds1/pkg/version000066400000000000000000000000071461742244100165700ustar00rootroot000000000000000.24.5 riseup-vpn-0.24.5+ds1/pkg/vpn/000077500000000000000000000000001461742244100157665ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/pkg/vpn/bonafide/000077500000000000000000000000001461742244100175355ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/pkg/vpn/bonafide/auth.go000066400000000000000000000017741461742244100210360ustar00rootroot00000000000000// Copyright (C) 2018 LEAP // // 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 . package bonafide type credentials struct { User string Password string } // The authentication interface allows to get a Certificate in Pem format. // We implement Anonymous Authentication (Riseup et al), and Sip (Libraries). type authentication interface { needsCredentials() bool getToken(user, password string) ([]byte, error) } riseup-vpn-0.24.5+ds1/pkg/vpn/bonafide/auth_anon.go000066400000000000000000000017531461742244100220460ustar00rootroot00000000000000// Copyright (C) 2018-2020 LEAP // // 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 . package bonafide import ( "errors" ) type anonymousAuthentication struct{} func (a *anonymousAuthentication) needsCredentials() bool { return false } func (a *anonymousAuthentication) getToken(user, password string) ([]byte, error) { return []byte(""), errors.New("anon authentication should not call getToken") } riseup-vpn-0.24.5+ds1/pkg/vpn/bonafide/auth_sip.go000066400000000000000000000057271461742244100217130ustar00rootroot00000000000000// Copyright (C) 2018 LEAP // // 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 . package bonafide import ( "encoding/json" "fmt" "io/ioutil" "log" "os" "path" "strings" "time" "0xacab.org/leap/bitmask-vpn/pkg/config" ) type sipAuthentication struct { client httpClient authURI string } func (a *sipAuthentication) needsCredentials() bool { return true } func (a *sipAuthentication) getToken(user, password string) ([]byte, error) { /* TODO refresh session token periodically */ if hasRecentToken() { return readToken() } credJSON, err := formatCredentials(user, password) if err != nil { log.Println("ERROR: cannot encode credentials.", err) return nil, fmt.Errorf("TokenErrBadCred") } resp, err := a.client.Post(a.authURI, "text/json", strings.NewReader(credJSON)) if err != nil { log.Println("ERROR: failed auth request", err) if os.IsTimeout(err) { return nil, fmt.Errorf("TokenErrTimeout") } return nil, fmt.Errorf("TokenErrBadPost") } defer resp.Body.Close() if resp.StatusCode != 200 { return nil, fmt.Errorf("TokenErrBadStatus %d", resp.StatusCode) } token, err := ioutil.ReadAll(resp.Body) if err != nil { return nil, err } writeToken(token) return token, nil } func getTokenPath() string { return path.Join(config.Path, config.ApplicationName+".token") } func writeToken(token []byte) { tp := getTokenPath() err := ioutil.WriteFile(tp, token, 0600) if err != nil { log.Println("BUG: cannot write token to", tp, err) } } func readToken() ([]byte, error) { f, err := os.Open(getTokenPath()) if err != nil { log.Println("Error: cannot open token file", err) return nil, err } token, err := ioutil.ReadAll(f) if err != nil { log.Println("Error: cannot read token", err) return nil, err } return token, nil } func hasRecentToken() bool { /* See https://0xacab.org/leap/bitmask-vpn/-/issues/346 for ability to refresh tokens, when implemented that should be tried in a goroutine */ statinfo, err := os.Stat(getTokenPath()) if err != nil { return false } lastWrote := statinfo.ModTime().Unix() /* in vpnweb we set the duration of the token to 24 hours */ old := time.Now().Add(-time.Hour * 20).Unix() return lastWrote >= old } func formatCredentials(user, pass string) (string, error) { c := credentials{User: user, Password: pass} credJSON, err := json.Marshal(c) if err != nil { return "", err } return string(credJSON), nil } riseup-vpn-0.24.5+ds1/pkg/vpn/bonafide/bonafide.go000066400000000000000000000231561461742244100216420ustar00rootroot00000000000000// Copyright (C) 2018-2021 LEAP // // 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 . package bonafide import ( "crypto/tls" "crypto/x509" "encoding/json" "errors" "fmt" "io" "io/ioutil" "log" "net/http" "os" "runtime" "strings" "time" "0xacab.org/leap/bitmask-vpn/pkg/config" "0xacab.org/leap/bitmask-vpn/pkg/snowflake" ) const ( secondsPerHour = 60 * 60 retryFetchJSONSeconds = 15 winUserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.53" ) const ( certPathv1 = "1/cert" certPathv3 = "3/cert" authPathv3 = "3/auth" ) type Bonafide struct { client httpClient eip *eipService tzOffsetHours int gateways *gatewayPool maxGateways int auth authentication token []byte SnowflakeCh chan *snowflake.StatusEvent snowflakeProgress int snowflake bool } type openvpnConfig map[string]interface{} type httpClient interface { Post(url, contentType string, body io.Reader) (resp *http.Response, err error) Do(req *http.Request) (*http.Response, error) } type geoGateway struct { Host string `json:"host"` Fullness float64 `json:"fullness"` Overload bool `json:"overload"` } type geoLocation struct { IPAddress string `json:"ip"` Country string `json:"cc"` City string `json:"city"` Latitude float64 `json:"lat"` Longitude float64 `json:"lon"` Gateways []string `json:"gateways"` SortedGateways []geoGateway `json:"sortedGateways"` } // New Bonafide: Initializes a Bonafide object. By default, no Credentials are passed. func New() *Bonafide { certs, err := x509.SystemCertPool() if err != nil { log.Println("Error loading SystemCertPool, falling back to empty pool") certs = x509.NewCertPool() } certs.AppendCertsFromPEM(config.CaCert) client := &http.Client{ Transport: &http.Transport{ TLSClientConfig: &tls.Config{ RootCAs: certs, }, }, Timeout: time.Second * 30, } _, tzOffsetSeconds := time.Now().Zone() tzOffsetHours := tzOffsetSeconds / secondsPerHour b := &Bonafide{ client: client, eip: nil, tzOffsetHours: tzOffsetHours, } switch auth := config.Auth; auth { case "sip": log.Println("Client expects sip auth") b.auth = &sipAuthentication{client, b.getURL("auth")} case "anon": log.Println("Client expects anon auth") b.auth = &anonymousAuthentication{} default: log.Println("Client expects invalid auth", auth) b.auth = &anonymousAuthentication{} } return b } /* NeedsCredentials signals if we have to ask user for credentials. If false, it can be that we have a cached token */ func (b *Bonafide) NeedsCredentials() bool { if !b.auth.needsCredentials() { return false } /* try cached */ /* TODO cleanup this call - maybe expose getCachedToken instead of relying on empty creds? */ _, err := b.auth.getToken("", "") if err != nil { return true } return false } func (b *Bonafide) DoLogin(username, password string) (bool, error) { if !b.auth.needsCredentials() { return false, errors.New("Auth method does not need login") } var err error log.Println("Bonafide: getting token...") b.token, err = b.auth.getToken(username, password) if err != nil { return false, err } return true, nil } func (b *Bonafide) GetPemCertificate() ([]byte, error) { if b.auth == nil { log.Fatal("ERROR: bonafide did not initialize auth") } if b.auth.needsCredentials() { /* try cached token */ token, err := b.auth.getToken("", "") if err != nil { return nil, errors.New("bug: this service needs login, but we were not logged in") } b.token = token } req, err := http.NewRequest("POST", b.getURL("certv3"), strings.NewReader("")) if err != nil { return nil, err } if b.token != nil { req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", b.token)) } if runtime.GOOS == "windows" { req.Header.Add("User-Agent", winUserAgent) } resp, err := b.client.Do(req) if err != nil { return nil, err } defer resp.Body.Close() if resp.StatusCode == 404 { resp, err = b.client.Post(b.getURL("cert"), "", nil) if err != nil { return nil, err } defer resp.Body.Close() } if resp.StatusCode != 200 { return nil, fmt.Errorf("Get vpn cert has failed with status: %s", resp.Status) } return ioutil.ReadAll(resp.Body) } func (b *Bonafide) getURL(object string) string { switch object { case "cert": return config.APIURL + certPathv1 case "certv3": return config.APIURL + certPathv3 case "auth": return config.APIURL + authPathv3 } log.Println("BUG: unknown url object") return "" } func (b *Bonafide) watchSnowflakeProgress(ch chan *snowflake.StatusEvent) { // We need to keep track of the bootstrap process here, and then we // pass to the channel that is observed by the backend log.Println(">>> WATCH SNOWFLAKE") go func() { for { select { case evt := <-ch: b.snowflakeProgress = evt.Progress b.SnowflakeCh <- evt } } }() } func (b *Bonafide) maybeInitializeEIP() error { // FIXME - use config/bitmask flag if os.Getenv("SNOWFLAKE") == "1" { p := strings.ToLower(config.Provider) log.Println(b.snowflakeProgress) if b.snowflakeProgress != 100 { ch := make(chan *snowflake.StatusEvent, 20) b.watchSnowflakeProgress(ch) err := snowflake.BootstrapWithSnowflakeProxies(p, ch) if err != nil { return fmt.Errorf("Could not initialize snowflake: %s", err.Error()) } } err := b.parseEipJSONFromFile() if err != nil { return err } b.gateways = newGatewayPool(b.eip) } else { if b.eip == nil { err := b.fetchEipJSON() if err != nil { return err } b.gateways = newGatewayPool(b.eip) } // XXX For now, we just initialize once per session. // We might update the menshen gateways every time we 'maybe initilize EIP' // We might also want to be more clever on when to do that // (when opening the locations tab in the UI, only on reconnects, ...) // or just periodically - but we need to modify menshen api to // pass a location parameter. if len(b.gateways.recommended) == 0 { b.fetchGatewaysFromMenshen() } } return nil } // GetGateways filters by transport, and will return the maximum number defined // in bonafide.maxGateways, or the maximum by default (3). func (b *Bonafide) GetGateways(transport string) ([]Gateway, error) { err := b.maybeInitializeEIP() if err != nil { return nil, err } max := maxGateways if b.maxGateways != 0 { max = b.maxGateways } gws, err := b.gateways.getBest(transport, b.tzOffsetHours, max) return gws, err } // GetAllGateways only filters gateways by transport. // if "any" is provided it will return all gateways for all transports func (b *Bonafide) GetAllGateways(transport string) ([]Gateway, error) { err := b.maybeInitializeEIP() // XXX needs to wait for bonafide too if err != nil { return nil, err } gws, err := b.gateways.getAll(transport, b.tzOffsetHours) return gws, err } func (b *Bonafide) ListLocationFullness(transport string) map[string]float64 { return b.gateways.listLocationFullness(transport) } func (b *Bonafide) ListLocationLabels(transport string) map[string][]string { return b.gateways.listLocationLabels(transport) } func (b *Bonafide) SetManualGateway(label string) { b.gateways.setUserChoice(label) } func (b *Bonafide) SetAutomaticGateway() { b.gateways.setAutomaticChoice() } func (b *Bonafide) GetBestLocation(transport string) string { if b.gateways == nil { return "" } return b.gateways.getBestLocation(transport, b.tzOffsetHours) } func (b *Bonafide) IsManualLocation() bool { if b.gateways == nil { return false } return b.gateways.isManualLocation() } func (b *Bonafide) GetGatewayByIP(ip string) (Gateway, error) { return b.gateways.getGatewayByIP(ip) } func (b *Bonafide) fetchGatewaysFromMenshen() error { /* FIXME in float deployments, geolocation is served on * gemyip.domain/json, with a LE certificate, but in riseup is served * behind the api certificate. So this is a workaround until we * streamline that behavior */ resp, err := b.client.Post(config.GeolocationAPI, "", nil) if err != nil { client := &http.Client{} _resp, err := client.Post(config.GeolocationAPI, "", nil) if err != nil { log.Printf("ERROR: could not fetch geolocation: %s\n", err) return err } resp = _resp } defer resp.Body.Close() if resp.StatusCode != 200 { log.Println("ERROR: bad status code while fetching geolocation:", resp.StatusCode) return fmt.Errorf("Get geolocation failed with status: %d", resp.StatusCode) } geo := &geoLocation{} dataJSON, err := ioutil.ReadAll(resp.Body) err = json.Unmarshal(dataJSON, &geo) if err != nil { log.Printf("ERROR: cannot parse geolocation json: %s\n", err) log.Println(string(dataJSON)) _ = fmt.Errorf("bad json") return err } log.Println("Got sorted gateways:", geo.Gateways) b.gateways.setRecommendedGateways(geo) return nil } func (b *Bonafide) GetOpenvpnArgs() ([]string, error) { err := b.maybeInitializeEIP() if err != nil { return nil, err } return b.eip.getOpenvpnArgs(), nil } riseup-vpn-0.24.5+ds1/pkg/vpn/bonafide/bonafide_api_test.go000066400000000000000000000045551461742244100235340ustar00rootroot00000000000000package bonafide import ( "log" "testing" "0xacab.org/leap/bitmask-vpn/pkg/config" ) func TestBonafideAPI(t *testing.T) { initTestConfig() b := New() cert, err := b.GetPemCertificate() if err != nil { log.Fatal(err) } log.Println(string(cert)) } func initTestConfig() { config.APIURL = "https://api.black.riseup.net/" config.GeolocationAPI = "https://api.black.riseup.net:9001/json" config.CaCert = []byte(`-----BEGIN CERTIFICATE----- MIIFjTCCA3WgAwIBAgIBATANBgkqhkiG9w0BAQ0FADBZMRgwFgYDVQQKDA9SaXNl dXAgTmV0d29ya3MxGzAZBgNVBAsMEmh0dHBzOi8vcmlzZXVwLm5ldDEgMB4GA1UE AwwXUmlzZXVwIE5ldHdvcmtzIFJvb3QgQ0EwHhcNMTQwNDI4MDAwMDAwWhcNMjQw NDI4MDAwMDAwWjBZMRgwFgYDVQQKDA9SaXNldXAgTmV0d29ya3MxGzAZBgNVBAsM Emh0dHBzOi8vcmlzZXVwLm5ldDEgMB4GA1UEAwwXUmlzZXVwIE5ldHdvcmtzIFJv b3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC76J4ciMJ8Sg0m TP7DF2DT9zNe0Csk4myoMFC57rfJeqsAlJCv1XMzBmXrw8wq/9z7XHv6n/0sWU7a 7cF2hLR33ktjwODlx7vorU39/lXLndo492ZBhXQtG1INMShyv+nlmzO6GT7ESfNE LliFitEzwIegpMqxCIHXFuobGSCWF4N0qLHkq/SYUMoOJ96O3hmPSl1kFDRMtWXY iw1SEKjUvpyDJpVs3NGxeLCaA7bAWhDY5s5Yb2fA1o8ICAqhowurowJpW7n5ZuLK 5VNTlNy6nZpkjt1QycYvNycffyPOFm/Q/RKDlvnorJIrihPkyniV3YY5cGgP+Qkx HUOT0uLA6LHtzfiyaOqkXwc4b0ZcQD5Vbf6Prd20Ppt6ei0zazkUPwxld3hgyw58 m/4UIjG3PInWTNf293GngK2Bnz8Qx9e/6TueMSAn/3JBLem56E0WtmbLVjvko+LF PM5xA+m0BmuSJtrD1MUCXMhqYTtiOvgLBlUm5zkNxALzG+cXB28k6XikXt6MRG7q hzIPG38zwkooM55yy5i1YfcIi5NjMH6A+t4IJxxwb67MSb6UFOwg5kFokdONZcwj shczHdG9gLKSBIvrKa03Nd3W2dF9hMbRu//STcQxOailDBQCnXXfAATj9pYzdY4k ha8VCAREGAKTDAex9oXf1yRuktES4QIDAQABo2AwXjAdBgNVHQ4EFgQUC4tdmLVu f9hwfK4AGliaet5KkcgwDgYDVR0PAQH/BAQDAgIEMAwGA1UdEwQFMAMBAf8wHwYD VR0jBBgwFoAUC4tdmLVuf9hwfK4AGliaet5KkcgwDQYJKoZIhvcNAQENBQADggIB AGzL+GRnYu99zFoy0bXJKOGCF5XUXP/3gIXPRDqQf5g7Cu/jYMID9dB3No4Zmf7v qHjiSXiS8jx1j/6/Luk6PpFbT7QYm4QLs1f4BlfZOti2KE8r7KRDPIecUsUXW6P/ 3GJAVYH/+7OjA39za9AieM7+H5BELGccGrM5wfl7JeEz8in+V2ZWDzHQO4hMkiTQ 4ZckuaL201F68YpiItBNnJ9N5nHr1MRiGyApHmLXY/wvlrOpclh95qn+lG6/2jk7 3AmihLOKYMlPwPakJg4PYczm3icFLgTpjV5sq2md9bRyAg3oPGfAuWHmKj2Ikqch Td5CHKGxEEWbGUWEMP0s1A/JHWiCbDigc4Cfxhy56CWG4q0tYtnc2GMw8OAUO6Wf Xu5pYKNkzKSEtT/MrNJt44tTZWbKV/Pi/N2Fx36my7TgTUj7g3xcE9eF4JV2H/sg tsK3pwE0FEqGnT4qMFbixQmc8bGyuakr23wjMvfO7eZUxBuWYR2SkcP26sozF9PF tGhbZHQVGZUTVPyvwahMUEhbPGVerOW0IYpxkm0x/eaWdTc4vPpf/rIlgbAjarnJ UN9SaWRlWKSdP4haujnzCoJbM7dU9bjvlGZNyXEekgeT0W2qFeGGp+yyUWw8tNsp 0BuC1b7uW/bBn/xKm319wXVDvBgZgcktMolak39V7DVO -----END CERTIFICATE-----`) } riseup-vpn-0.24.5+ds1/pkg/vpn/bonafide/bonafide_integration_test.go000066400000000000000000000031501461742244100252740ustar00rootroot00000000000000//go:build integration // +build integration // Copyright (C) 2018 LEAP // // 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 . package bonafide import ( "bytes" "testing" ) const ( gwIP = "199.58.81.145" ) var ( privateKeyHeader = []byte("-----BEGIN RSA PRIVATE KEY-----") certHeader = []byte("-----BEGIN CERTIFICATE-----") ) func TestIntegrationGetCert(t *testing.T) { initTestConfig() b := New() cert, err := b.GetPemCertificate() if err != nil { t.Fatal("getCert returned an error: ", err) } if !bytes.Contains(cert, privateKeyHeader) { t.Errorf("No private key present: \n%q", cert) } if !bytes.Contains(cert, certHeader) { t.Errorf("No cert present: \n%q", cert) } } func _TestGetGateways(t *testing.T) { // FIXME: we return only 3 gateways now initTestConfig() b := New() gateways, err := b.GetGateways("openvpn") if err != nil { t.Fatal("getGateways returned an error: ", err) } for _, gw := range gateways { if gw.IPAddress == gwIP { return } } t.Errorf("%s not in the list", gwIP) } riseup-vpn-0.24.5+ds1/pkg/vpn/bonafide/bonafide_sip_integration_test.go000066400000000000000000000040161461742244100261510ustar00rootroot00000000000000//go:build integration // +build integration // Copyright (C) 2018 LEAP // // 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 . package bonafide import ( "bytes" "os" "testing" "0xacab.org/leap/bitmask-vpn/pkg/config" ) type SIPCreds struct { userOk, passOk string } func getFromEnv(name, defaultVar string) string { val, ok := os.LookupEnv(name) if !ok { return defaultVar } return val } func getSIPCreds() SIPCreds { userOk := getFromEnv("SIP_USER_OK", "test_user_ok") passOk := getFromEnv("SIP_PASS_OK", "test_pass_ok") creds := SIPCreds{ userOk: userOk, passOk: passOk, } return creds } func initTestConfigSIP() { config.APIURL = "https://localhost:8000/" } func _TestSIPIntegrationGetCert(t *testing.T) { // FIXME: we need to automatize the webapi start initTestConfigSIP() creds := getSIPCreds() b := New() b.auth = &sipAuthentication{b.client, b.getURL("auth")} ok, err := b.DoLogin(creds.userOk, creds.passOk) if err != nil { t.Fatal("DoLogin returned an error: ", err) } if !ok { t.Fatal("Invalid credentials") } cert, err := b.GetPemCertificate() if err != nil { t.Fatal("getCert returned an error: ", err) } if !bytes.Contains(cert, privateKeyHeader) { t.Errorf("No private key present: \n%q", cert) } if !bytes.Contains(cert, certHeader) { t.Errorf("No cert present: \n%q", cert) } /* TODO -- check we receive 401 for bad credentials */ /* TODO -- check we receive 4xx for no credentials */ } riseup-vpn-0.24.5+ds1/pkg/vpn/bonafide/bonafide_test.go000066400000000000000000000133131461742244100226730ustar00rootroot00000000000000// Copyright (C) 2018-2020 LEAP // // 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 . package bonafide import ( "io" "io/ioutil" "log" "net/http" "os" "reflect" "strconv" "strings" "testing" ) const ( certPath = "testdata/cert" geoPath = "testdata/geoloc.json" eip1Path = "testdata/eip-service.json" eipPath = "testdata/eip-service3.json" eipPathSip = "testdata/eip-service3-sip.json" ) type nopCloser struct { io.Reader } func (nopCloser) Close() error { return nil } type mockClient struct { path string geo string } func (c mockClient) Post(url, contentType string, body io.Reader) (resp *http.Response, err error) { /* FIXME - should get the mocked geolocation configured too */ if strings.Contains(url, "api.black.riseup.net:9001/json") { f, err := os.Open(c.geo) return &http.Response{ Body: f, StatusCode: 200, }, err } else { f, err := os.Open(c.path) return &http.Response{ Body: f, StatusCode: 200, }, err } } func (c mockClient) Do(req *http.Request) (*http.Response, error) { f, err := os.Open(c.path) return &http.Response{ Body: f, StatusCode: 200, }, err } func TestAnonGetCert(t *testing.T) { b := Bonafide{client: mockClient{certPath, geoPath}} b.auth = &anonymousAuthentication{} cert, err := b.GetPemCertificate() if err != nil { t.Fatal("getCert returned an error: ", err) } f, err := os.Open(certPath) if err != nil { t.Fatal("Can't open ", certPath, ": ", err) } defer f.Close() certData, err := ioutil.ReadAll(f) if err != nil { t.Fatal("Can't read all: ", err) } if !reflect.DeepEqual(certData, cert) { t.Errorf("cert doesn't match") } } func TestGatewayTzLocation(t *testing.T) { // tzOffset -> location values := map[int]string{ -12: "c", -10: "a", -5: "a", -3: "a", -1: "b", 0: "b", 2: "b", 5: "c", 8: "c", 12: "c", } for tzOffset, location := range values { b := Bonafide{ client: mockClient{eipPath, geoPath}, tzOffsetHours: tzOffset, } b.maxGateways = 99 gateways, err := b.GetGateways("openvpn") if err != nil { t.Errorf("getGateways returned an error: %v", err) continue } if len(gateways) < 4 { t.Errorf("Wrong number of gateways for tz %d: %d", tzOffset, len(gateways)) t.Fatal("aborting") } if gateways[0].Location != location { t.Errorf("Wrong location for tz %d: %s, expected: %s", tzOffset, gateways[0].Location, location) } } } func TestOpenvpnGateways(t *testing.T) { b := Bonafide{ client: mockClient{eipPath, geoPath}, } b.maxGateways = 10 gateways, err := b.GetGateways("openvpn") if err != nil { t.Fatalf("getGateways returned an error: %v", err) } if len(gateways) == 0 { t.Fatalf("No openvpn gateways found") } present := make([]bool, 6) for _, g := range gateways { i, err := strconv.Atoi(g.Host[0:1]) if err != nil { t.Fatalf("unkown host %s: %v", g.Host, err) } present[i] = true } for i, p := range present { switch i { case 0: continue case 5: if p { t.Errorf("Host %d should not have openvpn transport", i) } default: if !p { log.Println(">> present", present) t.Errorf("Host %d should have openvpn transport", i) } } } } func TestObfs4Gateways(t *testing.T) { b := Bonafide{ client: mockClient{eipPath, geoPath}, } b.maxGateways = 10 gateways, err := b.GetGateways("obfs4") if err != nil { t.Fatalf("getGateways returned an error: %v", err) } if len(gateways) == 0 { t.Fatalf("No obfs4 gateways found") } present := make([]bool, 6) for _, g := range gateways { i, err := strconv.Atoi(g.Host[0:1]) if err != nil { t.Fatalf("unkonwn host %s: %v", g.Host, err) } present[i] = true cert, ok := g.Options["cert"] if !ok { t.Fatalf("No cert in options (%s): %v", g.Host, g.Options) } if cert != "obfs-cert" { t.Errorf("No valid options given (%s): %v", g.Host, g.Options) } } for i, p := range present { switch i { case 0: continue case 2, 4: if p { t.Errorf("Host %d should not have obfs4 transport", i) } default: if !p { t.Errorf("Host %d should have obfs4 transport", i) } } } } type failingClient struct { path string } func (c failingClient) Post(url, contentType string, body io.Reader) (resp *http.Response, err error) { statusCode := 200 if strings.Contains(url, "3/config/eip-service.json") { statusCode = 404 } f, err := os.Open(c.path) return &http.Response{ Body: f, StatusCode: statusCode, }, err } func (c failingClient) Do(req *http.Request) (*http.Response, error) { f, err := os.Open(c.path) return &http.Response{ Body: f, StatusCode: 401, }, err } func TestEipServiceV1Fallback(t *testing.T) { b := Bonafide{ client: failingClient{eip1Path}, } b.maxGateways = 10 gateways, err := b.GetGateways("obfs4") if err != nil { t.Fatalf("getGateways obfs4 returned an error: %v", err) } if len(gateways) != 0 { t.Fatalf("It found some obfs4 gateways: %v", gateways) } gateways, err = b.GetGateways("openvpn") if err != nil { t.Fatalf("getGateways openvpn returned an error: %v", err) } if len(gateways) != 4 { t.Fatalf("Got wrong number of gateways: %v", gateways) } } riseup-vpn-0.24.5+ds1/pkg/vpn/bonafide/eip_service.go000066400000000000000000000136561461742244100223740ustar00rootroot00000000000000package bonafide import ( "encoding/json" "fmt" "io" "io/ioutil" "log" "os" "path/filepath" "strings" "time" "0xacab.org/leap/bitmask-vpn/pkg/config" ) type eipService struct { Gateways []gatewayV3 defaultGateway string Locations map[string]Location OpenvpnConfiguration openvpnConfig `json:"openvpn_configuration"` auth string } type eipServiceV1 struct { Gateways []gatewayV1 defaultGateway string Locations map[string]Location OpenvpnConfiguration openvpnConfig `json:"openvpn_configuration"` } type gatewayV1 struct { Capabilities struct { Ports []string Protocols []string } Host string IPAddress string `json:"ip_address"` Location string } type gatewayV3 struct { Capabilities struct { Transport []transportV3 } Host string IPAddress string `json:"ip_address"` Location string } type Location struct { CountryCode string `json:"country_code"` Hemisphere string Name string Timezone string } type transportV3 struct { Type string Protocols []string Ports []string Options map[string]string } func (b *Bonafide) setupAuthentication(i interface{}) { switch i.(type) { case eipService: switch auth := b.eip.auth; auth { case "anon": // Do nothing, we're set on initialization. case "sip": b.auth = &sipAuthentication{b.client, b.getURL("auth")} default: log.Printf("BUG: unknown authentication method %s", auth) } case eipServiceV1: // Do nothing, no auth on v1. } } func (b *Bonafide) IsUDPAvailable() bool { if b.eip == nil { return false } for _, gw := range b.eip.Gateways { for _, t := range gw.Capabilities.Transport { if t.Type == "openvpn" { for _, proto := range t.Protocols { if proto == "udp" { return true } } } } } return false } func (b *Bonafide) fetchEipJSON() error { eip3API := config.APIURL + "3/config/eip-service.json" resp, err := b.client.Post(eip3API, "", nil) for err != nil { resp, err = b.client.Post(eip3API, "", nil) if err != nil { log.Printf("Error fetching eip v3 json: %v", err) time.Sleep(retryFetchJSONSeconds * time.Second) } } defer resp.Body.Close() switch resp.StatusCode { case 200: b.eip, err = decodeEIP3(resp.Body) case 404: buf := make([]byte, 128) resp.Body.Read(buf) log.Printf("Error fetching eip v3 json") eip1API := config.APIURL + "1/config/eip-service.json" resp, err = b.client.Post(eip1API, "", nil) if err != nil { return err } defer resp.Body.Close() if resp.StatusCode != 200 { return fmt.Errorf("Get eip json has failed with status: %s", resp.Status) } b.eip, err = decodeEIP1(resp.Body) default: return fmt.Errorf("Get eip json has failed with status: %s", resp.Status) } if err != nil { return err } b.setupAuthentication(b.eip) return nil } func (b *Bonafide) parseEipJSONFromFile() error { provider := strings.ToLower(config.Provider) eipFile := filepath.Join(config.Path, provider+"-eip.json") f, err := os.Open(eipFile) if err != nil { return err } b.eip, err = decodeEIP3(f) return err } func decodeEIP3(body io.Reader) (*eipService, error) { var eip eipService decoder := json.NewDecoder(body) err := decoder.Decode(&eip) return &eip, err } func decodeEIP1(body io.Reader) (*eipService, error) { var eip1 eipServiceV1 decoder := json.NewDecoder(body) err := decoder.Decode(&eip1) if err != nil { log.Printf("Error fetching eip v1 json: %v", err) return nil, err } eip3 := eipService{ Gateways: make([]gatewayV3, len(eip1.Gateways)), Locations: eip1.Locations, OpenvpnConfiguration: eip1.OpenvpnConfiguration, } for _, g := range eip1.Gateways { gateway := gatewayV3{ Host: g.Host, IPAddress: g.IPAddress, Location: g.Location, } gateway.Capabilities.Transport = []transportV3{ { Type: "openvpn", Ports: g.Capabilities.Ports, Protocols: g.Capabilities.Protocols, }, } eip3.Gateways = append(eip3.Gateways, gateway) } return &eip3, nil } func (eip eipService) getGateways() []Gateway { gws := []Gateway{} for _, g := range eip.Gateways { for _, t := range g.Capabilities.Transport { gateway := Gateway{ Host: g.Host, IPAddress: g.IPAddress, Location: g.Location, Ports: t.Ports, Protocols: t.Protocols, Options: t.Options, Transport: t.Type, LocationName: eip.Locations[g.Location].Name, CountryCode: eip.Locations[g.Location].CountryCode, } gws = append(gws, gateway) } } return gws } func (eip eipService) getOpenvpnArgs() []string { args := []string{} var cfg = eip.OpenvpnConfiguration // for debug purposes, we allow parsing an extra block of openvpn configurations. if openvpnExtra := os.Getenv("LEAP_OPENVPN_EXTRA_CONFIG"); openvpnExtra != "" { extraConfig, err := parseOpenvpnArgsFromFile(openvpnExtra) if err != nil { log.Println("Error parsing extra config:", err) } else { cfg = *extraConfig } } for arg, value := range cfg { switch v := value.(type) { case string: // this is a transitioning hack for the transition to float deployment, // assuming we're using openvpn 2.5. We're treating the "cipher" // string that the platform sends us as the newer data-cipher // which includes colon-separated ciphers. if arg == "cipher" { arg = "data-ciphers" } args = append(args, "--"+arg) args = append(args, strings.Split(v, " ")...) case bool: if v { args = append(args, "--"+arg) } default: log.Printf("Unknown openvpn argument type: %s - %v", arg, value) } } return args } func parseOpenvpnArgsFromFile(path string) (*openvpnConfig, error) { // TODO sanitize options: check keys against array of allowed options f, err := os.Open(path) defer f.Close() if err != nil { return nil, err } byteValue, _ := ioutil.ReadAll(f) var cfg openvpnConfig json.Unmarshal([]byte(byteValue), &cfg) return &cfg, nil } riseup-vpn-0.24.5+ds1/pkg/vpn/bonafide/gateways.go000066400000000000000000000256321461742244100217200ustar00rootroot00000000000000package bonafide import ( "errors" "log" "math/rand" "os" "sort" "strconv" "time" ) const ( maxGateways = 3 ) // Load reflects the fullness metric that menshen returns, if available. type Load struct { gateway *Gateway Fullness float64 Overload bool } // A Gateway is a representation of gateways that is independent of the api version. // If a given physical location offers different transports, they will appear // as separate gateways, so make sure to filter them. type Gateway struct { Host string IPAddress string Location string LocationName string CountryCode string Ports []string Protocols []string Options map[string]string Transport string } /* gatewayDistance is used in the timezone distance fallback */ type gatewayDistance struct { gateway Gateway distance int } type gatewayPool struct { /* available is the unordered list of gateways from eip-service, we use if as source-of-truth for now. */ available []Gateway userChoice string /* byLocation is a map from location to an array of hostnames */ byLocation map[string][]*Gateway /* recommended is an array of hostnames, fetched from the old geoip service. */ recommended []Load /* TODO locations are just used to get the timezone for each gateway. I * think it's easier to just merge that info into the version-agnostic * Gateway, that is passed from the eipService, and do not worry with * the location here */ locations map[string]Location } func (gw Gateway) isTransport(transport string) bool { return transport == "any" || gw.Transport == transport } func (p *gatewayPool) populateLocationList() { for i, gw := range p.available { p.byLocation[gw.Location] = append(p.byLocation[gw.Location], &p.available[i]) } } func (p *gatewayPool) getLocations() []string { c := make([]string, 0) if p == nil || p.byLocation == nil || len(p.byLocation) == 0 { return c } if len(p.byLocation) != 0 { for city := range p.byLocation { c = append(c, city) } } return c } func (p *gatewayPool) isValidLocation(location string) bool { locations := p.getLocations() valid := stringInSlice(location, locations) return valid } /* returns a map of location: fullness for the ui to use */ func (p *gatewayPool) listLocationFullness(transport string) map[string]float64 { locations := p.getLocations() cm := make(map[string]float64) if len(locations) == 0 { return cm } if len(p.recommended) != 0 { for idx, gw := range p.recommended { if gw.gateway.Transport != transport { continue } if _, ok := cm[gw.gateway.Location]; ok { continue } if gw.Fullness != -1 { cm[gw.gateway.Location] = gw.Fullness } else { cm[gw.gateway.Location] = 1 - float64(idx)/float64(len(p.recommended)) } } } else { for _, location := range locations { cm[location] = -1 } } return cm } /* returns a map of location: labels for the ui to use */ func (p *gatewayPool) listLocationLabels(transport string) map[string][]string { cm := make(map[string][]string) locations := p.getLocations() if len(locations) == 0 { return cm } for _, loc := range locations { current := p.locations[loc] cm[loc] = []string{current.Name, current.CountryCode} } return cm } /* this method should only be used if we have no usable menshen list. */ func (p *gatewayPool) getRandomGatewaysByLocation(location, transport string) ([]Gateway, error) { if !p.isValidLocation(location) { return []Gateway{}, errors.New("bonafide: BUG not a valid location: " + location) } gws := p.byLocation[location] if len(gws) == 0 { return []Gateway{}, errors.New("bonafide: BUG no gw for location: " + location) } r := rand.New(rand.NewSource(time.Now().Unix())) r.Shuffle(len(gws), func(i, j int) { gws[i], gws[j] = gws[j], gws[i] }) var gateways []Gateway for _, gw := range gws { if gw.isTransport(transport) { gateways = append(gateways, *gw) } if len(gateways) == maxGateways { break } } if len(gateways) == 0 { return []Gateway{}, errors.New("bonafide: BUG could not find any gateway for that location") } return gateways, nil } func (p *gatewayPool) getGatewaysFromMenshenByLocation(location, transport string) ([]Gateway, error) { if !p.isValidLocation(location) { return []Gateway{}, errors.New("bonafide: BUG not a valid location: " + location) } gws := p.byLocation[location] if len(gws) == 0 { return []Gateway{}, errors.New("bonafide: BUG no gw for location: " + location) } var gateways []Gateway for _, gw := range p.recommended { for _, locatedGw := range gws { if !locatedGw.isTransport(transport) { continue } if locatedGw.Host == gw.gateway.Host { gateways = append(gateways, *locatedGw) break } } if len(gateways) == maxGateways { break } } if len(gateways) == 0 { return []Gateway{}, errors.New("bonafide: BUG could not find any gateway for that location") } return gateways, nil } /* used when we select a hostname in the ui and we want to know the gateway details */ func (p *gatewayPool) getGatewayByHost(host string) (Gateway, error) { for _, gw := range p.available { if gw.Host == host { return gw, nil } } return Gateway{}, errors.New("bonafide: not a valid host name") } /* used when we want to know gateway details after we know what IP openvpn has connected to */ func (p *gatewayPool) getGatewayByIP(ip string) (Gateway, error) { for _, gw := range p.available { if gw.IPAddress == ip { return gw, nil } } return Gateway{}, errors.New("bonafide: not a valid ip address") } /* this perhaps could be made more explicit */ func (p *gatewayPool) setAutomaticChoice() { p.userChoice = "" } /* set a user manual override for gateway location */ func (p *gatewayPool) setUserChoice(location string) error { if !p.isValidLocation(location) { return errors.New("bonafide: not a valid city for gateway choice") } p.userChoice = location return nil } func (p *gatewayPool) isManualLocation() bool { return len(p.userChoice) != 0 } /* set the recommended field from an ordered array. needs to be modified if menshen passed an array of Loads */ func (p *gatewayPool) setRecommendedGateways(geo *geoLocation) { var recommended []Load if len(geo.SortedGateways) != 0 { for _, gw := range geo.SortedGateways { found := false for i := range p.available { if p.available[i].Host == gw.Host { recommendedGw := Load{ Fullness: gw.Fullness, Overload: gw.Overload, gateway: &p.available[i], } recommended = append(recommended, recommendedGw) found = true } } if !found { log.Println("ERROR: invalid host in recommended list of hostnames", gw.Host) return } } } else { // If there is not sorted gatways, it means that the old menshen API is being used // let's use the list of hosts then for _, host := range geo.Gateways { found := false for i := range p.available { if p.available[i].Host == host { recommendedGw := Load{ Fullness: -1, gateway: &p.available[i], } recommended = append(recommended, recommendedGw) found = true } } if !found { log.Println("ERROR: invalid host in recommended list of hostnames", host) return } } } p.recommended = recommended } /* get at most max gateways. the method of picking depends on whether we're * doing manual override, and if we got useful info from menshen */ func (p *gatewayPool) getBest(transport string, tz, max int) ([]Gateway, error) { if hostname := os.Getenv("LEAP_GW"); hostname != "" { log.Printf("Gateway selection manually overriden: %v\n", hostname) return p.getGatewaysByHostname(hostname) } if p.isManualLocation() { if len(p.recommended) != 0 { return p.getGatewaysFromMenshenByLocation(p.userChoice, transport) } else { return p.getRandomGatewaysByLocation(p.userChoice, transport) } } else if len(p.recommended) != 0 { return p.getGatewaysFromMenshen(transport, max) } else { return p.getGatewaysByTimezone(transport, tz, max) } } /* returns the location for the first recommended gateway */ func (p *gatewayPool) getBestLocation(transport string, tz int) string { best, err := p.getBest(transport, tz, 1) if err != nil { return "" } if len(best) != 1 { return "" } return best[0].Location } func (p *gatewayPool) getAll(transport string, tz int) ([]Gateway, error) { if (&gatewayPool{} == p) { log.Println("getAll tried to access uninitialized struct") return []Gateway{}, nil } log.Println("seems to be initialized...") if len(p.recommended) == 0 { return p.getGatewaysFromMenshen(transport, 999) } return p.getGatewaysByTimezone(transport, tz, 999) } /* picks at most max gateways, filtering by transport, from the ordered list menshen returned */ func (p *gatewayPool) getGatewaysFromMenshen(transport string, max int) ([]Gateway, error) { gws := make([]Gateway, 0) for _, gw := range p.recommended { if !gw.gateway.isTransport(transport) { continue } gws = append(gws, *gw.gateway) if len(gws) == max { break } } return gws, nil } /* the old timezone based heuristic, when everything goes wrong */ func (p *gatewayPool) getGatewaysByTimezone(transport string, tzOffsetHours, max int) ([]Gateway, error) { gws := make([]Gateway, 0) gwVector := []gatewayDistance{} for _, gw := range p.available { if !gw.isTransport(transport) { continue } distance := 13 gwOffset, err := strconv.Atoi(p.locations[gw.Location].Timezone) if err != nil { log.Printf("Error sorting gateways: %v", err) return gws, err } distance = tzDistance(tzOffsetHours, gwOffset) gwVector = append(gwVector, gatewayDistance{gw, distance}) } rand.Seed(time.Now().UnixNano()) cmp := func(i, j int) bool { if gwVector[i].distance == gwVector[j].distance { return rand.Intn(2) == 1 } return gwVector[i].distance < gwVector[j].distance } sort.Slice(gwVector, cmp) for _, gw := range gwVector { gws = append(gws, gw.gateway) if len(gws) == max { break } } return gws, nil } // getGatewaysByHostname filters the gateway pool by hostname. If it finds a // gateway matching the passed hostname, it will return a Gateway array with // exactly one gateway. It will also return an error (which is always nil at // the moment, but for coherence with similar methods). func (p *gatewayPool) getGatewaysByHostname(hostname string) ([]Gateway, error) { gws := make([]Gateway, 0) for _, gw := range p.available { if gw.Host == hostname { gws = append(gws, gw) } } return gws, nil } func newGatewayPool(eip *eipService) *gatewayPool { p := gatewayPool{} p.available = eip.getGateways() p.locations = eip.Locations p.byLocation = make(map[string][]*Gateway) p.populateLocationList() return &p } func tzDistance(offset1, offset2 int) int { abs := func(x int) int { if x < 0 { return -x } return x } distance := abs(offset1 - offset2) if distance > 12 { distance = 24 - distance } return distance } func stringInSlice(a string, list []string) bool { for _, b := range list { if b == a { return true } } return false } riseup-vpn-0.24.5+ds1/pkg/vpn/bonafide/gateways_test.go000066400000000000000000000040161461742244100227500ustar00rootroot00000000000000package bonafide import ( "reflect" "sort" "testing" ) const ( eipGwTestPath = "testdata/eip-service3.json" ) func TestGatewayPool(t *testing.T) { b := Bonafide{client: mockClient{eipGwTestPath, geoPath}} err := b.fetchEipJSON() if err != nil { t.Fatal("fetchEipJSON returned an error: ", err) } g := gatewayPool{available: b.eip.getGateways()} if len(g.available) != 7 { /* just to check that the dataset has not changed */ t.Fatal("Expected 7 initial gateways, got", len(g.available)) } /* now we initialize a pool the proper way */ pool := newGatewayPool(b.eip) if len(pool.available) != 7 { t.Fatal("Expected 7 initial gateways, got", len(g.available)) } expectedLabels := []string{"a", "b", "c"} sort.Strings(expectedLabels) labels := pool.getLocations() sort.Strings(labels) if !reflect.DeepEqual(expectedLabels, labels) { t.Fatal("gatewayPool labels not what expected. Got:", labels) } if pool.userChoice != "" { t.Fatal("userChoice should be empty by default") } err = pool.setUserChoice("foo") if err == nil { t.Fatal("gatewayPool should not let you set a foo gateway") } err = pool.setUserChoice("a") if err != nil { t.Fatal("location 'a' should be a valid label") } err = pool.setUserChoice("c") if err != nil { t.Fatal("location 'c' should be a valid label") } if string(pool.userChoice) != "c" { t.Fatal("userChoice should be c") } pool.setAutomaticChoice() if string(pool.userChoice) != "" { t.Fatal("userChoice should be empty after auto selection") } _, err = pool.getRandomGatewaysByLocation("foo", "openvpn") if err == nil { t.Fatal("should get an error with invalid label") } gws, err := pool.getRandomGatewaysByLocation("a", "openvpn") if gws[0].IPAddress != "1.1.1.1" { t.Fatal("expected to get gw 1.1.1.1 with label a") } gw, err := pool.getGatewayByIP("1.1.1.1") if err != nil { t.Fatal("expected to get gw a with ip 1.1.1.1") } if gw.Host != "1.example.com" { t.Fatal("expected to get gw 1.example.com with ip 1.1.1.1") } // TODO test getBest } riseup-vpn-0.24.5+ds1/pkg/vpn/bonafide/testdata/000077500000000000000000000000001461742244100213465ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/pkg/vpn/bonafide/testdata/cert000066400000000000000000000064121461742244100222310ustar00rootroot00000000000000-----BEGIN RSA PRIVATE KEY----- MIIEpQIBAAKCAQEA3TQAmZs9U6e1xqQqVWkb132AGXdaO97bsXPOrrKUp63hKeXD 2OQbmG96H3COi0uubVFQT1cAmpuym2COtgahQlnv42p0u2CYsBqfrCHw3iSK7nf6 Q8RaG2oUIvlQj5m4DUk1wfRBgG5z0pN2HwFWmgheoT0RnOelTO3vcLCaSJA6PF4M Wehg5ScXi9wr0vibKsANpqab3oUxcHEYcNcKfJKRnXryJx6ctLrRp1WPv3JAXLnn oUtQ00S0dSHrLED5yPwGFV08q4bkv54qFai2cPO8ITReC6BpvrilBzOjT6fjCmzm 6MCwBot7aRHYcWJgfp7H2b2S7T2qhnC4c2u6mwIDAQABAoIBAFue83SsOS2SNJdv Xd18qLyLzeg+aFCOET8h8YSokSwWuEGLWqBWcxujaNjm3RPTKA89c9848RYY0VTM HLBGdLqv183BRVJrQzMGBAbfFA5e4nC9nxo8lPnv6SFHVNf12qceILcSPaM9nJmm 3HEhM8afGtr8GXR8+hmwH9H0RCMzXIjO1//WrY3nfOP8LRuQpSnnhsfZRyngWhot xsJlDP5plFNw7J/PDLtbjnbOXOktv0fhhq7aWR+A+0s0627r7Tidk1YoNwusYJeB uKrzNW1+c7Z9xl2yvMQ6+0Wry7A5YUVYP/BakYb/f/skB4ox/zz8vcWeQ4ShZ7m6 LwPN0ckCgYEA+9wjSBbOlksath3QrJywikD1sQYFOdNrINTBFQnuipKOYKLJNhQM OzKHY1OiO7G6FcEvz9gKYMpMyMOs8TsISyKPNOXLpnwpgIUx6WRo6qxgEuyWLpBb Q3Kodl1a/q51dw56pPDEATKjSB1CjXXzm717m5FimH5csPKj9SzrGecCgYEA4Nbb QML1Jh9cu7TvlK3WqbAFJa4Mx/0+OQ+5xlhbs/ygn3/AZiSsPWdNK11XJ25jgGJw AucXr/kHgwJX23kFpCYB3zZE0Vh/hOqk/KlUFmptuADIDOAVst0v8MqBLZpZessN TXph5VBT6P51Oz/ZLC67uno02R1vUhDMB5VCyy0CgYEAoriZuuuxUXz4pw0gU0Vw 8gICOvsuySuFHVMX5GXkTnddsaW65kuRk3WT72KLgJHVLlUAdQKZwesyLMvvonOH ajPL3ltRdiDmF3j2xFnxRx1TfSaJ6U+vBya/HKo4Li+9CMy8BHDh0fxLbj4pT4gT el2zzNDjqK6LaG976t24j6UCgYEAyTD5uRW7cIWX4Y+i4xQ7hlQwBuucHEkMKNtd jZL7XC+vO4qBi+U9CyUo9KjtmCc7emKbgL1xgNICWsT6ATZmSeCIxEg3hG0Ajtu5 Dy4mRHiv/XsViA/s2sT6ZSmQNlJrx2lzWeUtPJmIvHEWThJwLw0Sh2dbavzf5DuL ly2FO3ECgYEA5AKnPQo45I+abEA/zKHsKHCqBPEbIaZpJJTaiInrsLiGJf+WzN4N zr/VAzvY+v0X5RgZmROY5ZLPVf2fTeVNzU5WzoB78hHOI67YI2Sbq7jZlatOgX4z Ur2BQdT0bW6VINYpDLUvS4goW5p0nQbGItdk69yyef1v3NDbCJ/Sg+Q= -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- MIIEnDCCAoSgAwIBAgIRAJzr5xxPLgDD+drzU+5p8cgwDQYJKoZIhvcNAQELBQAw dTEYMBYGA1UECgwPUmlzZXVwIE5ldHdvcmtzMRswGQYDVQQLDBJodHRwczovL3Jp c2V1cC5uZXQxPDA6BgNVBAMMM1Jpc2V1cCBOZXR3b3JrcyBSb290IENBIChjbGll bnQgY2VydGlmaWNhdGVzIG9ubHkhKTAeFw0xODEwMjMwMDAwMDBaFw0xOTAxMjMw MDAwMDBaMC0xKzApBgNVBAMMIlVOTElNSVRFRDVmbzdsMmxiY3g0OWR5ZzR5MWY4 YXN3YXcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDdNACZmz1Tp7XG pCpVaRvXfYAZd1o73tuxc86uspSnreEp5cPY5BuYb3ofcI6LS65tUVBPVwCam7Kb YI62BqFCWe/janS7YJiwGp+sIfDeJIrud/pDxFobahQi+VCPmbgNSTXB9EGAbnPS k3YfAVaaCF6hPRGc56VM7e9wsJpIkDo8XgxZ6GDlJxeL3CvS+JsqwA2mppvehTFw cRhw1wp8kpGdevInHpy0utGnVY+/ckBcueehS1DTRLR1IessQPnI/AYVXTyrhuS/ nioVqLZw87whNF4LoGm+uKUHM6NPp+MKbObowLAGi3tpEdhxYmB+nsfZvZLtPaqG cLhza7qbAgMBAAGjbzBtMB0GA1UdDgQWBBRwXpI96PjilFPrkK+CHUPia++ISTAL BgNVHQ8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCQYDVR0TBAIwADAfBgNV HSMEGDAWgBQX9BvV5SoBAU1rol02CikJlmWARjANBgkqhkiG9w0BAQsFAAOCAgEA ryNFLixuicVRepocY2lTSY0cpG0eRmLuYJGupk9KeiLA5YEFzl4ZfXJLi+9UHoUR Bgfe6QYLBb77nO24CoeiMJQw6s593ctMLiMU++fjew31gNp6aA9DmvbLd+fNuLyO XObRtGw99M37cyf3ZS2SEbTBr4NBp/r3OCyUYsxPYKOzEkr9kNYa8ZZSI960i7/R /aiq2qemQaOQHTlmrhcBuARJoRVVlLnn2zgLSVm6ptbFLNtAk0lWriUT/WlRmn8j Cyn/JOuo/1wtrK1dHkaXr8bkEq1oFQzcwMN85hrZKWU0BCehELZtiUg8grqaX/sf /jaXD61FEqWjIXeGqY/K6ruosZCw2R8sQYzTuQNHMjxmx+J3pch7dMmJPbmA3HW2 nA7yVp51SX8iZ26zb40S7GG6RNesU+BZxz05XVLt1GwyLx/uNxS4rFpKAT/+ifWG 3Y1j1lMqBxx6RbuqiM1TWqU7Xtzu3hf8ytP5qP7kudXn1TyNtpZCIrzbTXbLnYiD nH4ZQEWGyAKBOz41eOcG6EXn0TznSGE593ueXBeFnsym7i9MjoOWNGaJ7UbkipfX FzxirlY5IRkWnmHCL0wGUg6YGnZ1OQ8VBBGb/dBPRMDwA7zWvoM7+3yDLR3aRaLH mTQzNzu3jy6CRdlpIUcPRcgbniySip1jJrHRYBui+9w= -----END CERTIFICATE----- riseup-vpn-0.24.5+ds1/pkg/vpn/bonafide/testdata/eip-service.json000066400000000000000000000041241461742244100244550ustar00rootroot00000000000000{ "gateways": [ { "capabilities": { "adblock": false, "filter_dns": false, "limited": false, "ports": [ "443" ], "protocols": [ "tcp" ], "transport": [ "openvpn" ], "user_ips": false }, "host": "1.example.com", "ip_address": "1.1.1.1", "location": "a" }, { "capabilities": { "adblock": false, "filter_dns": false, "limited": false, "ports": [ "443" ], "protocols": [ "tcp" ], "transport": [ "openvpn" ], "user_ips": false }, "host": "2.example.com", "ip_address": "2.2.2.2", "location": "b" }, { "capabilities": { "adblock": false, "filter_dns": false, "limited": false, "ports": [ "443" ], "protocols": [ "tcp" ], "transport": [ "openvpn" ], "user_ips": false }, "host": "3.example.com", "ip_address": "3.3.3.3", "location": "b" }, { "capabilities": { "adblock": false, "filter_dns": false, "limited": false, "ports": [ "443" ], "protocols": [ "tcp" ], "transport": [ "openvpn" ], "user_ips": false }, "host": "4.example.com", "ip_address": "4.4.4.4", "location": "c" } ], "locations": { "a": { "country_code": "AA", "hemisphere": "N", "name": "a", "timezone": "-5" }, "b": { "country_code": "BB", "hemisphere": "S", "name": "b", "timezone": "+1" }, "c": { "country_code": "CC", "hemisphere": "N", "name": "c", "timezone": "+8" } }, "openvpn_configuration": { "auth": "SHA1", "cipher": "AES-128-CBC", "keepalive": "10 30", "tls-cipher": "DHE-RSA-AES128-SHA", "tun-ipv6": true }, "serial": 1, "version": 1 } riseup-vpn-0.24.5+ds1/pkg/vpn/bonafide/testdata/eip-service3-sip.json000066400000000000000000000065051461742244100253360ustar00rootroot00000000000000{ "gateways": [ { "capabilities": { "adblock": false, "filter_dns": false, "limited": false, "transport": [ { "type": "openvpn", "ports": [ "443" ], "protocols": [ "tcp" ] }, { "type": "obfs4", "ports": [ "2345" ], "protocols": [ "tcp" ], "options": { "cert": "obfs-cert", "iat-mode": "0" } } ], "user_ips": false }, "host": "1.example.com", "ip_address": "1.1.1.1", "location": "a" }, { "capabilities": { "adblock": false, "filter_dns": false, "limited": false, "transport": [ { "type": "openvpn", "ports": [ "443" ], "protocols": [ "tcp" ] } ], "user_ips": false }, "host": "2.example.com", "ip_address": "2.2.2.2", "location": "b" }, { "capabilities": { "adblock": false, "filter_dns": false, "limited": false, "transport": [ { "type": "openvpn", "ports": [ "443" ], "protocols": [ "tcp" ] }, { "type": "obfs4", "ports": [ "2345" ], "protocols": [ "tcp" ], "options": { "cert": "obfs-cert", "iat-mode": "0" } } ], "user_ips": false }, "host": "3.example.com", "ip_address": "3.3.3.3", "location": "b" }, { "capabilities": { "adblock": false, "filter_dns": false, "limited": false, "transport": [ { "type": "openvpn", "ports": [ "443" ], "protocols": [ "tcp" ] } ], "user_ips": false }, "host": "4.example.com", "ip_address": "4.4.4.4", "location": "c" }, { "capabilities": { "adblock": false, "filter_dns": false, "limited": false, "transport": [ { "type": "obfs4", "ports": [ "2345" ], "protocols": [ "tcp" ], "options": { "cert": "obfs-cert", "iat-mode": "0" } } ], "user_ips": false }, "host": "5.example.com", "ip_address": "5.5.5.5", "location": "c" } ], "locations": { "a": { "country_code": "AA", "hemisphere": "N", "name": "a", "timezone": "-5" }, "b": { "country_code": "BB", "hemisphere": "S", "name": "b", "timezone": "+1" }, "c": { "country_code": "CC", "hemisphere": "N", "name": "c", "timezone": "+8" } }, "openvpn_configuration": { "auth": "SHA1", "cipher": "AES-128-CBC", "keepalive": "10 30", "tls-cipher": "DHE-RSA-AES128-SHA", "tun-ipv6": true }, "auth": "sip", "serial": 1, "version": 3 } riseup-vpn-0.24.5+ds1/pkg/vpn/bonafide/testdata/eip-service3.json000066400000000000000000000066171461742244100245510ustar00rootroot00000000000000{ "gateways": [ { "capabilities": { "adblock": false, "filter_dns": false, "limited": false, "transport": [ { "type": "openvpn", "ports": [ "443" ], "protocols": [ "tcp" ] }, { "type": "obfs4", "ports": [ "2345" ], "protocols": [ "tcp" ], "options": { "cert": "obfs-cert", "iat-mode": "0" } } ], "user_ips": false }, "host": "1.example.com", "ip_address": "1.1.1.1", "location": "a" }, { "capabilities": { "adblock": false, "filter_dns": false, "limited": false, "transport": [ { "type": "openvpn", "ports": [ "443" ], "protocols": [ "tcp" ] } ], "user_ips": false }, "host": "2.example.com", "ip_address": "2.2.2.2", "location": "b" }, { "capabilities": { "adblock": false, "filter_dns": false, "limited": false, "transport": [ { "type": "openvpn", "ports": [ "443" ], "protocols": [ "tcp" ] }, { "type": "obfs4", "ports": [ "2345" ], "protocols": [ "tcp" ], "options": { "cert": "obfs-cert", "iat-mode": "0" } } ], "user_ips": false }, "host": "3.example.com", "ip_address": "3.3.3.3", "location": "b" }, { "capabilities": { "adblock": false, "filter_dns": false, "limited": false, "transport": [ { "type": "openvpn", "ports": [ "443" ], "protocols": [ "tcp" ] } ], "user_ips": false }, "host": "4.example.com", "ip_address": "4.4.4.4", "location": "c" }, { "capabilities": { "adblock": false, "filter_dns": false, "limited": false, "transport": [ { "type": "obfs4", "ports": [ "2345" ], "protocols": [ "tcp" ], "options": { "cert": "obfs-cert", "iat-mode": "0" } } ], "user_ips": false }, "host": "5.example.com", "ip_address": "5.5.5.5", "location": "c" } ], "locations": { "a": { "country_code": "AA", "hemisphere": "N", "name": "a", "timezone": "-5" }, "b": { "country_code": "BB", "hemisphere": "S", "name": "b", "timezone": "+1" }, "c": { "country_code": "CC", "hemisphere": "N", "name": "c", "timezone": "+8" } }, "openvpn_configuration": { "auth": "SHA1", "cipher": "AES-128-CBC", "keepalive": "10 30", "tls-cipher": "DHE-RSA-AES128-SHA", "tun-ipv6": true }, "serial": 1, "version": 3 } riseup-vpn-0.24.5+ds1/pkg/vpn/bonafide/testdata/geoloc.json000066400000000000000000000001111461742244100235020ustar00rootroot00000000000000{"ip":"1.1.1.1","cc":"UK","city":"London","lat":0,"lon":0,"gateways":[]} riseup-vpn-0.24.5+ds1/pkg/vpn/demux/000077500000000000000000000000001461742244100171105ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/pkg/vpn/demux/demuxer.go000066400000000000000000000061201461742244100211070ustar00rootroot00000000000000// Copyright (c) 2016 Martin Atkins // Permission is hereby granted, free of charge, to any person obtaining a copy of // this software and associated documentation files (the "Software"), to deal in // the Software without restriction, including without limitation the rights to // use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies // of the Software, and to permit persons to whom the Software is furnished to do // so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package demux import ( "bufio" "io" ) var readErrSynthEvent = []byte("FATAL:Error reading from OpenVPN") // Demultiplex reads from the given io.Reader, assumed to be the client // end of an OpenVPN Management Protocol connection, and splits it into // distinct messages from OpenVPN. // // It then writes the raw message buffers into either replyCh or eventCh // depending on whether each message is a reply to a client command or // an asynchronous event notification. // // The buffers written to replyCh are entire raw message lines (without the // trailing newlines), while the buffers written to eventCh are the raw // event strings with the prototcol's leading '>' indicator omitted. // // The caller should usually provide buffered channels of sufficient buffer // depth so that the reply channel will not be starved by slow event // processing. // // Once the io.Reader signals EOF, eventCh will be closed, then replyCh // will be closed, and then this function will return. // // As a special case, if a non-EOF error occurs while reading from the // io.Reader then a synthetic "FATAL" event will be written to eventCh // before the two buffers are closed and the function returns. This // synthetic message will have the error message "Error reading from OpenVPN". func Demultiplex(r io.Reader, replyCh, eventCh chan<- []byte) { scanner := bufio.NewScanner(r) for scanner.Scan() { buf := scanner.Bytes() if len(buf) < 1 { // Should never happen but we'll be robust and ignore this, // rather than crashing below. continue } // Asynchronous messages always start with > to differentiate // them from replies. if buf[0] == '>' { // Trim off the > when we post the message, since it's // redundant after we've demuxed. eventCh <- buf[1:] } else { replyCh <- buf } } if err := scanner.Err(); err != nil { // Generate a synthetic FATAL event so that the caller can // see that the connection was not gracefully closed. eventCh <- readErrSynthEvent } close(eventCh) close(replyCh) } riseup-vpn-0.24.5+ds1/pkg/vpn/demux/demuxer_test.go000066400000000000000000000141751461742244100221570ustar00rootroot00000000000000// Copyright (c) 2016 Martin Atkins // Permission is hereby granted, free of charge, to any person obtaining a copy of // this software and associated documentation files (the "Software"), to deal in // the Software without restriction, including without limitation the rights to // use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies // of the Software, and to permit persons to whom the Software is furnished to do // so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package demux import ( "bytes" "fmt" "io" "reflect" "testing" ) func TestDemultiplex(t *testing.T) { type TestCase struct { Input []string ExpectedReplies []string ExpectedEvents []string } testCases := []TestCase{ { Input: []string{}, ExpectedReplies: []string{}, ExpectedEvents: []string{}, }, { Input: []string{ "SUCCESS: foo bar baz", }, ExpectedReplies: []string{ "SUCCESS: foo bar baz", }, ExpectedEvents: []string{}, }, { Input: []string{ ">STATE:1234,ASSIGN_IP,,10.0.0.1,", }, ExpectedReplies: []string{}, ExpectedEvents: []string{ "STATE:1234,ASSIGN_IP,,10.0.0.1,", }, }, { Input: []string{ ">STATE:1234,ASSIGN_IP,,10.0.0.1,", ">STATE:5678,ASSIGN_IP,,10.0.0.1,", ">STATE:9012,ASSIGN_IP,,10.0.0.1,", }, ExpectedReplies: []string{}, ExpectedEvents: []string{ "STATE:1234,ASSIGN_IP,,10.0.0.1,", "STATE:5678,ASSIGN_IP,,10.0.0.1,", "STATE:9012,ASSIGN_IP,,10.0.0.1,", }, }, { Input: []string{ ">STATE:1234,ASSIGN_IP,,10.0.0.1,", "SUCCESS: foo bar baz", ">STATE:5678,ASSIGN_IP,,10.0.0.1,", }, ExpectedReplies: []string{ "SUCCESS: foo bar baz", }, ExpectedEvents: []string{ "STATE:1234,ASSIGN_IP,,10.0.0.1,", "STATE:5678,ASSIGN_IP,,10.0.0.1,", }, }, { Input: []string{ "SUCCESS: foo bar baz", ">STATE:1234,ASSIGN_IP,,10.0.0.1,", "SUCCESS: baz bar foo", }, ExpectedReplies: []string{ "SUCCESS: foo bar baz", "SUCCESS: baz bar foo", }, ExpectedEvents: []string{ "STATE:1234,ASSIGN_IP,,10.0.0.1,", }, }, } for i, testCase := range testCases { r := mockReader(testCase.Input) gotReplies, gotEvents := captureMsgs(r) if !reflect.DeepEqual(gotReplies, testCase.ExpectedReplies) { t.Errorf( "test %d returned incorrect replies\ngot %#v\nwant %#v", i, gotReplies, testCase.ExpectedReplies, ) } if !reflect.DeepEqual(gotEvents, testCase.ExpectedEvents) { t.Errorf( "test %d returned incorrect events\ngot %#v\nwant %#v", i, gotEvents, testCase.ExpectedEvents, ) } } } func TestDemultiplex_error(t *testing.T) { r := &alwaysErroringReader{} gotReplies, gotEvents := captureMsgs(r) expectedReplies := []string{} expectedEvents := []string{ "FATAL:Error reading from OpenVPN", } if !reflect.DeepEqual(gotReplies, expectedReplies) { t.Errorf( "incorrect replies\ngot %#v\nwant %#v", gotReplies, expectedReplies, ) } if !reflect.DeepEqual(gotEvents, expectedEvents) { t.Errorf( "incorrect events\ngot %#v\nwant %#v", gotEvents, expectedEvents, ) } } func mockReader(msgs []string) io.Reader { var buf []byte for _, msg := range msgs { buf = append(buf, []byte(msg)...) buf = append(buf, '\n') } return bytes.NewReader(buf) } func captureMsgs(r io.Reader) (replies, events []string) { replyCh := make(chan []byte) eventCh := make(chan []byte) replies = make([]string, 0) events = make([]string, 0) go Demultiplex(r, replyCh, eventCh) for replyCh != nil || eventCh != nil { select { case msg, ok := <-replyCh: if ok { replies = append(replies, string(msg)) } else { replyCh = nil } case msg, ok := <-eventCh: if ok { events = append(events, string(msg)) } else { eventCh = nil } } } return replies, events } type alwaysErroringReader struct{} func (r *alwaysErroringReader) Read(buf []byte) (int, error) { return 0, fmt.Errorf("mock error") } // Somewhat-contrived example of blocking for a reply while concurrently // processing asynchronous events. func ExampleDemultiplex() { // In a real caller we would have a net.IPConn as our reader, // but we'll use a bytes reader here as a test. r := bytes.NewReader([]byte( // A reply to a hypothetical command interspersed between // two asynchronous events. ">HOLD:Waiting for hold release\nSUCCESS: foo\n>FATAL:baz\n", )) // No strong need for buffering on this channel because usually // a message sender will immediately block waiting for the // associated response message. replyCh := make(chan []byte) // Make sure the event channel buffer is deep enough that slow event // processing won't significantly delay synchronous replies. If you // process events quickly, or if you aren't sending any commands // concurrently with acting on events, then this is not so important. eventCh := make(chan []byte, 10) // Start demultiplexing the message stream in the background. // This goroutine will exit once the reader signals EOF. go Demultiplex(r, replyCh, eventCh) // Some coroutine has sent a hypothetical message to OpenVPN, // and it can directly block until the associated reply arrives. // The events will be concurrently handled by our event loop // below while we wait for the reply to show up. go func() { replyMsgBuf := <-replyCh fmt.Printf("Command reply: %s\n", string(replyMsgBuf)) }() // Main event loop deals with the async events as they arrive, // independently of any commands that are pending. for msgBuf := range eventCh { fmt.Printf("Event: %s\n", string(msgBuf)) } } riseup-vpn-0.24.5+ds1/pkg/vpn/demux/doc.go000066400000000000000000000011141461742244100202010ustar00rootroot00000000000000// Package demux implements low-level demultiplexing of the stream of // messages sent from OpenVPN on the management channel. // // OpenVPN's protocol includes two different kinds of message from the OpenVPN // process: replies to commands sent by the management client, and asynchronous // event notifications. // // This package's purpose is to split these messages into two separate streams, // so that functions executing command/response sequences can just block // on the reply channel while an event loop elsewhere deals with any async // events that might show up. package demux riseup-vpn-0.24.5+ds1/pkg/vpn/management/000077500000000000000000000000001461742244100201025ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/pkg/vpn/management/client.go000066400000000000000000000261461461742244100217200ustar00rootroot00000000000000// Copyright (c) 2016 Martin Atkins // Copyright (c) 2021 LEAP Encryption Access Project // Permission is hereby granted, free of charge, to any person obtaining a copy of // this software and associated documentation files (the "Software"), to deal in // the Software without restriction, including without limitation the rights to // use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies // of the Software, and to permit persons to whom the Software is furnished to do // so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package management import ( "bytes" "fmt" "io" "net" "strconv" "time" "0xacab.org/leap/bitmask-vpn/pkg/vpn/demux" ) var newline = []byte{'\n'} var successPrefix = []byte("SUCCESS: ") var errorPrefix = []byte("ERROR: ") var endMessage = []byte("END") // StatusFormat enum type type StatusFormat string // StatusFormatDefault openvpn default status format // StatusFormatV3 openvpn version 3 status format const ( StatusFormatDefault StatusFormat = "" StatusFormatV3 StatusFormat = "3" ) // MgmtClient . type MgmtClient struct { wr io.Writer replies <-chan []byte } // NewClient creates a new MgmtClient that communicates via the given // io.ReadWriter and emits events on the given channel. // // eventCh should be a buffered channel with a sufficient buffer depth // such that it cannot be filled under the expected event volume. Event // volume depends on which events are enabled and how they are configured; // some of the event-enabling functions have further discussion how frequently // events are likely to be emitted, but the caller should also factor in // how long its own event *processing* will take, since slow event // processing will create back-pressure that could cause this buffer to // fill faster. // // It probably goes without saying given the previous paragraph, but the // caller *must* constantly read events from eventCh to avoid its buffer // becoming full. Events and replies are received on the same channel // from OpenVPN, so if writing to eventCh blocks then this will also block // responses from the client's various command methods. // // eventCh will be closed to signal the closing of the client connection, // whether due to graceful shutdown or to an error. In the case of error, // a FatalEvent will be emitted on the channel as the last event before it // is closed. Connection errors may also concurrently surface as error // responses from the client's various command methods, should an error // occur while we await a reply. func NewClient(conn io.ReadWriter, eventCh chan<- Event) *MgmtClient { replyCh := make(chan []byte) rawEventCh := make(chan []byte) // not buffered because eventCh should be go demux.Demultiplex(conn, replyCh, rawEventCh) // Get raw events and upgrade them into proper event types before // passing them on to the caller's event channel. go func() { for raw := range rawEventCh { eventCh <- upgradeEvent(raw) } close(eventCh) }() return &MgmtClient{ // replyCh acts as the reader for our ReadWriter, so we only // need to retain the io.Writer for it, so we can send commands. wr: conn, replies: replyCh, } } // Dial is a convenience wrapper around NewClient that handles the common // case of opening an TCP/IP socket to an OpenVPN management port and creating // a client for it. // // See the NewClient docs for discussion about the requirements for eventCh. // // OpenVPN will create a suitable management port if launched with the // following command line option: // // --management // // Address may an IPv4 address, an IPv6 address, or a hostname that resolves // to either of these, followed by a colon and then a port number. // // When running on Unix systems it's possible to instead connect to a Unix // domain socket. To do this, pass an absolute path to the socket as // the target address, having run OpenVPN with the following options: // // --management /path/to/socket unix func Dial(addr string, eventCh chan<- Event) (*MgmtClient, error) { proto := "tcp" if len(addr) > 0 && addr[0] == '/' { proto = "unix" } conn, err := net.Dial(proto, addr) if err != nil { return nil, err } return NewClient(conn, eventCh), nil } // HoldRelease instructs OpenVPN to release any management hold preventing // it from proceeding, but to retain the state of the hold flag such that // the daemon will hold again if it needs to reconnect for any reason. // // OpenVPN can be instructed to activate a management hold on startup by // running it with the following option: // // --management-hold // // Instructing OpenVPN to hold gives your client a chance to connect and // do any necessary configuration before a connection proceeds, thus avoiding // the problem of missed events. // // When OpenVPN begins holding, or when a new management client connects while // a hold is already in effect, a HoldEvent will be emitted on the event // channel. func (c *MgmtClient) HoldRelease() error { _, err := c.simpleCommand("hold release") return err } // SetStateEvents either enables or disables asynchronous events for changes // in the OpenVPN connection state. // // When enabled, a StateEvent will be emitted from the event channel each // time the connection state changes. See StateEvent for more information // on the event structure. func (c *MgmtClient) SetStateEvents(on bool) error { var err error if on { _, err = c.simpleCommand("state on") } else { _, err = c.simpleCommand("state off") } return err } // SetEchoEvents either enables or disables asynchronous events for "echo" // commands sent from a remote server to our managed OpenVPN client. // // When enabled, an EchoEvent will be emitted from the event channel each // time the server sends an echo command. See EchoEvent for more information. func (c *MgmtClient) SetEchoEvents(on bool) error { var err error if on { _, err = c.simpleCommand("echo on") } else { _, err = c.simpleCommand("echo off") } return err } // SetByteCountEvents either enables or disables ongoing asynchronous events // for information on OpenVPN bandwidth usage. // // When enabled, a ByteCountEvent will be emitted at given time interval, // (which may only be whole seconds) describing how many bytes have been // transferred in each direction See ByteCountEvent for more information. // // Set the time interval to zero in order to disable byte count events. func (c *MgmtClient) SetByteCountEvents(interval time.Duration) error { msg := fmt.Sprintf("bytecount %d", int(interval.Seconds())) _, err := c.simpleCommand(msg) return err } // SendSignal sends a signal to the OpenVPN process via the management // channel. In effect this causes the OpenVPN process to send a signal to // itself on our behalf. // // OpenVPN accepts a subset of the usual UNIX signal names, including // "SIGHUP", "SIGTERM", "SIGUSR1" and "SIGUSR2". See the OpenVPN manual // page for the meaning of each. // // Behavior is undefined if the given signal name is not entirely uppercase // letters. In particular, including newlines in the string is likely to // cause very unpredictable behavior. func (c *MgmtClient) SendSignal(name string) error { msg := fmt.Sprintf("signal %q", name) _, err := c.simpleCommand(msg) return err } // LatestState retrieves the most recent StateEvent from the server. This // can either be used to poll the state or it can be used to determine the // initial state after calling SetStateEvents(true) but before the first // state event is delivered. func (c *MgmtClient) LatestState() (*StateEvent, error) { err := c.sendCommand([]byte("state")) if err != nil { return nil, err } payload, err := c.readCommandResponsePayload() if err != nil { return nil, err } if len(payload) != 1 { return nil, fmt.Errorf("Malformed OpenVPN 'state' response") } return &StateEvent{ body: payload[0], }, nil } // LatestStatus retrieves the current daemon status information, in the same format as that produced by the OpenVPN --status directive. func (c *MgmtClient) LatestStatus(statusFormat StatusFormat) ([][]byte, error) { var cmd []byte if statusFormat == StatusFormatDefault { cmd = []byte("status") } else if statusFormat == StatusFormatV3 { cmd = []byte("status 3") } else { return nil, fmt.Errorf("Incorrect 'status' format option") } err := c.sendCommand(cmd) if err != nil { return nil, err } payload, err := c.readCommandResponsePayload() if err != nil { return nil, err } return payload, nil } // Pid retrieves the process id of the connected OpenVPN process. func (c *MgmtClient) Pid() (int, error) { raw, err := c.simpleCommand("pid") if err != nil { return 0, err } if !bytes.HasPrefix(raw, []byte("pid=")) { return 0, fmt.Errorf("malformed response from OpenVPN") } pid, err := strconv.Atoi(string(raw[4:])) if err != nil { return 0, fmt.Errorf("error parsing pid from OpenVPN: %s", err) } return pid, nil } func (c *MgmtClient) SendPassword(pass string) ([]byte, error) { return c.simpleCommand(pass + "\n") } func (c *MgmtClient) sendCommand(cmd []byte) error { _, err := c.wr.Write(cmd) if err != nil { return err } _, err = c.wr.Write(newline) return err } // sendCommandPayload can be called after sendCommand for // commands that expect a multi-line input payload. // // The buffer given in 'payload' *must* end with a newline, // or else the protocol will be broken. func (c *MgmtClient) sendCommandPayload(payload []byte) error { _, err := c.wr.Write(payload) if err != nil { return err } _, err = c.wr.Write(endMessage) if err != nil { return err } _, err = c.wr.Write(newline) return err } func (c *MgmtClient) readCommandResult() ([]byte, error) { reply, ok := <-c.replies if !ok { return nil, fmt.Errorf("connection closed while awaiting result") } if bytes.HasPrefix(reply, successPrefix) { result := reply[len(successPrefix):] return result, nil } if bytes.HasPrefix(reply, errorPrefix) { message := reply[len(errorPrefix):] return nil, ErrorFromServer(message) } return nil, fmt.Errorf("malformed result message") } func (c *MgmtClient) readCommandResponsePayload() ([][]byte, error) { lines := make([][]byte, 0, 10) for { line, ok := <-c.replies if !ok { // We'll give the caller whatever we got before the connection // closed, in case it's useful for debugging. return lines, fmt.Errorf("connection closed before END recieved") } if bytes.Equal(line, endMessage) { break } lines = append(lines, line) } return lines, nil } func (c *MgmtClient) simpleCommand(cmd string) ([]byte, error) { err := c.sendCommand([]byte(cmd)) if err != nil { return nil, err } return c.readCommandResult() } riseup-vpn-0.24.5+ds1/pkg/vpn/management/error.go000066400000000000000000000024761461742244100215730ustar00rootroot00000000000000// Copyright (c) 2016 Martin Atkins // Copyright (c) 2021 LEAP Encryption Access Project // Permission is hereby granted, free of charge, to any person obtaining a copy of // this software and associated documentation files (the "Software"), to deal in // the Software without restriction, including without limitation the rights to // use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies // of the Software, and to permit persons to whom the Software is furnished to do // so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package management type ErrorFromServer []byte func (err ErrorFromServer) Error() string { return string(err) } func (err ErrorFromServer) String() string { return string(err) } riseup-vpn-0.24.5+ds1/pkg/vpn/management/event.go000066400000000000000000000217451461742244100215630ustar00rootroot00000000000000// Copyright (c) 2016 Martin Atkins // Copyright (c) 2021 LEAP Encryption Access Project // Permission is hereby granted, free of charge, to any person obtaining a copy of // this software and associated documentation files (the "Software"), to deal in // the Software without restriction, including without limitation the rights to // use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies // of the Software, and to permit persons to whom the Software is furnished to do // so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package management import ( "bytes" "fmt" "strconv" ) var eventSep = []byte(":") var fieldSep = []byte(",") var byteCountEventKW = []byte("BYTECOUNT") var byteCountCliEventKW = []byte("BYTECOUNT_CLI") var clientEventKW = []byte("CLIENT") var echoEventKW = []byte("ECHO") var fatalEventKW = []byte("FATAL") var holdEventKW = []byte("HOLD") var infoEventKW = []byte("INFO") var logEventKW = []byte("LOG") var needOkEventKW = []byte("NEED-OK") var needStrEventKW = []byte("NEED-STR") var passwordEventKW = []byte("PASSWORD") var stateEventKW = []byte("STATE") type Event interface { String() string } // UnknownEvent represents an event of a type that this package doesn't // know about. // // Future versions of this library may learn about new event types, so a // caller should exercise caution when making use of events of this type // to access unsupported behavior. Backward-compatibility is *not* // guaranteed for events of this type. type UnknownEvent struct { keyword []byte body []byte } func (e *UnknownEvent) Type() string { return string(e.keyword) } func (e *UnknownEvent) Body() string { return string(e.body) } func (e *UnknownEvent) String() string { return fmt.Sprintf("%s: %s", e.keyword, e.body) } // MalformedEvent represents a message from the OpenVPN process that is // presented as an event but does not comply with the expected event syntax. // // Events of this type should never be seen but robust callers will accept // and ignore them, possibly generating some kind of debugging message. // // One reason for potentially seeing events of this type is when the target // program is actually not an OpenVPN process at all, but in fact this client // has been connected to a different sort of server by mistake. type MalformedEvent struct { raw []byte } func (e *MalformedEvent) String() string { return fmt.Sprintf("Malformed Event %q", e.raw) } // HoldEvent is a notification that the OpenVPN process is in a management // hold and will not continue connecting until the hold is released, e.g. // by calling client.HoldRelease() type HoldEvent struct { body []byte } func (e *HoldEvent) String() string { return string(e.body) } // StateEvent is a notification of a change of connection state. It can be // used, for example, to detect if the OpenVPN connection has been interrupted // and the OpenVPN process is attempting to reconnect. type StateEvent struct { body []byte // bodyParts is populated only on first request, giving us the // separate comma-separated elements of the message. Not all // fields are populated for all states. bodyParts [][]byte } func (e *StateEvent) RawTimestamp() string { parts := e.parts() return string(parts[0]) } func (e *StateEvent) NewState() string { parts := e.parts() return string(parts[1]) } func (e *StateEvent) Description() string { parts := e.parts() return string(parts[2]) } // LocalTunnelAddr returns the IP address of the local interface within // the tunnel, as a string that can be parsed using net.ParseIP. // // This field is only populated for events whose NewState returns // either ASSIGN_IP or CONNECTED. func (e *StateEvent) LocalTunnelAddr() string { parts := e.parts() return string(parts[3]) } // RemoteAddr returns the non-tunnel IP address of the remote // system that has connected to the local OpenVPN process. // // This field is only populated for events whose NewState returns // CONNECTED. func (e *StateEvent) RemoteAddr() string { parts := e.parts() return string(parts[4]) } func (e *StateEvent) String() string { newState := e.NewState() switch newState { case "ASSIGN_IP": return fmt.Sprintf("%s: %s", newState, e.LocalTunnelAddr()) case "CONNECTED": return fmt.Sprintf("%s: %s", newState, e.RemoteAddr()) default: desc := e.Description() if desc != "" { return fmt.Sprintf("%s: %s", newState, desc) } else { return newState } } } func (e *StateEvent) parts() [][]byte { if e.bodyParts == nil { // State messages currently have only five segments, but // we'll ask for 5 so any additional fields that might show // up in newer versions will gather in an element we're // not actually using. e.bodyParts = bytes.SplitN(e.body, fieldSep, 6) // Prevent crash if the server has sent us a malformed // status message. This should never actually happen if // the server is behaving itself. if len(e.bodyParts) < 5 { expanded := make([][]byte, 5) copy(expanded, e.bodyParts) e.bodyParts = expanded } } return e.bodyParts } // EchoEvent is emitted by an OpenVPN process running in client mode when // an "echo" command is pushed to it by the server it has connected to. // // The format of the echo message is free-form, since this message type is // intended to pass application-specific data from the server-side config // into whatever client is consuming the management prototcol. // // This event is emitted only if the management client has turned on events // of this type using client.SetEchoEvents(true) type EchoEvent struct { body []byte } func (e *EchoEvent) RawTimestamp() string { sepIndex := bytes.Index(e.body, fieldSep) if sepIndex == -1 { return "" } return string(e.body[:sepIndex]) } func (e *EchoEvent) Message() string { sepIndex := bytes.Index(e.body, fieldSep) if sepIndex == -1 { return "" } return string(e.body[sepIndex+1:]) } func (e *EchoEvent) String() string { return fmt.Sprintf("ECHO: %s", e.Message()) } // ByteCountEvent represents a periodic snapshot of data transfer in bytes // on a VPN connection. // // For OpenVPN *servers*, events are emitted for each client and the method // ClientId identifies thet client. // // For other OpenVPN modes, events are emitted only once per interval for the // single connection managed by the target process, and ClientId returns // the empty string. type ByteCountEvent struct { hasClient bool body []byte // populated on first call to parts() bodyParts [][]byte } func (e *ByteCountEvent) ClientId() string { if !e.hasClient { return "" } return string(e.parts()[0]) } func (e *ByteCountEvent) BytesIn() int { index := 0 if e.hasClient { index = 1 } str := string(e.parts()[index]) val, _ := strconv.Atoi(str) // Ignore error, since this should never happen if OpenVPN is // behaving itself. return val } func (e *ByteCountEvent) BytesOut() int { index := 1 if e.hasClient { index = 2 } str := string(e.parts()[index]) val, _ := strconv.Atoi(str) // Ignore error, since this should never happen if OpenVPN is // behaving itself. return val } func (e *ByteCountEvent) String() string { if e.hasClient { return fmt.Sprintf("Client %s: %d in, %d out", e.ClientId(), e.BytesIn(), e.BytesOut()) } else { return fmt.Sprintf("%d in, %d out", e.BytesIn(), e.BytesOut()) } } func (e *ByteCountEvent) parts() [][]byte { if e.bodyParts == nil { e.bodyParts = bytes.SplitN(e.body, fieldSep, 4) wantCount := 2 if e.hasClient { wantCount = 3 } // Prevent crash if the server has sent us a malformed // message. This should never actually happen if the // server is behaving itself. if len(e.bodyParts) < wantCount { expanded := make([][]byte, wantCount) copy(expanded, e.bodyParts) e.bodyParts = expanded } } return e.bodyParts } func upgradeEvent(raw []byte) Event { splitIdx := bytes.Index(raw, eventSep) if splitIdx == -1 { // Should never happen, but we'll handle it robustly if it does. return &MalformedEvent{raw} } keyword := raw[:splitIdx] body := raw[splitIdx+1:] switch { case bytes.Equal(keyword, stateEventKW): return &StateEvent{body: body} case bytes.Equal(keyword, holdEventKW): return &HoldEvent{body} case bytes.Equal(keyword, echoEventKW): return &EchoEvent{body} case bytes.Equal(keyword, byteCountEventKW): return &ByteCountEvent{hasClient: false, body: body} case bytes.Equal(keyword, byteCountCliEventKW): return &ByteCountEvent{hasClient: true, body: body} default: return &UnknownEvent{keyword, body} } } riseup-vpn-0.24.5+ds1/pkg/vpn/management/event_test.go000066400000000000000000000221171461742244100226140ustar00rootroot00000000000000// Copyright (c) 2016 Martin Atkins // Copyright (c) 2021 LEAP Encryption Access Project // Permission is hereby granted, free of charge, to any person obtaining a copy of // this software and associated documentation files (the "Software"), to deal in // the Software without restriction, including without limitation the rights to // use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies // of the Software, and to permit persons to whom the Software is furnished to do // so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package management import ( "fmt" "testing" ) // A key requirement of our event parsing is that it must never cause a // panic, even if the OpenVPN process sends us malformed garbage. // // Therefore most of the tests in here are testing various tortured error // cases, which are all expected to produce an event object, though the // contents of that event object will be nonsensical if the OpenVPN server // sends something nonsensical. func TestMalformedEvent(t *testing.T) { testCases := [][]byte{ []byte(""), []byte("HTTP/1.1 200 OK"), []byte(" "), []byte("\x00"), } for i, testCase := range testCases { event := upgradeEvent(testCase) var malformed *MalformedEvent var ok bool if malformed, ok = event.(*MalformedEvent); !ok { t.Errorf("test %d got %T; want %T", i, event, malformed) continue } wantString := fmt.Sprintf("Malformed Event %q", testCase) if gotString := malformed.String(); gotString != wantString { t.Errorf("test %d String returned %q; want %q", i, gotString, wantString) } } } func TestUnknownEvent(t *testing.T) { type TestCase struct { Input []byte WantType string WantBody string } testCases := []TestCase{ { Input: []byte("DUMMY:baz"), WantType: "DUMMY", WantBody: "baz", }, { Input: []byte("DUMMY:"), WantType: "DUMMY", WantBody: "", }, { Input: []byte("DUMMY:abc,123,456"), WantType: "DUMMY", WantBody: "abc,123,456", }, } for i, testCase := range testCases { event := upgradeEvent(testCase.Input) var unk *UnknownEvent var ok bool if unk, ok = event.(*UnknownEvent); !ok { t.Errorf("test %d got %T; want %T", i, event, unk) continue } if got, want := unk.Type(), testCase.WantType; got != want { t.Errorf("test %d Type returned %q; want %q", i, got, want) } if got, want := unk.Body(), testCase.WantBody; got != want { t.Errorf("test %d Body returned %q; want %q", i, got, want) } } } func TestHoldEvent(t *testing.T) { testCases := [][]byte{ []byte("HOLD:"), []byte("HOLD:waiting for hold release"), } for i, testCase := range testCases { event := upgradeEvent(testCase) var hold *HoldEvent var ok bool if hold, ok = event.(*HoldEvent); !ok { t.Errorf("test %d got %T; want %T", i, event, hold) continue } } } func TestEchoEvent(t *testing.T) { type TestCase struct { Input []byte WantTimestamp string WantMessage string } testCases := []TestCase{ { Input: []byte("ECHO:123,foo"), WantTimestamp: "123", WantMessage: "foo", }, { Input: []byte("ECHO:123,"), WantTimestamp: "123", WantMessage: "", }, { Input: []byte("ECHO:,foo"), WantTimestamp: "", WantMessage: "foo", }, { Input: []byte("ECHO:,"), WantTimestamp: "", WantMessage: "", }, { Input: []byte("ECHO:"), WantTimestamp: "", WantMessage: "", }, } for i, testCase := range testCases { event := upgradeEvent(testCase.Input) var echo *EchoEvent var ok bool if echo, ok = event.(*EchoEvent); !ok { t.Errorf("test %d got %T; want %T", i, event, echo) continue } if got, want := echo.RawTimestamp(), testCase.WantTimestamp; got != want { t.Errorf("test %d RawTimestamp returned %q; want %q", i, got, want) } if got, want := echo.Message(), testCase.WantMessage; got != want { t.Errorf("test %d Message returned %q; want %q", i, got, want) } } } func TestStateEvent(t *testing.T) { type TestCase struct { Input []byte WantTimestamp string WantState string WantDesc string WantLocalAddr string WantRemoteAddr string } testCases := []TestCase{ { Input: []byte("STATE:"), WantTimestamp: "", WantState: "", WantDesc: "", WantLocalAddr: "", WantRemoteAddr: "", }, { Input: []byte("STATE:,"), WantTimestamp: "", WantState: "", WantDesc: "", WantLocalAddr: "", WantRemoteAddr: "", }, { Input: []byte("STATE:,,,,"), WantTimestamp: "", WantState: "", WantDesc: "", WantLocalAddr: "", WantRemoteAddr: "", }, { Input: []byte("STATE:123,CONNECTED,good,172.16.0.1,192.168.4.1"), WantTimestamp: "123", WantState: "CONNECTED", WantDesc: "good", WantLocalAddr: "172.16.0.1", WantRemoteAddr: "192.168.4.1", }, { Input: []byte("STATE:123,RECONNECTING,SIGHUP,,"), WantTimestamp: "123", WantState: "RECONNECTING", WantDesc: "SIGHUP", WantLocalAddr: "", WantRemoteAddr: "", }, { Input: []byte("STATE:123,RECONNECTING,SIGHUP,,,extra"), WantTimestamp: "123", WantState: "RECONNECTING", WantDesc: "SIGHUP", WantLocalAddr: "", WantRemoteAddr: "", }, } for i, testCase := range testCases { event := upgradeEvent(testCase.Input) var st *StateEvent var ok bool if st, ok = event.(*StateEvent); !ok { t.Errorf("test %d got %T; want %T", i, event, st) continue } if got, want := st.RawTimestamp(), testCase.WantTimestamp; got != want { t.Errorf("test %d RawTimestamp returned %q; want %q", i, got, want) } if got, want := st.NewState(), testCase.WantState; got != want { t.Errorf("test %d NewState returned %q; want %q", i, got, want) } if got, want := st.Description(), testCase.WantDesc; got != want { t.Errorf("test %d Description returned %q; want %q", i, got, want) } if got, want := st.LocalTunnelAddr(), testCase.WantLocalAddr; got != want { t.Errorf("test %d LocalTunnelAddr returned %q; want %q", i, got, want) } if got, want := st.RemoteAddr(), testCase.WantRemoteAddr; got != want { t.Errorf("test %d RemoteAddr returned %q; want %q", i, got, want) } } } func TestByteCountEvent(t *testing.T) { type TestCase struct { Input []byte WantClientId string WantBytesIn int WantBytesOut int } testCases := []TestCase{ { Input: []byte("BYTECOUNT:"), WantClientId: "", WantBytesIn: 0, WantBytesOut: 0, }, { Input: []byte("BYTECOUNT:123,456"), WantClientId: "", WantBytesIn: 123, WantBytesOut: 456, }, { Input: []byte("BYTECOUNT:,"), WantClientId: "", WantBytesIn: 0, WantBytesOut: 0, }, { Input: []byte("BYTECOUNT:5,"), WantClientId: "", WantBytesIn: 5, WantBytesOut: 0, }, { Input: []byte("BYTECOUNT:,6"), WantClientId: "", WantBytesIn: 0, WantBytesOut: 6, }, { Input: []byte("BYTECOUNT:6"), WantClientId: "", WantBytesIn: 6, WantBytesOut: 0, }, { Input: []byte("BYTECOUNT:wrong,bad"), WantClientId: "", WantBytesIn: 0, WantBytesOut: 0, }, { Input: []byte("BYTECOUNT:1,2,3"), WantClientId: "", WantBytesIn: 1, WantBytesOut: 2, }, { // Intentionally malformed BYTECOUNT event sent as BYTECOUNT_CLI Input: []byte("BYTECOUNT_CLI:123,456"), WantClientId: "123", WantBytesIn: 456, WantBytesOut: 0, }, { Input: []byte("BYTECOUNT_CLI:"), WantClientId: "", WantBytesIn: 0, WantBytesOut: 0, }, { Input: []byte("BYTECOUNT_CLI:abc123,123,456"), WantClientId: "abc123", WantBytesIn: 123, WantBytesOut: 456, }, { Input: []byte("BYTECOUNT_CLI:abc123,123"), WantClientId: "abc123", WantBytesIn: 123, WantBytesOut: 0, }, } for i, testCase := range testCases { event := upgradeEvent(testCase.Input) var bc *ByteCountEvent var ok bool if bc, ok = event.(*ByteCountEvent); !ok { t.Errorf("test %d got %T; want %T", i, event, bc) continue } if got, want := bc.ClientId(), testCase.WantClientId; got != want { t.Errorf("test %d ClientId returned %q; want %q", i, got, want) } if got, want := bc.BytesIn(), testCase.WantBytesIn; got != want { t.Errorf("test %d BytesIn returned %d; want %d", i, got, want) } if got, want := bc.BytesOut(), testCase.WantBytesOut; got != want { t.Errorf("test %d BytesOut returned %d; want %d", i, got, want) } } } riseup-vpn-0.24.5+ds1/pkg/vpn/management/server.go000066400000000000000000000140361461742244100217430ustar00rootroot00000000000000// Copyright (c) 2016 Martin Atkins // Copyright (c) 2021 LEAP Encryption Access Project // Permission is hereby granted, free of charge, to any person obtaining a copy of // this software and associated documentation files (the "Software"), to deal in // the Software without restriction, including without limitation the rights to // use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies // of the Software, and to permit persons to whom the Software is furnished to do // so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package management import ( "net" "time" ) // MgmtListener accepts incoming connections from OpenVPN. // // The primary way to instantiate this type is via the function Listen. // See its documentation for more information. type MgmtListener struct { l net.Listener } // NewMgmtListener constructs a MgmtListener from an already-established // net.Listener. In most cases it will be more convenient to use // the function Listen. func NewMgmtListener(l net.Listener) *MgmtListener { return &MgmtListener{l} } // Listen opens a listen port and awaits incoming connections from OpenVPN // processes. // // OpenVPN will behave in this manner when launched with the following options: // // --management ipaddr port --management-client // // Note that in this case the terminology is slightly confusing, since from // the standpoint of TCP/IP it is OpenVPN that is the client and our program // that is the server, but once the connection is established the channel // is indistinguishable from the situation where OpenVPN exposed a management // *server* and we connected to it. Thus we still refer to our program as // the "client" and OpenVPN as the "server" once the connection is established. // // When running on Unix systems it's possible to instead listen on a Unix // domain socket. To do this, pass an absolute path to the socket as // the listen address, and then run OpenVPN with the following options: // // --management /path/to/socket unix --management-client func Listen(laddr string) (*MgmtListener, error) { proto := "tcp" if len(laddr) > 0 && laddr[0] == '/' { proto = "unix" } listener, err := net.Listen(proto, laddr) if err != nil { return nil, err } return NewMgmtListener(listener), nil } // Accept waits for and returns the next connection. func (l *MgmtListener) Accept() (*IncomingConn, error) { conn, err := l.l.Accept() if err != nil { return nil, err } return &IncomingConn{conn}, nil } // Close closes the listener. Any blocked Accept operations // will be blocked and each will return an error. func (l *MgmtListener) Close() error { return l.l.Close() } // Addr returns the listener's network address. func (l *MgmtListener) Addr() net.Addr { return l.l.Addr() } // Serve will await new connections and call the given handler // for each. // // Serve does not return unless the listen port is closed; a non-nil // error is always returned. func (l *MgmtListener) Serve(handler IncomingConnHandler) error { defer l.Close() var tempDelay time.Duration for { incoming, err := l.Accept() if err != nil { if ne, ok := err.(net.Error); ok && ne.Temporary() { if tempDelay == 0 { tempDelay = 5 * time.Millisecond } else { tempDelay *= 2 } if max := 1 * time.Second; tempDelay > max { tempDelay = max } // Wait a while before we try again. time.Sleep(tempDelay) continue } else { // Listen socket is permanently closed or errored, // so it's time for us to exit. return err } } // always reset our retry delay once we successfully read tempDelay = 0 go handler.ServeOpenVPNMgmt(*incoming) } } type IncomingConn struct { conn net.Conn } // Open initiates communication with the connected OpenVPN process, // and establishes the channel on which events will be delivered. // // See the documentation for NewClient for discussion about the requirements // for eventCh. func (ic IncomingConn) Open(eventCh chan<- Event) *MgmtClient { return NewClient(ic.conn, eventCh) } // Close abruptly closes the socket connected to the OpenVPN process. // // This is a rather abrasive way to close the channel, intended for rejecting // unwanted incoming clients that may or may not speak the OpenVPN protocol. // // Once communication is accepted and established, it is generally better // to close the connection gracefully using commands on the client returned // from Open. func (ic IncomingConn) Close() error { return ic.conn.Close() } type IncomingConnHandler interface { ServeOpenVPNMgmt(IncomingConn) } // IncomingConnHandlerFunc is an adapter to allow the use of ordinary // functions as connection handlers. // // Given a function with the appropriate signature, IncomingConnHandlerFunc(f) // is an IncomingConnHandler that calls f. type IncomingConnHandlerFunc func(IncomingConn) func (f IncomingConnHandlerFunc) ServeOpenVPNMgmt(i IncomingConn) { f(i) } // ListenAndServe creates a MgmtListener for the given listen address // and then calls AcceptAndServe on it. // // This is just a convenience wrapper. See the AcceptAndServe method for // more details. Just as with AcceptAndServe, this function does not return // except on error; in addition to the error cases handled by AcceptAndServe, // this function may also fail if the listen socket cannot be established // in the first place. func ListenAndServe(laddr string, handler IncomingConnHandler) error { listener, err := Listen(laddr) if err != nil { return err } return listener.Serve(handler) } riseup-vpn-0.24.5+ds1/providers/000077500000000000000000000000001461742244100164175ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/providers/bitmask/000077500000000000000000000000001461742244100200515ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/providers/bitmask/assets/000077500000000000000000000000001461742244100213535ustar00rootroot00000000000000riseup-vpn-0.24.5+ds1/providers/bitmask/assets/icon.icns000066400000000000000000035525701461742244100232020ustar00rootroot00000000000000icnsxic12-6PNG  IHDR@@sRGBDeXIfMM*i@@FQB,IDATx|xTE{J {c&ҥ*$R{ ={lv" $$}/gdޝ;s93w(@1)PLb S(@1)PL_(OMtwױw5X[J_iTN[3S2VR'5"Qv c4)&R9IY'ޝqsmB"e|OK#'O|C*v4mzZ3 Aԙ5E&+}%E! 4FM.Rib|dr"Ll@2)pVN^4zb.loC|Ɉt9D{p.O?[K|t\`)jAD,B.?W]ܞDLjՋ@R~:22 $kJR=)unʑh89@o9!1Yvޓy5k,SƖkFwNwVJh3H}Za|7+eZMt Wh %g{5&B Ky. ‘gZAVX>߇;epeE%l]( e:7xN.zeKcvAO/|zN`\kxɝX?Z)ChH2a8'‹.x:4~'O7W'dd +(' 16WfdfJ:|YYTS|oiư[} `ke|Nuh jsê/XgLƃhXL- jM|r1Z\Lc@+cmhV'*U#P_JPI6U.T驴acF{NB qm=(y"~٢.`F\<a{9ǯ fV!oP2ɏΣ߽P ljSzA8"Rn [oĔq#:AEU!1c)ghP3crbgg ԁ "5}|>^AH (XM% AfiyV T2B%z93_ю[L! ɗ lGY>SLP• xq嘠fڸ'^jH ,- J2XU5 z5c;1 {Zlh AHANuw>I ?2h|~cD%:#IԳOGl9ԅ `!1t\ DTzOjEV`0ކX #wpJ53۰*+=5zŨ_~ucEó^WԎJ]~&x$,}Q{O3ץJ 0!0&u b_u+rX]5֠#s-j_kg ۳-܅_~>_x[B$Wv\Ye3n`5o z_$-Po;A`IE$,  γa@zΌūro'4X>/.1 WNS%t#8BEthL3sgKF*HDUsV[Mk=  嶺 .%=۸ׅM@b $@'u0&^1[P qE~lKSdǎTө\LX?Ap >EP(V7vZ۱4% 2YZXbZhu|4UDղw/: ?D m"_XH(XbԧH@LISދN'OXc=d&Bjt,& f+4Iy}>GL`pʡO H)џw6K>:Q Dz1NOMFBK`Q2,p#e*lL=km7ݠk9HN1&ח erW1d6 n O^D1;{%PBa(]h(<<&܂/=2`H{dM2Q|u!:*QTfOFN[Ӥ^~oڷ6*km 30BmbWun"( B{y)bJ֞LCl9&L+59mXY}'[rӆbm=2dǹ>d'./]}#-J YCe/4}AM ~W= {&/U0܂P_7=xApX`)z$`vMsח7WD(?'nFz1썋&xemfKNMjtHQk!KǮ7ZO79*(奋R0ގmbk6_w&;ϑ$ʂ~_O"Ufr_7 ݕڎmm|F:CksFPu\=q@fu;c_z/(].^|;!%Ɠ]w`G)~xn";:<œ|3ڻ|YA]O:qw} U2{F/+b7F*m RSl æbX7*ݥuW+`&v10 79DzB/'0xC GqН؃//q韎}zyyjž]2_#.U{PvbAU <\-Np̐''fHmHYyoH{Zݧ͛Xq- 8%|rjN[WP t23BNmg`>!JzrDYd:jcJ Tzh]^dYu.TgcN=RF+ AjGWa ~RԒ1(<BB]J,#{ݞ KhV 93UNOLpZL%I'$1ǺXFa'v}_QY7ȫW7_'Oxqi)qKUd? _qp>arhM!?'&1}Ov)am)RGt+;w1ur{P9'JSMReH9)@xoDPHZ'K0) /A, k($G{>'@ *l#89,ColonкNޮ,ᴱuIn^ռ{夲WYqB>?z48+Q߉(n("zϨKF}RHj,erڧ "'e :B0`#'Vh( u΂KShmc e^p`dGJ]>(9ķkǸ3F0pgM^7_zSZ)%L2+Hh,N9vq,kv¡XW+EK)4@,`j*rU*;g;c9ys |xZA*aEDMjNKp͊L4; S?e>i0dYh{nս^H |6 ~>pkO4@{DhF@c+%MD7^ urꏋMO|(5%p'Deü !;`Q3 )2 573 J'&xxsNw{}Z#hPx{ !Ɣ.A̅i`IS% .#ͬ>`uV]p3&\ J0!j~|)NcXPx 7Pxa) 9p_攚c\uZy͟: \T"Sj; :f`/x!:w$0